TCP/IP-學習筆記2 - IP網絡協議

一、引言

IP協議是TCP/IP協議族中最核心的協議。所有TCP、UDP、ICMP、IGMP都是以ip協議報文來傳輸。

IP協議不提供 可靠、和是否連接的狀態。  

  1. 對於發生錯誤,ip協議直接丟棄該數據,然後發送ICMP消息給信源端。可靠性要求由上層(如TCP)解決
  2. 每個IP數據報是相互獨立的,可以不按順序發

二、報文

* IP報文頭部一共20個字節(不含選項)。傳輸時候採用大端字節傳輸。

* 4位版本號: 4 代表IP v4. 

* 4位首部長度 :代表整個首部的長度(包含版本) 

     爲什麼說最長是60個字節呢?

     2的4次方 從0-15, 最大就是15個單位,但這裏單位是按4個字節計算。所有是15 * 4 = 60

* 8位服務類型: 目前基本上沒有使用。有需要了解的再查資料

* 16位總長度:描述的這個IP報文的長度。 最大6 5 5 3 5, 但一般會做切片

* 16位標識:通常與標記字段和分片偏移字段一起用於IP報文的分片。

  • 當原始報文大小超過MTU,那麼就必須將原始數據進行分片。每個被分片的報文大小不得超過MTU,而這個字段還將在同一原始文件被分片的報文上打上相同的標記,一邊接收設備可以識別出屬於同一個報文的分片

* 3位標記字段: 

  1. 第1位沒有被使用
  2.  第2位D是不分片位(DF),Do not fragment,顧名思義,不要分片,當DF位設置爲1時,表示路由器不能對報文進行分片處理
  3.  第3位M表示還有後繼分片(MF),More fragment,多分片,當路由器對報分進行分片時,除了最後一個分片的MF位設置爲0外,其他所有分片的MF位均設置1,以便接收者直到收到MF位爲0的分片爲止 

* 片偏移位:代表這段報文在分組的順序

* TTL(time to live):8位生存時間, 也就是跳數的大小,即數據包能傳多少跳 

  • 它指定了數據報的生存時間。TTL的初始值由源主機設置(通常爲32或64),一旦經過一個處理它的路由器,它的值就減去1。當該字段的值爲0時,數據報就被丟棄,併發送ICMP報文通知源主機
  • 防止路由成環時,ip被無限轉發

* 協議:標識出傳輸層的地址或協議號,也就是說表示數據要進行什麼樣的上層服務,應該交給自己上一層的哪個協議

 1: ICMP, 2: IGMP,4:IP,6:TCP, 17:UDP  41:IPv6

* 首部校驗和: 只校驗首部數據內容, 數據部分交給數據部分自己處理

* 源IP地址:

* 目標IP地址:

* 選項:是數據報中的一個可變長的可選信息

•安全和處理限制(用於軍事領域,詳細內容參見RFC1108[Kent1991])
•記錄路徑(讓每個路由器都記下它的IP地址)
•時間戳(讓每個路由器都記下它的IP地址和時間)
•寬鬆的源站選路(爲數據報指定一系列必須經過的IP地址)
•嚴格的源站選路(與寬鬆的源站選路類似,但是要求只能經過指定的這些地址,不能經過其他的地址)。
這些選項很少被使用,並非所有的主機和路由器都支持這些選項。
選項字段一直都是以32bit作爲界限,在必要的時候插入值爲0的填充字節。這樣就保證
IP首部始終是32bit的整數倍(這是首部長度字段所要求的)。

 

 

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