1、公有IP与私有IP
首先我们需要了解一下什么是公有 IP 和私有 IP ?
私有地址(Private address):属于非注册地址专门为组织机构内部使用,说白了私有 IP 不能直接上网。
而我们平时通过运營商(电信、移动、联通宽带等)上网家里面通过路由器分出来的 IP 都是私有 IP(局域网 IP),大家可能会疑问我们可以上网啊,怎么会是私有 IP 呢租用(QQ校园空间申请要求)公有 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服务器
熟悉TCP三次握手的人会知道,CSDN在收到请求数据包后会返回一个应答数据包,这个应答数据包中同样包含源IP和目标IP,这时這个目标IP就是A所在路由器的外网IP应答数据包传送到路由器的随机端口号上后,路由器会根据映射表中映射关系将目标IP再次转换成内网IP,将数据包发送给A至此,双方的数据交互关系就理清了