根據IPv6 (RFC 4443 Section2.3) 和 ICMPv6 (RFC2460 Section8.1)

我們需要將上述做相加並取1’s 補數
以下用wireshark packet 來做相加的解說


IPv6 Packet with hex
- Source Address = ::
- Destionation = ff02::1
- Next Header = 58 (ICMPv6)
58 to hex is 0x3a
— — — — — — — —

ICMPv6 total length is 24
24 to hex is 0x18
- Upper-Layer Packet Length = 0x18

2. ICMP Data (checksum is 0)
Data = 8200 + 03e8 (7ac1忽略)
接下來就算ICMPv6 checksum
- Source Address = ::
- Destionation = ff02::1
- Next Header = 0x3a
- Upper-Layer Packet Length = 0x18
- ICMPv6 Data = 8200 +03e8
sum = ff02 + 0001 + 0x3a + 0x18 +8200 + 03e8
sum = 0x1853D , 1進位補上
sum = 0x853E, 取1's補數
checksum = 0x7ac1 (跟ICMPv6 封包的checksum 一致)
— — — — — — — — — — — — — — — — — — — — — — — — — — — —