TCP IP資料報格式詳解 包括資料鏈路層的頭部

2021-07-24 17:59:08 字數 3210 閱讀 7425

圖中括號中的數字代表的是當前域所佔的空間大小,單位是bit位。

黃色的是資料鏈路層的頭部,一共

14位元組

綠色的部分是

ip頭部,一般是

20位元組

紫色部分是

tcp頭部,一般是

20位元組

最內部的是資料報內容

黃色部分:鏈路層

目的

mac源

mac型別:指定網路層所用的協議型別,通常是

ip協議,

0x0800

綠色部分:網路層,這裡用的是

ip包頭格式

版本:記錄資料報屬於哪乙個版本的協議,如

ipv4

或ipv6

首部長度:指明

ip頭部長度,單位是字,也就是兩個位元組。該域的值最小為

5,就是標準的頭部長度;最大為

15,表明有擴充套件部分。

服務型別:用來區分不同服務的需要

資料報總長:包含

ip頭部的資料報的總長度。注意,這裡不包括鏈路層的頭部,目前最大值是

65535

位元組。分組

id這個域的作用是當乙個大的資料報被拆分時,拆分成的小的資料段的這個域都是一樣的。

標記:共三個

bit,第乙個未使用;第二個

df(don』t fragment)

,設定成

1表示這個資料報不能被分割,這個是針對路由器的一條指令;第三個

mf(morefragment)

,如果乙個資料報被分割了,那麼除了最後乙個分段以外的所有分段都必須設定為

1,用來表示後面還有更多的分段沒有到達,最後乙個設定為

0,用來表示分割的段全部到達。

段偏移量:這個域有

13bit

,也就是每乙個資料報最多有

8192

個分段。每乙個分段的長度必須是

8位元組的倍數,也就是說

8位元組是分段的基本單位,當然分組的最後乙個段不做限制。這樣最大的資料報長度為

8*8192=65536

位元組,比目前限制的最大資料報長度還多

1,能夠滿足對網路中所有資料報傳送的需求。

255s

,但是實際上使用的時候用作跳數計數器,當值為

0時資料報被丟棄,用來避免乙個資料報過久的逗留在網路中。

高層協議:這裡和鏈路層的型別作用相同,用來表示更高層的協議,這個資料報裡是

tcp首部校驗和:ip

頭部的校驗和

ipip

位址目的

ipip

位址紫色部分:傳輸層,這裡用的是

tcp協議

源埠號:資料報**主機的埠號

目的埠號:資料報目的主機的埠號

注意:源

ip位址,目的

ip位址,源埠號,目的埠號這四個字段唯一的確定了乙個

tcp鏈結。

tcp

序號(sq)傳送的

tcp的序號,從

0開始,實際中這個值就是傳送的資料報中內容的位元組數,比如我傳送的第乙個報中

sq=0

,資料報內容

20位元組,那麼下乙個資料報的

sq就應該是21。

捎帶的確認

(ack)

act的值是指定自己想要收到的下乙個資料報的

sq,比如我收到乙個資料報的

sq=0

,資料報內容

20位元組,那麼我的

ack就應該是

21,用來標明我

sq=0

,內容為

20位元組的資料報已經收到,我接下來期望收到的是

sq=21

的資料報。

首部長度:和

ip頭部的長度域類似,這個域用來標明

tcp頭部的長度,單位也是字。

保留:6bit

未使用的域

flag從左到右,

[urg|ack|psh|rst|syn|fin]

ack設定為

1表示前面的確認(

ack)是有效的,否則前面的確認應被忽略。

psh表示要求對方在接到資料後立即請求遞交給應用程式,而不是緩衝起來直到緩衝區收滿為止。

rst用於重置乙個已經混亂的連線。

syn用於建立連線的過程。在鏈結請求中,

syn=1

和ack=0

表示該資料段沒有使用捎帶的確認域。鏈結應答則捎帶了乙個確認,即

syn=1

和ack=1.

本質上syn

位是用來表示

connection request

和connection accepted

,然後進一步用

ack來區分是請求還是應答,的確很高明。

fin用來釋放乙個連線。它表示傳送方已經沒有資料要傳輸了。然後,在關閉乙個連線後,關閉程序可能會在一段不確定的時間內繼續接收到資料。

syn和

fin資料段都有

tcp序號,從而保證了這兩種資料段被按照正確的順序來進行處理。

視窗大小:指定了從被確認的位元組算起可以傳送多少個位元組。要深入理解這個域的含義,可以參看

tcp用色控制和慢啟動演算法

校驗和:校驗範圍包括

tcp頭、資料報內容和概念性偽頭部。概念性偽頭部又包括源

ip,目的ip,

tcp協議號。

緊急指標:指向資料報中緊急資料最後乙個位元組的下乙個位元組。

TCP IP資料報格式詳解 包括資料鏈路層的頭部

圖中括號中的數字代表的是當前域所佔的空間大小,單位是bit位。黃色的是資料鏈路層的頭部,一共14位元組 綠色的部分是ip頭部,一般是20位元組 紫色部分是 tcp頭部,一般是 20位元組 最內部的是資料報內容 黃色部分 鏈路層 目的mac源mac型別 指定網路層所用的協議型別,通常是ip協議,0x0...

TCP IP資料報格式詳解 包括資料鏈路層的頭部

圖中括號中的數字代表的是當前域所佔的空間大小,單位是bit位。黃色的是資料鏈路層的頭部,一共 14位元組 綠色的部分是 ip頭部,一般是 20位元組 紫色部分是 tcp頭部,一般是 20位元組 最內部的是資料報內容 黃色部分 鏈路層 目的 mac 當前step目的主機的mac位址 源 mac 當前s...

TCP IP資料報格式詳解 包括資料鏈路層的頭部

圖中括號中的數字代表的是當前域所佔的空間大小,單位是bit位。黃色的是資料鏈路層的頭部,一共 14位元組 綠色的部分是 ip頭部,一般是 20位元組 紫色部分是 tcp頭部,一般是 20位元組 最內部的是資料報內容 黃色部分 鏈路層 目的 mac源 mac型別 指定網路層所用的協議型別,通常是 ip...