文章内容概述由于IP地址不够用,所以采用了网络地址转换NAT技术。IPv4最多有40亿+亿个IP地址(如果合理使用,一般是不够的)早期IP地址规划不合理导致IP数量浪费。上一篇文章提到,网络边缘有家庭网络、终端设备、路由器、网关和区域ISP。在某些情况下,实际上很多家庭在外网只有一个IP地址。那么,很多内网设备是如何通信的呢?因为我们知道网络层在通信时需要有一个唯一的IP地址。这时候,如果一个家庭只有一个IP地址,那么多终端设备怎么能上网呢?这个问题需要解决。除了家庭,对于公司来说,很多时候IP地址是不够支持公司这么多终端设备的(手机、笔记本、路由器等,它们都需要有一个唯一的IP地址。IP地址)。那么公司这么多的设备是如何连接到互联网的呢?内网地址和外网地址IP地址实际上可以分为两类:内网地址和外网地址。DuplicateInternetaddressInternetaddressGloballyused(uniqueintheworld)GlobalpublicnetworkuniqueIntranetaddress内网地址也可以分为三种(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技术。NetworkAddressTranslationNAT技术NetworkAddressTranslationNAT(网络地址转换)NAT技术用于多台主机通过一个公共IP访问Internet的私有网络。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,但是这个地址到达路由器后,会被新的地址和端口替换number,新的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技术进行快速通信。在先进技术中寻找不变性,是一个技术人的核心竞争力。知行合一,理论与实践相结合
