gpt4 book ai didi

IPv6数据包的UDP校验和计算

转载 作者:行者123 更新时间:2023-12-04 00:07:43 25 4
gpt4 key购买 nike

我正在尝试了解 IPv6 的 UDP 校验和计算方法。
我有这个数据包:

IPv6 Header is -- 60 00 00 00 00 0c 11 fd 21 00 00 00 00 00 0001 ab cd 00 00 00 00 00 01 fd 00 00 00 00 00 00 00 00 00 00 0000 00 01 60
UDP Header is -- 26 92 26 92 00 0c 7e d5
Data is-- 12 34 56 78


根据校验和计算,校验和为 7ed5。谁能解释校验和如何以该值结束?我想手动计算它以了解该方法。

最佳答案

万一这个问题还没有回答,为了他人的利益。
您的 IPv6 数据包 UDP 数据包(十六进制格式)

60 00 00 00 . 00 34 11 01 . 21 00 00 00 - `....4..!...
00 00 00 01 . AB CD 00 00 . 00 00 00 01 - ............
FD 00 00 00 . 00 00 00 00 . 00 00 00 00 - ............
00 00 01 60 . 26 92 26 92 . 00 0C 7E D5 - ...`&.&...~.
12 34 56 78 - .4Vx
计算 UDP header 中校验和 (0x7ED5) 的步骤。所有数字都以十六进制格式表示。
步骤 1) 计算伪头的 16 位和。伪 header 包含源 IP、目标 IP、协议(protocol)、UDP/TCP 长度( header +正文)
Source IP: 21 00 00 00 . 00 00 00 01 . AB CD 00 00 . 00 00 00 01
Dest IP: FD 00 00 00 . 00 00 00 00 . 00 00 00 00 . 00 00 01 60
Protocol : 00 11 (UDP)
Proto Len: 00 0C (UDP Header + Body)
您的伪 header 的总和是:
SUM_PHDR = 0x2100 + 0x0000 + ... + 0x0011 + 0x000C
= 0x1CB4C
Step 2) 计算 UDP Header + Data 的 16 位和(不包括校验和)
UDP Hdr  : 26 92 26 92 . 00 0C 00 00
UDP Body : 12 34 56 78
您的 UDP 部分的总和是:
SUM_BODY = 0x2692 + 0x2692 + ... + 0x5678
= B5DC
步骤 3) 计算总计
SUM_TOTAL = SUM_PHDR + SUM_BODY
= 0x1CB4C + 0xB5DC
SUM_TOTAL = 0x28128 (or 0x00028128)
第 4 步)从总和中计算 16 位总和(因为它 > 0xFFFF)
SUM_16BIT = 0x0002 + 0x8218
= 0x821A
步骤 5) 计算 16 位 Sum 的补码
CHECKSUM  = 0x821A Xor 0xFFFF
= 0x7ED5
你的校验和是 0x7ED5
该过程与 IPv4 相同。区别只是伪 header 中源 IP 和目标 IP 的长度(在步骤 1 中)。

关于IPv6数据包的UDP校验和计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30858973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com