ARP协议

ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议。

ARP数据报的格式如下:
在这里插入图片描述

其中各字段的含义如下:
以太网目的地址:是广播报,目的是让同一个局域网上所有主机都收到ARP请求包;
以太网源地址: 就是发送端地址;
硬件类型指链路层网络类型,1为以太网;
协议类型指要转换的地址类型,0x0800为IP地址;
硬件地址长度对于以太网地址为6字节;
协议地址长度对于和IP地址为4字节;
op字段为1表示ARP请求,op字段为2表示ARP应答;
( 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。)

ARP协议作用:
ARP协议建立了主机 IP地址 和 MAC地址 的映射关系.
(1)在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;
(2)数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
(3)因此在通讯前必须获得目的主机的硬件地址;

ARP工作过程如下:
(1) 每一台主机都会在ARP cache缓冲区建立一个ARP表格,用来记录IP位置和实体(MAC)位置的对应关系,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效。这个表的每一条资料会根据自身的存活时间递减而最终消失,以确保资料的真实性。
(2) 当源主机要发送数据包给目的主机的时候,会检查自己的ARP列表中是否存在该IP地址对应的MAC地址,如果有,直接将数据包发送到这个MAC地址,如果没有,就向本地网络发起一个ARP请求的广播包(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),查询目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址,硬件地址,以及目的主机的IP地址。
(3)网络中所有主机接收到这个请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包,如果相同该主机将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP列表中已存在该IP信息,则将其覆盖。然后给源主机发送一个ARP相应数据包,告诉对方自己是它需要查找的MAC地址,源主机收到这个ARP响应数据包后,将得到的MAC地址和IP地址添加到自己的ARP列表中,并利用此信息开始传输。如果源主机一直没有接收到ARP的响应数据包,表示ARP查询失败。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值