详解本地主机如何与外部互联网通信

来源:互联网 发布:地理数据 共享 编辑:程序博客网 时间:2024/06/18 20:30

1、基础了解

我们自己的计算机一般都在路由器的内网当中,ip都是由路由器分配的私有内网ip。我们打开cmd,在命令行中输入ipconfig一般显示的都是192.168.X.X。像这种就是路由器给我们分配的私有ip。192.168.0.0 到192.168.255.255是私有地址,常用的私有地址还有172.16.0.0到172.31.255.255,10.0.0.0到10.255.255.255等等,这些私有地址是用于局域网的。路由器是连接公网和死网的桥梁,说白了就是专门用于私网地址和公网地址的转换(当然我指的是一般家庭用的路由器,真正的路由器是用于大型网络的节点,价格相当昂贵,功能比较复杂,例如思科,junip,华为,华三,这里就不详细说明了)。

2、下面举个小例子说明我们的计算机是如何与外部公网通信的。

我们的机器一般都在路由器的内网当中,IP地址基本上都是192.168.x.x系列,我们并没有公网IP,那么如何访问外网呢?我们打开浏览器访问Google,Google与我们主机之间如何通信?假设我们主机IP为192.168.0.100,路由器LAN IP为192.168.0.1,WAN IP为211.22.145.234(这是一个公网IP,全球唯一),Google服务器IP为74.125.204.101。详细通信流程如下。

主机构建HTTP请求数据包,目标IP为74.125.204.101,目标端口80,源IP为192.168.0.100,源端口随机生成,假定为5000。 主机检查目标IP地址,发现不在一个网段,数据包丢给默认网关(192.168.0.1)。 路由器LAN口收到数据包,构建NAT映射,随机生成端口,假定为5500,这样映射就是 :5500 -> 192.168.0.100:5000。WAN(ip:211.22.145.234)口收到的数据包,如果目标端口是5500,则转发给内网IP为192.168.0.100的机器的5000端口。 路由器修改数据包的源端口为5500,源IP地址为211.22.145.234,使用WAN口将数据包发送出去。 Google服务器收到请求,构建响应HTTP数据包,目标IP地址211.22.145.234,目标端口为5500。 路由器WAN口收到数据包,目标端口为5500,查询NAT表,发现对应的机器是192.168.0.100:5000,所以修改目标IP为192.168.0.100,目标端口为5000。并通过LAN口发送给主机。 主机接收到数据包,完成这一次通信。

0 0
原创粉丝点击