IP協議(網路層協議)
1 IP協議功能
- 定址和路由
- 傳遞服務
- 不可靠,可靠性由上層協議提供
- 無連線
- 資料包分段和重組
2 IP協議
IP資料包格式
其中固定部分為20byte,可變部分最大為40byte,因此IP資料包的首部大小為20~60byte。
版本
- 佔4bit,指IP協議的版本。目前的IP協議版本號為4,即IPv4
首部長度
- 佔4bit,可表示的最大數值是15個單位(一個單位為4位元組),因此IP首部長度的最大值是60位元組
服務型別
- 指示期望獲得哪種型別的服務
- 1998 年這個欄位改名為區分服務
- 只有在網路提供區分服務(DiffServ)時使用
- 一般情況下不使用,通常IP分組的該欄位(第2位元組)的值為00H
- 佔8bit,用來獲得更好的服務,這個欄位以前一致沒有被人使用。其中D表示延時,T表示吞吐量,R表示可靠性,C表示代價。最後一位沒有使用,但是必須為0,否則非法
- 現在常用的為差分服務,最後兩位未使用。如果前6位為XXXXX0的形式表示該IP資料包由因特網指派,為XXXX11表示由本地指派,為XXXX01表示臨時或實驗性的IP資料包
總長度
- 佔16bit,指首部和資料之和的長度,單位為位元組。因此資料包的最大長度為65535位元組,總長度必須不超過最大傳送單元MTU
- 最小的IP分組首部: 20B
- IP分組可以封裝的最大資料: 65535-20=65515B
標識
- identification佔16bit,它是一個計數器,用來產生資料包的標識止
- 只有當同一個資料段被分成不同的IP資料包,其標識才相同
標誌
- 佔3bit,目前只有後兩個位元有意義
- 標誌欄位的最低位是MF(More Fragment),MF=1表示後面還有分片,MF=0表示最後一個分片
- 標誌欄位中間的一位是DF(Don’t Fragment),只有當DF=0時才允許分片
- 最高位保留
片偏移
- 13bit,片偏移指出較長的分組分片後某片在原分組中的相對位置,偏移以8個位元組為偏移單位
生存時間
- 8bit,記為TTL(Time To Live),IP分組在網路中可以通過的路由器數(或跳步數)。這是為了限制資料包在網路中的生存時間,其單位最初是秒,但為了方便,現在都用“跳數”作為TTL的單位。資料包每經過一個路由器,其TTL值就減1
- 如果TTL=0,路由器則丟棄該IP分組
協議
- 協議(8bit)欄位指出此資料包攜帶的資料使用何種協議,以便目的主機的IP層將資料包部分上交給哪個處理過程
- 指示IP分組封裝的是哪個協議的資料包
- 實現複用/分解
- E.g. 6為TCP,表示封裝的為TCP段; 17為UDP, 表示封裝的是UDP資料包
首部校驗和
- 首部校驗和(16bit)欄位只校驗資料包的首部,不包括資料部分。這裡不採用CRC檢驗碼而採用簡單的計算方法
- 實現對IP分組首部的差錯檢測
- 計算校驗和時,該欄位置全0
- 採用反碼算數運算求和,和的反碼作為首部校驗和欄位
- 逐跳計算、逐跳校驗
源地址、目的地址
- 源地址和目的地址都各佔4個位元組
- 分別標識傳送分組的源主機/路由器(網路介面)和接收分組的目的主機/路由器(網路介面)的IP地址
IP資料包首部的可變部分
- IP首部的可變部分就是一個選項欄位,欄位佔長度可變,範圍在1~40B之間:攜帶安全、源選路徑、時間戳和路由記錄等內容,用來支援排錯、測量以及安全等措施,內容很豐富
- 選項欄位的長度可變,取決於所選擇的專案
- 增加首部的可變部分是為了增加IP資料包的功能,但這同時也使得IP資料包的首部長度稱為可變的。這就增加了每一個路由器處理資料包的開銷
- 實際上這些選項很少使用
填充欄位
- 填充欄位佔長度可變,範圍在0~3B之間:目的是補齊整個首部,符合32位對齊,即保證首部長度是4位元組的倍數
3 IP分片
3.1 最大傳輸單元(MTU)
- 網路鏈路存在MTU (最大傳輸單元)—鏈路層資料幀可封裝資料的上限
- 不同鏈路的MTU不同
3.2 IP分片與重組
大IP分組向較小MTU鏈路轉發時, 可以被“分片” (fragmented)
- 1個IP分組分為多片IP分組
- IP分片到達目的主機後進行“重組”(reassembled)
IP首部的相關欄位用於標識分片以及確定分片的相對順序
- 總長度、標識、標誌位和片偏移
3.3 分片相關的欄位
標識欄位佔16位:標識一個IP分組
- IP協議利用一個計數器,每產生IP分組計數器加1,作為該IP分組的標識
標誌位欄位佔3位:
- DF (Don’t Fragment)
- DF =1:禁止分片
DF =0:允許分片
MF (More Fragment)
- MF =1:非最後一片
- MF =0:最後一片(或未分片)
- 片偏移欄位佔13位:一個IP分組分片封裝原IP分組資料的相對偏移量
- 片偏移欄位以8位元組為單位
3.4 IP分片過程
- 假設原IP分組總長度為L,待轉發鏈路的MTU為M
- 若L>M,且DF=0,則可以/需要分片
- 分片時每個分片的標識複製原IP分組的標識
- 通常分片時,除最後一個分片,其他分片均分為MTU允許的最大分片
一個最大分片可封裝的資料應該是8的倍數, 因此, 一個最大分片可封裝的資料為:
需要的總片數為:
每片的片偏移欄位取值為:
每片的總長度欄位為:
每片的MF標誌位為:
舉例:
相關文章
- TCP/IP協議 - 網路層TCP協議
- 【網路協議】IP協議、ARP協議、RARP協議協議
- 詳談OSI七層網路協議和TCP/IP協議協議TCP
- TCP/IP 協議及網路分層模型TCP協議模型
- 網路七層協議協議
- TCP/IP網路協議TCP協議
- 【網路協議】UDP協議協議UDP
- TCP/IP五層協議TCP協議
- 漫談計算機網路:網路層 ------ 重點:IP協議與網際網路路由選擇協議計算機網路協議路由
- 網路七層協議之物理層協議
- [面試∙網路] TCP/IP(二):IP協議面試TCP協議
- OSI七層網路協議 、TCP協議TCP
- TCP/IP網路協議基礎TCP協議
- 【網路協議】資料鏈路層協議
- 【網路協議】TCP協議簡介協議TCP
- 網路協議協議
- 計算機網路七層協議計算機網路協議
- 【網路協議】TCP分段與IP分片協議TCP
- OSI七層模型 -tcp/ip協議模型TCP協議
- 傳輸控制協議/網際網路協議(TCP / IP)是什麼意思?-VeCloud協議TCPCloud
- 網路通訊協議-ICMP協議詳解!協議
- 網路通訊協議-TCP協議詳解!協議TCP
- 網路通訊協議-HTTP協議詳解!協議HTTP
- 網路通訊協議-SMTP協議詳解!協議
- 【網路協議】ICMP協議、Ping、Traceroute協議
- 什麼是協議?| 網路協議定義協議
- IP協議&&IP首部協議
- 《TCP/IP詳解 卷1:協議》第3章 IP:網際協議TCP協議
- 網路管理協議協議
- web網路協議Web協議
- 網路協議大全協議
- tcp/ip協議TCP協議
- 網路層協議及ARP攻擊協議
- 一篇文章帶你熟悉 TCP/IP 協議(網路協議篇二)TCP協議
- TCP/IP五層模型-傳輸層-TCP協議TCP模型協議
- TCP/IP五層模型-應用層-DNS協議TCP模型DNS協議
- WireShark——IP協議包分析(Ping分析IP協議包)協議
- 網路協議 6 - 路由協議:敢問路在何方?協議路由