ARP实例分析

以下是一道ARP的试题,非常经典~

题目如下:PC1向PC2发送数据,全部都是初始化,之间的细节请描述清楚!


1.当PC1要往PC2发送数据时,发现目的地址跟本地地址不在同一个网段,所以发向网关,此时,PC1不知道网关的mac地址,所以发送广播arp(问192.168.0.254这个ip地址的mac是多少)

2.广播arp到达switch1后,发现cam表中没有此记录,所以把此广播arp发向除源接口之外的所有端口

3.当路由器收到这个arp后,发现跟自己的ip一样,所以路由器响应arp请求,并以单播形式回复一个arp响应(告知这个ip的mac是我E0的端口)

4.此单播arp响应到达switch1,switch1在cam表中建立项目,从某端口(跟router直连的端口)出去可以到达这个mac地址,建立表项后,又把此响应传到PC1上

5.PC1收到后,把此网关mac地址加入数据包中,以数据包的形式发送出去

6.switch1收到此数据包后,查找cam表,发现有此mac记录,并从相应的端口转发到router

7.router收到后,根据目标地址查找路由表,发现从E1口出去可以到达192.168.1.0/24这个网段,所以数据包被发送到E1口,源mac地址被改成E1的mac地址,源ip不动。此时router要向PC2发送数据包,但没有相应的mac地址,所以发送arp广播,查找PC2的mac地址

8.switch2收到后,发现cam表中没有此mac记录,所以把广播arp发向除源接口之外的所有端口

9.PC2收到后,发现是自己的ip,所以发出单播arp响应,告知这个ip的mac地址是我PC2

10.switch2收到后,记录mac地址,告知从连接PC2的端口出去能到达这个mac地址,并把响应继续传播

11.此时router收到后,把此mac地址加入数据包并转发出去

12.到达switch2后,根据cam表把数据包从相应端口转发出去,这时,数据包到达PC2

从PC2向PC1回应的过程跟以上过程意思一样,主要是利用arp广播获得mac地址,并记录到switch的cam表中,然后根据cam表做相应转发。数据转发的基础就是mac地址,所以在转发前,必须得到目的mac地址。

0
你可以留言,或者trackback 从你的网站

留言哦