文章目录
-
- [一、 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表,此类比较麻烦而且会影响网络性能。
动态映射 :指使用协议来获取相对应的物理地址,之所以用动态这个词是因为这个过程是自动完成的,一般应用程序的用户或系统管理员不必关心。已经设计出用于实现动态映射协议的有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 最小时间为: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 软件对以太网通信进行抓包。