- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试手动计算各种 UDP 数据包的校验和,但与 Wireshark 中显示的结果相比,我总是得到错误的结果。下面是我如何做到这一点的示例:
Source Address: 192.168.0.103 (0xC0A8, 0x0067)
Destination Address: 192.168.0.1 (0xC0A8, 0x0001)
Source Port: 57090 (0xDF02)
Destination Port: 8000 (0x1F40)
Packet length: 19 (0x0013)
Data: hello world (0x6865, 0x6C6C, 0x6F20, 0x776F, 0x726C, 0x6400)
Expected checksum: 0xEDFD (from wireshark)
据我了解,UDP 校验和是使用以下变量计算的:
Source IP + Destination IP + 17 (0x0011 - protocol code) + 10 (0x000A - pseudoheader length) + Source Port + Destination Port + UDP Packet Length + Data
所有这些都以 16 位为一组。
所以我的计算是(按相同顺序):
0xC0A8 + 0x0067 + 0xC0A8 + 0x0001 + 0x0011 + 0x000A + 0xDF02 + 0x1F40 + 0x0013 + 0x6865 + 0x6C6C + 0x6F20 + 0x776F + 0x726C + 0x6400
以上求和的结果是:
0x511F4
现在,由于结果高于 0xFFFF,我执行以下操作:
0x11F4 + 0x0005 = 0x11F9
翻转位后我得到结果:
0xEE06 <- which, as you can see, it is different from the expected one
所以我的问题是我做错了什么?我总是得到几乎wireshark中显示的结果。
下面是Wireshark内部的数据包截图,供引用 https://www.evernote.com/l/AWl0H1AGoxpGX4_zjgDlVBcytJM-HP_PvQE
最佳答案
我发现我做错了什么,以防其他人也有类似的问题。
我计算伪 header 的方式是这样的:
Source IP + Destination IP + 17 (0x0011 - protocol code) + 10 (0x000A - pseudoheader length)
问题出在长度字节上。它应该是UDP数据包长度,而不是伪头长度。
最终的公式是这样的:
Source IP + Destination IP + 17 (0x0011 - protocol code) + UDP Packet Length + Source Port + Destination Port + UDP Packet Length + Data
注意 UDP 数据包长度出现两次。第一个用于伪 header ,第二个用于实际的 UDP header 。
关于udp - 我的 UDP 校验和计算每次都会给出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45908909/
如何在 PHP 中生成 CRC-8 校验和? 最佳答案 function crcnifull ($dato, $byte) { static $PolyFull=0x8c; for ($i=0
我正在编写代码来使用 32 位无符号整数计算 CRC16。当尝试打印执行 CRC 操作的 XOR 函数的返回值时,它总是打印 0。我尝试了各种调试方法,例如打印语句,但是,我似乎无法弄清楚! 这是我的
ThinkPHP3.2.3验证码显示、刷新、校验 ,具体如下: 显示验证码 首先在Home/Controller下创建一个公共控制器PublicController
我想将自定义验证绑定(bind)到 TimePicker 自定义控件,但下面的代码显示“无法将内容添加到 TimePicker 的对象类型。”。
目录 Spring 校验(validator,JSR-303)实现 什么是JSR-303规范 与Spring MVC结合 实体类添加
导包和配置 导入 JSR 303 的包、hibernate valid 的包 ?
我是一名优秀的程序员,十分优秀!