2层以上组网PING报文传输过程分析
组网结构如图所示:
PC1的路由配置如下:
PC2的路由配置
R1路由表配置路由如下:
R2路由表配置路由如下:
R3路由表配置路由如下:
PC1 ping PC2(192.168.4.2)过程如下:
1) 封装icmp回显请求报文和IP头部
2)PC1用自己的掩码与PC2的IP做与运算,发现PC1和PC2不在同一个网段,需要进行三层转发,查询PC1的路由表,没有指向该网段的路由,
需要将该报文发送到默认网关R1 A1口的IP,PC1查询ARP表,找不到 R1 A1口的MAC地址,触发ARP学习
3)在自己网段,PC1广播ARP请求
4)R1 A1口收到PC1发送的ARP请求,更新ARP表和路由表,解析DI发现是自己的IP,在收到的ARP请求帧上修改,填充DM,交换DM和SM以及DI和SI,向PC1发送ARP应答
5)PC1收到R1 A1口返回的ARP应答,更新自己的路由表和ARP表,封装ICMP数据包 、IP头部、以太网头部,发送到R1路由器
6)R1 A1收到ping报文,判断DM与自己的mac地址相同,拆除以太网头部,在IP层解析IP,查询自己的路由表,匹配自己的路由表项,发现与192.168.4.0/24网段匹配,下一跳IP为R2 B1 IP,设备口为A2,查询自己的ARP表,如果找不到R2 B1 IP的IP,则触发ARP学习,
7)过程同3)和 4)
在192.168.4.0网段,R1广播ARP请求
R1收到R2返回的ARP应答
8)R1 A2口接受arp报文请求,发现mac地址与自己相同,解析arp协议,更新路由表和arp表,封装icmp报文、ip头和以太网头部,发送ping报文
9)R2 B1口接受到ping报文,判断DM与自己的mac地址相同,拆除以太网头部,在IP层解析IP,查询自己的路由表,匹配自己的路由表项,发现与192.168.4.0/24网段匹配,下一跳IP为R3 C1 IP,设备口为B2,查询自己的ARP表,如果找不到R3 C1 IP的IP,则触发ARP学习,
过程同6)、7)、8)
10) PC2 收到R3 C2口发送的ping报文,更新PC1 IP到自己的路由表,IP层解析DI与自己相同,构造ICMP回显报文应答,封装IP头部,查找路由表,命中,下一跳为R3 C2 IP,查找arp表,命中,封装以太网帧,发送ping报文响应
11)R3 R2 R1收到ping报文响应,都需要ip层解析DI,查询路由表,命中后,根据下一跳IP查询arp表,获取对应的MAC地址,修改以太网帧DM
12)最终PC1收到了PC2发送的响应报文,IP层解析后,将PC2 IP更新到路由表,处理ping响应报文。
13)PC1 再次向PC2发送PING报文时候,这时ARP表和路由表的信息已经完善了,如图所示:
PC1的路由表
PC1的arp表
PC3的路由表
PC3的arp表