关于L3 ping过程的典型面试题

1. 描述一下相同局域网内刚上电的A-ipa机器ping B-ipb机器的过程。

在A机器中,输入ICMP命令行之后,会调用ICMP模块去构建ICMP request,通过IP报文的socket发送,参数ip-src=ipa、ip-dst=ipb。

IP层会去构建IP包,A机器刚上电,路由表、邻居表为空。IP层检查这个发送报文的请求,发现是给相同局域网内机器发送IP包(也就是dst-ip/mask在自己的局域网内),于是需要在邻居表中查找,初始时候邻居表为空,于是需要ARP协议辅助。

ARP模块(http://blog.csdn.net/luobin1984/article/details/12153099)在局域网内采用广播的方式发送ARP包,<mac-dst=FF、mac-src=amac、pt=ip、op=request、sha=amac、spa=ipa、tha=FF、tpa=ipb>。获取到ipb-macb的映射之后,存入邻居表。

这时IP层可以使用邻居表中的映射,将ICMP request发送出去了。


2. 描述一下不同局域网内ping过程。

L2过程就是上面的过程,不在分析,现在分析L3过程。A机器使用ICMP模块构建request时候,发现ipb是非本局域网内ip,所以需要使用本局域网内的GW转发。也就是在A的路由表中,需要有一条默认到GW的路由,如果没有那么发送就会失败,ICMP返回destnation-host unreachable(ICMP错误http://blog.csdn.net/inject2006/article/details/2139200)。

这时管理员在A机器上手工配置上一条默认路由,于是ICMP request可以从A发送到GW上。在GW上有B网段GW的ip地址,这时通过OSFP、BGP等协议学习或者手工配置,假设GW之间能够发送,于是ICMP request发送到B机器的网段的GW上,然后相同的过程发送给B。

猜你喜欢

转载自blog.csdn.net/batmancn/article/details/51441091
今日推荐