有一些网络内的主机是没有公共IP地址的,比如一个家庭网络内部的手机、ipad、电脑。这些设备是如何访问公共互联网?实际是利用NAT技术,共用了一个公共IP。
NAT是网络地址转换的意思,具体过程是:
假设现在有个内部主机A,内网IP是192.168.0.110
,能用的公共IP是125.70.195.121
。
- A向外发送分组时,路由器将
内网IP+源端口
改成公共IP+新端口
,并记录下转换关系 - A接收分组时,路由器将
公共IP+目地端口
改成内网IP+记录中的端口
为什么转换关系要设计到端口号?
因为如果只有IP的话,路由器不知道如何交付从外界收到的分组。
修改端口号时,不可避免地要改传输层分组,有些争议观点认为,路由器作为一个标准的网络层设备,不应该去改动传输层的数据,地址短缺问题该由IPv6来解决。