路由器转发数据包的封装过程

本文详细介绍了路由器如何转发数据包的过程,包括IP数据包的封装、通过ARP获取MAC地址、路由器查找路由表进行转发,以及数据包在不同网络间如何通过多个路由器传递,直至到达目的地。

**

原理:

**
1、当一个高层的数据包到达传输层,由于telnet使用TCP协议,传输层将上层传过来的数据不变在封装TCP的包头以便目标主机可以正确解包,继续向下层(网络层)传递。

2、网络层同样不会改变之前的数据包,当然也包括之前封装的任何包头,首先主机A要对目标主机作判断,他会用自己的IP地址和自己的子网掩码进行与运算结果是172.16.12.0,然后在拿自己的掩码和主机B的IP地址作与运算,假若结果是172.16.12.0,这个时候他知道他们在同一网段内,这时他会封装自己的IP及目标的IP地址,同上层传下来的数据一下向下传。假若是61.152.251.0,发现不在同一个网段,注意:这时也是用自己IP和目标IP进行封装,然后向下层传递。在数据链路层这时就不会封装目的的MAC地址,他也不知道MAC地址是什么,这时他会封装网关的MAC地址,而让网关将数据转发出去。同时在网关收到数据时候,他会查看目标IP地址,当然不是他自己的IP地址了,所以他知道这个数据包是要由他路由出去的,然后路由器查找自己的路由表,若存在到该网络的路由便按路由表从对应接口发出去,若路由表中没有到该网络的路由则检查是否存在默认路由,如果没有则丢弃数据包,并向源主机发送网络不可达icmp消息。若一切正常,路由器会把数据包发给了他的邻居或网络运营商的路由器上去,重复以上动作,在TTL值为0之前将数据传递给某X官方网站,数据传递成功!

数据包的传输流程如下:
在这里插入图片描述
(1)PC1在网络层将来自上层的报文封装成IP数据包,其首部包含了原地址和目的地址。
原IP地址(PC1):192.168.1.2
目的IP地址(PC2):192.168.2.2
PC1会用本机配置的24位掩码与目的地址进行“与”运算,得出目的地址与本机地址不在同一网段,因此发往PC2的数据包要巾帼网关路由器A转发。
(2)PC1通过ARP请求获得默认网关路由器A的MAC地址。在数据链路层PC1将IP数据包封装成以太网数据帧,在以太网首部
源MAC地址(PC1):00-11-12-21-11-11
目的MAC地址(E0):00-11-12-21-22-22
(3)路由器A从E0接口接收到数据帧,把数据链路层的封装去掉。路由器A认为这个IP数据包是要用过自己进行路由转发,所以路由器A会查找自己的路由表,寻找与目标IP地址192.168.2.2相匹配的路由表项,然后根据路由表的下一跳地址将数据包转发到E1接口。
(4)在E1接口路由器A重新封装以太网帧,此时:
源MAC地址(路由器A的E1):00-11-12-21-33-33
目的MAC地址(路由器B的E1):00-11-12-21-44-44
(5)路由器B从E1接收到数据帧,同样把数据链路层的封装去掉,对目的IP进行检查,并与路由表进行匹配,然后根据路由表的下一跳地址将数据包转发到E0接口。
(6)路由器B发现目的网段与自己的E0接口直接相连,通过ARP广播,路由器B获得PC2以太口的MAC地址。路由器B再将IP数据包封装成以太网帧:
源MAC地址(路由器B的E0):00-11-12-21-55-55
目的MAC地址(PC1):00-11-12-21-66-66
(7)封装完毕,将以太网帧从E0接口发往PC1。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值