UDP数据可能会损坏吗?我知道它有可能会丢失。UDP数据可以被传送损坏吗?
15
A
回答
18
UDP数据包使用16位校验和。 UDP数据包发生腐败并不是不可能的,但它不太可能。无论如何,它不会比TCP更容易受到腐败。
5
可能吗?绝对。未被发现? Unlikely,因为UDP使用校验和来要求多位错误显示有效。如果检测到错误,系统可能会丢弃数据包 - 这就是使用UDP的风险。
4
UDP数据包也可能无序发送,所以如果你在UDP上设计一个协议,你也必须考虑到这一点。
3
影响不知情的程序员的“腐败”的常见形式是数据报截断。请参阅“UNIX网络编程”史蒂文斯的详细信息(在第2版第539页。)
你可能会检查MSG_TRUNC标志...
11
首先,在“IP校验和”上面提到的仅仅是一个IP标头校验和。它不保护有效载荷。参见RFC 791
其次,UDP允许传输无校验和,这意味着16位校验和被设置为0(即无)。参见RFC 768.(发送的所有零校验和值表示发送器不生成校验和)
第三,正如其他人所提到的,UDP有一个16位的校验和,这不是检测多位错误,但并不差。一个未被发现的错误当然可能潜入,但不太可能。
相关问题
- 1. 数据包损坏和UDP
- 2. java udp检测数据包损坏
- 3. 通过udp发送的图像损坏
- 4. 可以Stream.CopyTo(流)损坏的数据?
- 5. Binwalk - 压缩的数据被损坏的/压缩的数据被损坏
- 6. Mono HttpResponse.TransmitFile发送损坏的数据
- 7. epoll可以接收udp数据包吗?
- 8. 传递结构似乎损坏数据
- 9. 堆栈被损坏
- 10. 堆栈被损坏
- 11. WCF的可靠会话保证消息不会被传输损坏吗?
- 12. RichTextBox.AutoWordSelection损坏了吗?
- 13. H2数据库损坏
- 14. MySQL数据库损坏
- 15. SVN数据库损坏
- 16. structr/neo4j数据库损坏
- 17. iphone nslog损坏的数据
- 18. C++ ifstream/fstream损坏数据
- 19. Phpbb3.1 MyIsam数据库损坏
- 20. RSA解密数据损坏
- 21. ZIP文件被IE损坏
- 22. AssemblyInfo文件被损坏VS2010
- 23. 负号被损坏php
- 24. Cassandra commitlog如何被损坏?
- 25. 如果表损坏,我可以恢复备份吗?
- 26. 浏览器可以自动更正“损坏的网址”吗?
- 27. 以UDP结构发送数据sendto
- 28. 我可以使用哪些FoxPro数据工具来查找损坏的数据?
- 29. 我可以向Intent.ACTION_CALL发送数据吗?
- 30. 使用gRPC推送数据可以吗?
从技术上讲,校验和是可选的。从RFC 768开始:“所有零传输的校验和值意味着发送器不生成校验和(用于调试或不关心更高级别的协议)”。 – 2008-09-11 18:34:07
是的,但是:a)我猜测校验和总是针对正常的,没有特别配置的UDP传输进行计算,b)如果数据包看起来具有正确的长度和校验和,那么它是正确的,否则系统不会将这样的数据包传送给呼叫者。对? – Ethouris 2016-11-15 12:45:29