UDP 如何跟踪连接?

UDP 如何跟踪连接?

如果 UDP 不像 TCP 那样建立连接,那么它似乎只能通过源 IP/端口和目标 IP/端口来跟踪连接。这是正确的吗?

因此,我猜想存在针对“连接被拒绝”和“连接重置”的特殊数据包。对吗?

此外,我的数据是否可能无法按照发送的顺序接收?

答案1

你的第一段是正确的。虽然有些 IP 引擎使用源地址/端口和目标地址/端口来提供基于同步性的近似状态,但两者之间没有任何联系。

拒绝通过 ICMP 处理,通常是 ICMP 端口不可达(类型 3 子类型 3)。

您的最后一段也是正确的;由您的应用程序来确保 UDP 传输的数据按正确的顺序排列。

答案2

UDP 中没有connection。它不是一个可靠的协议。如果需要传输可靠性,则必须在用户的应用程序中实现它。请查看这一页

是的,数据包可能会乱序到达,也可能会丢失。如果需要,应用程序应该处理这些事情。

答案3

UDP 也称为不可靠数据协议。UDP 中没有跟踪功能。您可以使用源和目标 IP/端口组合进行跟踪,但不确定这样做能带来什么效果。

第二个问题的答案是正确的,即数据可能未按发送顺序接收。TCP 使用序列号。如果数据包按顺序接收,则会被丢弃。客户端向发送方发送已接收序列数据包的确认,然后发送方从该点开始发送数据。这还可能包括重新传输某些数据包。这就是 TCP 提供数据保证的方式。

答案4

UDP 是一种面向数据报的服务。每个 UDP 数据包都应(理想情况下!)在数据包中具有其完整上下文,因为数据包可能会在传输过程中丢失或重新排序。

另一方面,TCP 是一种面向流的协议,在两个端点之间提供双向流(这意味着可靠性和顺序性,而数据报服务则不一定)。

相关内容