以太网MAC帧格式

  在FPGA有关的以太网设计中,FPGA实现的代码工 能工作在mac层。因此,设计FPGA网口代码时常需要对网络包进行打包和解包,这就需要相关网络协议包格式的知识。

  常用的以太网MAC帧格式有两种标准 :DIX Ethernet II标准,IEEE 的 802.3 标准。

  Ethernet II和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节为包类型,而后者定义的2字节为的长度;所幸的是,后者定义的有效长度值与前者定义的有效类型值无一相同,这样就容易区分两种帧格式了。如果值大于 1500(0x05DC),说明是以太网类型字段,EthernetII 帧格式。如果值小于等于1500,说明是长度字段,IEEE802.3 帧格式。因此类型字段值最小的是 0x0600。而长度最大为 1500。

MAC层要求定界字符之后的内容要在64字节到1518个字节之间,其中包括14字节的目标和源MAC,4字节的CRC32值。并且报文帧之间的传递间隔要大于9.6us。

最常用的 MAC 帧是以太网V2的格式:



IEEE 的 802.3 标准



类型字段 2 个字节):   用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议;数据字段 ( 46-1500 ):   正式名称是 MAC 客户数据字段最小长度 64  字节 -18 字节的首部和尾部  =  数据字段的最小长度; FCS 字段 ( 字节):当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节;在帧的前面插入的 8 字节中的第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段是帧开始定界符,表示后面的信息就是 MAC 帧。

参考:

UDP协议 收发数据的FPGA实现 verilog

https://www.cnblogs.com/alifpga/p/7679851.html

FPGA极客空间《internet上的网络层》



  • 19
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
以太网(Ethernet)是一种常见的局域网技术,其数据传输采用的是MAC(Media Access Control)地址来进行的识别和传输。以太网MAC数据格式如下: 1. 前导码(Preamble):以太网开始的时候,会先发送一个7字节的前导码,用于同步发送和接收的设备时钟。前导码是一个连续的0101...0101的模式,总共有56位。 2. 开始定界符(Start Frame Delimiter):在前导码之后,发送方发送一个8位的开始定界符,用于指示的开始。 3. 目标MAC地址(Destination MAC Address):占6个字节,表示数据的目标设备的MAC地址。 4. 源MAC地址(Source MAC Address):占6个字节,表示发送方设备的MAC地址。 5. 长度/类型字段(Length/Type):占2个字节,表示中数据的长度(若长度小于等于1500,则表示为长度;若大于等于1536,则表示为类型)。 6. 数据字段(Data):占46-1500个字节,表示该中传输的数据。 7. 校验序列(FCS):占4个字节,用于对前面的内容进行错误检测,以保证数据的完整性。 通过以上格式以太网可以将数据进行封装,并通过MAC地址进行传输。当接收方设备收到一数据时,会根据目标MAC地址判断该是否为自己所需要的数据,如果是则接收,否则丢弃。同时,接收方设备也会对接收到的进行FCS校验,以确认数据的完整性。 以太网MAC数据格式为数据传输提供了统一的规范,使得不同厂商的设备能够互相兼容和交流。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值