例如:
我的局域网中有 5 个设备,我向其中一个设备发出请求http://superuser.com
,服务器做出响应并且“答案”到达我的家庭路由器(网关),但是从那里,它如何知道哪个设备发出了请求?
通过互联网发送的包裹中是否添加了任何信息来识别我的局域网内的计算机?
我认为可能是通过 MAC 地址,但我听说 MAC 地址不会传递到路由器外面到互联网上。
答案1
路由器保存连接表,当您的计算机首次连接到站点时,路由器知道何时接收数据包、谁发送了数据包以及将其转发给谁。这通常基于 tcp/ip 数据包的序列号
答案2
事实并非如此。公共服务器(在您的示例中为 superuser.com)不知道请求是来自具有一个公共 IP 地址的单个客户端计算机,还是来自 NAT 网关(您的路由器)后面的 LAN 中的客户端计算机。
IP 数据包中未添加任何信息。
您的 NAT 网关(您的路由器)不使用 MAC 地址来记住客户端计算机到服务器(网站)的映射。允许 NAT 网关将数据发送到 LAN 中的正确计算机的信息是:- 发送者的 IP(即 superuser.com)- 接收者的 IP(即您的计算机 #5)- 相应的 TCP 或 UDP 端口
答案3
不幸的是,我对于其在“专家”层面上如何运作知之甚少。
但是,我知道 Internet 上的计算机会使用称为网络地址转换 (NAT) 的过程向您的计算机发送数据包。在 Internet 上,您的整个 LAN 会显示为一个 IP 地址,并且发送到那里的所有流量都以代码形式发送,因此您的 ISP 提供的调制解调器会将其发送到您家庭 LAN 内的正确位置。
如果您听说过端口,那么 NAT 对您来说就更有意义了。