码迷,mamicode.com
首页 > 其他好文 > 详细

地址解析协议(ARP)

时间:2019-03-18 20:00:26      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:ip数据报   报文格式   进程   字节   51cto   数据包   size   硬件   自己   

一. 作用:

地址解析协议是用来提供ip地址与硬件地址之间的动态映射的

二 . 报文格式:

技术图片

字段 字段说明
以太网目的地址 目的地的硬件地址(mac地址),全为1的话代表是广播地址,电缆上所有以太网接口都要接受此数据帧
-------- --------
以太网源地址 发送方的硬件地址
-------- --------
帧类型 对于arp请求或应答,该字段的值为0x0806
-------- --------
硬件类型 硬件地址类型 1代表以太网地址
-------- --------
协议类型 要映射的协议地址类型 0x800代表IP地址 ,它的值与包含IP数据报的以太网数据帧的类型字段值相同,有意设计的
-------- --------
硬件地址长度 mac地址为6字节
-------- --------
协议地址长度 IP地址为4字节
-------- --------
操作字段 在报文中占2个字节,1表示ARP请求,2表示ARP应答,3表示RARP请求,4表示RARP应答
-------- --------
发送端以太网地址 发送方的硬件地址
-------- --------
发送端ip地址 发送方ip地址
-------- --------
目的端以太网地址 目的端的硬件地址
-------- --------
目的IP地址 目的端ip地址

前三个字段代表的是以太网首部站14字节,后面的字段代表arp请求或应答的数据帧占28字节,这里面有些字段是重复的。

三.arp请求过程

首先明确arp是发生在局域网内的。
当A主机要向B主机发送ip数据报,首先会在本机的arp缓冲表中查看有无此ip所对应的硬件地址,如果有就查出来写入数据报中,如果没有就启动arp进程,在局域网上广播一个arp请求,请求内容大致意思是:
我是ip:xx.xx.xx.xx(A主机的ip)
我的硬件地址是 mac:xx.xx.xx.xx.xx.xx,
我想知道ip:xx.xx.xx.xx(B主机的ip)的硬件地址是多少
局域网上所有主机都会收到这样一个请求
如果存在主机B,主机B就会接受请求,并更新自己的arp缓存,其余的主机会丢弃这个包。主机B将自己的mac地址写入响应包,将数据包类型改为响应类型,将目的地址改为源地址,然后通过单播的方式发送给主机A,主机A接受到响应包会进行更新arp缓存,并将mac地址写入ip数据报。

地址解析协议(ARP)

标签:ip数据报   报文格式   进程   字节   51cto   数据包   size   硬件   自己   

原文地址:https://blog.51cto.com/10972685/2364929

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!