ARP
ARP是什么?
1.根据IP地址获取MAC地址的一种TCP/IP协议,因为以太网通讯中需要用到MAC地址保证通讯准确性。
2.在获取到MAC地址后,会将MAC地址更新到ARP缓存表中,下次通讯可以直接调用(ARP有过期时间,过期后需要重新获取)
ARP映射的分类:
1.静态映射:基本不用
2.动态映射:
RARP:将MAC地址转为IP地址(基本不用)
ARP:将IP地址转为MAC地址
以太网ARP数据包格式
1.前导码:0和1交替(55_55_55_55_55_55_55)
2.帧起始界定符(SFD):固定值0XD5
3.以太网帧头:目的MAC地址+源MAC地址+数据模式选择
目的MAC地址:接收端的MAC地址,占6个byte,分为单播、组播、广播地址
单播地址:从左向右,第一个1byte的最低位为0,一般用于标志唯一的设备;
组播地址:从左向右,第一个1byte的最低位为1,一般用于标志同一组的多个设备;
广播地址:6个byte全是1,标志同一网段中的所有设备
源MAC地址:发送端的MAC地址,占6个byte
数据模式选择:表示数据长度或类型
当后两个byte的值小于1536时,代表该以太网中数据段的长度
当后两个byte的值大于1536时,则表示该以太网的数据属于哪个协议(例:0x0800代表IP协议,0X806代表ARP协议)
4.数据段:最小长度46byte,最大长度1500byte,
由于ARP的数据长度为28byte,所以需要18byte的填充数据,来满足最小长度46byte的要求(填充数据一般为0)
5.帧检验序列(FCS):4个byte的CRC数据校验的冗余码,(下面有参考链接)
6.帧间隙:以太网相邻两帧之间的时间间隔,
= 网络设备和组件在接收一帧之后,需要短暂的恢复时间+为下一帧做准备的时间
不同媒介中帧间隙的最小值不同,但不管10M/100M/1000M的以太网,帧间隙最少 96 bit time
计算方法如下:
10Mbit/s最小时间:96*100ns = 9600ns
100Mbit/s最小时间:96*10ns = 960ns
1000Mbit/s最小时间:96*1ns = 96ns
FSC中的CRC参考链接
ARP数据格式
1.硬件类型:一般是以太网,对应值为1;
2.协议类型:指明发送者映射到数据链路标识的网络层协议类型,一般为IP协议,对应值为0x0800;
3.硬件地址长度:MAC地址的长度,单位是字节.对于以太网上IP地址的ARP请求或者应答来说,该值为6;
4.协议地址长度:IP地址的长度,单位是字节。对于以太网上IP地址的ARP请求或者应答来说,该值为4;
5.OP:操作码,表示该数据包为ARP请求或者ARP应答。1表示ARP请求,2表示ARP应答;
6.源MAC地址:发送端的硬件地址;
7.源IP地址:发送端的协议(IP)地址,如192.168.1.102;
8.目的MAC地址:接收端的硬件地址,在ARP请求时由于不知道接收端MAC地址,因此该字段为广播地址,即48’hff_ff_ff_ff_ff_ff;
9.目的IP地址:接收端的协议(IP)地址,如192.168.1.10;
以太网和PHY之间的常用接口
1.MII:MII支持10Mbps和100Mbps的操作,数据位宽为4位,在100Mbps传输速率下,时钟频率为25Mhz。
2.RMII:RMII是MII的简化版,数据位宽为2位,在100Mbps传输速率下,时钟频率为50Mhz。
3.GMII(:GMII接口向下兼容MII接口,支持10Mbps、100Mbps和1000Mbps的操作,数据位宽为8位,在1000Mbps传输速率下,时钟频率为125Mhz。
4.RGMII:RGMII是GMII的简化版,数据位宽为4位,在1000Mbps传输速率下,时钟频率为125Mhz,在时钟的上下沿同时采样数据。
在100Mbps和10Mbps通信速率下,为单个时钟沿采样。
以 RGMII接口为例
接口如下
1.ETH_RXC:接收数据的参考时钟
1000Mbps下,时钟125Mhz,为时钟上下沿采样
100Mbps下,时钟25Mhz,时钟单边采样
10Mbps下,时钟2.5Mhz,时钟单边采样
2.ETH_RXCTL(ETH_RX_DV):接收数据控制信号
3.ETH_RXD:4位数据线
4.ETH_TXC:发送数据的参考时钟,同1
5.ETH_TXCTL(ETH_TXEN):发送数据控制信号
6.TH_TXD:四位并行的发送数据线
7.ETH_RESET_N:PHY芯片复位信号
8.ETH_MDC:该引脚对ETH_MDIO信号提供了一个同步的时钟
9.ETH_MDIO:配置PHY芯片中的内部寄存器
只有当ETH_RXCTL和ETH_TXCTL信号的上下沿同时为高电平时,发送和接收的数据有效且正确。