Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14496
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 35
  • 用 户 组: 普通用户
  • 注册时间: 2015-08-24 14:32
个人简介

铭记自己最初的向往

文章分类

全部博文(3)

文章存档

2016年(1)

2015年(2)

我的朋友
最近访客
arp

分类: 网络与安全

2015-09-25 10:00:40

1.ARP协议(Address resolution protel)地址解析协议,是获取物理地址的一个TCP/IP协议。将ip寻找到对应的mac地址

2.ARP报文格式
     


(1)Dest MAC:目的MAC地址

(2)Src MAC:源MAC地址

(3)帧类型:0x0806

(4)硬件类型:1(以太网)

(5)协议类型:0x0800(IP地址)

(6)硬件地址长度:6

(7)协议地址长度:4

(8)OP:1(ARP请求),2(ARP应答),3(RARP请求),4(RARP应答)

3.ARP模拟演示

其中PC0配置的ip是172.20.223.30,mask是255.255.0.0,网关是:172.20.223.254

PC1配置的ip是192.168.1.1,mask是255.255.255.0,网关是:192.168.1.254

路由器的左边配置的是172.20.223.254,右边配置是192.168.223.254

用PC0电脑ping 电脑 PC1时,PC0找不到ip对应的mac地址,就会发送arp广播包,


4.arp报文包

//ARP请求或应答的数据结构

struct arp_packet {

////以太网首部

u_char dmac[6];//目标MAC地址

u_char smac[6];//源MAC地址

u_short type;//帧类型

////ARP报文

u_short ar_hrd; //硬件类型

u_short ar_pro; //协议类型

u_char ar_hln; //硬件地址长度

u_char ar_pln; //协议地址长度

u_short ar_op; //ARP opcode (command)

u_char ar_sha[ETH_ALEN]; //发送端以太网地址

u_char ar_sip[4]; //发送端IP地址

u_char ar_tha[ETH_ALEN]; //目的端以太网地址

u_char ar_tip[4]; //目的端IP地址

u_char padding[18]; //填充 (padding)

//...


};

4.通过wireshark抓包得到
        0000     ff   ff   ff   ff    ff   ff    00   19    06   ea   b8   c1   08  06  00  01
        
0010    08  00  06  04  00  02   00   19   06   ea   b8   c1   c0  a8  7b  01
        
0020    00  00  00  00  00  00   c0   a8   7b   01

根据定义,头6个字节是以太网目的地址 ff ff ff ff ff ff 这是一个广播地址,全网下的所有终端都能接收到,紧跟着的6个字节是以太网源地址,即发送者的MAC地址(是我的MAC地址)。帧类型0806占两个字节,到这里以太网帧头就结束了。0806指的是后面的数据是属于arp包的。

接着分析ARP包头。头两个字节是硬件类型 00 01,接着两个字节是协议类型,即ARP使用的是IP协议代号08 00硬件地址长度和协议地址长度分别是64。这与ARP报文格式是对应的。后面的2个字节OP指示当前包是请求包还是应答包,对应的值分别是0x0001和0x0002。原始数据里是00 02所以这是一个应答包,然后6个字节又是发送者MAC地址00 19 06 ea b8 c1 ,后面4个字节是发送者IP地址c0 a8 7b 01 ,转换成点分十进制格式即192.168.123.1,这是我的IP,接下来的6个字节留空,00 00 00 00 00 00 在arp请求包里也可以是其他      数据,因为稍后IP地址为c0 a8 01 02(192.168.123.1)会把自己的MAC地址填充进这6个字节中。
     填充完后,arp包里的发送者硬件地址|目标硬件地址和以太网首部的以太网目的地址|以太网源地址正好对调。最后把这个封装好的ARP包发送出去,这样一个来回就可以让两台终端互相知道对方的IP和MAC。

阅读(1253) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~