以太网常用协议——ARP协议
以太网常用协议——ARP协议
ARP协议是TCP/IP协议簇中用于地址解析的重要协议,它在以太网通信中扮演着关键角色。本文将详细介绍ARP协议的基本概念、工作原理以及与MAC层的关系,帮助读者深入理解这一基础网络协议。
ARP协议与MAC层
ARP(Address Resolution Protocol)即地址解析协议,是根据IP地址(逻辑地址)获取MAC地址的一种TCP/IP协议。在以太网中,一个主机和另一个主机进行通信,必须要知道目的主机的MAC地址(物理地址),而目的MAC地址的获取由ARP协议完成。
在以太网通信中,数据是以“帧”的格式进行传输的,帧格式里面包含目的主机的MAC地址。因此在通信前需要先获得目的MAC地址,而ARP协议正是实现了此功能。在获取到目的MAC地址之后,将目的MAC地址更新至ARP缓存表中,称为ARP映射。下次通信时,可以直接从ARP缓存表中获取,而不用重新通过ARP获取MAC地址。但一般ARP缓存表会有过期时间,过期后需要重新通过ARP获取MAC地址。
接下来介绍一下上面这段话中的一些专有名词
1.TCP/IP协议
TCP/IP是网络使用中最基本的通信协议,虽然从名字看上去TCP/IP包括两个协议,TCP和IP,但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:TCP、IP、ARP、UDP等。而TCP协议和IP协议是保证数据完整传输的两个重要的协议,因此TCP/IP协议用来表示Internet协议簇。
TCP/IP协议不仅可以运行在以太网上,也可以运行在FDDI(光纤分布式数据接口)和WLAN(无线局域网)上。反过来,以太网的高层协议不仅可以是TCP/IP协议,也可以是IPX协议(互联网分组交换协议)等,只不过以太网+TCP/IP成为IT行业中应用最普遍的技术。
2. MAC地址
MAC地址在网络中表示网卡的ID,每个网卡有且仅有一个MAC地址。
格式:MAC地址通常由12个十六进制字符组成,分为6对,用冒号或连字符分隔,例如00:1A:2B:3C:4D:5E。
3. ARP映射
将IP地址和MAC地址映射起来,分为静态映射和动态映射。
静态映射:指手动创建一张ARP表,把IP地址和MAC地址关联起来。手动绑定之后,源主机在通信之前,就可以直接从ARP表中直接找到IP地址对应的MAC地址,但这样做有一定的局限性,因为MAC地址可能会变化,比如:
1)机器可能更换NIC(网络适配器),结果变成一个新的物理地址;
2)在某些局域网中,每当计算机加电时,他的物理地址都要改变一次。
3)移动电脑可以从一个物理网络转移到另一个物理网络,这样会改变物理地址。
要避免这些问题出现,必须定期维护更新ARP表,此类比较麻烦而且会影响网络性能。
动态映射:指使用协议来获取相对应的物理地址,之所以用动态这个词是因为这个过程是自动完成的,一般应用程序的用户或系统管理员不必关心。已经设计出用于实现动态映射协议的有ARP和RARP(逆地址解析协议)两种,如下图所示
ARP :把IP地址映射为物理地址
RARP :把物理地址映射为IP地址。(这里不重点讲述)
4. ARP请求和ARP应答
ARP请求:源主机发起查询目的MAC地址的报文称为ARP请求
ARP应答:目的主机响应源主机并发送包含本地MAC地址的报文称为ARP应答
由于发送的目的MAC地址为广播地址,所以此时局域网中的所有主机都会进行接收并处理这个ARP请求报文,然后进行验证,查看接收方的IP地址是不是自己的地址。是则返回ARP应答报文,不是则不响应。
主机A将收到的ARP应答报文中的目的MAC地址解析出来,将目的MAC地址和目的IP地址更新至ARP缓存表中。当再次和主机B通信时,可以直接从ARP缓存表中获取,而不用重新发起ARP请求报文。ARP缓存表中的表项有过期时间(一般为20分钟),过期之后,需要重新发起ARP请求以获取目的MAC地址。
介绍ARP协议之前,先了解一下以太网的帧格式
二、以太网帧格式
ARP协议通过以太网进行传输,那么必须也要按照以太网所规定的格式进行传输,那先来介绍一下太网的帧格式,随后再详细介绍ARP协议的具体格式。
我们知道串口通信单次只传输一个字节,而以太网通信是以数据包的形式传输,其单包数据量达到几十,甚至成百上千个字节。下图为以太网通过ARP传输单包数据的格式。
以太网MAC帧格式:
注意:以太网相邻两帧之间的时间间隔,即帧间隙(IFG,Interpacket Gap)。帧间隙的时间就是网络设备和组件在接收一帧之后,需要短暂的时间来恢复并为接收下一帧做准备的时间,IFG的最小值是96 bit time,即在媒介中发送96位原始数据所需要的时间,在不同媒介中IFG的最小值是不一样的。
不管10M/100M/1000M的以太网,两帧之间最少要有96bit time,IFG的最少间隔时间计算方法如下:
10Mbit/s 最小时间为:96100ns = 9600ns;
100Mbit/s 最小时间为:9610ns = 960ns;
1000Mbit/s 最小时间为:96*1ns = 96ns。
三、ARP协议
ARP协议属于TCP/IP协议簇的一种,ARP协议位于以太网MAC帧格式的数据段,ARP数据包格式如下图所示。
1. 以太网ARP通信测试:
主机和fpga参数如下:
1:上位机发送ARP请求,FPGA产生ARP应答
2:FPGA发出ARP请求,上位机产生ARP应答
Q:上位机可以通过win的命令:arp-a查看fpga的IP 和 MACY的映射,那如何查看fpga接收到的上位机信息呢?
A:这里使用wireshark软件对以太网通信进行抓包。