找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3092|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

IP分片和TCP流重組雜記

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:99624 發(fā)表于 2015-12-27 03:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
----------------------------------------------------------------------------------------------   我們都知道,在以太網(wǎng)中,如果源主機向目標(biāo)主機發(fā)送的數(shù)據(jù)包大于網(wǎng)關(guān)MTU,則該數(shù)據(jù)包在傳輸過程中會被IP協(xié)議分片傳輸,具體的分片過程是怎樣的呢?我們通過協(xié)議分析軟件抓包來進(jìn)行詳細(xì)的查看(抓包軟件使用科來網(wǎng)絡(luò)分析系統(tǒng))。
因為以太網(wǎng)默認(rèn)的MTU值為1500Byte,所以,為了達(dá)到分片的效果,我們應(yīng)該傳輸大于1500Byte字節(jié)的數(shù)據(jù)包,才能使該數(shù)據(jù)包分段傳輸。
   我們從本機(192.168.6.11)發(fā)送一個2000字節(jié)的數(shù)據(jù)包到局域網(wǎng)的另一臺主機(192.168.0.208)為例,在傳輸?shù)倪^程中,開啟軟件抓包,就能夠查看到詳細(xì)的分片結(jié)果。
我們以ping為例,在Windows命令提示符下輸入:ping 192.168.0.208 –l2000
通過科來網(wǎng)絡(luò)分析系統(tǒng)抓包,我們看到,該數(shù)據(jù)包被分片了,由于我們重復(fù)Ping4次,所以,抓到了4次同樣的請求與回顯的數(shù)據(jù)包。如下圖:



       查看詳細(xì)的數(shù)據(jù)包解碼(見下圖):



   
分析:因為ping的長度是2000字節(jié),大于了MTU的值,所以會分片發(fā)送,如上圖。捕獲的這個數(shù)據(jù)包總長度為1500字節(jié),更多分段位置1,表示還有數(shù)據(jù)分段。s,偏移量為0,需要注意的是IP頭部的總長度字段值(這里是1500字節(jié))并不全是數(shù)據(jù)的凈載荷長度,這里還包括了IP以及ICMP的頭部長度,分別是20字節(jié)和8字節(jié)。
另外,IP協(xié)議的頭部總長度并不一定就是MTU1500字節(jié),這個值與網(wǎng)絡(luò)環(huán)境、操作系統(tǒng)等因素有關(guān)。
   下圖是第一個分片包。


  
分析:IP字段的標(biāo)識0x787F,與第一個包相同,說明這是同一個數(shù)據(jù)包,只是被分片了。
   偏移量為185,表示相對第一個包的位置,以便接收主機根據(jù)偏移量進(jìn)行數(shù)據(jù)重組。
   需要注意的是此處分片包并沒有ICMP字段,接收主機會可以根據(jù)偏移重組成完整的ICMP數(shù)據(jù)包。
最后,我們來計算一下該數(shù)據(jù)包的長度:第一個數(shù)據(jù)包的總長度為1500字節(jié),減去IP頭部長度20字節(jié),減去ICMP頭部長度8字節(jié),即1500-20-81472字節(jié);第二個數(shù)據(jù)包的總長度為548字節(jié),減去IP頭部長度20字節(jié),即548-20528字節(jié),兩個數(shù)據(jù)包的凈載荷1472+5282000,正好是我們發(fā)送的數(shù)據(jù)長度。
-------------------------------------------------------------------------------------------------
1.IP分片產(chǎn)生的原因是網(wǎng)絡(luò)層的MTU;TCP分段產(chǎn)生原因是MSS.
2.IP分片由網(wǎng)絡(luò)層完成,也在網(wǎng)絡(luò)層進(jìn)行重組;TCP分段是在傳輸層完成,并在傳輸層進(jìn)行重組.  //透明性
3.對于以太網(wǎng),MSS為1460字節(jié),而MUT(默認(rèn)為1500)往往會大于MSS.

故采用TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸,是不會造成IP分片的。若數(shù)據(jù)過大,只會在傳輸層進(jìn)行數(shù)據(jù)分段,到了IP層就不用分片。
-------------------------------------------------------------------------------------------------

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表