IP協議
IP協議,Internet Protocol ,互聯網協議,IP協議位於網絡層,主要目的是使得網絡間能互聯通信
IP是TCP/IP協議族中得核心協議,所有TCP、UDP、ICMP和IGMP數據都是通過IP數據報傳輸。
IP報文
IP數據報的首部部分長度為20-60個字節
版本號:指IP協議所使用的版本。4個位。版本號為0100,4,即IPv4,版本號為6,即IPv6
IP首部長度:表示IP包頭長度,該字段用4位表示。最常見的報頭長度是0101即20位,當IP報頭長度不是4字節整數倍時,就需要對填充域填充
DS位:現在一般用於支持QoS中差分服務模型,實現網絡流量優化
總長度:指IPv4數據報的總長度。數據報的最大長度為:2*16-1=65535字節,當IP數據報超過最大傳輸單元MTU后,會被分片處理
標識符:網絡中轉發的IP報文的長度可以不同,但如果報文長度超過了數據鏈路所支持的最大長度,則報文就需要分割成若干個小的片段才能在鏈路上傳輸。將報文分割成多個片段的過程叫做分片
主機將數據報分片后,在發送前,會給每一個分片數據報一個ID值,放在16位的標識符字段中。
標志位:標志字段在IP報頭中占3位,
第1位作為保留,置0;
第2位,分段,有兩個不同的取值:該位置0,表示可以分段;該位置1,表示不能分段;
第3位,更多分段,同樣有兩個取值:該位置0,表示這是數據流中的最后一個分段,該位置1,表示數據流未完,后續還有
當目的主機接收到一個IP數據報時,會首先查看該數據報的標識符,並且檢查標志位的第3位是置0或置1,以確定是否還有更多的分段。如果還有后續報文,接收主機則將接收到的報文放在緩存直到接收完所有具有相同標識符的數據報,然后再進行重組。
偏移量:各個IP分片數據報在發送到目的主機時可能是無序的,所以就需要“偏移量”字段來指明“該分片在原數據報中的位置順序”
生存時間:該字段用於設置一個“數據報可經過的路由器數量”的上限。
報文在網段間轉發時,如果網絡數設備上的路由規划不合理,就可能出現環路,導致報文在網絡中無線循環,無法到達目的端。環路發生后,所有發往這個目的地的報文都會被循環轉發,網絡將發生擁塞。
發送方在初始發送時設定某個值(建議為64,、128或255),每台路由器再轉發時都將其減一,當字段達到0時,該數據報被丟棄,並使用一個ICMP消息通知發送方。
協議:8位1個字節,包含一個數字,該數字對應一個“有效載荷部分的數據類型”。比如0x06代表TCP。
首部校驗和:2個字節,該字段“僅計算”IPv4首部。也就是說只“校驗”首部。並不檢查數據報的“數據部分”。
首先將“首部校驗和”設置為0。然后對首部(整個首部是一個16位字的“序列”)計算16位二進制反碼和。該值被存儲在首部校驗和字段中。當接收方接收到數據報后,也對其首部進行校驗計算,如果結果與“首部校驗和”的值不同,就丟棄收到的數據報。
源IP、目的IP:各占4個字節
可選字段:IP支持很多可選選項。