路由器内网与外网的数据交互

1、公有IP与私有IP

首先,我们需要了解一下什么是公有 IP 和私有 IP ?

公有地址(Public address):由 Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些 IP 地址分配给注册并向Inter NIC提出申请的组织机构,公有 IP 全球唯一,通过它直接访问因特网(直接能上网)。

私有地址(Private address):属于非注册地址,专门为组织机构内部使用,说白了,私有 IP 不能直接上网。

而我们平时通过运营商(电信、移动、联通宽带等)上网,家里面通过路由器分出来的 IP 都是私有 IP(局域网 IP),大家可能会疑问,我们可以上网啊,怎么会是私有 IP 呢?租用(申请)公有 IP 是需要钱的。 运营商买了一些公有 IP,然后通过这些公有 IP 分出来,再分给一个一个的用户使用。这个过程有点类似于,我们去安装了宽度,通过路由器分出几个 IP,让好几个人都能上网,当然运营商通过公有 IP 分出来的过程肯定比这个复杂多了。

2、 内网对外网发出请求

假如A有一台电脑,位于路由器的内网中,IP地址为192.168.1.100,现在A想要访问CSDN,应该怎么办呢?我们知道,192.168.1.100这个IP只是在本身的局域网下唯一,但在互联网中,CSDN怎么才能知道是哪个192.168.1.100访问了它呢。

其实,A在访问CSDN时会发送一个数据包,这个数据包中包含了请求信息,还包含源IP和目标IP。这个数据包会首先通过路由器,路由器检测到数据包的目标IP不在这个局域网中时,会将数据包中的源IP改成外网IP,并为其分配一个端口号,同时在端口映射表中随机生成一个端口号(>1023),对应该局域网下的192.168.1.1的端口号,然后这个数据包会被发送至互联网中,去请求CSDN服务器。

3、外网应答内网请求

熟悉TCP三次握手的人会知道,CSDN在收到请求数据包后,会返回一个应答数据包,这个应答数据包中,同样包含源IP和目标IP,这时这个目标IP就是A所在路由器的外网IP。应答数据包传送到路由器的随机端口号上后,路由器会根据映射表中映射关系,将目标IP再次转换成内网IP,将数据包发送给A。至此,双方的数据交互关系就理清了。

猜你喜欢

转载自blog.csdn.net/qq_28657577/article/details/80525234
今日推荐