Networking 我的包头包含什么IP地址?
最近在学习网络时,我遇到了一个包的IP头,据说它包含源和目标IP地址。 在本地网络上,它们可以是192.168.0.10和192.168.0.11。 它们与一个源和一个目标进行通信,并切换到另一台机器 我的问题是,当突然有两台机器通过互联网进行通信时,这种情况会发生什么变化 假设我的网络IP为192.168.0.10。我的默认网关有一个到internet的连接,它有一个公共IP地址,比如它的17.5.7.8。 现在我的朋友有了自己的路由器和家庭网络,他的IP地址甚至可能是192.168.0.10,但为了清楚起见,我们可以说他是主机15(192.168.0.15)。他还分配了一个公共IP,比如18.6.8.9 给定我的示例地址,在每个步骤中,每个数据包头是什么样子的 发送器192.168.0.10Networking 我的包头包含什么IP地址?,networking,ip,router,nat,Networking,Ip,Router,Nat,最近在学习网络时,我遇到了一个包的IP头,据说它包含源和目标IP地址。 在本地网络上,它们可以是192.168.0.10和192.168.0.11。 它们与一个源和一个目标进行通信,并切换到另一台机器 我的问题是,当突然有两台机器通过互联网进行通信时,这种情况会发生什么变化 假设我的网络IP为192.168.0.10。我的默认网关有一个到internet的连接,它有一个公共IP地址,比如它的17.5.7.8。 现在我的朋友有了自己的路由器和家庭网络,他的IP地址甚至可能是192.168.0.10
目的地???在传统互联网上,每个人都有一个有效的公共IP地址,源和目的地IP地址始终是原始发送方和最终目的地的IP。当您在本地子网之外发送时,数据包将被转发到网络上的路由器,但这是在MAC层完成的。IP头保持不变 例如,如果我的源IP是1.2.3.4,路由器的IP地址是1.2.3.1,我需要向20.30.40.50发送UDP数据包。src和dest IP地址将保持在1.2.3.4和20.30.40.50。只是发送计算机的路由表将数据包发送到MAC地址1.2.3.1(路由器)。路由器以混杂模式侦听,将所有数据包转发到相应的出站网络
此规则的例外情况是用作NAT(网络地址转换器)的路由器,它们在专用IP地址范围(例如192.168.1.x)内复用设备的专用网络。就网络上的计算机而言,它们正在与一个普通的路由器交谈,而对NAT行为一无所知。路由器作为NAT,将实际更改出站数据包的源IP地址。对于入站数据包,它会将目标IP地址更改为专用网络上的一个节点。这可能令人困惑的原因是,在您的本地网络中,您的数据包被切换到路由器,然后再在internet上路由 假设流量的目标IP地址为
18.6.8.9
,路由器的公共可路由internet IP为17.5.7.8
,本地网络的IP空间为192.168.0.0/27
,您的计算机在该本地网络上的地址是192.168.0.10
,而您的路由器在该本地网络上的地址是192.168.0.11
情况如下:
当您计算机上的应用程序尝试向18.6.8.9发送数据包时,操作系统将首先尝试在其路由表中查找该地址的条目。它找不到条目,因此将使用所谓的默认路由,它将指向您的路由器,192.168.0.11
您的操作系统将意识到它与192.168.0.11
有一个“直接”连接,这意味着它自己和目标在同一个网络上(192.168.0.0/27
)。然后,您的操作系统将在192.168.0.11
上执行ARP查找,获取路由器的MAC地址,并在数据包的以太网报头中将目标以太网地址设置为路由器的MAC地址
当数据包离开您的计算机时,IP报头的源地址将为您的计算机、192.168.0.10
,以及目标地址
作为18.6.8.9
。在以太网报头中,源地址将是计算机的MAC地址,目标地址将是路由器的MAC地址
一旦数据包到达路由器,路由器将用分配给它的“真实”互联网可路由公共IP地址替换源地址(替换192.168.0.10
)。因此,在开放的互联网上,流量的源IP为17.5.7.8
,目的地址为18.6.8.9