ICMPredirect数据包序列

我有一个观察,我不能向其他人解释有关icmpredirect。

我已经添加了一个networking路由到主机H1的目标D1为ICMPredirect通过redirect路由器R2。 像往常一样,主机H1(IP电话)连接到同一networking中的R1和R2。 另外R1是H1的默认网关(禁用DHCP和静态configuration的IP设置进行此设置)。

因此,在我的情况下,前两个数据包的icmp ip数据包序列(通过wireshark获得)如下(从H1到D1的ping):

A)H1到D1的第一次ping请求:

1)H1 ==> R1

2)R1 ==> H1

(第二个序列是从R1到H1的networkingredirect数据包,指示H1应该使用R2作为D1的redirect路由器)

3)R1 ==> R2

(第三个序列被分组转发到R2)

B)H1到D1的第二次ping请求:

1)H1 ==> R1

2)R1 ==> H1

(第二个序列是从R1到H1的networkingredirect数据包,指示H1应该使用R2作为D1的redirect路由器)

3)R1 ==> R2

(第三个序列被分组转发到R2)

4)H1 ==> R2

(H1的数据包现在直接通过R2路由)

第三个及后续的icmp ping序列如下所示:

H1 ==> R2(来自H1的数据包现在通过R2直接路由)

在上面的序列中,为什么第二个ping数据包仍然会进入R1,而不是像第三个和后续的序列那样直接进入R2。

非常感谢。 我是一个非常新的networking,所以请在提问的时候请原谅我的错误。

最好的祝福,

迪帕克