目录
1.前言
2.介绍
3.NAT机制详解
我们都知道IPv4的地址范围是32个字节,这其中还有很多地址是不可用的.比如127.*,这些都是环回地址.那么在网路发展日新月异的今天,互联网设备越来越多,我们该如何解决IP地址不够用的问题呢?目前有一种主流的解决方案,也是大家都在用的--NAT机制
首先我们把IP地址分为两大类,私网IP和公网IP,私网IP又叫做局域网IP
IP地址是10.&,172.16-172.31*,192.168* 这三类地址是私网IP
公网IP又叫做广域网IP,我们规定在互联网上网的设备对应的公网IP都必须是唯一的,但是私网上的地址使用私网IP,只要保证据局域网内部的IP不重复即可,不同的局域网之间IP允许重复.
由于上述设定,我们可以总结出以下的限制:
1.公网IP和公网IP的设备之间互相访问,直接访问即可.
2.局域网之间的设备互相访问,也可以直接访问 没有问题.
3.局域网访问另一个局域网的设备,不允许访问
4.局域网访问公网设备,就需要对局域网设备的IP进行地址转换
5.公网设备访问局域网设备,不允许访问
也就是说,我们如果想要编写一个服务器程序,则必须把它部署在有公网IP的设备上.这样别的用户才可以访问.那么我们该如何在一个局域网中的客户端,访问公网设备的服务器呢?
这张路由表里,会保存的有源IP.源端口.转化后的IP,服务器IP,源端口,目的端口
如果局域网的各个设备访问的是不同的服务器,路由器就可以很简单的通过IP地址来进行划分,如何替换的就如何替换回去.
如果是同一个局域网内,多个设备访问同一个路由器呢?本质也是通过查表
我们可以通过端口号来区分
替换之前的IP | 替换之后的IP | 服务器IP | 源端口 | 目的端口 |
192.168.1.1 | 5,6,7,8 | 1,2,3,4 | 1000 | 9090 |
192.168.1.2 | 5,6,7,8 | 1,2,3,4 | 2000 | 9090 |
万一巧了 ,正好局域网中的两个设备,端口分配的都一样呢?
我们的端口也可以进行映射,给它进行改变
替换前的数据报:源IP:192.168.1.1源端口:1000 目的IP:1,2,3,4 目的端口:9090
替换后的数据报:源IP:5,6,7,8 源端口:1001 目的Ip:1,2,3,4 目的端口:9090
和上面的一样,如何替换就如何如何找回去.
NAT机制本质上是为了解决公网IP不够用的这种情况,我们中国大陆大概有3亿多个公网IP,如果通过这种方法,那么就可以很大程度上的缓解IP地址不够用的情况,一个NAT机制的路由器,它的公网IP可能会管好几个小区或者一个小区,这样就大大的提高了IP地址的利用率.