计算机网络——NAT的妙用(网络地址转换协议)

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 计算机网络——NAT的妙用(网络地址转换协议)
点赞后看,养成习惯
喜欢的话 可以点个关注哟
你们的点赞支持对博主们来说很重要哦 !!!

本文将针对以下问题逐条进行解答:

01 IPV4有何实际意义?

02 为什么需要进行NAT(网络地址转换)?

03 如何进行网络地址转换?



image.png




## 01 IPV4的用途

IPV4地址是网络上唯一的地址,通过这些公网IPV4地址,我们能够准确定位到某一台主机。

那我们知道了地址之后,是不是一定能够找到对方呢? 并不是的,比如,你知道你要去的地方是动物园,那你就一定知道去的路嘛?不一定吧,通常情况下我们还得通过地图导航软件来辅助我们到达目的地。



image.png

而在网络上充当这个地图角色的就是路由器们,路由器再知道了公网IPV4地址之后,就会告诉相邻的邻居,邻居再告诉邻居,就这样,一传十,十传百,一张网络的地图就这么产生了。

具体来说,如果小明拥有一个公网IP为:1.1.1.1,那么路由器A因为是直连肯定知道要找小明怎么走。而路由器A不仅自己知道怎么找A,还会告诉路由器B如果你想找小明的话,你就把IP包发给我就好了。以此类推,最后,路由器D如果想要和小明通信的话,那他把IP包丢给路由器C,路由器C把IP包丢给路由器B,最后路由器B丢给路由器A。

以上,A -> D 是路由扩散的过程,这个过程有路由器上的路由协议完成
D -> A 是用户IP包接力的过程,像多米诺骨牌一样,最终找到小明

现在假设连接在路由器A上的小明 1.1.1.1 要和 连接在路由器D上的小美 2.2.2.2 进行通信,过程是怎么样的呢?


image.png


首先小明发送IP包的时候,IP报头里面添加了源IP地址 1.1.1.1 和 目的IP地址 2.2.2.2

这个IP包,以路由器A为起点开始了寻路,A查路由器,要找2.2.2.2 下一跳是路由器B,于是发给了B,B发给了C,C发给了D。最终IP包被小美接收到了,小美发现对方的IP是 1.1.1.1 ,于是发一个IP包回应对方,这个IP包的地址是这样的:

目的IP 1.1.1.1
源IP 2.2.2.2

这里要注意一点,IP包途径的路由器必须都得有小明、小美的路由,只要有一跳出现 路由表缺失或者不正确,就会造成通信的障碍,或IP包无法到达对方,或者IP回包无法回来


image.png

当通信出现故障的时候,先要排除是不是路由问题造成的,要保住去向路由、回向路由都要正确无误。我们可以使用Ping、Traceroute这两个中举协同工作,准确找出到底是那台路由器造成的。





## 02 网络地址转换由来

我们知道,公网IP地址可以帮我们与他人通信。但是现在有一个问题出现:

小明是有一个公网IP地址,1.1.1.1,但是小明家里的智能终端很多啊,有IPAD、手机、电脑,每台设备都需要一个IP地址才能工作,这该怎么分呢?

image.png

有办法,专门负责IP地址分配的国际机构IANA预留了几段地址,专门用于局域网使用,这三段地址分别为:

10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255

假设小明家选择了 10.1.1.0/24这个私有网段,在路由器的局域网配置了DHCP服务器,专门用于给终端分配这个网段的地址,其中10.1.1.1为路由器局域网接口的IP,10.1.1.254为广播地址,那么剩下的10.1.1.2 -254这253个地址就可以分配给局域网的终端了。



03 网络地址转换具体流程




那么这种情况下,如果小明的手机 10.1.1.2 想要访问 小美的网页 http:// 2.2.2.2 ,该如何通信呢?


1、小明的电脑使用TCP协议来传输HTTP应用,他发出IP报文,其中目的IP为 2.2.2.2 源IP为10.1.1.2,目的端口号为 80,源端口号位 1520

