为什么UDP套接字由目标IP地址和目标端口标识?

时间:2015-03-27 09:32:43

标签: sockets networking udp

根据“计算机网络:自上而下的方法”,Kurose等人,UDP套接字完全由目标IP和目标端口识别。

为什么我们需要目的地IP?我认为UDP只需要解复用的目标端口。

2 个答案:

答案 0 :(得分:1)

机器可能有多个IP,不同的套接字可能绑定到不同IP上的同一个端口。它需要使用目标IP来知道应该将传入数据报发送到哪个套接字。

事实上,为每个IP使用不同的套接字是很常见的。发送回复时,我们希望确保源IP与请求的目标IP匹配,以便客户端可以告知响应来自它发送到的同一服务器。通过为每个IP使用不同的套接字,并将响应发送到请求所在的同一套接字,可以保持这种一致性。某些套接字实现有一个扩展,允许在发送回复时设置源IP,因此它们可以为所有IP使用单个套接字,但这不是标准套接字API的一部分。

答案 1 :(得分:0)

我认为您将UDP与Mulitcast混淆。

Multicast是一种不需要目标IP地址的广播协议。它只需要一个端口号,因为它被传送到给定端口上的所有IP。

相比之下,UDP仅传送到一个IP。这就是它需要目标IP地址的原因。