认识ARP协议

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了认识ARP协议相关的知识,希望对你有一定的参考价值。

什么是ARP?

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

在tcp/ip的网络环境下,每个联网的主机都会被分配一个32位的IP地址。

ARP协议的作用是把IP地址转换成mac地址,是IP转换成mac地址的工具

ARP协议和DNS有点相像之处。不同点是:

DNS是在域名和IP之间的解析,需要配置服务。ARP协议不需要配置服务。

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


ARP工作过程:

局域网内,主机A向主机B发送数据,会先查询APR表,如果没有记录,就会向局域网发送广播包。

主机B收到广播会单播回应,并缓存在自己APR表中,双方通讯一次,都会缓存在自己arp表中(划分VLAN可以减少广播风暴)。

查看arp表:arp -a

清空ARP表:arp -d

绑定mac地址:arp -s


ARP缓存表的优缺点:

1、arp缓存表可以加快ARP的解析速度(减少广播风暴)

2、有了缓存表,给恶意黑客带来攻击服务器主机的风险,这个就是著名的APR欺骗或者arp攻击。


OSI模型把网络工作分成七层,彼此不直接打交道,只通过接口。IP地址工作在第三层,mac地址工作在第二层。当协议发送数据包时,需要先封装第三层(IP地址),第二层(mac地址)的报头,但协议只知道目的节点的IP地址,不知道mac地址,又不能跨第二层、三层,所以得用arp协议服务。ARP协议是第三层协议。

排除ARP中毒的机器,需要先记录正确的网关MAC地址或主机mac地址;

更换了路由器,上不了网,主机可以先清空arp缓存排查。

以上是关于认识ARP协议的主要内容,如果未能解决你的问题,请参考以下文章

数据链路层和其他重要协议或技术

TCP/IP协议簇之数据链路层

TCP/IP协议簇之数据链路层

Linux网络编程----网络接口层(数据链路层+物理层)

Linux网络编程----网络接口层(数据链路层+物理层)

arp协议访问大部分注册表吗