TCP/IP/ICMP 學習實踐

前言windows

在學習TCP分段與IP分片時、心有所感想把以前學習過的知識串聯起來。網絡

數據分段發生在傳輸層、分片發生在網絡層。ide

相關術語:學習

MTU(Maximum Transmission Unit,MTU),最大傳輸單元大數據

     以太網和802.3對數據幀的長度都有一個限制,其最大 值分別是1500和1492個字節。鏈路層的這個特性稱做MTU。spa

MSS(Maxitum Segment Size)最大分段大小的縮寫,是TCP協議裏面的一個概念blog

    MSS就是TCP數據包每次可以傳輸的最大數據分段。爲了達到最佳的傳輸效能TCP協議在創建鏈接的時候一般要協商雙方的MSS值。
get



1.分段的前提(TCP)it

    傳輸屋接收到上層傳過來的數據若是 大於 > 1500-20-20(字節) 
io

2.分片的前提(IP)

    若是IP層有一個數據要發送,且數據的長度比鏈路層的 MTU還大,那麼IP層就要進行分片(fragmentation),把數據報分紅若

    乾片,這樣每個分片都小於MTU。


咱們知道一般:

   TCP/IP 報頭 一般狀況下爲20字節.而ICMP 報頭爲8字節.

    請參考以下截圖:

    IP報頭                                                         

   

 wKiom1j3B6aj9l6-AADntaoNDeo634.png

  

  TCP報頭                                                               

   wKioL1j3FXyCBaoKAADH-x7QRZo423.png


  ICMP 報頭                                                            


  wKiom1j3DtigiFzTAACLMATkBPw129.png



實例演示:

 實現環境:windows 7

 咱們嘗試驗證一下 ICMP報文最大=1472字節=1500-20字節(IP報頭)-8字節(ICMP報頭),是否正確.

 

 命令:ping

 wKioL1j3D2vykxzcAABqHOAG7UQ286.png


 圖-1

 wKioL1j3EQqjeLRAAABiPh_8jf0457.png


 圖-2

 wKioL1j3EZqiZy9lAAA6KrHt8Mw937.png


  從上面2張圖的結果,能夠得出一個結果:

 ICMP報文最大=1472字節=1500-20字節(IP報頭)-8字節(ICMP報頭),是否正確的!

 而從另外一個角度來看若是咱們設定的 -l # 時,當中#>1472是沒有意義的,由於數據

 到達網絡層後將被進行自動分片、如圖-3所示,此處再也不使用-f參數。

 

 圖-3

 wKiom1j3E0OyCE6hAABURIXvQc0682.png

相關文章
相關標籤/搜索