IP協議圖解詳解

IP協議

IP數據包結構

  • 數據包結構
4位版本 4位首部長度8位服務類型 16位總長度
16位標誌3位標誌13位片偏移
8位生存時間(TTL)8位協議16位首部校驗和
32位源IP地址
32位目的IP地址
選項
數據
  • 數據包結構解釋
字段 位數 用法說明
版本(version) 4 說明用以創建該數據包的IP版本。所有接觸該數據包的設備都必須支持本字段顯示的版本。大部分TCP/IP產品都使用IPv4
首部長度(Header Length) 4 以32位爲單位表明IP首部的長度。因爲幾乎所有的IP首部都是20字節長,這個字段的值幾乎都是5
服務類型(Type-of-Service Flags) 8 給應用程序,主機和Internet上的路由器提供一個優先級服務。在這個字段設置合適的標誌,應用程序可以要求這個數據包得到高優先級,而讓其他數據包等待。
總長度(Total Packet Length) 16 以字節爲單位說明全部IP包的長度,包括首部和主體部分
標識(Fragment Identifier) 16 標識數據包,在出現分片,並想把片段合併成原狀時是有用的
標誌(Fragmentation Flags) 3 說明可能出現的任何分片的某些方面,也提供了分片控制服務,例如不讓路由器分片某個包
偏移(Fragmentation Offset) 13 說明這個片段提供的源IP數據包的字節範圍,用8字節的偏移表示
生存時間(Time-to-Live) 8 說明數據包在不可發送和破壞之前還可以經過的跳數
協議(Protocol Identifier) 8 說明儲存在IP數據包主體的高層協議
首部校驗和(Header Checksum) 16 用來儲存IP首部的校驗和
源IP地址(Source IP Address) 32 用來儲存最初發送該數據包的主機的32位的IP地址
目的IP地址(Destination IP Address) 32 用來儲存該數據包到達目的的系統的32位的IP地址
選項(options) 可變 就像IP用type-of service 標誌提供了一些優先級服務一樣,附加的特殊處理選項能夠通過Options字段定義。這些選項包括source routing,timestamp和其他一些選項。這些選>
Padding(如果有需要的話) 可變 IP數據包的首部的長度必須是32的倍數。如果首部中引入了某些選項,首部必須填充到能夠被32整除的位數
數據(data) 可變 IP數據包的數據部分。正常情況下,會包含一個完全的TCP火UDP信息,但是它也可以是其他IP數據包的一個片段
  • 實例分析
0000 00 60 08 82 d2 19 00 0b 46 99 6a 80 08 00 45 00
0010 04 9c 19 ce 40 00 7f 06 57 39 c0 a8 02 02 c0 a8
0020 03 02 00 14 05 55 e1 c1 f3 27 05 98 0a 88 50 18
45:4是使用的IP版本號,IPv4,5是Header Length首部長度,32位爲一個單位,一般都爲20字節,也就是5.
00:總共八位,0000 0000,前面3位是優先權要求,此處爲0,也就是普通優先級,數據越高,越優先。第四位是延遲要求Delay,0是普通值,1,爲最小延遲,第五位是通信要求Throughput,0爲普通值,1爲最大吞吐量,6位是可靠性要求Reliability,0爲普通值,1爲最高可靠性。第七八位是備用,Not Used
04 9c:Total Length總共16位,以16進制的形式,表示IP數據包的大小(字節),包括首部和數據部分。
19 ce:Identification,標識字段,用於唯一地標識主機發送的每一份數據包,產生的每一個數據包都有16位的序列號,用來讓發送系統和接收系統識別該數據包。通常每發送一份報文它的值就會加1。當要發送一個數據包分片的時候,會把這個字段的內容複製到每個片中,表示這些被分割的片屬於同一個數據包。
4:Flags只有3位,也就是010,第一位Reserved bit :目前沒有使用。第二位don’t fragment :用於說明某一IP路由是否可以分片這個IP包。爲1表示不可以。第三位more fragments:用於說明源數據包是否還有其他片段。爲1時表示其後還有被分割的包。
40 00;Fragment Offset偏移定位,13位,0 0000 0000 0000當一個大的數據包經過一些傳輸單元(MTU)較小的路徑時,會被分割成片進行傳送,由於鏈路情況和其他因素的影響,數據到達時可能會失序,所以在分片時,每個片做好偏移定位標記,便於重組。這裏爲0表示數據包沒有被分片。
7f:Time-to-Live,生存時間TTL,在許多網絡協議中都會碰到,它指定某個數據包在不能發送並被丟棄之前可以經過的最大跳數。這裏是7f換成10進制就是127次。表示最多還可以跳127次,每跳一次就會減去1,如果這個值到達最終目的系統之前減到0,這個包會被認爲不可發送並被丟棄。
06:Protocol這個字段用來識別嵌入到IP數據包中的上層協議類型:值爲1表示ICMP,值爲2表示IGMP,值爲6表示TCP,值爲17表示UDP。這裏值爲6表示TCP
57 39:首部校驗和,用以儲存該IP首部的校驗和,使得中間設備能夠驗證首部的內容並檢驗出可能的數據損壞,只應用與IP首部的值
c0 a8 02 02:標識該數據包的源發送者,也就是源端系統使用的32位IP地址。換算成10進制就是192.168.2.2
c0 a8 03 02:標識目的地的IP地址。

IP協議

一次傳輸流程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章