0

这可能是一个基本的疑问。当我们在 TCP 套接字通信的情况下填写客户端源代码时,我们用服务器的目标地址填充套接字地址结构。

但是当数据包从服务器发送回客户端时,服务器如何知道客户端的IP地址?

简而言之,谁在发送者的IP数据包中填写了源IP和源端口,以便目标主机感应回它?

谢谢

4

1 回答 1

0

每个 IP 标头都包含源 IP 地址和目标 IP 地址,每个 TCP 标头都包含源端口和目标端口。服务器通过检查客户端发送给它的 IP 和 TCP 数据包头来知道客户端 IP 地址。

操作系统中的网络堆栈填写客户端/源地址。创建客户端套接字时可以设置自己的源端口,但大多数时候让操作系统为您选择一个未使用的“临时”端口更容易。如果您在创建客户端套接字时没有指定自己的源端口,操作系统将在 TCP 标头中为您填充它。

于 2013-06-02T16:15:52.253 回答