UDP数据包中的内容,需要校验吗??
最近在做一个局域网通信的项目,由于工程需要,我选择了用无线局域网,然后使用UDP来通信,但是有个疑惑:
UDP通信的特点就是会丢包,当然,我这里允许丢包,因为我的包特别小,只有32个字节(负载)。偶尔丢那么几个没关系。而且包没有连续性,就是单独的包,也就不存在包的“乱序”问题。
那么现在的问题就是,我收到的包,需要进行校验吗??我过去做串口的时候,收发数据都要使用CRC校验,因为串口的电气特性决定了,它在传输的时候,会收到干扰。但是我在网上查了一下,UDP在传输的时候,在底层有校验机制,但是,不是每个操作系统的驱动都打开了那个选项。我想问一下,在windows下面,UDP的数据校验是默认打开的么??还需要我自己来校验么?
[解决办法]
不需要,底层有!应用层做是否丢包即可!
[解决办法]
UDP不需要,TCP需要
[解决办法]
网络数据封包里就含有校验码,udp的关键是解决丢包,重复,延迟的问题。
[解决办法]
如果没记错的话,UDP需要解决:
包编号、手工拆包。
这两个关键问题,其他的没有了。
[解决办法]
看你的系统的安全性需要,UDP的checksum是很简单的算法,很容易篡改、伪造数据。