C++ 如何计算IP包中嵌入的UDP包的校验和

C++ 如何计算IP包中嵌入的UDP包的校验和,c++,networking,tcp,udp,C++,Networking,Tcp,Udp,我有一个UDP包,它嵌入在IP包中,无法正确计算UDP的校验和,但我可以正确找到IP的校验和。有人能帮我找到UDP校验和吗 [45 00 00 53 00 80 00 00 40 1166 160A 00 00 03 0A 00 00 02]CA B1 CA B1 00 3F DF A5 括号中的位是IP数据包,校验和用粗体表示 **UDP Packet** CA B1 Source port CA B1 Destination port 00 3F Length DF A5 Checksum

我有一个UDP包,它嵌入在IP包中,无法正确计算UDP的校验和,但我可以正确找到IP的校验和。有人能帮我找到UDP校验和吗

[45 00 00 53 00 80 00 00 40 1166 160A 00 00 03 0A 00 00 02]CA B1 CA B1 00 3F DF A5

括号中的位是IP数据包,校验和用粗体表示

**UDP Packet**
CA B1 Source port
CA B1 Destination port
00 3F Length
DF A5 Checksum

这里是校验和“DF A5”的由来。我做了16位加法,得到了1的补码,但仍然没有得到值。我是否需要考虑IP报头还计算UDP

校验和,我在搜索引擎中打了一个“如何计算UDP校验和”的解释,我已经解释过了。你为什么在这里提问?这可能会对你有所帮助(在第二部分中,它有实现)