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

网络拓扑构成如下图所示:

各网络设备及主机的IP 和MAC地址标注在图中:

假设PC0 : 10.1.10 ping Laptop1:11.1.1.15,他们不在同一个网段 ,看下路由器路由选择及数据包封装变化的过程,进一步巩固理论知识。

1:PC0创建ICMP (Intenet Control Message Protocol)数据请求包;

2:ICMP 将这个有效负荷(数据包)交给IP协议,IP协议也创建一个包,协议字段为 1,意思为:当Laptop1收到数据包时,告诉它将个数据包交给ICMP协议处理;

3:IP 判断目的IP 不属于本地网段,IP协议创建的数据包被发送到网关中,网关就好比不同网络通信的一扇门,只有通过网关,PC0 的数据包才能发送给Laptop1;

4: 本地网段,主机之间只能通过MAC地址通信,所以PC0 给网关路由器发送数据包,必须知道网关的MAC地址,假定PC0的ARP缓存中有默认网关的MAC地址,否则需要广播ARP 询问网关MAC地址。此时PC0 知道了网关的MAC地址,数据包被释放,传递到数据链路层并生成帧;

详细的过程如下图所示:

5:完成数据帧的封装后,传递到物理层,假设通过双绞线以0,1bit流逐位传输到物理介质;

6:以上步骤有主机PC0完成,接下来是路由器的处理过程:R2 查看这个帧的以太网类型字段,了解了在网络层上采用的协议IP,抽取出数据包,其余内容丢弃,交于IP协议处理;

7:IP协议检查目的IP地址,若目标地址不匹配任何路由,则发送“目标地址不可达”的出错信息给主机PC0;

8:R2转发数据包: Fa0/0 口收到数据包后经过路由(0.0.0.0/0 via 192.168.1.11)到达R3 Fa0/0 (11.0.0.0网段),此时数据帧封装变化为:源MAC地址为R2的Fa1/0口MAC,目的MAC为R3的Fa1/0口地址;

9:R3 Fa0/0 到Laptop1: R3对应接口的缓冲区需要了解目的主机的MAC地址。由于数据包中包含目的IP,R3检查ARP缓存表,找到Laptop0的MAC地址,该数据包和Laptop0的MAC地址被传输到数据链路层,重新生成帧。

10:Laptop0 接收到数据帧后执行校验后,检查MAC地址是否与自己的MAC地址相同,取出数据包,把数据包传递给IP协议处理。IP数据包封装的是一个ICMP回应请求,把这个数据包交给ICMP处理,ICMP应答请求,丢弃这个数据包并迅速生成一个新的有效负荷作为回答,重复上面的步骤,直到PC0收到回应,通信结束。

发布了92 篇原创文章 · 获赞 55 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/elie_yang/article/details/99105472