以太网报文(Ethernet Frame)正如我们的语言,有固定的语法,它是以太网系统的核心之一,组成以太网系统的无论是PHY(可以简单理解成收发器),交换机还是线束,它们的目的都是将一帧以太网报文从一个站点传输到另一个站点。
图 1 车载以太网报文
如图 1 所示,车载以太网报文有如下字段组成:
字段名 | 中文名 | 描述 |
Preemable | 前导码 | 用于同步,每个字节固定为0xAA |
SFD | 帧起始 | 帧开始界定符,1Byte,固定内容为0xAB |
Destination address | 目标物理地址 | 网络包接收方的MAC地址 |
Source address | 源物理地址 | 网络包发送方的MAC地址 |
Type/Len | 类型/长度 | 使用上层协议类型/数据长度 |
User Data | 数据 | TCP/UDP IP封装数据 |
FCS | 帧检查序列 | CRC校验码,用于校验帧的完整性 |
前导符/帧起始(Preemable/SFD)
前导符和帧起始最早是为10M以太网设计,以太网中的发送节点使用它来通知接收节点,将有以太网报文传输过来,请准备接收,采用这种方式同时给接收节点足够的启动准备时间。这种设计非常像我们日常生活中在正式说话前的清嗓子行为。
目标物理地址/源物理地址(Destination address/Source address)
紧跟在前导符/帧起始后面的时目标物理地址和源物理地址,这个可以简单理解成发送节点(源)和接收节点(目标)的物理地址,也就是我们之前介绍的MAC地址。有兴趣的朋友,可以看一下之前的帖子: 汽车以太网- MAC地址_呦呦爸的博客-CSDN博客_以太网mac地址。
类型/长度(Type/Length)
在地址字段后面是16个字节的类型数据或者长度数据,作为类型数据时,它表示的是后面”数据“字段所采用的协议,如TCP/IP;而如果作为长度数据时,则是淡出表示后面”数据“字段的长度。
数据(User Data)
在类型/长度字段之后是 46 字节到 1500 字节的用户数据。数据字段的长度必须至少为 46 个字节。此最小长度可确保帧信号在网络上停留足够长的时间,以便原始 10 Mb/s 半双工系统中的每个以太网站都能在正确的时间限制内听到帧。如果数据字段中携带的高级协议数据短于 46 个字节,则使用填充数据来填充数据字段。
帧检查序列(FCS)
在以太网报文最后的字段是32-bit的帧检查序列(Frame Check Sequence)字段,这个逻辑上很简单,就是发送节点需要将以太网报文的FCS字段前面的数据基于CRC(循环冗余检测)算法计算出一个值,将该值填入到FCS字段,接收节点使用相同的算法对接收到的以太网报文进行计算,将得到的新值和报文中的FCS值做比较,以确认接收到的数据是完好无损的。