目录

一、引言

二、以太网帧及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报文处理)相关推荐

  1. 路由器NAT功能配置简介

    路由器NAT功能配置简介 随着internet的网络迅速发展,IP地址短缺已成为一个十分突出的问题.为了解决这个问题,出现了多种解决方案.下面几绍一种在目前网络环境中比较有效的方法即地址转换(NAT) ...

  2. 【测试】发送和接收TCP/UDP数据包|shell 发送TCP/UDP数据包

    目录 通过/dev/tcp./dev/udp shell给tcp或udp服务发送16进制报文指令 通过/dev/tcp./dev/udp (https://blog.csdn.net/u0100394 ...

  3. 路由器nat虚拟服务器,使用路由器的NAT功能(Apache配置和www服务)

    1.首先,要配置网络环境,总共使用两台虚拟路由器.当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成.因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的 ...

  4. 在CISCO路由器上配置NAT功能

    在CISCO路由器上配置NAT功能 http://www.enet.com.cn/eschool/  2011年07月13日11:59  来源:来自论坛  作者:佚名   [文章摘要]随着intern ...

  5. cisco路由器NAT地址转换

    很久没有接触NAT地址转换了,我记得有一次在笔试一个做系统集成的公司,其中有一道题就是NAT与PAT的区别.当时对网络基本就没概念,所以只是简单说了一个NAT是地址转换,PAT是端口转换之类的笼统的话 ...

  6. 路由器 虚拟网服务器,虚拟路由器的功能有哪些?蒲公英路由器实现虚拟网组建...

    虚拟路由器即Virtual Router,是指在软.硬件层实现物理路由器的功能仿真,属于一种逻辑设备.每个虚拟路由器应该具有逻辑独立的路由表和转发表,这样就使不同异地组网间的地址空间可以重用,并保证了 ...

  7. NAT功能介绍及配置应用

    写在开头的话: 关于华为模拟器ENSP的几点注意事项: 1.Router路由器的NAT功能存在BUG,无法作为NAT设备使用: 2.AR201路由器的Ethernet端口无法直接作为三层接口使用,必须 ...

  8. 什么是交换机?描述一下工作过程?交换机基本功能、交换机是如何转发数据包的,什么是三层交换机?和二层交换机有什么区别?三层交换机是否可以代替路由器?为什么?

    ** 14. 什么是交换机?描述一下工作过程? ** 交换机是一种工作在数据链路层对流量进行转发的网络设备.主要应用于延长传输距离,解决冲突域,实现单播等功能. ** 工作过程: **当流量进入交换机 ...

  9. Cisco PT模拟实验(19) 路由器的NAT功能配置

    Cisco PT模拟实验(19) 路由器的NAT功能配置 实验目的: 掌握NAT网络地址转换的原理及功能 掌握NAT地址映射和端口映射的配置方法 掌握广域网(WAN)接入技术的原理 实验背景: 情景一 ...

最新文章

  1. 【camera-lidar】自动驾驶相机-激光雷达融合方案综述
  2. 步步为营-104-SQL语句(截取字符串)
  3. Java——多线程学习
  4. Linux一键安装web环境全攻略(阿里云服务器)
  5. c语言怎么写贪吃蛇,刚学C语言,想写一个贪吃蛇的代码
  6. ajax post form上传图片,ajax怎样提交form表单与实现文件上传
  7. 【今日CV 计算机视觉论文速览 第112期】Mon, 6 May 2019
  8. centos7 安装 php-fpm_centos7中如何安装 php-fpm(nginx)
  9. ALTER INDEX Rebuild Reorganize 索引 重建 重组 碎片率
  10. fpga供电电压偏低会怎样_正点原子【FPGA-开拓者】第三章 硬件资源详解
  11. Docker学习总结(53)—— Docker 十个非常实用但又容易忽视的使用技巧
  12. 经纬度转换为平面坐标
  13. java安卓软件开发菜鸟教程,Android 开发环境搭建
  14. 微信小程序开发需要什么技术
  15. 深入理解计算机系统寄存器寻址讲解
  16. 拼图c语言程序,C语言实现拼图小游戏
  17. Uniapp微信小程序视频全屏播放功能极简实现法
  18. 【NLP】Pyhon+讯飞开放平台:​手把手带你写一个智能语音播报系统
  19. 5、kubernetes Scale Up/Down在线增加或减少 Pod 的副本数、Failover故障转移、用 label(标签)控制 Pod 的位置
  20. Android输入法window类型,android输入法windowSoftInputMode属性详解章

热门文章

  1. 用Three.js实现简单布局的3D房间
  2. 图解组织效能及人均效能指标大全和计算方法
  3. 《数字图像处理》- 图像的输入,输出和显示
  4. win10删除skype方法
  5. CFS----------------完全公平调度算法
  6. 【Anaconda】Anaconda空间清理
  7. 关于“Windows 资源保护找到了损坏文件,但其中有一些文件无法修复。”的另一种解决方法
  8. CSS样式:小米商城导航栏及下拉菜单小项目
  9. Sentinel key not found (H0007)
  10. 请永远记住 “网景” 公司,互联网的缔造者!