TCP/IP/ICMP 学习实践
前言
在學(xué)習(xí)TCP分段與IP分片時、心有所感想把之前學(xué)習(xí)過的知識串聯(lián)起來。
數(shù)據(jù)分段發(fā)生在傳輸層、分片發(fā)生在網(wǎng)絡(luò)層。
相關(guān)術(shù)語:
MTU(Maximum Transmission Unit,MTU),最大傳輸單元
?????以太網(wǎng)和802.3對數(shù)據(jù)幀的長度都有一個限制,其最大 值分別是1500和1492個字節(jié)。鏈路層的這個特性稱作MTU。
MSS(Maxitum Segment Size)最大分段大小的縮寫,是TCP協(xié)議里面的一個概念
? ? MSS就是TCP數(shù)據(jù)包每次能夠傳輸?shù)淖畲髷?shù)據(jù)分段。為了達(dá)到最佳的傳輸效能TCP協(xié)議在建立連接的時候通常要協(xié)商雙方的MSS值。
1.分段的前提(TCP)
????傳輸屋接收到上層傳過來的數(shù)據(jù)如果 大于 > 1500-20-20(字節(jié))?
2.分片的前提(IP)
????如果IP層有一個數(shù)據(jù)要發(fā)送,且數(shù)據(jù)的長度比鏈路層的 MTU還大,那么IP層就要進(jìn)行分片(fragmentation),把數(shù)據(jù)報分成若
????干片,這樣每一個分片都小于MTU。
我們知道通常:
???TCP/IP 報頭 通常情況下為20字節(jié).而ICMP 報頭為8字節(jié).
????請參考如下截圖:
????IP報頭 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ?
?
??
??TCP報頭 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ?
??ICMP 報頭 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
??
實(shí)例演示:
?實(shí)現(xiàn)環(huán)境:windows 7
?我們嘗試驗(yàn)證一下 ICMP報文最大=1472字節(jié)=1500-20字節(jié)(IP報頭)-8字節(jié)(ICMP報頭),是否正確.
?
?命令:ping
?
?圖-1
?
?圖-2
?
? 從上面2張圖的結(jié)果,可以得出一個結(jié)果:
?ICMP報文最大=1472字節(jié)=1500-20字節(jié)(IP報頭)-8字節(jié)(ICMP報頭),是否正確的!
?而從另一個角度來看如果我們設(shè)定的 -l # 時,當(dāng)中#>1472是沒有意義的,因?yàn)閿?shù)據(jù)
?到達(dá)網(wǎng)絡(luò)層后將被進(jìn)行自動分片、如圖-3所示,此處不再使用-f參數(shù)。
?
?圖-3
?
轉(zhuǎn)載于:https://blog.51cto.com/204324/1917412
總結(jié)
以上是生活随笔為你收集整理的TCP/IP/ICMP 学习实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 线性布局(LinearL
- 下一篇: 卸载或重新安装Redis集群