路由器NAT功能如何转发数据(路由器对ICMP、TCP、UDP报文处理)
目录
一、引言
二、以太网帧及IP数据报格式回顾
三、路由器对ICMP、TCP、UDP报文处理
3.1、路由器对ICMP报文处理
3.2、路由器对UDP报文处理
3.3、路由器对TCP报文处理
四、遗留问题
五、参考文章
六、其他
一、引言
下图主机1和互联网上的服务器通讯,各级路由器如何转发IP数据报呢?
(注意主机1、主机2、主机3的IP地址一样的)
二、以太网帧及IP数据报格式回顾
下图来自《TCP/IP详解,卷1:协议》。
三、路由器对ICMP、TCP、UDP报文处理
3.1、路由器对ICMP报文处理
下面以 PING 程序发送ICMP回显请求为例;
子网主机发送给外网主机,路由器对IP数据报处理:
输入(处理前) |
输出(处理后) |
||
源IP |
ICMP标识符 |
源IP |
ICMP标识符 |
IP1 |
x1 |
路由器IP |
y1 |
IP2 |
x2 |
路由器IP |
y2 |
... |
... |
... |
... |
IPn |
xn |
路由器IP |
yn |
同时将对应关系(IPn、xn<——>yn)缓存起来,待外网主机回复时,找到子网目标主机;
外网主机回复子网主机,路由器对IP数据报处理:
输入(处理前) |
输出(处理后) |
||
目的IP |
ICMP标识符 |
目的IP |
ICMP标识符 |
路由器IP |
y1 |
IP1 |
x1 |
路由器IP |
y2 |
IP2 |
x2 |
... |
... |
... |
... |
路由器IP |
yn |
IPn |
xn |
将对应关系(IPn、xn<——>yn)缓存删除,释放资源。
PS:上文 “一、引言” 图中的路由器2,需要转发多个子网的数据包,16位的“标识符”长度可能不够用,此时需要路由器具备多个外网的 IP 地址。
3.2、路由器对UDP报文处理
子网主机发送给外网主机,路由器对IP数据报处理:
输入(处理前) |
输出(处理后) |
||
源IP |
UDP端口 |
源IP |
UDP端口 |
IP1 |
xx1 |
路由器IP |
yy1 |
IP2 |
xx2 |
路由器IP |
yy2 |
... |
... |
... |
... |
IPn |
xxn |
路由器IP |
yyn |
同时将对应关系(IPn、xxn<——>yyn)缓存起来,待外网主机回复时,找到子网目标主机;
外网主机回复子网主机,路由器对IP数据报处理:
输入(处理前) |
输出(处理后) |
||
目的IP |
UDP端口 |
目的IP |
UDP端口 |
路由器IP |
yy1 |
IP1 |
xx1 |
路由器IP |
yy2 |
IP2 |
xx2 |
... |
... |
... |
... |
路由器IP |
yyn |
IPn |
xxn |
3.3、路由器对TCP报文处理
子网主机发送给外网主机,路由器对IP数据报处理:
输入(处理前) |
输出(处理后) |
||
源IP |
TCP端口 |
源IP |
TCP端口 |
IP1 |
xxx1 |
路由器IP |
yyy1 |
IP2 |
xxx2 |
路由器IP |
yyy2 |
... |
... |
... |
... |
IPn |
xxxn |
路由器IP |
yyyn |
同时将对应关系(IPn、xxxn<——>yyyn)缓存起来,待外网主机回复时,找到子网目标主机;
外网主机回复子网主机,路由器对IP数据报处理:
输入(处理前) |
输出(处理后) |
||
目的IP |
TCP端口 |
目的IP |
TCP端口 |
路由器IP |
yyy1 |
IP1 |
xxx1 |
路由器IP |
yyy2 |
IP2 |
xxx2 |
路由器IP |
... |
... |
... |
路由器IP |
yyyn |
IPn |
xxxn |
四、遗留问题
上文“二、路由器对ICMP、TCP、UDP报文处理”中,未说明路由器对 UDP、TCP 数据包处理过程中,缓存的对应关系(IPn、xxxn<——>yyyn),何时删除。
参考:
Nat 对 tcp , udp , icmp 报文的处理 _卧龙小学堂-CSDN博客_icmp nat
五、参考文章
P2P学习(一)NAT的四种类型以及类型探测 - 山上有风景 - 博客园
路由器处理icmp包的想法_wuxinyanzi的专栏-CSDN博客
六、其他
本文见解来自《TCP/IP详解,卷1:协议》、《计算机网络》(第7版,谢希仁),以及网络资源,若有不对之处请留言交流。
--以下空白--
路由器NAT功能如何转发数据(路由器对ICMP、TCP、UDP报文处理)相关推荐
- 路由器NAT功能配置简介
路由器NAT功能配置简介 随着internet的网络迅速发展,IP地址短缺已成为一个十分突出的问题.为了解决这个问题,出现了多种解决方案.下面几绍一种在目前网络环境中比较有效的方法即地址转换(NAT) ...
- 【测试】发送和接收TCP/UDP数据包|shell 发送TCP/UDP数据包
目录 通过/dev/tcp./dev/udp shell给tcp或udp服务发送16进制报文指令 通过/dev/tcp./dev/udp (https://blog.csdn.net/u0100394 ...
- 路由器nat虚拟服务器,使用路由器的NAT功能(Apache配置和www服务)
1.首先,要配置网络环境,总共使用两台虚拟路由器.当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成.因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的 ...
- 在CISCO路由器上配置NAT功能
在CISCO路由器上配置NAT功能 http://www.enet.com.cn/eschool/ 2011年07月13日11:59 来源:来自论坛 作者:佚名 [文章摘要]随着intern ...
- cisco路由器NAT地址转换
很久没有接触NAT地址转换了,我记得有一次在笔试一个做系统集成的公司,其中有一道题就是NAT与PAT的区别.当时对网络基本就没概念,所以只是简单说了一个NAT是地址转换,PAT是端口转换之类的笼统的话 ...
- 路由器 虚拟网服务器,虚拟路由器的功能有哪些?蒲公英路由器实现虚拟网组建...
虚拟路由器即Virtual Router,是指在软.硬件层实现物理路由器的功能仿真,属于一种逻辑设备.每个虚拟路由器应该具有逻辑独立的路由表和转发表,这样就使不同异地组网间的地址空间可以重用,并保证了 ...
- NAT功能介绍及配置应用
写在开头的话: 关于华为模拟器ENSP的几点注意事项: 1.Router路由器的NAT功能存在BUG,无法作为NAT设备使用: 2.AR201路由器的Ethernet端口无法直接作为三层接口使用,必须 ...
- 什么是交换机?描述一下工作过程?交换机基本功能、交换机是如何转发数据包的,什么是三层交换机?和二层交换机有什么区别?三层交换机是否可以代替路由器?为什么?
** 14. 什么是交换机?描述一下工作过程? ** 交换机是一种工作在数据链路层对流量进行转发的网络设备.主要应用于延长传输距离,解决冲突域,实现单播等功能. ** 工作过程: **当流量进入交换机 ...
- Cisco PT模拟实验(19) 路由器的NAT功能配置
Cisco PT模拟实验(19) 路由器的NAT功能配置 实验目的: 掌握NAT网络地址转换的原理及功能 掌握NAT地址映射和端口映射的配置方法 掌握广域网(WAN)接入技术的原理 实验背景: 情景一 ...
最新文章
- 【camera-lidar】自动驾驶相机-激光雷达融合方案综述
- 步步为营-104-SQL语句(截取字符串)
- Java——多线程学习
- Linux一键安装web环境全攻略(阿里云服务器)
- c语言怎么写贪吃蛇,刚学C语言,想写一个贪吃蛇的代码
- ajax post form上传图片,ajax怎样提交form表单与实现文件上传
- 【今日CV 计算机视觉论文速览 第112期】Mon, 6 May 2019
- centos7 安装 php-fpm_centos7中如何安装 php-fpm(nginx)
- ALTER INDEX Rebuild Reorganize 索引 重建 重组 碎片率
- fpga供电电压偏低会怎样_正点原子【FPGA-开拓者】第三章 硬件资源详解
- Docker学习总结(53)—— Docker 十个非常实用但又容易忽视的使用技巧
- 经纬度转换为平面坐标
- java安卓软件开发菜鸟教程,Android 开发环境搭建
- 微信小程序开发需要什么技术
- 深入理解计算机系统寄存器寻址讲解
- 拼图c语言程序,C语言实现拼图小游戏
- Uniapp微信小程序视频全屏播放功能极简实现法
- 【NLP】Pyhon+讯飞开放平台:​手把手带你写一个智能语音播报系统
- 5、kubernetes Scale Up/Down在线增加或减少 Pod 的副本数、Failover故障转移、用 label(标签)控制 Pod 的位置
- Android输入法window类型,android输入法windowSoftInputMode属性详解章
热门文章
- 用Three.js实现简单布局的3D房间
- 图解组织效能及人均效能指标大全和计算方法
- 《数字图像处理》- 图像的输入,输出和显示
- win10删除skype方法
- CFS----------------完全公平调度算法
- 【Anaconda】Anaconda空间清理
- 关于“Windows 资源保护找到了损坏文件,但其中有一些文件无法修复。”的另一种解决方法
- CSS样式:小米商城导航栏及下拉菜单小项目
- Sentinel key not found (H0007)
- 请永远记住 “网景” 公司,互联网的缔造者!