導航:首頁 > 網路連接 > 計算機網路報文分片

計算機網路報文分片

發布時間:2023-04-27 10:54:57

『壹』 為什麼有時需要對IP數據報進行分片如何分片

任何時候IP層接收到一份要發送的IP數據報時,它要判斷向本地哪個介面發送數據(選路),並查詢該介面獲得其MTU。IP把MTU與數據報長度進行比較,如果需要則進行分片。分片可以發生在原始發送端主機上,也可以發生在中間路由器上。
把一份IP數據報分片以後,只有到達目的地才進行重新組裝(這里的重新組裝與其他網路協議不同,它們要求在下一站就進行進行重新組裝,而不是在最終的目的地)。重新組裝由目的端的IP層來完成,其目的是使分片和重新組裝過程對運輸層( T C P和UDP)是透明的,除了某些可能的越級操作外。已經分片過的數據報有可能會再次進行分片(可能不止一次)。IP首部中包含的數據為分片和重新組裝提供了足夠的信息。
回憶IP首部(圖3 - 1),下面這些欄位用於分片過程。對於發送端發送的每份IP數據報來說,其標識欄位都包含一個唯一值。該值在數據報分片時被復制到每個片中(我們現在已經看到這個欄位的用途)。標志欄位用其中一個比特來表示「更多的片」。除了最後一片外,其他每個組成數據報的片都要把該比特置1。片偏移欄位指的是該片偏移原始數據報開始處的位置。另外,當數據報被分片後,每個片的總長度值要改為該片的長度值。
最後,標志欄位中有一個比特稱作「不分片」位。如果將這一比特置1,IP將不對數據報進行分片。相反把數據報丟棄並發送一個I C M P差錯報文(「需要進行分片但設置了不分片比特」,見圖6 - 3)給起始端。在下一節我們將看到出現這個差錯的例子。
當IP數據報被分片後,每一片都成為一個分組,具有自己的IP首部,並在選擇路由時與其他分組獨立。這樣,當數據報的這些片到達目的端時有可能會失序,但是在IP首部中有足夠的信息讓接收端能正確組裝這些數據報片。
盡管IP分片過程看起來是透明的,但有一點讓人不想使用它:即使只丟失一片數據也要重傳整個數據報。為什麼會發生這種情況呢?因為IP層本身沒有超時重傳的機制——由更高層來負責超時和重傳(T C P有超時和重傳機制,但UDP沒有。一些UDP應用程序本身也執行超時和重傳)。當來自T C P報文段的某一片丟失後,T C P在超時後會重發整個T C P報文段,該報文段對應於一份IP數據報。沒有辦法只重傳數據報中的一個數據報片。事實上,如果對數據報分片的是中間路由器,而不是起始端系統,那麼起始端系統就無法知道數據報是如何被分片的。就這個原因,經常要避免分片。文獻[Kent and Mogul 1987]對避免分片進行了論述。
使用UDP很容易導致IP分片(在後面我們將看到, T C P試圖避免分片,但對於應用程序來說幾乎不可能強迫T C P發送一個需要進行分片的長報文段)。我們可以用s o c k程序來增加數據報的長度,直到分片發生。在一個乙太網上,數據幀的最大長度是1 5 0 0位元組(見圖2 - 1),其中1 4 7 2位元組留給數據,假定IP首部為2 0位元組, UDP首部為8位元組。我們分別以數據長度為1471, 1472, 1473和1 4 7 4位元組運行s o c k程序。最後兩次應該發生分片:
bsdi % sock -u -i -nl -w1471 svr4 discard
bsdi % sock -u -i -nl -w1472 svr4 discard
bsdi % sock -u -i -nl -w1473 svr4 discard
bsdi % sock -u -i -nl -w1474 svr4 discard
相應的tcpmp輸出如圖11 - 7所示。

前兩份UDP數據報(第1行和第2行)能裝入乙太網數據幀,沒有被分片。但是對應於寫1473位元組的IP數據報長度為1 5 0 1,就必須進行分片(第3行和第4行)。同理,寫1 4 7 4位元組產生的數據報長度為1 5 0 2,它也需要進行分片(第5行和第6行)。
當IP數據報被分片後, tcpmp列印出其他的信息。首先,frag 26304(第3行和第4行)和frag 26313(第5行和第6行)指的是IP首部中標識欄位的值。
分片信息中的下一個數字,即第3行中位於冒號和@號之間的1480,是除IP首部外的片長。兩份數據報第一片的長度均為1480:UDP首部佔8位元組,用戶數據佔1 4 7 2位元組(加上IP首部的2 0位元組分組長度正好為1 5 0 0位元組)。第1份數據報的第2片(第4行)只包含1位元組數據—剩下的用戶數據。第2份數據報的第2片(第6行)包含剩下的2位元組用戶數據。
在分片時,除最後一片外,其他每一片中的數據部分(除IP首部外的其餘部分)必須是8位元組的整數倍。在本例中, 1480是8的整數倍。
位於@符號後的數字是從數據報開始處計算的片偏移值。兩份數據報第1片的偏移值均為0(第3行和第5行),第2片的偏移值為1480(第4行和第6行)。跟在偏移值後面的加號對應於IP首部中3 bit標志欄位中的「更多片」比特。設置這一比特的目的是讓接收端知道在什麼時候完成所有的分片組裝。
最後,注意第4行和第6行(不是第1片)省略了協議名( UDP)、源埠號和目的埠號。協議名是可以列印出來的,因為它在IP首部並被復制到各個片中。但是,埠號在UDP首部,只能在第1片中被發現。
發送的第3份數據報(用戶數據為1473位元組)分片情況如圖11 - 8所示。需要重申的是,任何運輸層首部只出現在第1片數據中。
另外需要解釋幾個術語: IP數據報是指IP層端到端的傳輸單元(在分片之前和重新組裝之後),分組是指在IP層和鏈路層之間傳送的數據單元。一個分組可以是一個完整的IP數據報,也可以是IP數據報的一個分片。

