ARP报文归属问题
2011-12-10 10:07
309 查看
ARP报文归属问题
偶然的一个机会,主管要求我对开发组进行一次“网络扫盲”的培训,在进行PPT整理过程中,对协议归类的时候,我被一个问题纠结了,ARP报文到底属于哪一层协议?或者说它工作在那一层?我在网上搜了一下,也是众说纷纭。我们都知道,ARP是为了解决IP地址和MAC地址之间的映射问题,当目的IP地址无法找到对应的MAC地址的时候,会触发ARP报文 ,ARP会发送一个局域的广播,如果在一个网段内,那么它将返回目的IP的MAC地址,如果不在同一个网段那么它将返回此网段网关的MAC地址。从功能上看,它为了解决IP地址映射问题,出发点自然是相关的IP地址,我们很容易联想到,IP数据包头封装了ARP报文,传递下去之后在数据链路层发生广播,继而收到一条ARP映射,而被保存在arp缓存里面,这个过程看起来没有什么问题,但是我们仔细想想,既然是广播,那么就是不用经过路由,用IP封装起来是不是有点小题大作,当初的设计者不会没有想到开销会因此而增大许多。分析这么多,终归是分析,我们需要确切的证据。于是我抓了一个ARP报文,一切变的简单。
这是一个完整的ARP报文,它被封装在数据链路层里面,它发送一个广播地址FFFFFFFFFFFF,发送者的MAC地址000C2994CC2E,广播之后将收到的MAC地址写入缓存并封装至数据帧,整个过程都是在数据链路层进行的。那么它属于数据链路层实至名归。虽然ARP协议随着IPv6的普及会渐渐消失在我们的视野中,但是目前它还是扮演着很重要的角色,了解它还是很有必要。
本文出自 “俞子晨-IT之路” 博客,请务必保留此出处http://zichen.blog.51cto.com/996824/738454
相关文章推荐
- 关于ARP报文封装在哪里的归属问题
- ARP 报文格式 完全解析
- GPRS封装数据报文怎样将数据传入数据库问题
- 使用tcpdump观察ARP通信过程和ARP报文详解
- [java面试]javascript中dom取值问题radio名字一样归属于同一个组,求点击的是哪一个
- js中程序员的迷茫,this的归属问题
- 利用Sniffer分析 ARP报文
- Linux网桥端口的arp问题
- ARP/RARP协议报文格式
- 发送StringBuffer报文后追加一倍空格问题
- SpringMVC 解决IE8浏览器把返回报文格式application/json当文件下载的问题
- ARP经典问题
- 关于LVS的ARP问题
- 一次ARP问题的Troubleshooting
- 零拷贝报文捕获要解决的几个问题,和现有的实现方法
- java socket解析和发送二进制报文工具(附java和C++转化问题)
- ping不通某ip, 但向它发arp请求居然有响应?--- 谈谈一个奇葩非问题的定位过程
- 解决axis2 wsdl与请求soap报文中字段顺序不一致的问题:Unexpected subelement XXXX
- Android收发UDP报文详解 及 优雅解决接收不到问题