計算機網路通訊協議

2021-10-01 16:27:14 字數 3450 閱讀 3149

就是要把特定意義的資料通過物理介質傳送給對方。
把電訊號變成有意義的資料:

以位元組為單位分組,標識好每一組電訊號的資訊特徵,按照分組的順序來依次傳送。

乙太網規定:一組電訊號為乙個資料報,就是一幀。

資料報必須是從一塊網絡卡傳送到另一塊網絡卡,網絡卡位址就是mac位址,mac位址採用十六進製制標識,共6個位元組, 前三個位元組是廠商編號,後三個位元組是網絡卡流水號。

有了mac位址以後,乙太網採用廣播形式,把資料報發給該子網內所有主機,子網內每台主機在接收到這個包以後,都會讀取首部裡的目標mac位址,然後和自己的mac位址進行對比,如果相同就做下一步處理,如果不同,就丟棄這個包。

資料鏈路層的主要工作就是對電訊號進行分組並形成具有特定意義的資料幀,然後以廣播的形式通過物理介質傳送給接收方。

為了解決這些問題,網路層引入了三個協議,分別是ip協議、arp協議、路由協議。

arp協議

位址解析協議,根據ip獲取mac位址

路由協議

提供了異構網互聯的機制,就是用來確定到達目標ip的路徑

網路層的主要工作是為不同的主機提供通訊

鏈路層定義了主機的身份,即mac位址, 而網路層定義了ip位址,明確了主機所在的網段,有了這兩個位址,資料報就從可以從乙個主機傳送到另一台主機。

但是實際上資料報是從乙個主機的某個應用程式發出,然後由對方主機的應用程式接收。

為了確定是哪個應用程式要接收這個資料報。

因此傳輸層引入了udp協議來解決這個問題,為了給每個應用程式標識身份,udp協議定義了埠,同乙個主機上的每個應用程式都需要指定唯一的埠號,並且規定網路中傳輸的資料報必須加上埠資訊。

udp協議比較簡單,實現容易,但它沒有確認機制, 資料報一旦發出,無法知道對方是否收到,因此可靠性較差,為了解決這個問題,提高網路可靠性,tcp協議就誕生了。

tcp即傳輸控制協議,是一種面向連線的、可靠的、基於位元組流的通訊協議。

每發出乙個資料報都要求確認,如果有乙個資料報丟失,就收不到確認,傳送方就必須重發這個資料報。

tcp的確認機制就是三次握手

三次握手與四次揮手:

為什麼需要三次握手呢?

為了防止已失效的連線請求報文段突然又傳送到了服務端,因而產生錯誤。

比如:client發出的第乙個連線請求報文段在某個網路結點長時間的滯留了,以致延誤到連線釋放以後的某個時間才到達server。本來這是乙個早已失效的報文段,但是server收到此失效的連線請求報文段後,就誤認為是client再次發出的乙個新的連線請求,於是就向client發出確認報文段,同意建立連線。假設不採用「三次握手」,那麼只要server發出確認,新的連線就建立了,由於client並沒有發出建立連線的請求,因此不會理睬server的確認,也不會向server傳送資料,但server卻以為新的運輸連線已經建立,並一直等待client發來資料。所以沒有採用「三次握手」,這種情況下server的很多資源就白白浪費掉了。

四次揮手

當主動關閉方發出fin報文段時,表示主動關閉方已經沒有資料要傳送了,被動關閉方返回ack報文段,表示已經知道主動關閉方沒有資料傳送了;當被動關閉方也傳送了fin報文段時,這時就表示被動關閉方也沒有資料要傳送了,如果收到主動關閉方確認報文段,被動關閉方進入關閉狀態,主動關閉方在發出確認報文段後等待2msl,在等待時間裡如果沒有接收到被動關閉方重新傳送的fin報文段時,主動關閉方進入關閉狀態,之後彼此就會愉快的中斷這次tcp連線。如果接收到重新傳送的fin報文段,則繼續傳送ack確認報文。

