这可能是一个基本的疑问。 当我们在TCP套接字通信的情况下填写客户端源代码时,我们用服务器的目标地址填充套接字地址结构。
但是当数据包从服务器发回客户端时,服务器如何知道客户端的IP地址?
简而言之,谁填写了发送方的IP数据包中的源IP和源端口,以便目标主机能够回复它?
由于
答案 0 :(得分:0)
每个IP标头都包含源和目标IP地址,每个TCP标头都包含源和目标端口。服务器通过检查客户端发送给它的IP和TCP数据包标头来了解客户端IP地址。
操作系统中的网络堆栈填写客户端/源地址。在创建客户端套接字时可以设置自己的源端口,但大多数情况下,操作系统更容易为您选择未使用的“临时”端口。如果在创建客户端套接字时未指定自己的源端口,操作系统将在TCP标头中为您填充它。