關於IP分組的分段是什麼原理?
下面是一個原始的IP分組:
然後喊你填一下藍色區域的內容,大家幫忙啊,這個真的難道我了。
大家幫忙
關於IP分組的分段是什麼原理?
答:先上圖
這樣你就看懂了吧!不懂繼續看:
IP包頭欄位說明
版本:4位,指定IP協議的版本號。
包頭長度(IHL):4位,IP協議包頭的長度,指明IPv4協議包頭長度的位元組數包含多少個32位。由於IPv4的包頭可能包含可變數量的可選 項,所以這個欄位可以用來確定IPv4數據報中數據部分的偏移位置。IPv4包頭的最小長度是20個位元組,因此IHL這個欄位的最小值用十進位表示就是5 (5x4 = 20位元組)。就是說,它表示的是包頭的總位元組數是4位元組的倍數。
服務類型:定義IP協議包的處理方法,它包含如下子欄位
過程欄位:3位,設置了數據包的重要性,取值越大數據越重要,取值範圍為:0(正常)~ 7(網路控制)
延遲欄位:1位,取值:0(正常)、1(期特低的延遲)
流量欄位:1位,取值:0(正常)、1(期特高的流量)
可靠性欄位:1位,取值:0(正常)、1(期特高的可靠性)
成本欄位:1位,取值:0(正常)、1(期特最小成本)
未使用:1位
長度:IP包的總長
認證:
標誌:是一個3位的控制欄位,包含:
保留位:1位
不分段位:1位,取值:0(允許數據報分段)、1(數據報不能分段)
更多段位:1位,取值:0(數據包後面沒有包,該包為最後的包)、1(數據包後面有更多的包)
段偏移量:當數據分組時,它和更多段位(MF, More fragments)進行連接,幫助目的主機將分段的包組合。
TTL:表示數據包在網路上生存多久,每通過一個路由器該值減一,為0時將被路由器丟棄。
協議:8位,這個欄位定義了IP數據報的數據部分使用的協議類型。常用的協議及其十進位數值包括ICMP(1)、TCP(6)、UDP(17)。
校驗和:16位,是IPv4數據報包頭的校驗和。
源IP地址:
目的IP地址:
看懂了嗎? 還沒懂。。 那麼就看你的題目:一個IP包,你對比長度和數據的關係。。很不幸的是20Byte(最小報文),這個位置是被各種標識佔去了,這裡不多做,咱們做一個圖:
第一個
很簡單看到1420~且排在第一個起始應該就是0~1399,後面依次類推。缺少就分析原始包變化得到啥就好了!
還不懂,再看個圖:
這裡少一個標識和偏移量,通過上面的填空咱們知道第二圖的包1400~2799,而2200-2799屬於哪個包的一個分段,標識是14567,偏移量要計算了,這裡是(2200-1400)/8=100的偏移,拿第二個圖的175+100=275,就填14567 和275;
其他自己體會吧~ 就是分啊分分啊分~~!
推薦閱讀:
※ipconfig下的IPv4地址是什麼意思?
※IP層接收到比MTU大的數據包會先分片再重組,隨後在傳遞給上層協議(比如UDP)處理嗎?
※TCP協議的滑動窗口具體是怎樣控制流量的?
※為什麼路由器明明隔離廣播域,仍然可以全網廣播比如ARP協議?
※IP地址和MAC地址的區別和聯繫是什麼?