【问题标题】:Does the UDP protocol have some error detection?UDP协议是否有一些错误检测?
【发布时间】:2018-07-13 16:31:03
【问题描述】:

User Datagram Protocol 提供了一些错误检测功能。

有人说它有校验和机制。 但是这个协议没有握手过程。 所以这个协议似乎不用担心数据错误。
怎么会有校验和部分?

【问题讨论】:

  • @EJP 我没有看到这是自我回答的地方。

标签: error-handling udp crc


【解决方案1】:

校验和与握手无关。它只是验证正在传输的数据包的完整性。如果数据包无效,它将被丢弃。在 TCP 的情况下,接收方(或者更确切地说是下一跳路由器)将通过要求发送方重新发送无效数据包来尝试恢复。但在 UDP 的情况下,它只是在那里结束——数据包被简单地丢弃,仅此而已。请注意,UDP 校验和实际上是可选的。而且我相信甚至可以通过中间跳路由器删除。即使使用它也是一个相当弱的校验和。

一般而言,现代“常识”表示,在现代设备上,数据包在传输过程中很少被损坏。如果你对这个假设没意见,那么我建议简单地假设数据包永远不会损坏,而不管校验和是否在转换中使用。但是,如果您对偶尔的数据损坏不满意,那么您应该将更好的校验和嵌入到您的数据中,例如 CRC 甚至加密哈希。这完全取决于数据完整性对您来说有多重要,以及您愿意为实现它走多远。这实际上适用于 TCP 以及 UDP。

RFCthis answer

【讨论】:

  • 感谢回复,TCP 完全用于可靠和面向连接的连接,但 UDP 提供不可靠、无连接和面向数据报的传输层协议。UDP 发送数据尽可能多地发送。一些时间 UDP 比 TCP 更充分地使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-22
  • 2013-01-14
  • 1970-01-01
  • 2011-08-20
  • 2015-02-19
  • 2019-03-23
  • 1970-01-01
相关资源
最近更新 更多