ARP协议

    arp(address resolution protocal)协议是tcp/ip协议簇中的一个协议,其实可以把它归到链路层协议,也可以归到IP层协议,这里就把它作为IP层协议来讨论。其在IP层协议中的位置如下图所示

  •     为什么会有arp协议?(即arp协议存在的意义)

            我们知道在计算机网络中有OSI七层协议,简化后分为五层,从底层到高层分别是:物理层、链路层、网络层、运输层、应用层。对于我们要在网络中传送的信息,相对于每一层我们都有相对应的逻辑对象描述,比如在链路层我们称要发送的信息为帧,在网络层为报文。在逻辑思维上理解信息在每一层上的传递给我们分析解决问题带来了极大的便利。但是,我们知道,带给我们思维上的便利有时并不能减少现实实现上的便利。

            我们仅从网络层考虑这么一个问题——ip报文需要知道目的主机的ip地址,但仅仅知道ip地址实际上并不能将报文准确地送达目的主机。原因在于信息在实际的物理接收中并不是只靠逻辑地址(即ip地址),而是通过(ip地址+物理地址)才能最终确定送达的主机——ip地址只是逻辑地址,一个设备的真正标志地址是物理地址。这里,ip地址和物理地址也就具有了某一时刻的一一对应关系,而arp协议解决的就是这个ip地址和物理地址的对应关系确认问题。换言之,arp协议解决通过ip地址知道物理地址,或者通过物理地址知道ip地址的一个协议。

  •      arp协议工作过程

             首先需要明确两点

    1. arp协议工作范围是局域网

    2. 主机中有arp高速缓存区,其中保存有局域网内主机ip地址和对应的物理地址 

             当arp高速缓存区为空,即主机刚接入局域网时,主机通过多播形式向局域网上的其他主机发送arp请求分组询问目的ip的物理地址。比如,请求形式可以形象地理解为——“我的ip为1.2.3.4,物理地址为00-11-22-33-44-55,想知道ip为2.3.4.5的物理地址”;然后局域网上的各主机上运行的arp进程收到请求分组后,检查自己的ip是否为2.3.4.5,如果不是,不管这个请求分组,如果是,则将源ip和物理地址记录在自己的arp缓存中,然后将自己的ip和物理地址通过单薄播形式发送给源目的主机。通过这种单播和多播的形式,逐渐建立一个局域网上的ip和物理地址的对应关系。

            最后,值得一提的是,arp高速缓存中的每个ip和物理地址的对应关系都设置有“生存时间”,比如1min到10min,超过生存时间没用到这一ip和物理地址,该对应关系从arp高速缓存中删除。这样做的目的有:①防止arp高速缓存项目数过多,影响性能;②有利于更新ip和物理地址的对应关系。

  • arp协议在win7上的表现

    可以通过命令行输入arp -a查看本机上的arp高速缓存的内容。

     


    ​    ​arp协议介绍就先到这里。以上全为个人对arp协议的理解,肯定还有理解片面之处。有错误纰漏之处还请读友们严正指出,一起交流进步,感谢。

原文地址:https://www.cnblogs.com/alex-huang-blogs/p/4545874.html