计算机网络基础(六)---网络层-网络地址转换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技术来进行通信的

在快速变化的技术中寻找不变,才是一个技术人的核心竞争力。知行合一,理论结合实践

你可能感兴趣的:(网络传输协议,计算机网络,nat,laravel,php)