UDP如何跟踪连接?

如果UDP没有像TCP一样build立连接,它似乎可以跟踪连接的唯一方法是源IP /端口和目的地IP /端口。 它是否正确?

所以,我想有连接拒绝和连接重置的特殊数据包。 那是对的吗?

另外,我的数据是否可能不按照发送的顺序接收?

你的第一段是正确的。 没有连接,尽pipe一些IP引擎使用源地址/端口和目的地址/端口来提供基于同步的状态近似。

ICMP处理拒绝,通常ICMP端口不可达(types3子types3)。

你的最后一个段落也是正确的。 这取决于您的应用程序,以确保UDP传输的数据正确sorting。

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

是的,数据包可能无序到达,可能会丢失。 应用程序应该照顾这些事情,如果需要的话。

UDP也被称为不可靠的数据协议。 在UDP中没有跟踪。 你可以使用src和dst的IP /端口组合进行跟踪,但不知道你会从中获得什么。

对您的第二个问题的回答是,收到的数据可能不会被发送,这是正确的。 TCP使用序列号。 如果一个包被乱序接收,它将被丢弃。 客户端向接收到的有序数据包的发送者发送确认,发送者开始从该点开始发送数据。 这也可能包括重传一些数据包。 这是TCP如何提供数据保证。

UDP是一个面向数据报的服务。 每个UDP数据包应该有(理想情况下)数据包中的完整上下文,因为数据包可能在传输中丢失或重新sorting。

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