如何解决我的数据包头包含什么 IP 地址?
最近学习网络知识,我遇到了一个数据包的 IP 标头,据说它包含源和目标 IP 地址。 在本地网络上这些可能是 192.168.0.10 和 192.168.0.11 是有道理的。 它们正在与一个作为源和一个作为目标进行通信,并切换到另一台机器。
我的问题是,当您突然有两台机器通过互联网进行通信时,这种情况会如何变化?
假设我的网络上的 IP 是 192.168.0.10。我的默认网关连接到互联网,并为其提供了 1 个公共 IP 地址,例如 17.5.7.8。 现在我的哥们有自己的路由器和家庭网络,他的IP甚至可能是192.168.0.10,但为了清楚起见,我们会说他是主机15(192.168.0.15)。他还分配了一个公共 IP,比如 18.6.8.9。
给定我的示例地址,每个步骤中的每个数据包头是什么样的?
发件人 192.168.0.10 目的地???
解决方法
在每个人都有有效公共 IP 地址的传统 Internet 上,源 IP 地址和目标 IP 地址始终是原始发件人的 IP 和最终目的地的 IP。当您发送到本地子网之外时,数据包将被转发到网络上的路由器,但这是在 MAC 层完成的。 IP 标头保持不变。
例如,如果我的源 IP 是 1.2.3.4,我的路由器的 IP 地址是 1.2.3.1,我需要发送一个 UDP 数据包到 20.30.40.50。 src 和 dest IP 地址将保持为 1.2.3.4 和 20.30.40.50。只是发送计算机的路由表会将数据包发送到1.2.3.1(路由器)的MAC地址。路由器以混杂模式侦听,会将所有数据包转发到适当的出站网络。
此规则的例外是用作 NAT(网络地址转换器)的路由器,它们多路复用位于私有 IP 地址范围(例如 192.168.1.x)内的设备的私有网络。就网络上的计算机而言,它们正在与普通路由器交谈,并且对 NAT 行为一无所知。充当 NAT 的路由器实际上会更改出站数据包的源 IP 地址。而对于入站数据包,它会将目的 IP 地址更改为专用网络上的一个节点。
,这可能令人困惑的原因是因为在您的本地网络中,您的数据包被切换到您的路由器,然后在此之后路由到互联网上。
假设您的流量的目标 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 地址,并在数据包的ethernet 标头中将目标 ethernet 地址设置为是您路由器的 MAC 地址。
当数据包离开您的计算机时,IP 标头会将源地址作为您的计算机、192.168.0.10
和目标地址
作为18.6.8.9
。在 ethernet 标头中,源地址将是您计算机的 MAC 地址,目标地址将是您路由器的 MAC 地址。
一旦该数据包到达路由器,路由器将替换为源地址分配的“真实”互联网可路由公共 IP 地址(替换 192.168.0.10
)。因此,在开放的 Internet 流量上,源 IP 为 17.5.7.8
,目标地址为 18.6.8.9
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。