当我从连接到家庭wi-fi路由器的一台计算机向web服务器发送请求时,响应包如何找到返回到我的计算机而不是另一台计算机的路径?我的本地网络中的所有计算机都只有一个公用IP和不同的专用IP (从192.168开始...)-但传出IP数据包中的源地址将是该公用IP,因此响应数据包的目标IP也将是该公用IP。内网IP (如192.168.2.101)信息存放在哪里?
发布于 2021-04-26 07:18:38
多亏了NAT,多个私有IP地址可以共享一个公网IP。
在TCP和UDP中,每个数据包都包含一个源IP和一个源端口(以及一个目的IP和端口)。当内网机器向公网服务器发送请求时,NAT设备/路由器会将请求包中的私有源IP+source端口覆盖为路由器的公网IP和某个唯一的端口,并将原始源IP+port对和被覆盖的源端口保存在转换表中。远程服务器响应router+overwritten端口号的公网IP,路由器根据被覆盖的端口号在转换表中进行查找,将原私有ip+port放入应答报文中,发送给私有机(原IP+port)。图片来自维基百科:
所以答案是:路由器上的转换表可以区分本地网络中的计算机,并将响应发送到正确的本地计算机。
https://stackoverflow.com/questions/67253918
复制相似问题