ARP协议,全称“Address Resolution Protocol”,中文名是地址解析协议,

使用ARP协议可实现通过IP地址获得对应主机的物理地址(MAC地址)。

 在TCP/IP的网络环境下,每个联网的主机都会被分配一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。

为了让报文在物理网路上传输,还必须要知道对方目的主机的物理地址(MAC)才行。这样就存在把IP地址变换成物理地址的地址转换的问题。

  在以太网环境,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为目的主机48位以太网的地址(MAC地址)。

这就需要在互联层有一个服务或功能将IP地址转换为相应的物理地址(MAC地址),这个服务或者功能就是ARP协议。
  所谓的“地址解析”,就是主机在发送帧之前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MA地址,以保证主机间相互通信的顺利进行。

  ARP 协议和DNS有点相像之处。不同点是:DNS是在域名和IP之间的解析,另外,ARP协议不需要配置服务,而DNS要配置服务才行。

ARP协议要求通信的主机双方必须在同一个物理网段(即局域网环境)!

ARP小结:

1、ARP全称“Address Resolution Protocol”
  2、实现局域网内通过IP地址获取主机的MAC地址。
  3、MAC地址48位主机的物理地址,局域网内唯一。
  4、ARP协议类似DNS服务,但不需要配置服务。
  5、ARP协议是三层协议。

二、ARP缓存表

在每台安装有TCP/IP协议的电脑里都会有一个ARP缓存表(windows命令提示符里输入arp -a即可),表里的IP地址与MAC地址是一一对应的,例如:

arp常用命令:
arp -a 查所有记录
arp -d 清除
arp -s 绑定IP和MAC

三、ARP缓存表是把双刃剑
(1)主机有了arp缓存表,可以加快arp的解析速度,减少局域网内广播风暴。
(2)正是有了arp缓存表,给恶意黑客带来了攻击服务器主机的风险,这个就是arp欺骗攻击。
(3)切换路由器,负载均衡等设备时,可能会导致短时网络中断。

MAC(Media Access Control或者Medium Access Control)地址,意译媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负载IP地址,第二层数据链路层则负责MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。

四、为什么要使用ARP协议
OSI模型把网络工作分为七层,彼此不直接打交道,只通过接口(layer interface)。IP地址工作在第三层,MAC地址工作在第二层。当协议在发送数据包时,需要先封装第三层IP地址,第二层MAC地址的报头,但协议只知道目的节点的IP地址,不知道目的节点的MAC地址,又不能跨第二、三层,所以得用ARP协议服务,来帮助获取到目的节点的MAC地址。

ARP协议是二层协议,还是三层协议?
工作在二层,是三层协议。

总结OSI7层不同的层对应的协议:

OSI七层模型及协议-包封装解封装详解
http://www.tudou.com/programs/view/sP9JY_KranA/
TCP三次握手四次断开原理过程详解
http://www.tudou.com/programs/view/XjHCDedZQa8

五、ARP在生成环境产生的问题及解决办法:
(1)ARP病毒,ARP欺骗。
(2)高可用服务器对之间切换时要考虑ARP缓存的问题。
(3)路由器等设备无缝迁移时要考虑ARP缓存的问题,例如:更换办公室的路由器。

六、ARP欺骗原理
ARP攻击就是通过伪造IP地址和MAC地址对实现ARP欺骗的,如果一台主机中了ARP病毒,那么它就能够在网络中产生大量的ARP通信量(它会以很快的频率进行广播),以至于使网络阻塞,攻击者只要持续不断的发送伪造的ARP响应宝就能更改局域网中目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
ARP攻击主要是存在于局域网网络中,局域网中若有一个人感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其他计算机的通信信息,并因此造成网内其他计算机的通信故障。

七、服务器切换ARP问题:
当网络中一台提供服务的机器宕机后,当在其他运行正常的机器添加宕机的机器的IP时,会因为客户端的ARP table cache的地址解析还是宕机的机器的MAC地址。从而导致,即使在其他运行正常的机器添加宕机的机器的IP,也会发生客户依然无法访问的情况。
解决办法是:当机器宕机,IP地址迁移到其他机器上时,需要通过arping命令来通知所有网络内机器清除其本地的ARP table cache,从而使得客户机访问时重新广播获取MAC地址
这个在自己开发脚本实现服务器的高可用时是要必须考虑的问题之一,几乎所有的高可用软件都会考虑这个问题。
ARP广播而进行新的地址解析。
Linux下的具体命令:

