TCP IP資料報結構詳解

2021-06-16 07:12:18 字數 2517 閱讀 8471

一般來說,網路程式設計我們只需要呼叫一些封裝好的函式或者元件就能完成大部分的工作,但是一些特殊的情況下,就需要深入的理解

網路資料報的結構,以及協議分析。如:網路監控,故障排查等……

ip包是不安全的,但是它是網際網路的基礎,在各方面都有廣泛的應用。由ip協議衍生的協議族有10數種(據我所知),以後還會出現

更多的基於ip的協議…

先從實際出發吧!

一般我們在談上網速度的時候,專業上用頻寬來描述,其實無論說網速或者頻寬都是不準確的,呵呵。比如:1兆,512k……

這裡所說的1m是指1mbps = 1 million bits per second,也就是1m位元每秒,即一秒鐘傳輸1048576個二進位制位。我們知道乙個位元組

是8個二進位制位。

110k都謝天謝地了。看完本文,你的帳就對了……

ip資料報結構:

如圖,乙個刻度表示1個二進位制位(位元)。

1-1.版本4位,表示版本號,目前最廣泛的是4=b1000,即常說的ipv4;相信ipv6以後會廣泛應用,它能給世界上每個鈕扣都分配

乙個ip位址。

1-2.頭長4位,資料報頭部長度。它表示資料報頭部包括多少個32位長整型,也就是多少個4位元組的資料。無選項則為5(紅色部分)。

1-3.服務型別,包括8個二進位制位,每個位的意義如下:

過程字段:3位,設定了資料報的重要性,取值越大資料越重要,取值範圍為:0(正常)~ 7(網路控制)

延遲字段:1位,取值:0(正常)、1(期特低的延遲)

流量字段:1位,取值:0(正常)、1(期特高的流量)

可靠性字段:1位,取值:0(正常)、1(期特高的可靠性)

成本字段:1位,取值:0(正常)、1(期特最小成本)

保留字段:1位 ,未使用

1-4.包裹總長16位,當前資料報的總長度,單位是位元組。當然最大只能是65535,及64kb。

2-1.重組標識16位,傳送主機賦予的標識,以便接收方進行分片重組。

2-2.標誌3位,他們各自的意義如下:

保留段位(2):1位,未使用

不分段位(1):1位,取值:0(允許資料報分段)、1(資料報不能分段)

更多段位(0):1位,取值:0(資料報後面沒有包,該包為最後的包)、1(資料報後面有更多的包)

2-3.段偏移量13位,與更多段位組合,幫助接收方組合分段的報文,以位元組為單位。

3-1.生存時間8位,經常ping命令看到的ttl(time to live)就是這個,每經過乙個路由器,該值就減一,到零丟棄。

3-2.協議**8位,表明使用該包裹的上層協議,如tcp=6,icmp=1,udp=17等。

3-3.頭檢驗和16位,是ipv4資料報頭部的校驗和。

4-1.源始位址,32位4位元組,我們常看到的ip是將每個位元組用點(.)分開,如此而已。

5-1.目的位址,32位,同上。

6-1.可選選項,主要是給一些特殊的情況使用,往往安全路由會當作攻擊而過濾掉,普聯(tp_link)的tl-er5110路由就能這麼做。

7-1.使用者資料。

tcp資料報結構:

1-1.源始埠16位,範圍當然是0-65535啦。

1-2.目的埠,同上。

2-1.資料序號32位,tcp為傳送的每個位元組都編乙個號碼,這裡儲存當前資料報資料第乙個位元組的序號。

3-1.確認序號32位,為了安全,tcp告訴接受者希望他下次接到資料報的第乙個位元組的序號。

4-1.偏移4位,類似ip,表明資料距包頭有多少個32位。

4-2.保留6位,未使用,應置零。

4-3.緊急位元urg—當urg=1時,表明緊急指標字段有效。它告訴系統此報文段中有緊急資料,應盡快傳送(相當於高優先順序的資料)。

4-3.確認位元ack—只有當ack=1時確認號字段才有效。當ack=0時,確認號無效。參考tcp三次握手

4-4.復位位元rst(reset) —當rst=1時,表明tcp連線中出現嚴重差錯(如由於主機崩潰或其他原因),必須釋放連線,然後再重新

建立運輸連線。參考tcp三次握手

4-5.同步位元syn—同步位元syn置為1,就表示這是乙個連線請求或連線接受報文。參考tcp三次握手

4-6.終止位元fin(final)—用來釋放乙個連線。當fin=1時,表明此報文段的傳送端的資料已傳送完畢,並要求釋放運輸連線。

4-7.視窗欄位16位,視窗字段用來控制對方傳送的資料量,單位為位元組。tcp連線的一端根據設定的快取空間大小確定自己的接收視窗

大小,然後通知對方以確定對方的傳送視窗的上限。

5-1.包校驗和16位,包括首部

和資料這兩部分。在計算檢驗和時,要在tcp報文段的前面加上12位元組的偽首部。

5-2.緊急指標16位,緊急指標指出在本報文段中的緊急資料的最後乙個位元組的序號。

6-1.可選選項24位,類似ip,是可選選項。

6-2.填充8位,使選項湊足32位。

7-1.使用者資料……

tcp協議的,所以ip包裹還要從使用者資料中扣除20位元組的tcp包頭,這裡已經是40位元組,加上其他程式的連線,狀態確認等等包裹,因

而算出來要比理論值要小。

呵呵,好了,就這麼多吧!

TCP IP資料報結構詳解

tcp ip 資料報 結構 詳解 網路 協議 一般來說,網路程式設計我們只需要呼叫一些封裝好的函式或者元件就能完成大部分的工作,但是一些特殊的情況下,就需要深入的理解 網路資料報的結構,以及協議分析。如 網路監控,故障排查等 ip包是不安全的,但是它是網際網路的基礎,在各方面都有廣泛的應用。由ip協...

TCP IP資料報結構詳解

tcp ip 資料報 結構 詳解 網路 協議 一般來說,網路程式設計我們只需要呼叫一些封裝好的函式或者元件就能完成大部分的工作,但是一些特殊的情況下,就需要深入的理解 網路資料報的結構,以及協議分析。如 網路監控,故障排查等 ip包是不安全的,但是它是網際網路的基礎,在各方面都有廣泛的應用。由ip協...

TCP IP資料報結構詳解

這篇文章很好,tcp ip 資料報 結構 詳解 網路 協議 一般來說,網路程式設計我們只需要呼叫一些封裝好的函式或者元件就能完成大部分的工作,但是一些特殊的情況下,就需要深入的理解 網路資料報的結構,以及協議分析。如 網路監控,故障排查等 ip包是不安全的,但是它是網際網路的基礎,在各方面都有廣泛的...