NAT(网络地址转换)
1 概念
NAT(网络地址转换)属接入广域网(WAN)技术,是一种将私有地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
2 原理
客户端 服务端
序号1:假设在局域网的客户端的一台电脑A(192.168.1.100)大打开了IE浏览器,IE浏览器程序运行后,就会打开本机的1111端口(这个端口是随机的,系统动态产生),然后若要浏览新浪首页,就在地址栏输入http://www.sina.com.cn/,即访问http://www.sina.com.cn/ (12.130.132.30:80),此时电脑A就向内网(局域网)发一个数据包,这个数据包不仅有数据(浏览网页),还包括源地址和目标地址。源地址和目的地址都是由IP和端口号组成,这里的源地址为:192.168.1.100:1111;目标地址为:12.130.132.30:80。数据包以广播的形式发出,局域网上的其他电脑均能收到但不会有响应,但是作为NAT服务器的计算机(本例为192.168.1.1)收到此数据包会有响应。
序号2和3: NAT服务器会将数据包的源地址(192.168.1.100:1111)改为122.195.93.74:2222,然后再根据数据包中的目标地址将这个数据包发送到目标地址12.130.132.30:80—新浪网站(WEB服务器),这个过程就是NAT,目标地址不变。
(注意:IE浏览器打开的端口和NAT服务器的映射端口都是随机产生的,但是一旦产生两者就是一一对应的映射的关系,不会被其它程序所使用。这种一一映射的关系在不中断IE浏览器程序运行的情况下,会一直保持,此时如果打开另一个网页,就会另外新建一个对应的映射关系)
序号4:新浪网站(WEB服务器)—12.130.132.30:80口运行的程序收到此数据包之后,处理分析得知,要把本站某网页内容复制后再发到NAT服务器,随即打包数据发送,这个数据包也有源地址和目标地址,源地址12.130.132.30:80(新浪),目标地址122.195.93.74:2222(NAT服务器)。
序号5:当NAT服务器收到数据包时,将目标地址从122.195.93.74:2222改成192.168.1.100:1111,这个过程也是NAT,源地址不变,为新浪网址12.130.132.30:80。
序号6:NAT服务器修改目标地址后,就向内网发送数据包,此时客户端运行的IE浏览器程序就会收到它所需要的外网数据,处理之后就能在客户端的显示器上将新浪网页显示出来。
上述过程完成了内网计算机通过NAT服务器和外网设备的一次完整通信。整个过程NAT服务器改变了两次地址,内网计算机发送数据包的过程中,NAT将源地址改变,目标地址一直不变;外网计算机发送数据包的过程中,NAT将目标地址改变,源地址一直不变。
代理服务器
原理
代理服务器有很多种,大体来说有http,ftp,socks()代理三种,其中又分透明代理和不透明代理。其中透明代理一般是网关,是硬件。
当机器通过代理服务器上网时。通讯是分两次的,先是机器和代理服务器通讯,再是代理服务器和目的地址通讯。
机器和代理服务器通讯时,目的IP是代理服务器的IP。代理服务器和目的地址通讯时,源IP是代理服务器的IP,当外部的数据也是一样的,在内网中,出现的IP数据,全是内网和代理服务器的IP。因此,从IP包头是看不出任何与外面通讯的信息的。只有从数据中才能看到。