路由器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版,谢希仁),以及网络资源,若有不对之处请留言交流。

--以下空白--

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值