计算机网络基础 (六)--- 网络层 - 网络地址转换 NAT 技术
文章内容概览
因为IP地址不够用了,所以才使用到了网络地址转换NAT技术
IPv4最多有40+亿个IP地址(如果合理使用,一般是不会不够用的)
早期IP地址的不合理规划导致IP号浪费
在之前的文章中介绍到,网络的边缘部分有家庭网络,有终端设备、路由器、网关、地区ISP
在实际情况下,其实很多的家庭只有一个外网的IP地址。那么,很多的内网设备是如何进行通信的?
因为我们知道网络层在进行通信的时候,需要有一个唯一的IP地址,这个时候,一个家庭如果只有一个IP地址,是如何使那么多的终端设备都连接到互联网的?这个问题是需要解决的
除了家庭以外,对于公司来说,很多时候,IP地址也是不够用的,不足以支持公司里边那么多的终端设备(手机、笔记本、路由器等等他们都需要有一个唯一的IP地址)。那么公司的这么多的设备是如何连接到互联网的?
内网地址和外网地址
IP地址其实可以分为两类:内网地址和*外网地址*
内网地址
内部机构使用(如家庭里的笔记本、手机、iPad等都是使用内网地址)
避免与外网地址重复
外网地址
全球范围使用的(全球唯一的)
全球公网唯一
内网地址
内网地址还可以分为三类(A、B、C三类)
10.0.0.0 ~ 10.255.255.255(支持千万数量级设备)
172.16.0.0 ~ 172.31.255.255(支持百万数量级设备)
192.168.0.0 ~ 192.168.255.255(支持万数量级设备)
因为内网地址主要是给内部机构所使用的,所以A公司喝B公司的内网地址是可以有一样的。同样的,对于不同的家庭,他们的内网地址也是可以有一样的,并不会引起冲突
对于公司,它可以在外部使用全球唯一的外网IP,但是在内部使用内网地址(家庭也是一样)。这样就可以解决,不同设备连接互联网的问题
虽然通过这种方法,每一个设备,都分配了一个IP地址,但是使用内网地址又会引发另一个问题:内网多个设备使用一个外网IP请求外网的服务,外部怎么知道具体是哪个设备在请求的?
这个就需要使用本文主要介绍的网络地址转换NAT技术
网络地址转换NAT技术
网络地址转化NAT(Network Address Translation)
NAT技术用于多个主机通过一个公有IP访问互联网的私有网络
NAT减缓了IP地址的消耗,但是增加了网络通信的复杂度
NAT技术具体是如何解决这个问题的
假设有一个计算机和一个手机,通过路由器连接到外部网络,假设外部的IP地址是173.21.59.10。两个内部终端设备的IP地址分别为:192.168.2.10和192.168.2.11
在介绍通过NAT技术解决上边提到的问题之前,需要先了解一个概念:端口(port)
端口是每一个进程在进行网络请求的时候的一个概念,通过端口就可以指定是某一个设备具体的哪一个进程在使用网络。有了端口的概念,就可以了解NAT技术了
假设192.168.2.11:6666这个进程在使用网络,它发出的网络报文地址将会是:192.168.2.11:6666,但是这个地址在来到路由器之后,就会被替换成新的地址和端口号,新IP地址是173.21.59.10,假设新的端口为16666。通过路由器,刚才所发送的数据,会以新的地址和端口号发送到网络中。在目的计算机中,它识别的是新的IP地址和端口号,并不识别旧的IP地址和端口号,因为在路由器中进行了IP地址和端口的替换。所以外部其实是和173.21.59.10来进行通信的
当目的计算机处理完数据之后,会将结果发送给173.21.59.10:16666,路由器接收到数据之后,又会进行一次地址和端口的转换,那么内部的设备也就获取到了请求的数据
因此NAT技术其实就是将内网IP地址的网络请求,在本地路由器内部进行了一次IP地址和端口的转换,当接收到返回结果之后,再将IP地址和端口转换回来,发送给请求的设备。这个做映射的表,称为NA(P)T表
这个技术其实是非常常用的,比如我们在本机安装虚拟机,使用虚拟机通信的时候,使用的就是NAT技术来进行通信的
在快速变化的技术中寻找不变,才是一个技术人的核心竞争力。知行合一,理论结合实践
版权声明: 本文为 InfoQ 作者【书旅】的原创文章。
原文链接:【http://xie.infoq.cn/article/0fddfdb1e3c0faeb10c6b00e4】。文章转载请联系作者。
评论 (3 条评论)