說明:

1)syn攻擊 用眾多偽造ip位址向伺服器傳送syn=1(請求連線),讓伺服器處於syn-rcvd狀態,但都無法第三次握手(因為偽造ip不存在)

2)4次揮手中的fin就相當於三次握手中的syn。

3)序號seq,確認序號ack,確認標誌位ack作用還是一樣的,就是確認作用(把seq加上1賦給ack,並把ack置1)

什麼是tcp連線

tcp連線是一種抽象的概念,表示一條可以通訊的鏈路。

每個tcp連線有且僅有兩個端點,表示通訊的雙方,且雙方在任意時刻都可以作為傳送者和接受者。

什麼是套接字

tcp、udp區別:

tcp 協議 補充

傳輸層的主要工作是定義埠,標識應用程式身份,實現埠到埠的通訊,tcp協議可以保證資料傳輸的可靠性。(為不同的程序提供通訊)

理論上講,有了以上三層協議的支援,資料已經可以從乙個主機上的應用程式傳輸到另一台主機的應用程式了,但此時傳過來的資料是位元組流,不能很好的被程式識別,操作性差。

因此,應用層定義了各種各樣的協議來規範資料格式,常見的有 http、ftp、smtp 等,http 是一種比較常用的應用層協議,主要用於b/s架構之間的資料通訊。

http特點:

無狀態:協議對客戶端沒有狀態儲存,對事物處理沒有「記憶」能力,比如訪問乙個**需要反覆進行登入操作

無連線:http/1.1之前,由於無狀態特點,每次請求需要通過tcp三次握手四次揮手,和伺服器重新建立連線。比如某個客戶機在短時間多次請求同乙個資源,伺服器並不能區別是否已經響應過使用者的請求,所以每次需要重新響應請求,需要耗費不必要的時間和流量。

基於請求和響應:基本的特性,由客戶端發起請求,服務端響應

簡單快速、靈活

通訊使用明文、請求和響應不會對通訊方進行確認、無法保護資料的完整性

https特點:

基於http協議,通過ssl或tls提供加密處理資料、驗證對方身份以及資料完整性保護

內容加密:採用混合加密技術,中間者無法直接檢視明文內容

驗證身份:通過證書認證客戶端訪問的是自己的伺服器

保護資料完整性:防止傳輸的內容被中間人冒充或者篡改

https協議握手階段比較費時, https連線快取不如http高效

https協議的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、伺服器劫持等方面幾乎起不到什麼作用,但是會增加攻擊成本

應用層的主要工作就是定義資料格式並按照對應的格式解讀資料。

計算機網路之TCP IP協議(網路通訊協議)

物理層 資料鏈路層 網路層 傳輸層 應用層 資料格式 tcp資料資訊 tcp頭部 實際資料 tcp頭包括源和目標主機埠號 順序號 確認號 校驗字等 資料鏈路層協議 網路層協議 傳輸層協議 應用層協議 telnet服務是使用者遠端登入服務,使用23h埠,使用明碼傳送,保密性差 簡單方便。dns dom...

計算機網路通訊

osi體系結構 從下到上依次為物理層 資料鏈路層 網路層 運輸層 會話層 表示層 應用層。五層協議 從下到上依次為物理層 資料鏈路層 網路層 運輸層 應用層。tcp ip協議 從下到上依次為網路介面層 網路層 運輸層 應用層。1.應用層 http協議 ftp smtp,應用層直接為使用者的應用程式程...

計算機網路通訊

應用層就是面向使用者的,接受到下層發來的資料報,就需要解析,它需要規定應用資料的格式,他的內容全部放在tcp資料報的資料內容中 有了mac位址和ip位址,網際網路中兩台裝置就可以通訊了,但是每台裝置上的不同應用程式,也需要通訊,這就需要確定下層傳送的資料報是給每個應用程式 程序 使用的,這就需要給應...