NAT技术小认识

来源:互联网 发布:淘宝上的止鼾器有用吗 编辑:程序博客网 时间:2024/06/17 16:56

1、概念

    网络地址转换(Network Address Translation,缩写为NAT),也叫做网络掩蔽或者IP掩蔽(IP masquerading),是一种在IP数据包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术。    这种技术普遍使用在有多台主机但只通过一个公有IP地址访问因特网的私有网络中。根据规范,路由器是不能这样工作,但它的确是一个方便且得到了广泛应用的技术。当然,NAT也让主机之间的通信变得复杂,导致降低了通信效率。 

2、一个例子

    我们的机器一般都在路由器的内网当中,IP地址基本上都是192.168.x.x系列,我们并没有公网IP,那么如何访问外网呢?    我们打开浏览器访问Google,Google与我们主机之间如何通信?假设我们主机IP为192.168.0.100,路由器LAN IP为192.168.0.1,WAN IP为211.22.145.234(这是一个公网IP),Google服务器IP为74.125.204.101。详细通信流程如下:    <1>主机构建HTTP请求数据包,目标IP为74.125.204.101,目标端口80,源IP为192.168.0.100,源端口随机生成,假定为5000。    <2>主机检查目标IP地址,发现不在一个网段,数据包丢给默认网关(192.168.0.1)。    <3>路由器LAN口收到数据包,构建NAT映射,随机生成端口,假定为5500,这样映射就是 :5500 -> 192.168.0.100:5000。WAN口收到的数据包,如果目标端口是5500,则转发给内网IP为192.168.0.100的机器的5000端口。    <4>路由器修改数据包的源端口为5500,源IP地址为211.22.145.234,使用WAN口将数据包发送出去。    <5>Google服务器收到请求,构建响应HTTP数据包,目标IP地址211.22.145.234,目标端口为5500。    <6>路由器WAN口收到数据包,目标端口为5500,查询NAT表,发现对应的机器是192.168.0.100:5000,所以修改目标IP为192.168.0.100,目标端口为5000。并通过LAN口发送给主机。    <7>主机接收到数据包,完成这一次通信。

3、总结

    从上面可以看出,内网机器能够和外网通信,全靠拥有公网IP的路由器做交通枢纽。路由器通过查询NAT表,来确定数据包该发送给内网哪台机器。所以内网多台机器都可以通过这一台路由器和外网进行通信。这极大的节省了宝贵的公网IP资源。
原创粉丝点击