地址解析协议 ARP
来源:互联网 发布:知乎网易云音乐 编辑:程序博客网 时间:2024/06/11 19:43
基本功能
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。 另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。工作原理
ARP
ARP工作原理
6.如果在第1-3中被ARP病毒攻击,则服务器做出的反映就会被占用,源主机同样得不到RARP服务器的响应信息,此时并不是服务器没有响应而是服务器返回的源主机的IP被占用。
RARP 反向地址解析协议
反向地址解析协议用于一种特殊情况,如果站点被初始化后,只有自己的物理网络地址而没有IP地址,则它可以通过RARP协议,并发出广播请求,征求自己的IP地址,而RARP服务器则负责回答。这样无IP的站点可以通过RARP协议取得自己的IP地址,这个地址在下一次系统重新开始以前都有效,不用连续广播请求。RARP广泛用于获取无盘工作站的IP地址。
ARP缓存表查看方法及修改
ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp -a”就可以查看ARP缓存表中的内容了,如附图所示。
arp -a
用“arp -d”命令可以删除ARP表中所有的内容;
用“arp+空格+ <指定ip地址>+空格-d” 可以删除指定ip所在行的内容
用“arp -s”可以手动在ARP表中指定IP地址与MAC地址的对应,类型为static(静态),静态ARP缓存除非手动清除,否则不会丢失。无论是静态还是动态ARP缓存,重启启动计算机后都会丢失。
ARP 常见问题1. 什么是ARP
ARP (Address Resolution Protocol) 是个地址解析协议。最白的说法是:在IP-以太网中,当一个上层协议要发包时,有了节点的IP地址,ARP就能提供该节点的MAC地址。2. 为什么要有ARP?
OSI 模式把网络工作分为七层,彼此不直接打交道,只通过接口(layer interface). IP地址在第三层,MAC地址在第二层。协议在发生数据包时,得先封装第三层 (IP地址),第二层 (MAC地址)的报头,但协议只知道目的节点的IP地址,不知道其地址,又不能跨第二、三层,所以得用ARP的服务。3. 什么是ARP cache
ARP cache 是个用来储存(IP,MAC)地址的缓冲区。当ARP被询问一个已知IP地址节点的MAC地址时,先在ARP cache 查看,若存在,就直接返回MAC地址,若不存在,才发送ARP request向局域网查询。4. ARP 有什么命令行?
常用的包括:(格式因操作系统、路由器而异,但作用类似) - 显示ARP cache: show arp;arp -a - 清除ARP cache:arp -d5. 路由器有ARP cache吗
有的。路由器若有接口连接到局域网,就会有ARP cache。如果路由器的接口都是点对点的接口(serial interface),就不会有ARP cache。6. 路由器怎么使用ARP cache
路由器在转发数据包到下一站时,得用下一站的MAC地址来封装链路报头 (Link header),它向ARP查询这个地址。如果ARP cache里没有这个地址,路由器的ARP会发送ARP Request去查询。7. ARP 和Ping 有什么关系?
Ping是个常用的网络工具,检查远程主机、路由器是否在线。 从源主机到目的主机,一路上ping可能被几个路由器转发,只要有一个ARP cache里没有下一站的MAC地址,路由器就会把ping丢弃 (称为ARP Miss)。由于ARP Miss而掉包,是个常见的掉包原因。ARP协议
ARP(Address Resolution Protocol)地址解析协议用于将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位)[RFC826]。ARP协议是属于链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据。当然,点对点的连接是不需要ARP协议的。注:有人说arp属于数据链路层的,也有人说它属于网络层的,我看的视频中说它是网络层的,但TCP详解中又说它属于中间层。在网络上关于这个问题搜了一下,发现回答最好的是:谈论ARP协议究竟属于第几层一点意义也没有,就跟讨论ICMP属于3层还是4层一样,搞清楚原理和应用场合就可以了。
另附一篇文章:很多教科书和培训教材上,都把ARP协议划分到网络层。我想主要的原因在于ARP协议属于TCP/IP协议簇,而在TCP/IP模型中,所有定义的协议至少是在网际层(或称网络层,IP层)。但是,按照OSI的标准,当数据向下传递时,每层会加上自己的信息,各层互不干扰.这样当网络层的IP包进入链路层时,链路层该如何加这个头部的目标信息呢?它要依靠ARP协议来完成.显然如何加链路头并不是网络层的功能.而且,ARP协议工作时,并不使用IP的包头。所以也有很多人说,ARP是链路层的。
可以说,在TCP/IP模型中,ARP协议属于IP层;在OSI模型中,ARP协议属于链路层。
可以说,在TCP/IP模型中,ARP协议属于IP层;在OSI模型中,ARP协议属于链路层。
在sniffer软件中,捕获协议数据时,如果使用IP地址是无法捕获到ARP包的,因为IP地址是ARP协议的载荷,不在包头中。但ARP协议的载荷中,也并不包含任何上层的IP数据包。所以,构造和使用ARP协议的主体理解IP地址。从这个角度考虑,将ARP协议划分到IP层也有一定道理。
总之,具体到某个协议,它到底属于哪一层,并不是那么严格。到目前为止,理解到此。
- ARP:地址解析协议
- ARP:地址解析协议
- 地址解析协议(ARP)
- ARP地址解析协议
- ARP:地址解析协议
- ARP:地址解析协议
- 地址解析协议 ARP
- 地址解析协议(ARP)
- ARP地址解析协议
- ARP:地址解析协议
- arp(地址解析协议)
- ARP:地址解析协议
- 地址解析协议(ARP)
- arp 地址解析协议
- ARP地址解析协议
- ARP:地址解析协议
- 地址解析协议ARP
- ARP地址解析协议
- 浏览历史页面
- JavaMail
- php连接数据库
- xpath
- 对虚拟机网络设置的理解
- 地址解析协议 ARP
- 心是生命的根本(读者)
- Oracle导入导出
- 如何制作高清视频并传到酷6
- mysql_class.php
- Firebug 控制台指令
- 如何做一个快乐的人
- checkbox使用
- 使用 getopt() 进行命令行处理