linux網路程式設計之通訊協議格式

2021-08-27 11:01:57 字數 2046 閱讀 2602

好文參考:《網路傳輸的三張表:mac位址表,arp快取表和路由表》

(1)資料報封裝

傳輸層及其一下的機制由核心決定,主要負責通訊的具體細節;應用層由使用者程序提供,主要負責對通訊資料的含義進行解釋。應用層資料通過協議棧傳送到網路上,為了保證資料能夠被接收,需要在每層協議之前加乙個資料首部作為標識,我們稱之為封裝,具體格式如下

(2)乙太網幀格式

1) 在鏈路層中,傳輸的資料我們稱為幀,具體的幀格式如下圖所示:

1>在網路傳輸的過程中,只有知道目標的mac位址(未知)和傳送資料起點的mac位址(已知),才能進行正常的資料傳輸。如果得知目標的mac位址,通過arp傳送資料請求和資料應答即可得到目標的mac位址,arp資料報的格式如下:

2> 具體的實現流程:

在資料過程中,首先需要獲得目標的mac位址,這就需要使用arp協議了。在每台主機中都有乙個arp快取表,其中記錄了主機ip和mac位址的對應關係。如果ab之間想要通訊,a首先會檢查自己的arp快取表中是否有b的ip位址和對應mac位址的對應關係。如果有,則會將b的ip位址和對應的mac位址填到arp資料報中;如果沒有,則a會發乙個arp請求給b,此時交換機接收到這個資料幀(廣播幀),將資料以非介面的形式廣播出去。此時b收到這個資料幀,會檢查是否和自己的ip相同,如果不同,則忽略資訊,如果相同,則會將a的ip和mac位址的對應關係記錄在自己的arp快取表中,同時將給a傳送乙個arp應答資料(拆包和組包),其中包括b的mac位址。a收到b的應答資料後,會將b的ip位址和mac位址填入到自己的arp快取位址中。

在網路傳輸中,交換機在收到資料幀之後,會將資料幀中的mac位址和埠號記錄在mac表中,然後在表中尋找有沒有資料幀目標的mac位址資訊。如果有,則直接將資料從表中的介面傳遞給下乙個mac位址(單播);如果沒有,則將資料以非介面的形式傳送出去(稱為廣播)(現在的路由器一般都包含了交換機在內)。 

通過路由節點的不斷拆包和組包,直到找到封裝在網路層ip協議中的目的位址.資料報在不斷傳遞的過程中,最長的生命週期,我們稱之為ttl

3>ip段格式:資料前面的那段我們稱為ip首部(固定部分+可變部分)

其中:4位版本號:ipv4/ipv6     4位首部長度:資料首部的最大位元組數(最小為5,最大為15,以4位元組為單位)

16位總長度:資料報的最大長度為2^16-1=65535位元組(首部和資料之和長度)

13位片偏移:用於傳輸較大的資料,切片時記錄片的編號(片偏移以8位元組為偏移單位)

4>udp資料報格式

由於在乙個主機中,不同的應用對應於不用的程序,也就是所謂的埠號。因此通過指定兩個埠號,就可以指定兩個應用進行通訊,從而不會導致資料傳輸錯亂。

5>tcp資料報格式

和udp相比,tcp資料報格式相對來說比較複雜,除了相對的埠號,還有序號和確認序號,用來重構資料使用。

29 網路程式設計之TCP通訊協議

tcp通訊協議特點 1 tcp 協議是基於io流進行資料的傳輸,是 面向鏈結的。2 tcp 進行資料傳輸的時候,資料沒有大小限制的。3 面向鏈結,通過三次握手的機制,保證資料的完整性,是乙個可靠的協議。4 tcp 面向連線,所以速度稍微慢一點。5 tcp 是區分客戶端和服務端的。三次握手機制 保證網...

網路通訊協議

網路協議是構成網路的基本元件之一,協議是若干規則和協定的組合,一般指機器1的第n 層與機器2的第 n層的對話,這種對話中所使用的若干規則和約束便稱為第 n層網路協議。tcp ip 網路體系結構模型就是遵循 tcp ip 協議進行通訊的一種分層體系,現今,internet 和intranet 所使用的...

網路通訊協議

通過計算機網路可以使多台計算機實現連線,位於同乙個網路中的計算機在進行連線和通訊時需要遵守一定的規則,這就好比在道路中行駛的汽車一定要遵守交通規則一樣。在計算機網路中,這些連線和通訊的規則被稱為網路通訊協議,它對資料的傳輸格式 傳輸速率 傳輸步驟等做了統一規定,通訊雙方必須同時遵守才能完成資料交換。...