问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

以太网常用协议——ARP协议

创作时间:
作者:
@小白创作中心

以太网常用协议——ARP协议

引用
CSDN
1.
https://blog.csdn.net/k7126685/article/details/140110021

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软件对以太网通信进行抓包。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号