分享

ARP帧格式

 缘木求鱼001 2012-09-27
 
ARP帧格式 
//////////////////////////////////////////////////////////////////////////////// 
 
大概了解一下ARP协议。ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写, 
它的作用是将IP地址转换成物理地址(就是常说的MAC地址),其详细过程参考《TCP/IP详解 卷一》。 
协议ARP的分组格式如下: 
------------------------------------------ 
以太网目的地址(6个字节) 
以太网源地址(6个字节) 
帧类型(ARP = 0806)(2个字节) 
------------------------------------------ 
硬件类型(Ethernet=01)(2个字节) 
协议类型(IPv4=0800)(2个字节) 
硬件地址长度(1个字节) 
协议地址长度(1个字节) 
OP操作选项(ARP request=01,ARP reply=02)(2个字节) 
发送端以太网地址(6个字节) 
发送端IP地址(4个字节) 
目的以太网地址(6个字节) 
目的IP地址(4个字节) 
-------------------------------------------- 
//////////////////////////////////////////////////////////////////////////////// 
我们向目标主机发送一个ARP请求,如果目标主机处于活动状态则会返回其MAC地址, 
如果对方返回MAC地址,则表明对方处于活动状态,这样达到探测目的。 
 
ARP请求包内容如下: 
------------------------------------------ 
以太网目的地址 |FFFFFFFFFFFF(广播地址) 
以太网源地址 |本地MAC地址 
帧类型 |0806 
------------------------------------------ 
硬件类型 |01 
协议类型 |0800 
硬件地址长度 |06 
协议地址长度 |04 
OP操作选项 |01 
发送端以太网地址|本地MAC地址 
发送端IP地址 |目标主机IP地址 
目的以太网地址 |000000000000 
目的IP地址 |目标主机IP地址 
-------------------------------------------- 
//////////////////////////////////////////////////////////////////////////////// 
注意:这里以太网目的地址为FFFFFFFFFFFF,这是广播地址, 
以太网上所有主机都能收到这个包,在收到这个数据包后, 
操作系统判断目的IP地址是不是这台主机,如果不是则丢弃(不作处理), 
否则发送回一个ARP应答包, 
包的内容如下: 
------------------------------------------ 
以太网目的地址 |探测主机的MAC地址 
以太网源地址 |本地MAC地址 (这里本地指被探测主机) 
帧类型 |0806 
------------------------------------------ 
硬件类型 |01 
协议类型 |0800 
硬件地址长度 |06 
协议地址长度 |04 
OP操作选项 |02 
发送端以太网地址|本地MAC地址 (这里本地指被探测主机) 
发送端IP地址 |本机IP地址 (这里本地指被探测主机) 
目的以太网地址 |探测主机的MAC地址 
目的IP地址 |探测主机的IP地址 
-------------------------------------------- 
//////////////////////////////////////////////////////////////////////////////// 
请求包: 
8c:21:0a:ed:88:a2    Broadcast    ARP    60    Who has 192.168.1.109?  Tell 192.168.1.1 
格式: 
ff ff ff ff ff ff //broadcast 
8c 21 0a ed 88 a2//srcmac 
//12 
 
08 06 
00 01 
08 00 
06 
04 
00 01 //请求包 
//10 
 
8c 21 0a ed 88 a2 //srcmac 
c0 a8 01 01 //srcip 
00 00 00 00 00 00 //destmac 
c0 a8 01 6d//destip 
//20 
//以上合计42 
 
 
8c 21 0a ed 88 a3 
28 6e f0 dc e2 85 
cf 2c 8c 21 0a ed 
//18 
 
//////////////////////////////////////////////////////////////////////////////// 
请求包: 
e8:40:f2:9f:4f:20    Broadcast    ARP    60    Who has 192.168.1.1?  Tell 192.168.1.100 
格式: 
ff ff ff ff ff ff //s 
e8 40 f2 9f 4f 20 //d 
 
08 06 //arp //中间10个字节 
00 01 
08 00 
06 
04 
00 01 //q 
 
e8 40 f2 9f 4f 20 //s 
c0 a8 01 64 //s 
00 00 00 00 00 00 //d 
c0 a8 01 01 //d 
 
00 00 00 00 00 00 
00 00 00 00 00 00 
00 00 00 00 00 00 
 
//////////////////////////////////////////////////////////////////////////////// 
AsustekC_88:d5:87    8c:21:0a:ed:88:a2    ARP    42    192.168.1.108 is at e0:cb:4e:88:d5:87 
这个是回应包 
8c 21 0a ed 88 a2 
e0 cb  4e 88 d5 87 
 
08 06 00 01 
08 00 06 04 
00 02 
 
e0 cb  4e 88 d5 87 
c0 a8 01 6c 
8c 21 0a ed 88 a2 
c0 a8  01 01 
//合计42 
 
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多