IPv4報文格式
欄位 |
長度 |
含義 |
版本 Version |
4位元 |
IP協議的版本號,分為IPv4和IPv6協議。 |
首部長度 (IHL) Header Length |
4位元 |
IPv4的首部長度。首部長度佔4位,單位為4位元組,可表示最小值5、最大值15,即5*32=160bit=20Byte,15*32bit=480bit=60Byte |
區分服務欄位 (TOS欄位) DS Field |
8位元 |
用來獲得更好的服務。只有在使用區分服務時,這個欄位才起作用。由3bit優先權欄位、4bitTOS欄位、1bit未用位組成 |
總長度 Total Length |
16位元 |
指IP報文首部和資料部分之和的長度。 |
標識 Identification |
16位元 |
IPv4軟體在儲存器中維持一個計數器,每產生一個資料包,計數器就加1,並將此值賦給標識欄位。 |
分段標誌 Fragment Flags |
3位元 |
目前只有兩位有意義。最低位為1表示後面“還有分片”的資料包,為0表示這已經是最後一個資料片;中間一位為1表示“不能分片”,為0才允許分片。 |
片位移 Fragment Offset |
13位元 |
指出較長的分組在分片後,該片在原分組中的相對位置。 |
生存時間TTL(Time To Live) |
8位元 |
表示資料包在網路中的壽命,功能是“跳數限制”。 |
協議 Protocol |
8位元 |
指出此資料包攜帶的資料是使用何種協議。 |
首部檢驗和 Header Checksum |
16位元 |
資料包每經過一個裝置,裝置都要重新計算一下首部檢驗和,若首部未發生變化,則此結果必為0,於是就保留這個資料包。這個欄位只檢驗資料包的首部,但不包括資料部分。 |
源地址 Source IP |
32位元 |
報文傳送方的IPv4地址。 |
目的地址 Destination IP |
32位元 |
報文接收方的IPv4地址。 |
選項欄位 |
0~40位元組(長度可變) |
用來支援排錯、測量以及安全等措施。在必要的時候插入值為0的填充位元組。 |
資料部分 |
可變 |
用來填充報文。 |
------------------------------------------------------------------------------------------------------
IPv6
IPv4問題與改進
- 網路地址短缺:IPv4為32為,只能提供43億個地址
IPv6128
- 路由速度慢:隨著網路規模擴大,路由表越來越大,路由處理速度越來越慢,IPv4頭部多大13個欄位
IPv6只有8個欄位
- 缺乏安全功能:IPv4沒有加密、認證等機制
IPv6整合IPSec
- 不支援新的業務模式:IPv4沒有擴充套件欄位
IPv6支援多報頭巢狀
- IPv6只能由源發節點進行分段,中間路由器不能分段,目的是簡化路由處理
IPv6報文格式
共40個位元組,8個欄位:
- 版本(4位):用0110只是IPv6
- 通訊型別(8位):用於區分不同的IP分組,相當於IPv4中服務型別欄位(實際不用)
- 流標記(20位):標識某些需要特別處理的分組(實際不用)
- 負載長度(16位):表示除了IPv6固定頭部40個位元組之外的負載長度,擴充套件頭包含在負載長度之中
- 下一跳頭部(8位):指明下一個頭部型別,可能是IPv6擴充套件頭部或高層協議的頭部
- 跳數限制(8位):用於檢測路由迴圈,類似TTL
- 源地址(128位):傳送節點的地址
- 目標地址(128位):接收節點的地址
IPv6擴充套件頭部:
|
頭部名稱 |
解釋 |
0 |
逐條選項 (hop-by-hop option) |
由沿途各個路由器處理 |
60 |
目標選項 (Destination option) |
選項中的資訊由目標節點檢查處理 |
43 |
路由選擇 (routing) |
給出一個路由器地址列表組成,類似於IPv4的鬆散路由和路由記錄 |
51 |
認證 (AH, Authentication) |
由接收者進行身份認證 |
50 |
封裝安全負荷 (ESP, Encrypted security payload) |
對分組內容進行加密的有關資訊 |
IPv6地址格式
- IPv6地址擴充套件到128位
- 地址採用冒號分隔的十六進位制數表示
- 例如:8000:0000:0000:0000:0123:4567:89AB:CDEF
- 每個欄位前面的0可以剩去,例如0123可以簡寫為123
- 一個或多個全0欄位,可以用1對冒號 "::" 代替
以上地址可簡寫為 8000::123:4567:89AB:CDEF
- IPv4相容地址可以寫為::192.168.10.1
- 有效0為不可以簡寫,雙冒號只能出現一次
IPv6地址分類
單播地址
- 不確定地址:地址 0:0:0:0:0:0:0:0 稱為不確定地址,不能分配給任何節點
- 環回地址:地址 0:0:0:0:0:0:0:1 稱為環回地址
- 可聚合全球單播地址:這種地址在全球範圍內有效,相當於IPv4的公網地址(字首為001)
- 鏈路本地地址:用於同一鏈路的相鄰節點間的通訊(字首為1111 1110 10)結合MAC地址自動生成
- 站點本地地址:相當於IPv4中的私網地址(字首為1111 1110 11)
任意播地址
- 表示一組介面的識別符號,通常是路由距離最近的介面
- 任意播地址不能用作源地址,只能作為目標地址
- 任意播地址不能指定給IPv6主機,只能指定給IPv6路由器
組播地址
- 表示一組介面的地址
- 發往組播地址的分組被傳送給該地址表示的所有介面
- IPv6中沒有廣播地址,它的功能已被組播地址所代替
- IPv6組播地址的格式字首為 1111 1111
IPv4與IPv6地址對比
IPv4與IPv6地址比較
IPv4地址 |
IPv6地址 |
點分十進位制表示 |
帶冒號的十六進位制表示,0可以壓縮 |
分為A,B,C,D,E 5類 |
不分類 |
組播地址 224.0.0.0/4 |
組播地址 FF00::/8 |
廣播地址(主機位為全1) |
任意播(限於子網內部) |
預設地址 0.0.0.0 |
不確定地址 :: |
環回地址 127.0.0.1 |
環回地址 ::1 |
公共地址 |
可聚合全球單播地址 FP(字首)=001 |
私網地址 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 |
站點本地地址 FEC0::/48 |
自動專用IP地址 169.254.0.0/16 |
鏈路本地地址 FE80::/48 |
|
6to4隧道地址 2002::/16 |
IPv6路由協議
RIPng
OSPFv3
BGP4+
DHCPv6 無狀態配置
ICMPv6(新增加的鄰居發現功能代替了ARP協議的功能)
IPv4到IPv6過度技術
2023年9月20日
21:19
- 隧道技術:解決IPv6節點之間透過IPv4網路進行通訊
- ISATAP隧道
自動隧道技術,可穿透NAT裝置,與私網之外的主機建立IPv6連線
- 雙棧技術:同時執行IPv4和IPv6
- 翻譯技術:解決純IPv6節點與純IPv4節點之間的通訊
- NAT-PT
- 靜態NAT-PT
- 動態NAT-PT
- 基於埠的NAPT-PT
- NAT-PT