簡體   English   中英

確定是否使用Boost.Asio計算UDP校驗和

[英]Determine if UDP Checksum is Computed using Boost.Asio

我確實找到了其他一些相關問題,但沒有任何東西能真正給我我想要的答案。

我正在將Boost.Asio與ip :: udp :: socket( http://www.boost.org/doc/libs/1_57_0/doc/html/boost_asio/reference.html )一起使用

在此頁面上: http : //en.wikipedia.org/wiki/User_Datagram_Protocol#IPv4_Pseudo_Header :它指出UDP校驗和對於IPv4是可選的。

查看http://tools.ietf.org/html/rfc768 ,看來只有啟用了調試功能時,情況才會如此?

另請參閱: http : //www.boost.org/doc/libs/1_57_0/doc/html/boost_asio/reference/basic_datagram_socket/debug.html

將調試設置為false是否足以確保計算UDP校驗和,或者我如何才能100%確保計算UDP校驗和,以便在使用UDP / IPv4時可以安全地忽略基礎數據包協議中的校驗和計算?

我知道UDP / IPv6可以確保校驗和計算,但是我不能將系統限制為僅使用IPv6。

使用tcpdump / wireshark / ethereal / etc之類的工具。 轉儲實際流量。

在我看來,校驗和實際上可能是在驅動程序級別處理的。 您可以使用例如ethertool啟用它們(? http://www.linuxquestions.org/questions/linux-networking-3/help-needed-disabling-tcp-udp-checksum-offloading-in-debian-880233/

實際上, Wireshark常見問題解答中有關於此的條目:

由於稱為TCP校驗和卸載的功能,您會看到“錯誤的”校驗和。 傳出TCP數據包的校驗和字段不是由操作系統預先計算的,而是設置為0,留給NIC處理器計算。 ¹

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM