首先假设所有设备接入设备很久且无再次通信(免费ARP产生的ARP缓存表已经老化,现PC1及路由器的ARP缓存表均已经为空,但是这些广播使得交换机的MAC地址表已经全部形成)
1.PC1 -->百度(www.biadu.com)
PC1需要封装
S-IP:192.168.1.10
D-IP:(未知,但已知其域名) -> 经过下述1.1得到百度IP地址110.242.69.21
S-MAC:AA
D-MAC: (未知) -> 在获得到目的IP后发现,不在同一网段,应先寻找网关,网关MAC经过1.1.1得到XX
1.1通过DNS服务器查询百度域名所对应的IP地址
PC1需要封装
S-IP:192.168.1.10
D-IP:114.114.114.114(PC1已配置DNS服务器IP地址)
S-MAC:AA
D-MAC: (未知) -> 在这里经过PC1分析发现源目IP不在同一网段,应先寻找其网关,但网关 MAC仍然未知 -> 经过1.1.1得到网关MAC :XX
经过上述步骤到达网关
1.2网关访问下一跳路由
网关路由需要封装(拆二看三)
S-IP:192.168.1.1(网关只看不拆)
D-IP:114.114.114.114(网关只看不拆)
S-MAC:YY(网关重新封装,通过查询路由表找到下一跳的出接口及其下一跳路由IP)
D-MAC:未知 -> 此时又要通过ARP地址解析协议(通过路由表已知目的IP)找到目的MAC,步骤和1.1.1类似不再赘述,这里求得目的MAC为ZZ,并且网关路由将下一跳路由对应的IP和MAC计入ARP缓存表,同样下一条路由也将网关路由的IP和MAC地址计入自身ARP缓存表
1.3下一跳路由访问DNS服务器
下一跳路由需要封装
S-IP:192.168.1.10(下一跳路由只看不拆)
D-IP:114.114.114.114(下一跳路由只看不拆)
S-MAC:EE(下一跳路由重新封装,通过查询路由表发现是直连路由即下一跳就是目的IP,从路由表中可得到到目的IP的出接口,老师这里并未在图中给出 出接口MAC这里假设为EE)
D-MAC:未知 -> 此时又要通过ARP地址解析协议(通过路由表已知目的IP)找到目的MAC,步骤和1.1.1类似不再赘述,这里求得目的MAC为FF(同样老师没有给出假设为FF),并且下一跳路由将DNS服务器对应的IP和MAC计入ARP缓存表,同样DNS服务器也将下一跳路由的IP和MAC地址计入自身ARP缓存表
到这里PC1已经成功访问到DNS服务器,DNS服务器在回复PC1的过程中,由于ARP缓
存表已经完善,所以回复时可省去所有的ARP步骤(速度很快未老化)剩下的按照逆路
程返回即可,源目IP源目MAC和以前相反不再赘述。
到这里PC1已经得到了百度的IP地址110.242.69.21,并将其计入PC1的DNS缓存表中
1.1.1通过ARP地址解析协议寻找网关MAC
PC1需要封装(ARP请求报文-广播)
S-IP:192.168.1.10
D-IP:192.168.1.1(PC1已配置网关IP地址)
S-MAC:AA
D-MAC:全FF(广播报文)
通过交换机的泛洪发送我是IP:192.168.1.10;MAC:AA请问IP为192.168.1.1的MAC是多少,在网关收到发现询问的是自己时会单播回复自己的MAC给 PC1,并且路由网关会将PC1的IP及其MAC计入自己的ARP缓存表中
网关路由需要封装(ARP回应报文-单播)
S-IP:192.168.1.1
D-IP:192.168.1.10(网关通过ARP请求报文已知)
S-MAC:XX
D-MAC:AA(网关通过ARP请求报文已知)
PC1收到回复后会将网关IP及其MAC计入自己的ARP缓存表中
2.1 PC1 -->百度(110.242.69.21)
PC1需要封装
S-IP:192.168.1.10
D-IP:110.242.69.21
S-MAC:AA
D-MAC:XX(通过分析不在同一网段应该先访问网关,网关MAC已在ARP缓存表中)
2.2网关->下一跳路由
网关需要封装
S-IP:192.168.1.10(网关只看不拆)
D-IP:110.242.69.21(网关只看不拆)
S-MAC:YY(网关重新封装,通过查询路由表找到下一跳的出接口及其下一跳路由IP)
D-MAC:ZZ(网关重新封装,通过ARP缓存表找到下一跳路由IP所对应的MAC)
2.3下一跳路由->百度
下一跳路由需要封装
S-IP:192.168.1.10(下一跳路由只看不拆)
D-IP:110.242.69.21(下一跳路由只看不拆)
S-MAC:CC(下一跳路由重新封装,通过查询路由表发现为直连路由下一跳即可到达目的IP, 并找到出接口)
D-MAC:未知 此时又要通过ARP地址解析协议(通过路由表已知目的IP)找到目的MAC,步骤和1.1.1类似不再赘述,这里求得目的MAC为DD,并且下一跳路由将百度对应的IP和MAC计入ARP缓存表,同样百度服务器也将下一跳路由的IP和MAC地址计入自身ARP缓存表
到这里百度服务器收到了来自PC1的消息,要对PC1进行回复,在回复过程中按原路程返回,此时源目IP,源目MAC全部相反,并且由于ARP缓存表的完善,不再进行ARP地址解析