科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道路由交换用最简单网络 学习IP和ARP协议

用最简单网络 学习IP和ARP协议

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

来源:51CTO 2011年5月13日

关键字: TCP/IP协议 arp协议

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

  5、执行完添加静态路由的命令后,在PC1中再次执行命令"route print"后,发现PC1的路由表中,已经包含了到网络172.16.0.0/16的路由,如图7所示。

  

(图7  PC1路由表中包含了到PC2网络的路由)

 

  (图7 PC1路由表中包含了到PC2网络的路由)

  6、既然PC1中的路由表中已经包括了到达网络172.16.0.0/16的路由,那是不是在PC1上就能ping通172.16.1.1了?结果如图8所示,这时PC1还是不能ping通PC2。

  

(图8 在主机PC1上还是ping不通PC2)

 

  (图8 在主机PC1上还是ping不通PC2)

  这是因为,虽然PC1路由表中包含有到PC2的路由,这样在PC1上发送具有目的IP地址是172.16.1.1的ping包时,数据包能够到达PC2。但是当PC2收到ping包后,PC2依据ping的性质,还要把ping包再发送回PC1,在PC1收到PC2返回的ping包后,一个完整的ping过程才结束。

  但是当PC2发送ping包前,它在自己的路由表中要查找,有没有到达目的网络地址是10.0.0.0/8的路由,但是它没有找到这项路由。在这种情况下PC2就自动丢弃了这个ping包,所以PC1也就收不到由PC2返回的ping包,自然也就有了图8所示的结果。

  7、不过这时在PC1上,也发生了一个明显的变化。当再次在命令行中执行命令"arp -a"后,发现PC1的ARP表中多了一项IP地址172.16.1.1和PC2的MAC地址的绑定项,如图9所示。

  

(图9  PC1中已有了包含PC2的ARP表项)

 

  (图9 PC1中已有了包含PC2的ARP表项)

  这是因为,当在PC1上执行"ping 172.16.1.1"命令后,PC1首先在路由表中找到了到达网络172.16.0.0/16的路由表项,然后就对数据包进行三层封装。当三层封装完成后,PC1就要根据172.16.1.1对应的MAC地址,对数据包进行二层封装。这是因为只有把正确的MAC地址封装进数据帧后,数据包才能在以太网中被正确的送达目的地,因为在以太网中只依据二层MAC地址,而不是三层IP地址传输数据。但这时当PC1在ARP表中查找172.16.1.1的MAC地址时,它并没有找到。

  这时PC1就会发出一个广播包,询问谁有IP地址172.16.1.1的MAC地址,当PC2收到这个广播包后,发现172.16.1.1这个IP地址和自己的IP地址一样,就给PC1返回一个数据包,数据包中就包括有和172.16.1.1对应的MAC地址,当PC1收到这个数据包后,就会在自己的ARP表中添加与IP地址172.16.1.1对应的MAC地址表项,所以当再次执行"arp -a"命令后,就能看到多了这一项。

  那为什么第一次执行"arp -a"命令时,PC1的ARP表中没有与172.16.1.1对应的MAC地址绑定呢?因为第一次在PC1上执行ping 172.16.1.1命令时,PC1在路由表中没有找到与网络172.16.0.0/16对应的路由,这时PC1就自动放弃了封装三层数据包的行为,既然三层数据包都没有进行封装,就更谈不上在PC1中进行二层封装了,所以PC1也就没有必要知道与172.16.1.1对应的MAC地址了,也就没有再发送一个广播包询问与172.16.1.1对应的MAC地址。所以,第一次执行"arp -a"命令时,PC1的ARP表中并没有与172.16.1.1对应的MAC地址表项。

  8、既然现在知道在PC1上ping不通PC2是因为,在PC2上没有到达网络10.0.0.0/8的路由,那现在就在PC2上添加一条静态路由,如图10所示,格式和在PC1上添加到网络172.16.0.0/16的路由格式是一样的。

  

(图10 在主机PC2上添加静态路由)

 

  (图10 在主机PC2上添加静态路由)

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章