一、IPv4與IPv6報頭對比
1、IPv4報頭
(1)版本 :當前 IP 版本,IPv4。
(2)首部長度:指的是 IPv4 報頭長度,20-60 個字節,因為 Option 字段是 0-40 個字
節。
(3)區分服務:用於 Qos 報頭。
(4)總長度:總長度=頭長+載荷長
(5)標識、標誌、 片移位 :用於 IP 報文的分片和重組。
(6)協議:表示上層協議。
(7)首部校驗和:頭校驗和,對報文進行校驗。
2、IPv6 的報頭
(1)traffic class:是 IPv4 的 ToS,用於 QoS 中標識優先級
(2)flow lable:IPv6 中增加了 flow lable(流標籤)字段,用於唯一確定一條 IPv6 數據
流,因為在 IPv4 中確定一條數據流需要使用 5 元組,而確定 TCP/UDP 端口號需要對報文
進行傳輸層解封裝,會消耗設備性能。而流標籤可唯一標識數據流,能夠更好實現 QoS。
(3)payload length:有效載荷長度,用於表示上層協議報文的大小,因為 IPv6 報頭是
固定長 40byte,所以僅需標識上層協議載荷大小即可。
(4)next header:標識上層協議或上層擴展報頭,類似於 IPv4 的 protocol。IPv6 中增加
了擴展報頭用於實現擴展的功能如分片,加密等。
(5)hop limit:跳數限制,用於防環,類似於 IPv4 的 TTL。
(6)IPv6 刪除了 IPv4 中的標識、標誌、分片移位、首部長度、Option、校驗和等字段。
IPv6 之所以移除校驗和,是因為在二層有 FCS 校驗,在四層有 TCP/UDP 做校驗,IPv6 報
文無需校驗,提升了 IPv6 的性能。
(7)擴展報頭:用於實現 IPv6 的擴展功能,比如分片,認證,加密等。
二、NDP
NDP(Neighbor Discovery Protocol)是 ICMPv6 的子協議,由於在 IPv6 中沒有 ARP
協議,所以在 IPv6 上層定義了 NDP 協議實現 ARP 的地址解析,衝突地址檢測等功能以及
IPV6 的鄰居發現功能。
1、NDP 使用 ICMPv6 的相關報文
1)、RS(Router Solicitation):路由器請求報文
2)、RA(Router Advertisement):路由器通告報文
3)、NS(Neighbor Solicitation):鄰居請求報文
4)、NA(Neighbor Advertisement):鄰居通告報文
2、地址解析
IPv6 的地址解析不再使用 ARP,也不再使用廣播方式。
1)、地址解析在三層完成,針對不同的鏈路層協議可以採用相同的地址解析協議
2)、通過 ICMPv6(類型 135 的 NS 及類型 136 的 NA 報文)來實現地址解析。
3)、NS 報文發送使用組播的方式,報文的目的 IPv6 地址為被請求的 IPv6 地址對應的“被
請求節點組播地址”,報文的目的 MAC 為組播 MAC。
4)、採用組播的方式發送 NS 消息相比於廣播的方式更加的高效,也減少了對其他節點
的影響和對二層網絡的性能壓力。
5)、可以使用三層的安全機制(例如 IPSec)避免地址解析攻擊。
6)、在 IPv4 中,可以通過 ARP 就可以由 IP 地址解析到鏈路層地址。
三、地址解析過程(鄰居狀態建立)
(1)R1 會發送一個 NS(鄰居請求報文,屬於 ICMPv6 的消息報文,type=135),該報文
源 IP 為 R1 的接口單播地址 2001::1,目的 IP 為要解析的 R2IPv6 單播地址對應的被請求節
點組播地址 FF02::1:FF00:2(將要解析的 IPv6 單播地址的後 24bit 添加到 FF02::1:FF 後面,
其前綴固定 104bit 為 FF02::1:FFXX:XXXX/104);
二層封裝源 MAC 為 R1 的 MAC,目的 MAC 為該被請求節點組播地址映射的 IPv6 組播
MAC=3333-FF00-0002(IPv6 組播地址映射的組播 MAC,該組播 MAC 前 16bit 固定為
3333,後 32bit 為 IPv6 組播地址後 32bit);
(2)由於 R2 配置了單播地址 2001::2 之後,就默認加入了該單播地址對應的被請求節點
組播地址 FF02::1:FF00:2 的組播組中,所以只要向該組播組發送報文,R2 都可以接受。
(3)當 R2 收到 R1 的 NS 報文之後,通過查看該報文中標識的要解析的地址是不是自己接
口的單播地址。如果是,則單播回應 NA(鄰居通告報文,ICMPv6 的消息報文,
type=136),NA 報文中攜帶了 R2 的 2001::2 地址對應的 MAC 地址。
(4)R1 通過 R2 回應的 NA 報文可以得知單播地址 2001::2 對應的 MAC 地址。
閱讀更多 專注分享網絡技術 的文章