UDP的校验问题

Squall_zy 2010-06-01 05:39:12
书上说,UDP提供了一个可选择性的校验。并且UDP首部中有两个字节的“校验和”。
RFC中说,UDP校验和选项在默认条件下是打开的。
RFC还说,如果发送端计算了校验和,那么接收端必须检验这个值。
RFC又说,尽管这样,多数系统并没有遵守这一点,只是在出口检验和选项被打开时才进行验证。

我问一个比较弱的问题,如何开启“校验”选项功能,又如何关闭“校验”选项功能?
...全文
278 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanghehong 2010-06-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 squall_zy 的回复:]
书上说,UDP提供了一个可选择性的校验。并且UDP首部中有两个字节的“校验和”。
RFC中说,UDP校验和选项在默认条件下是打开的。
RFC还说,如果发送端计算了校验和,那么接收端必须检验这个值。
RFC又说,尽管这样,多数系统并没有遵守这一点,只是在出口检验和选项被打开时才进行验证。

我问一个比较弱的问题,如何开启“校验”选项功能,又如何关闭“校验”选项功能?
[/Quote]

Windows上编程可以对UDP socket用setsockopt()函数设置 UDP_CHECKSUM_COVERAGE 或 UDP_NOCHECKSUM 这俩个选项。

Linux上的编程可以对UDP socket设置SO_NO_CHECK这个选项。


- 千里孤行
guojl 2010-06-01
  • 打赏
  • 举报
回复
接分接分接分
Squall_zy 2010-06-01
  • 打赏
  • 举报
回复
顶一下

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