八、回顾ARP技术点:
1、什么是ARP协议。
2、ARP协议工作原理。
3、工作中ARP带来的实际问题和解决方案
a.局域网ARP欺骗原理及解决方法。
b.切换网关路由器,arp表带来的问题。
c.集群架构中高可用服务器对之间的切换,arp表带来的问题。
4、局域网客户端ARP问题的防御。

什么是ARP协议?的更多相关文章

  1. 浅谈ARP协议以及应用

    0. 前言 本章主要简单的介绍ARP的协议格式,主机如何发送和处理ARP报文,以及免费ARP. 1. ARP协议原理 ARP,全称Address Resolution Protocol,地址解析协议, ...

  2. 6410实现网卡(DM9000A)收发功能及ARP协议实现

    1. 网卡硬件结构(DM9000A) 网卡的实质就是MAC通过MII接口控制PHY的过程. MAC主要负责数据帧的构建.数据差错检查.传送控制等. PHY是物理接口收发器,属于物理层,当它收到MAC过 ...

  3. Lvs原理及部署之ARP协议

    1.什么使ARP协议 ARP协议,全称"Address Resolution Protocol" ,中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应的物理地址(MAC ...

  4. 计算机网络(2)-----ARP协议

    ARP协议(Address Resolution Protocol) 概念 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/I ...

  5. ARP协议

    ARP协议就是一个获取对方MAC地址的协议,ARP协议它是一个网络层的协议,它的作用是通过ARP request报文来获得对方的MAC地址,ARP报文里面发送的内容大概是192.168.1.20你的M ...

  6. ARP协议格式、ARP运行机制入门学习

    相关学习资料 http://baike.baidu.com/view/149421.htm?fromtitle=ARP%E5%8D%8F%E8%AE%AE&fromid=1742212& ...

  7. ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御

    ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3  ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...

  8. ARP协议详解

    ARP协议:地址解析协议,将IP地址映射到MAC地址. ARP缓存:每个主机都有存储IP地址和MAC地址的缓冲区.每条记录最长生存时间为10分钟,如果一条记录2分钟没有使用,则会被删除.如果始终在使用 ...

  9. TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...

  10. Networking - ARP 协议

    ARP 协议概述 ARP(Address Resolution Protocol),即地址解析协议,用于把 IP 地址映射到物理地址.网段上的每台主机都维护着一个被称为 ARP Table 或 ARP ...

随机推荐

  1. C++ 读写 Excel 文件

    //Microsoft Visual Studio 2015 Enterprise #include <fstream> #include <string> #include ...

  2. [洛谷P4052][JSOI2007]文本生成器

    题目大意:有$n$个字符串$s_i$,问有多少个长度为$m$的字符串至少包含$n$个字符串中的一个,字符集 A-Z .$s_i,m\leqslant100,n\leqslant60$ 题解:$AC$自 ...

  3. 「CTS2019」氪金手游

    「CTS2019」氪金手游 解题思路 考场上想出了外向树的做法,居然没意识到反向边可以容斥,其实外向树会做的话这个题差不多就做完了. 令 \(dp[u][i]\) 表示单独考虑 \(u\) 节点所在子 ...

  4. Spring Aop中execution的语法

    参考地址:https://blog.csdn.net/zz210891470/article/details/54175107 execution(* com.sample.service.impl. ...

  5. Linux 用户管理命令笔记

    1.新增用户 useradd user1 用户创建流程 1.系统先将用户信息记录在/etc/passwd中,一般会在/etc/passwd和/etc/shadow末尾,同时分配该用户UID. 2.创建 ...

  6. node.js开发 npm包管理工具

    npm介绍 说明:npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装.卸载.管理依赖等) 使用npm安装插件:命令提示符执行npm instal ...

  7. Jsp页面显示时间:<fmt>标签问题

    <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%> <%@ taglib ...

  8. 设置body样式问题

    如果我给body设置成一个宽高为200px的正方形,背景为红色,但是整个html也变成了红色,而且是整个浏览器屏幕都是红的,怎么来处理,如下 给html单独设置一个背景颜色,比如为白色#fff,在给b ...

  9. HTTP缓存字段总结

    首部 通用首部:有些首部提供了与报文相关的最基本的信息,它们被称为通用首部. 请求首部:请求首部是只在请求报文中有意义的首部. 响应首部 实体首部: 用来描述HTTP报文的负荷,由于请求和响应报文中都 ...

  10. js sort() 排序用法(转载)

    原文:https://blog.csdn.net/m0_37885651/article/details/80016718 sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字 ...