在网络层中的IP协议中,我们就提到过IP地址不够用的问题,并了解到有三种方式来解决这个问题。
其中包括:
* 动态分配IP地址:只给接入网络的设备分配IP地址
* NAT技术
* IPV6,128位来表示一个IP地址。
私有IP地址和全局IP地址
(1)私有IP地址
子网中的IP是私有IP。
* 10.*,前8位是网络号,共2^24=16,777,216个地址。
* 172.16.到172.31.,前12位是网络号,共2^20=1,048,576个地址。
* 192.168.*,前16位是网络号,共2^16=65,535个地址。
(2)公有IP地址
除了私有IP地址,其他均为公有IP地址。
NAT技术
- NAT技术可以将私有IP对外通信转为全局IP。
- 很多学校、公司、家庭、机构都采用的是每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP。
- 全局IP要求唯一,但是私有IP不需要唯一。可以在不同的局域网中出现相同的IP(这些IP属于私有IP)。
NAT地址转换过程
主机将数据包发送给运行NAT的计算机。
NAT主机将数据包中的源端口号和源私有端口IP地址转换成自己的端口号和公网的IP地址,然后将数据包发给外部网络的目的主机,同时记录一条跟踪信息在地址转换映像表中,以便向客户机发送响应信息。
外部网络发送回送信息给NAT主机。
NAT主机根据映像表中的记录,将所收到的数据包的端口号和公用IP地址转换成目标主机的端口号和内部网络中目标主机的专用IP地址,并转发给目标主机。
- NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
- NAT路由器收到外部的数据时,又会把目标IP从202.244.173.37替换回10.0.0.10;
- 在NAT的路由器内部,有一张自动生成的,用于地址转换的表;
- 当10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系。
NAPT(IP+端口号)
在NAT的基础上增加了端口的概念,每个私网IP对应同一个公网IP的不同端口号,这样就能实现多个私网IP公用一个公网IP了。
这个表示NAT路由自动维护的,转换表的形成从内向外。例:在TCP的情况下,建立连接就会生成这个表,释放连接就会删除这个表。
NAT的缺陷
由于NAT依赖于转换表,所以有一些限制。
* 无法从NAT外部向内部服务器建立连接;
* 转换表的生成和销毁都需要额外开销;
* 通信中一旦NAT设备异常,即使存在热备,所有的TCP连接也会断开。
代理服务器将请求转发给真正要请求的服务器,服务器返回结果后,代理服务器把结果回传给客户端。
NAT和代理服务器的区别
* NAT是在网络层,直接对IP地址进行替换。代理服务器hi工作在应用层。
* NAT设备是网络的基础设备,解决的是IP地址不足的问题。代理服务器则是贴近于应用,例如:通过代理服务器进行翻墙。
* NAT一般在局域网的出口部署,代理服务器可以在局域网左,也可以在广域网做,还可以跨网。
* NAT一般集成在防火墙,路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上。