IP協議學習一

IP協議是英文Internet Protocol的簡稱,IP協議提供的是一種無連接、不可靠的傳輸服務。

1.不可靠表示IP協議儘可能的將數據包準確送達目的地,並不保證數據包成功地送達目的地。由於一些可能出現的網絡故障,或者某些出現某些錯誤都有可能導致IP數據包被丟棄。所以要保證數據包準確的送達目的地,需要上層協議提供服務。

2.無連接表示IP協議並不會對後續的數據傳輸,維護任何的狀態信息,也就是說每一個IP數據包的處理都是獨立的,一個消息可能會被分成多個IP數據包進行傳輸。每一個數據包的發送與接收都是無序的。每個數據包所走的路由可能各不相同,到達目的地也可能有先有後。

IP協議報文的格式如下圖:


IP首部分爲兩個部分,固定部分和可變部分;

固定部分:

版本號:4bit    0100表示ipv4,0110表示ipv6

首部長度:4bit 表示整個IP首部的長度(包括可選字段),單位Byte 這個值最小是0101,最大是1111

區分服務:8bit 


前3bit跟數據鏈路層的Qos優先級有關,定義了8個服務級別。D、T、R分別表示時延、吞吐量、可靠性。當這些值都是1時,分別表示低時延、高吞吐量、高可靠性。

ECN:用於標記數據包“擁塞標識符”

總長度:16bit 指的是數據包包括數據部分的總長度。單位是Byte。通過該字段的值,加上上述首部長度的值,可以推算到數據部分的長度。總長度可達65535字節。

標識、標誌、片偏移:

標識 16bit 是唯一標識主機發送的每一份數據包,接收方根據分片數據包中的標識字段是否相同來判斷這些分片是否是同一個數據包的分片,從而進行分片重組。通常每發送一份報文它的值會加1。

標誌 3bit 用於標識數據包是否分片。第1位沒有使用,第2位是不分段(DF)位。當DF位被設置爲1,表示路由器不能對該數據包進行分片處理。由於不能分片而導致數據包未能轉發,路由器會丟棄該數據包,並向源地址發送ICMP不可達。第3位是分段(MF)位,當路由器進行分段時,除最後一個分片包的MF位被置爲0外,其他分片包的MF位均被置爲1。以便接收者收到MF位爲0的分片包爲止。

片偏移:13bit 表示一個分片包起始點距離整個數據包起始點的相對位置,用於接收者重組分片包。

生存長度:ttl 8bit 防止被丟棄的數據包無休止的在網絡上傳輸。該值由發送端設置,表示可以經過路由器的最大數量,數據包每經過一個路由器處理,都會將該值減1,當等於0時,丟棄該數據包,並向源地址發送ICMP超時。

協議字段:8bit 表示上層所採用的協議;ICMP 1,IGMP 2,TCP 6,UDP 17 GRE 47,ESP 50

首部校驗和:根據IP首部計算出來的校驗碼。僅計算IPv4首部 ,也就是說只校驗首部,並不校驗數據部分。首先將首部校驗和置0;然後將首部看成一個以16bit爲單位的數字“序列”)並依次計算每個16bit的二進制反碼,最後求和;將計算結果存在首部校驗和字段中。當接收者收到數據包時,按照上述方式對首部進行校驗和計算,發現與首部校驗和字段的值不同時,將丟棄該數據包。

Option選項:用於表示可變長度的可選信息,選項字段以32bit爲界,不夠32bit用0填充。以保證首部始終是32bit的整數倍。

源地址,目的地址:表示該數據包的發送端IP地址和接收端IP地址。

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