arp协议

处于同一子网下的两台主机需要通信时,不仅需要对方的IP地址,还需要对方的MAC地址。
arp协议可用于网络层地址(IP地址)和链路层地址(MAC地址)间的映射。
假设有A主机192.168.31.2需要和B主机192.168.31.3通信,A已经知道B的IP地址了,接下来需要获取B的MAC地址,这个时候A查询arp表,如果没有对应主机B的表项,就会广播一个arp分组请求B的MAC地址,子网里除B外其他主机都不响应A,B则会将自己的MAC地址发送给A,那么A就能向B发送数据了。

arp表

打开命令行,输入" arp -a " ,你将会看到一些表,这就是arp表,不止一张表是因为每个网络适配器都有它自己的arp表。
每台主机或路由器在其内存中都有arp表,用来储存一些IP地址和对应的MAC地址。一般每个表项存活时间为20分钟。

arp分组格式

一个常见分组格式为

以太网首部IP首部TCP首部应用数据

而arp分组格式一般为

以太网首部(14byte)arp数据报(28byte)

从这个角度来讲,arp协议是一个网络层协议,因为它封装在以太网首部后。

接下来我们详细分析arp分组格式,arp分组一般有42byte,依顺序含义如下:
6 byte 目的MAC地址(广播地址为FF-FF-FF-FF-FF-FF)
6 byte 源MAC地址
2 byte 表示帧类型,0x0806表示是arp数据报
2 byte 表示硬件类型,0x00 01 指以太网接口
2 byte 表示协议类型,0x 08 00 指IP协议
1 byte 硬件地址长度(单位:字节)
1 byte 协议地址长度(单位:字节)
2 byte 表示操作类型,1表示arp请求,2表示arp响应
(6byte) 源链路层地址(不一定是6byte,因为有些网络不是以太网)
(4byte) 源网络层地址(不一定是4byte,因为网络层协议不一定是IP协议)
(6byte) 目的链路层地址(不一定是6byte,因为有些网络不是以太网)
(4byte) 目的网络层地址(不一定是4byte,因为网络层协议不一定是IP协议)

从arp数据报内容来讲,arp协议是一个链路层协议,因为一个网络层数据报里不该有链路层信息。

参考《计算机网络自顶向下方法》
参考 《TCP/IP详解,卷一:协议

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值