这里的目的端口号可以让小美的TCP找到服务器进程,这里的服务器进程就是网页服务器程序

这里的源端口号可以让小明的TCP找到对应的浏览器进程,把小美的回复消息转交给该进程



2、路由器接收到小明发来的IP报文,路由器发现源IP地址10.1.1.2是私有地址,做地址转换,动态生成地址转换表:

其中目的IP为 2.2.2.2 源IP从10.1.1.2映射为1.1.1.1,目的端口号为 80,源端口号位 1520

端口号占两个字节,取值范围是1-65535,端口号1520在路由器上没有被任何本地经常占用,所以小明电脑可以原封不动地使用1520这个端口号。



3、经过各个路由器的配合,这个IP报文经过了25跳到达了小美的电脑。

但是到达了电脑还没有完呐,因为电脑上的进程特别多,如何知道发给那个进程呢?

举个例子,福建省福州市长乐区XXX37号,这个IP地址告诉你对方在福建省福州市长乐区XXXX,而端口号告诉你对方在37号

简单来说,IP地址准确定位电脑,端口号用于准确定位电脑上特定进程,即 IP地址+端口号 ,定位了某一台电脑的某一个进程



4、小美的网页服务收到小明的访问网页请求后,回复小明的手机,她打包了一个IP报文,只要把接收到的IP报文,源/目的IP位置调换,源/目的端口互换位置即可

其中目的IP为 1.1.1.1, 源IP 2.2.2.2,目的端口号为 1520,源端口号为 80



5、IP报文到达小明路由器,查NAT映射表,匹配到后做地址替换,替换后的IP报文为:

目的IP为10.1.1.2, 源IP 1.1.1.1,目的端口号为 1520,源端口号为 80



6、最后IP报文到达小明电脑指定端口完成通信

补充:
如果这个时候小明的电脑也要访问小美的网页,恰巧也想将1520作为源端口会发生什么呢?

小明电脑发生IP包后,小明路由器接收到该IP报文,发现1520端口已经被占用,于是在端口号空间 1025-65535挑选了一个空闲端口号1521给电脑使用,动态生成NAT表


公网IP 私网IP 路由器端口号 主机端口号 存活时间
1.1.1.1 10.1.1.2 1520 1520 237
1.1.1.1 10.1.1.3 1521 1520 300

这样子,最终呈现在小美电脑上的IP报文格式为:
目的IP为2.2.2.2, 源IP 1.1.1.1,目的端口号为 80,源端口号为 1521

此报文最终可以找到小美的服务器进程,返程的回复报文,小明的路由器也可以查NAT表,做地址转换,最终达到小明的手机



总结一下就是,小明的路由器为了辨别不同用户(IP地址不同)的流量,或者同一个用户的不同流量(端口号不同),使用路由器上唯一的端口号来分辨他们





本文完,感谢你的阅读!!!

最后,如果本文对你有所帮助,希望可以点个赞支持一下。你们的鼓励将会是博主原创的动力。
在这里插入图片描述

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
13天前
|
负载均衡 网络协议 算法
|
4天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
27 3
|
7天前
|
网络虚拟化
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性。本文介绍了这三种协议的原理、特点及区别,并提供了思科和华为设备的命令示例,帮助读者更好地理解和应用这些协议。
23 4
|
15天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
43 13
|
15天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
16天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
6月前
|
安全 网络安全 网络架构
计算机网络地址转换(NAT)
网络地址转换(NAT)允许多个主机共享一个或一组公共IP地址,同时保护内部网络的隐私和安全。NAT通常由路由器或防火墙设备执行,它充当内部网络和外部网络之间的中间人,将内部主机的私有IP地址映射到一个或多个公共IP地址上。
97 0
|
6月前
|
网络协议
地址重叠时,用户如何通过NAT访问对端IP网络?
地址重叠时,用户如何通过NAT访问对端IP网络?
|
4天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
17 2
|
20天前
|
运维 负载均衡 安全