- 主题:Qt UDP传输 校验和是怎么处理的?
这个是网络层的功能。操作系统处理了。校验和不对就丢掉,Qt 本身无法控制。
【 在 zhanghaoX (环顾四方有效) 的大作中提到: 】
: 如果校验不对的话,会被qt丢掉吗?
: 丢弃是路由的功能?所以端到端的传输的话不管,接收端还是能接收到错误数据?
: qt本身不能设置丢掉还是不丢掉?
: ...................
--
FROM 112.47.122.*
是的。。可以确定通过了检验和。
但是检验和并不能保证数据是对的。最好自己在应用层再搞个 sha256
【 在 zhanghaoX (环顾四方有效) 的大作中提到: 】
: 看了下源码,
: win下的setsockopt调用里没有出现设置checksum的地方。
: 系统默认是进行checksum吗?
: ...................
--
FROM 112.47.122.*
硬件检验和是以太网帧的吧?
一共有有个 checksum,以太网帧、IP头、UDP包
一般说来,应用层接到的 UDP 包,checksum 都是被校验通过的。想接收到 checksum 不正常的,你得自己搞应用层的 TCP/IP 协议栈。
但是几个 checksum 算法是 CRC,强度不够,想要完全避免数据出错,还需要在应用层做 sha256 检验。
【 在 zhanghaoX (环顾四方有效) 的大作中提到: 】
: 请问,win下 如果设置网卡硬件校验和的话,win的协议栈本身还会做吗?
--
FROM 112.47.122.*