笔者在 FPGA 上用到以太网,记录以下知识点,同时分享给你,希望对你有帮助,文中有什么错误的地方,请批评指正。
目录
一、ARP协议在以太网中传输的帧结构如下图所示:
二、 数据包每个部分介绍:
- 以太网目的地址(6Byte):当发送 ARP 请求时此处全为1 (FF:FF:FF:FF:FF:FF),即为广播地址。当发送 ARP 响应时,此处即为目的端 MAC 地址。
- 以太网源地址(6Byte):发送 ARP 请求的 MAC 地址,为本机 MAC 地址。
- 帧类型(2Byte):表示的是后面的数据类型,ARP 请求和 ARP 应答这个值为 0x0806 。
- 硬件类型(2Byte):硬件地址不只以太网一种,是以太网类型时此值为1。
- 协议类型(2Byte):要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。
- 硬件地址长度(1Byte):即为 MAC 地址长度 6 Byte。
- 协议地址长度(1Byte):即为 IP 地址长度 4 Byte。
- 操作(2Byte):值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。
- 发送者硬件地址(6Byte):这是本机的 MAC 地址,与第二个字段相同。
- 发送者 IP 地址(4Byte):这是本机的 IP 地址。
- 目标硬件地址(6Byte):在发送 ARP 请求时,还不知道目的端的 MAC 地址,所以此处全为 0 ( 00:00:00:00:00:00 )。当发送 ARP 请求报文是,此处即为目的端 MAC 地址。
- 目标 IP 地址(4Byte):目标端 IP 地址。
三、ARP 请求抓包截图
1. ARP 请求数据包结构
2. ARP 响应数据包结构
参考: