UDP套接字如何处理差异主机



假设主机C中的进程有一个端口号为6789的UDP套接字。认为主机A和主机B各自向具有目的地的主机C发送UDP段端口号6789。这两个部分是否都指向同一个主机C上的套接字?如果是,主机C的进程将如何知道这两个片段源自两个不同的主机?

书籍提供的解决方案如下

是的,两个段都将指向同一个套接字。对于每个接收到的段,在套接字接口,操作系统将为进程提供IP地址,以确定单个分段。

  1. 我不知道解决方案,有人能详细说明吗?

  2. 如果单词";UDP";由";TCP"?

这两个段会被定向到主机C的同一个套接字吗?

如果主机C上的套接字没有显式连接,那么来自主机A的数据包和来自主机B的数据包都将到达该套接字。

如果是,主机C的进程将如何知道这两个段源自两个不同的主机?

使用recvfrom,客户端不仅可以获得数据包有效负载,还可以获得数据包包送方。

如果单词";UDP";由";TCP"?

TCP有连接的概念,它涉及显式创建连接、数据传输和显式连接拆除。A和B必须先创建到C的连接,然后才能传输数据。为了实现这一点,C必须首先侦听绑定的服务器套接字,然后才能接受新的连接。CCD_ 1将返回用于数据传输的新套接字。它还将返回客户端源IP和端口(即A或B(,以便C知道哪个客户端与新连接相关联。稍后也可以在接受的带有getpeername的套接字上检查这一点。

相关内容

最新更新