Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1375515
  • 博文数量: 244
  • 博客积分: 10311
  • 博客等级: 上将
  • 技术积分: 3341
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-14 21:50
文章分类

全部博文(244)

文章存档

2013年(6)

2012年(5)

2011年(16)

2010年(11)

2009年(172)

2008年(34)

分类: LINUX

2009-02-27 11:24:58

  假设网络中有两个节点A和B,如果A需要把IP数据包通过网络发送到B,那么A首先在自己的缓存中搜索和B关联的表目,如果查找成功,就使用表中对应的MAC地址来发送数据;如果查找关联表目失败,A就生成一个以太网的广播帧,并在帧中填入A的IP地址、A的MAC地址、B的IP地址、协议类型等字段,形成一个ARP请求帧。

  B接收到A发出的ARP请求(广播)帧后,首先根据A的信息刷新自己的ARP缓存,以节省不必要的ARP通信,然后生成一个ARP应答帧,在其中填入B的MAC地址,并把应答帧通过以太网发送回A。A将B的ARP信息写入高速缓存,完成一次ARP请求和应答过程。

  即使没有发送ARP请求,当收到任何格式正确的ARP应答帧时,也要对此帧作出响应,刷新自己ARP缓存中的相应表。

  ARP报文格式如表所示。

ARP报文格式如表

  表中每行为32个二进制位,也就是4个8位组。硬件类型字段(2字节)指明了发送方想知道的硬件接口类型,以太网对应数值为十六进制“0001”。协议类型字段(2字节)指明了发送方提供的高层协议类型,P协议对应数值为十六进制“0806”。硬件地址长度字段(1字节)和逻辑地址长度字段(1字节)指明了硬件(2字节)地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意高层协议的网络中使用。操作字段(2字节)指明了ARP帧所进行的操作类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4。发送和接收端硬件地址字段(6字节)为相应机器的物理MAC地址,发送和接收端IP地址字段(4字节)为相应的高层IP地址。

  以下是捕获的一个ARP请求帧和一个ARP应答帧,它显示了当IP地址为192.168.1.23的A访问IP地址为192.168.1.1的B时,A通过广播帧发出ARP请求并得到B的应答帧的过程。

  ****A(192.168,1.17)的ARP请求报文


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