确定是否使用boost.asio计算UDP校验和

Determine if UDP Checksum is Computed using Boost.Asio

本文关键字:asio 计算 UDP 校验和 boost 是否      更新时间:2023-10-16

我确实找到了其他一些相关问题,但实际上没有给我答案。

我正在将boost.asio与ip :: udp :: socket(http://www.boost.org/doc/libs/1_57_0/doc/doc/html/boost_asio/reference.html)

来自此页面:http://en.wikipedia.org/wiki/user_datagram_protocol#ipv4_pseudo_header:它指出UDP校验和使用IPv4可选。

查看https://www.rfc-editor.org/rfc/rfc768,似乎通常只有启用调试时才是这种情况?

另请参阅:http://www.boost.org/doc/libs/1_57_0/doc/html/boost_asio/reference/basic_datagram_socket/debug.html

会将调试设置为false足以确保计算UDP校验和计算UDP校验和,或者我如何确保计算UDP校验和计算,以便我在使用UDP/ipv4时可以安全地忽略基础数据包中的校验和计算?

我知道UDP/ipv6 Garuntees校验和计算,但我不能将系统仅使用IPv6。

使用tcpdump/wireshark/eThereal/等工具。倾倒实际流量。

在我看来,校验和实际上可能是在驾驶员级别上处理的。您可以使用例如 ethertool启用它们(?

的确,Wireshark FAQ有一个条目:

由于称为TCP校验和卸载功能,您会看到"不正确"校验和。传出的TCP数据包的校验和字段不是由操作系统预先计算的,而是设置为0,并通过NIC处理器进行计算。�

¹来源:https://serverfault.com/a/288493