『貳』 為什麼分片標識欄位值一樣

在鏈路層上邊每一個數據幀都有一個可封裝數據的上限,這個上限就叫最大傳輸單元MTU。比如乙太網MTU是1500位元組
IP分組在向下傳給數據鏈路層的時候加頭加尾,形成數據幀,中間數據幀納雹不能超過MTU

如果超過了最大傳輸單元就可以進行分片,有個前提是IP分組必須統一把自己的IP數據報分片,如果IP分組不同意分片就會返回一個ICMP的差錯報文。
標識欄位:經過分片的IP數據報所有的標識欄位都是相同的
標志欄位:有三位,低兩位有效,中間位:DF = 0 表示 允許分片。最低位:MF = 0 表示最後一片/沒有分片,否則就是後邊還有分片。只有DF = 0 MF才有意義。
片偏移量:片偏移量以8位元組為單位,所以求偏移量要除以8.
片偏移量求法:查看每段的笑茄鉛其實位元組數(數據部分),除以偏移量的單位

各個欄位的單位是不一樣的,計算總長度需要乘上單位大小。
計算機網路
高清播放機,圖片大全,點擊查看詳情!
精選推薦
廣告

IP分片重組
24下載·0評論
2017年12月24日
TCP報文段的分段 和 IP數據報的分片
660閱讀·0評論·0點贊
2022年9月5日
計算機網路基礎 IP頭部報文;IP的分片;
1024閱讀·0評論·0點贊
2022年9月29日
TCP/IP詳解:用戶數據報協議(UDP)和IP分片
846閱讀·0評論·0點贊
2021年10月5日
計算機網路——IP數據報分片
5477閱讀·0評論·4點贊
2021年12月25日
TCP/IP協議中分包與重組原理介紹、分片偏移量的計算方法、IPv4報文格式
4603閱讀·12評論·17點贊
2022年8月7日
高清播放機,圖片大全,點擊查看詳情!

精選推薦
廣告
【計算機網路】網路層 : IP 數據報分片 ( 數據分片機制 | 分片示例 | 三種數據長度單位 )
1.0W閱讀·2評論·14點贊
2020年8月27日
計算機網路-IP數據報計算(IP數據報分片)一個數據報部分長度為3400位元組(使用固定首部)。現在經過一個網路傳輸,該網路的MTU為800位元組:
3.1W閱讀·20評論·67點贊
2020年6月9日
IP數據報格式及分片與重組
4141閱讀·0評論·7點贊
2021年10月27日
計算機網路IP分片過程與習題碰好題解
2460閱讀·0評論·9點贊
2020年11月5日
計算機網路(二十六)-IP數據報

閱讀全文

與計算機網路報文分片相關的資料

熱點內容
計算機網路用途特點 瀏覽:390
小米使用電腦網路上網 瀏覽:532
網路帽紅燈怎麼回事 瀏覽:778
98版電腦網路對打檯球游戲 瀏覽:900
網路游戲對現實生活的影響主要有哪些 瀏覽:17
美團眾包怎麼顯示網路異常 瀏覽:670
中國移動網路恢復指令 瀏覽:524
火影忍者網路科技如何解決 瀏覽:844
移動網路為何會掉一會網 瀏覽:829
wifi網路發明人 瀏覽:736
手機網路是紅燈怎麼回事 瀏覽:503
萊可網路機頂盒怎麼開機 瀏覽:126
軟卧無線網路密碼 瀏覽:271
計算機網路技術學不學前端後端啊 瀏覽:9
哪裡里網路 瀏覽:410
網路安全法是多少屆人大通過 瀏覽:756
投影儀有無線網路 瀏覽:242
能夠提高網路速度的軟體 瀏覽:704
移動網路老卡原因 瀏覽:932
網路帳號有問題是怎麼回事 瀏覽:399

友情鏈接