赞
踩
NAT(Network Address Translation,网络地址转换)技术,是解决IP地址不足的主要手段,并且能够有效避免外部网络的攻击,隐藏并保护网络内部的计算机。
在IPv4协议中,IP地址数量不足是一个大问题,而NAT技术就是当前解决IP地址不足的重要手段,是路由器的一个重要功能。
假设某个局域网当中有A、B、C三台主机,在公网当中有一台服务器,以主机A访问公网中的这台服务器为例,我们来看数据包在传输过程中IP地址的转换过程。
数据包从局域网到公网的过程
主机A向服务器发起数据请求的过程中,数据包中IP地址的转换如下:
服务器收到主机A的数据请求并处理之后,就会对主机A发来的请求进行响应。
数据包从公网到局域网的过程
服务器对主机A进行响应的过程中,数据包中IP地址的转换如下:
需要注意的是,因为主机A向服务器发起数据请求时,该数据包当中的源IP地址被替换成了NAT路由器的WAN口IP地址,相当于是该路由器代替主机A向服务器发起了数据请求,因此服务器发出的响应数据包的目的IP地址应该是NAT路由器的WAN口IP地址。
那NAT路由器是如何判断,应该将从外网收到的响应数据包发给局域网中哪一台主机呢?
在刚才的例子中,主机A第一次向服务器发起数据请求时,路由器中就会建立以下映射关系:
当NAT路由器收到服务器向主机A发来的响应数据时,就可以通过查表得知该响应数据是发送给局域网当中的主机A的。
但如果转换表中维护的只是局域网当中主机的私有IP,与其对应访问的外网当中的某个公网IP之间的映射关系,那么就会出现某些问题。
比如,如果局域网中的主机A和主机B同时都在访问该服务器,那么此时转换表中就会建立以下两队映射关系:
这时这张表就只能保证从左到右的唯一性,而不能保证从右到左的唯一性,当服务区发来数据时,该数据包中的IP地址都是服务器的WAN口IP,此时NAT路由器就无法判断该数据包应该转发给主机A还是主机B,此时NAT路由器就无法判断数据包应该转发给主机A还是主机B,那么就需要用到NAPT技术。
NAPT
NAPT(Network Address Port Tranlation,网络地址端口转换),可以将多个内部地址映射为一个合法公网地址。
比如局域网中的主机A和主机B都在访问同一个服务器,并且它们访问服务器时采用的端口号都是1025。
此时转换表就有两对映射关系:
此时这张转换表既能保证从左到右的唯一性,也能保证从右到左的唯一性。
谈谈路由器
路由器是工作在网络层的一个设备,负责将数据包从一个网络转发到另一个网络,但不能狭义地认为路由器只能工作在网络层。
NAT技术进行私有IP和公网IP之间的替换,主要就是依赖NAT路由器当中维护的网络地址转换表,但这张转换表也体现出来NAT的一些缺陷:
代理服务器(Proxy Server)的功能就是代理网络用户是获取网络信息,代理服务器又分为正向代理和反向代理。
正向代理,是一个位于客户端和目标服务器之间的服务器,客户端并不直接访问目标服务器,而是先访问代理服务器,由代理服务器代替客户端去访问对应的目标服务器,并将目标服务器的响应结果返回给客户端。
比如公司内部一般都会有自己的服务器,当我们使用公司内网上网时。
正向代理的好处:
反向代理
反向代理,也是一个位于客户端和目标服务器之间的服务器,对于客户端而言,反向代理服务器就相当于目标服务器,用户不需要知道目标服务器的地址,用户只需要访问反向代理服务器就可以获得目标服务器提供的服务。
反向代理,也是一个位于客户端和目标服务器之间的服务器,客户端直接向反向代理服务器发起数据请求,然后再由反向代理服务器将客户端的数据请求转发给真正的目标服务器进行处理,数据处理完毕之后反向代理服务器再将数据结构返回给客户端。
比如域名www.baidu.com对应的服务器实际就是一个反向代理服务器。
反向代理的好处
正向代理和反向代理的异同
正向代理和反向代理的相同点:
正向代理和反向代理的不同点:
NAT和代理服务器的区别
NAT和代理服务器都是代替我们向服务器发起数据请求的,但它们有以下区别:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。