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

文章目录

    • [一、 ARP协议与MAC层](#一、 ARP协议与MAC层)
      • 1.TCP/IP协议
      • [2. MAC地址](#2. MAC地址)
      • [3. ARP映射](#3. ARP映射)
      • [4. ARP请求和ARP应答](#4. ARP请求和ARP应答)
    • 二、以太网帧格式
    • 三、ARP协议
      • [1. 以太网ARP通信测试:](#1. 以太网ARP通信测试:)

以太网使用的协议很多,常用的有ARP、UDP等。

再介绍具体协议之前需要先知道一些基本的概念:

一、 ARP协议与MAC层

Q:ARP协议是是什么?它和MAC层的关系是什么。

A:

1.ARP (Address Resolution Protocol)即地址解析协议,是根据 IP 地址 (逻辑地址)获取 MAC 地址的一种 TCP/IP 协议

2.在以太网中,一个主机和另一个主机进行通信,必须要知道目的主机的 MAC 地址 (物理地址),而目的 MAC 地址的获取由 ARP 协议完成。

3.在以太网通信中,数据是以"帧"的格式进行传输的,帧格式里面包含目的主机的MAC 地址。因此在通信前需要先获得目的 MAC 地址,而 ARP 协议正是实现了此功能

4.在获取到目的 MAC地址之后,将目的MAC地址更新至ARP缓存表 中,称为ARP映射。下次通信时,可以直接从 ARP 缓存表中获取,而不用重新通过 ARP 获取 MAC 地址。但一般 ARP缓存表会有过期时间,过期后需要重新通过 ARP 协议进行获取。

接下来介绍一下上面这段话中的一些专有名词

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 地址关联起来。手动绑定之后,源主机在通信 之前,就可以直接从 ARP 表中直接找到 IP 地址对应的 MAC 地址,但这样做有一定的局限性,因为 MAC地址可能会变化,比如:

1) 机器可能更换 NIC(网络适配器),结果变成一个新的物理地址;

2)在某些局域网中,每当计算机加电时,他的物理地址都要改变一次。

3) 移动电脑可以从一个物理网络转移到另一个物理网络,这样会改变物理地址。

要避免这些问题出现,必须定期维护更新ARP表,此类比较麻烦而且会影响网络性能。
动态映射 :指使用协议来获取相对应的物理地址,之所以用动态这个词是因为这个过程是自动完成的,一般应用程序的用户或系统管理员不必关心。已经设计出用于实现动态映射协议的有ARPRARP(逆地址解析协议)两种 ,如下图所示
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 最小时间为:96
10ns = 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 软件对以太网通信进行抓包。

相关推荐
北城笑笑4 小时前
FPGA 14 ,硬件开发板分类详解,FPGA开发板与普通开发板烧录的区别
fpga开发·fpga
2202_754421544 小时前
一个计算频率的模块
驱动开发·fpga开发
小灰灰的FPGA5 小时前
低速接口项目之串口Uart开发(七)——如何在FPGA项目中实现自适应波特率串口功能
fpga开发
fei_sun1 天前
【Verilog】第一章作业
fpga开发·verilog
深圳市雷龙发展有限公司longsto1 天前
基于FPGA(现场可编程门阵列)的SD NAND图片显示系统是一个复杂的项目,它涉及硬件设计、FPGA编程、SD卡接口、NAND闪存控制以及图像显示等多个方面
fpga开发
9527华安1 天前
FPGA实现PCIE3.0视频采集转10G万兆UDP网络输出,基于XDMA+GTH架构,提供工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0·万兆网
able陈1 天前
为什么verilog中递归函数需要定义为automatic?
fpga开发
fei_sun1 天前
【Verilog】第二章作业
fpga开发·verilog
碎碎思1 天前
如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目
fpga开发·接口隔离原则
江山如画,佳人北望1 天前
fpga-状态机的设计及应用
fpga开发