为什么 UDP 连接只需要一个端点上的套接字?

网络工程 UDP
2022-02-21 23:04:50

很长一段时间以来,我一直认为套接字被定义为双向连接的端点,但是可以创建 UDP 套接字,而无需另一端创建套接字以保持连接有效。

这样做的确切原因是什么?

我一直认为这是因为在 TCP 连接期间,另一个最终用户需要通过发送确认来进行通信,而 UDP 则不需要。我只是猜到了,从来不知道为什么。

2个回答

您好京东,欢迎来到网络工程!

与 TCP 不同,UDP 协议不需要建立连接,因此发送主机不等待传输确认或任何事情。接收方可以通过校验和验证来检查传输的数据是否正确。

很长一段时间以来,我一直认为套接字被定义为双向连接的端点,但是 UDP 套接字......

与 TCP 不同,UDP 根本不知道“连接”的概念。UDP 用于将不属于连接的数据包发送到另一台计算机的端口。UDP 甚至可以用于发送发送到多台计算机的“多播”数据包。

您也可以向某台计算机发送一个 UDP 数据包并从完全不同的计算机接收“答案”(正如您在 Teredo 协议中看到的那样)。

Andrey Prokhorov 在他的回答中写道,UDP“不需要”建立连接。

但是由于UDP不知道连接的概念,所以甚至不可能建立连接。