热门问题
时间线
聊天
视角
網際網路控制訊息協定第六版
互联网协议族的核心协议之一。主要用于IPv6网络,以指示网络操作中的错误或指示消息 来自维基百科,自由的百科全书
Remove ads
網際網路控制訊息協定第六版(英語:Internet Control Message Protocol Version 6或ICMP for IPv6,縮寫:ICMPv6)是網際網路控制訊息協定(ICMP)在IPv6協定下的新版本。它在 RFC 4443 中被定義,其協定號(IPv6的Next Header域)為58。
ICMPv6協定定義在OSI模型中的網路層(Internet Layer),用於報告IPv6節點封包處理過程中的錯誤訊息和完成一些網路診斷功能(如ping和traceroute等)。它是IPv6體系總體的的一個組成部分,其基本的協定[1]必須被所有IPv6實現和IPv6節點所完整支援。
除了ICMPv4原有的功能,ICMPv6還承擔了IPv4其他協定所實現的功能或IPv6所需的新功能,例如鄰居發現協定(同時取代了ARP/RARP,SEND作為其安全擴充)、多播管理(取代了IGMP)。
Remove ads
封包格式
IANA(網際網路位址授權委員會)定義ICMPv6的協定號為58。
其訊息分為兩類,錯誤訊息和資訊訊息。ICMPv6通過IPv6封包傳送,並且IPv6的擴充頭需要被設定。
下文描述了ICMPv6使用的控制訊息集的格式。
ICMPv6包有類型(Type),代碼(Code),校驗和(Checksum)和訊息體(Message Body)等幾個欄位。類型域為8位元,用來表示訊息的類型,如果最高有效位是0(即值的範圍是0-127),則表示一個錯誤訊息;如果是1,則該ICMPv6包是一個資訊訊息。代碼域同樣為8位元,其內容取決於訊息類型,用來區分某一類型的多條訊息。校驗和用來檢測ICMP訊息和IPv6包的錯誤。訊息體的內容取決於訊息類型。
ICMPv6 包的校驗和是一個 16 位的二補數,計算訊息類型域開始的整個 ICMPv6 訊息以及 IPv6 頭的偽頭標(pseudo-header)。計算校驗和時,校驗和預設為 0。偽頭標中的下一個頭標(Next Header)值為 58。(注意:ICMPv6 校驗和中的偽頭標的內容與 IPv4 中不同,見 IPv6)。
ICMPv6訊息傳送
ICMPv6通過IPv6封包傳送,當節點傳送或轉發ICMPv6訊息時,必須確定訊息的IPv6源位址和目的位址。當節點有多個單播位址,則要注意源位址的選擇。
如果節點有多個單播位址,則通過下面的規則確定源位址。
- 如果訊息是對傳送到其中一個單播(unicast)位址訊息的回應,則使用該位址作為源位址。
- 如果訊息是對傳送到其他位址訊息的回應,如:
則源位址必須為該節點所屬的一個多播位址,且源位址的選擇應該與從該節點發出併到達同一目的位址的其他封包使用相同的規則,即與其他IPv6協定的封包使用相同的路由表。如果有多個路由可以到達ICMPv6包的目的位址,則可以任選其一。
當 ICMPv6節點收到封包時,它應按照訊息的類型採取動作。
- 未知的ICMPv6錯誤訊息交由上層協定處理。
- 未知的ICMPv6訊息資訊丟棄。
- 所有的錯誤訊息必須足夠長但不超過IPv6最小的MTU。
- 禁止回應以下的訊息或封包:
- 必須限制ICMPv6錯誤訊息的產生速率。
為避免網路過負載,ICMPv6協定需要限制傳送至同一位址的錯誤訊息的數目。例如,如果一個節點持續轉發錯誤的包,則ICMP會通知第一個錯誤包,然後根據一個固定的最小周期或者最大的網路負載,周期性提醒。禁止以ICMP錯誤訊息回應錯誤訊息包。
參見
- 網際網路控制訊息協定(ICMP)
- IPv6
參考
延伸閱讀
註腳
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads