目錄
文章目錄
前文列表
《IPv6 — 網際協議第 6 版》
《IPv6 — 地址格式與尋址模式》
IPv6 協議頭格式
IPv6 數據報文是 IPv4 的 4 倍,IPv6 數據報文主要由兩個部分組成:Header(首部)和 Payload(負載)。其中,IPv6 Header 的大小是 IPv4 的 2 倍,包括以下字段:
- 協議版本
- 流量類:分為兩部分,前 6 位用於服務類型,以便讓路由器知道應該向該數據包提供什么服務,也標識了數據包的優先級。后 2 位用於顯式擁塞通知(ECN)。
- 流標記:標識數據包的 QoS,用於維護數據包的順序。源標記序列幫助路由器識別特定數據包所屬的特定信息流,此字段有助於避免數據包的重新排序,是為了流媒體、實時媒體而設計的。
- 有效負載長度:有效載荷由擴展報頭和上層數據組成。該字段為 16 位,可以表示最大 65535 個字節, 如果擴展報頭設置了 “jumbo payload” 選項,則有效載荷可能超過 65535 字節,則此字段值應該被置為 0。
- 下一個頭部:用於標識擴展報頭的類型,或者當擴展報頭不存在時,則用於標識上層 PDU。 上層 PDU 的類型與 IPv4 的相同。
- 跳躍限制:標識數據報文的生存時間,相當於 IPv4 中的 TTL。
- 源地址
- 目的地址
擴展報頭
在 IPv6 的設計中,固定報頭只包含了最低程度所需的信息,避免出現那些不需要的,或者很少使用的信息。所有這些信息以擴展報頭的形式被放在固定報頭和上層報頭之間。
每個擴展報頭由不同的 Next Header 值標識:當使用擴展報頭時,IPv6 固定報頭的 Next Header 字段指向下一個擴展報頭,依此類推。最后一個擴展頭的 Next Header 指向上層報頭。 因此,所有報頭以鏈接列表方式指向下一個報頭。如果 Next Header 的值為 59,則表示在此報頭之后就再沒有報頭了。
根據 RFC 2460 要求必須支持以下擴展報頭:
擴展報頭的順序應該是:
擴展報頭以鏈表方式一個接一個地排列,如下圖所示: