第十一篇技术笔记:数据链路层和它的“包裹”:车载以太网帧

张开发
2026/4/20 21:59:20 15 分钟阅读

分享文章

第十一篇技术笔记:数据链路层和它的“包裹”:车载以太网帧
写在开篇道阻且长行则将至行而不辍未来可期。——《荀子·修身》41岁的CPU老是老了点但每天还是会咕噜咕噜冒出很多新泡泡就比如这三个1. “数据链路层”里的“链路”到底是啥意思2. 这一层打包出来的“帧”长什么样3. 前面学的MAC地址、VLAN跟这个“帧”啥关系如果你也有这些疑惑恭喜你那这篇就是totally for you一、数据链路层是干啥的一句话负责在“同一段链路”上把数据从一台设备送到另一台设备。“链路”就是一段实际的物理介质双绞线、光纤、Wi-Fi不需要经过路由器转发。类比网络层规划路线北京→上海数据链路层负责每个具体路段京沪高速上从A收费站到B收费站。每一段路都有自己的规矩数据链路层就是管这些规矩的。为啥叫这名链路是物理介质数据链路就是在这条链路上把数据送过去。二、数据链路层打包出来的东西叫“帧”数据链路层收到上层传来的IP包会做三件事打包在IP包外面加上“头”和“尾”写地址填上目标MAC地址和源MAC地址发送交给物理层变成电压发出去这个打包出来的东西就叫“以太网帧”。快递类比IP包就像一封信写了地址、内容数据链路层把信装进一个信封信封上写收件人目标MAC和寄件人源MAC物理层负责把信封送到收件人手里这个“信封”就是以太网帧。三、车载以太网帧长什么样一个完整的以太网帧Ethernet II格式车载最常用犹抱琵琶半遮面出场啦字段前导码帧首定界符目标MAC源MAC类型数据校验长度7字节1字节6字节6字节2字节46-1500字节4字节快递类比按门铃“快递”收件人寄件人货物类型包裹里的东西防伪码注意前导码和帧首定界符是物理层加的不计入帧长度。四、把每一个零件拆开看用车载例子零件1-2前导码 帧首定界符——按门铃作用告诉PHY芯片“数据要来了把时钟对上”然后“热身结束正片开始”车载例子摄像头的PHY芯片发数据前先发8字节热身信号。网关的PHY芯片听到后同步时钟准备接收。零件3目标MAC地址——收件人车载例子摄像头发数据给网关目标MAC 网关的MAC地址。交换机看到这个MAC只转发给网关。零件4源MAC地址——寄件人车载例子摄像头 → 网关源MAC 摄像头的MAC地址。网关收到后如果需要回复就知道发给谁。零件5VLAN标签车载特色——货物上的“部门标签”作用车上不同的数据流需要隔离——摄像头数据、诊断数据、娱乐数据互不干扰。车载例子摄像头数据VLAN 100诊断数据DoIPVLAN 200娱乐数据VLAN 300交换机这是啥未来要研究下你根据VLAN ID把不同数据流送到不同的目的地。零件6类型——快递单上的“货物类型”常见类型值类型值协议车载例子0x0800IPv4摄像头传图像数据0x0806ARP摄像头问“网关的MAC是多少”0x8100VLAN带了部门标签的帧0x88DDDoIP4S店诊断仪升级ECU零件7数据——包裹里的东西长度46-1500字节车载例子摄像头的一帧图像数据。如果一帧图像很大会被拆成多个以太网帧分开发送。域控制器收到后再拼起来。零件8校验码——防伪码作用检查数据有没有传错。车载例子网关收到帧后重新计算校验码如果对不上可能是线束松动、电磁干扰直接丢弃上层协议会触发重传。五、一个完整的车载例子摄像头发图像给网关假设前视摄像头MAC:CAM_MACIP:10.0.1.10发一帧图像数据给网关MAC:GW_MACIP:10.0.1.1。不带VLAN的帧前导码帧首定界符目标MAC源MAC类型数据校验7字节1字节GW_MACCAM_MAC0x0800IP包含图像CRC32带VLAN标签的帧隔离摄像头数据前导码帧首定界符目标MAC源MACVLAN标签类型数据校验7字节1字节GW_MACCAM_MAC0x8100VID1000x0800IP包CRC32六、一张表总结零件长度作用快递类比车载例子前导码7字节同步时钟按门铃摄像头PHY通知网关PHY帧首定界符1字节正片开始“快递”热身结束目标MAC6字节收件设备收件人姓名网关源MAC6字节发件设备寄件人姓名摄像头VLAN标签4字节功能隔离部门标签摄像头数据VLAN100类型2字节告诉上层装的是啥货物类型0x0800IP包数据46-1500字节真正的货物包裹里的东西图像数据校验4字节检查传错没防伪码网关校验七、踩的坑最大的坑以前我以为“数据链路层”就是“MAC地址那一层”。这次才知道MAC地址只是它的一部分。它还负责帧打包、差错检测、流量控制。第二个坑以前我以为“帧”就是“数据包”。这次才知道帧是数据链路层的叫法网络层叫“包”物理层叫“比特流”。不同层次不同叫法。第三个坑以前我以为“前导码是帧的一部分”。这次才知道前导码是物理层加的不计入帧长度。想通的那一瞬间是当我理解了“链路”二字的含义——链路就是一段具体的物理介质。数据链路层就是管“怎么在这段介质上把数据送过去”。八、下步目标这次只能了解个大概还有好几个概念不太懂不过VLAN出镜率挺高下一步咱深挖一下VLAN这玩意貌似有点玄乎别跑就你了。九、写在最后这次最大的收获是终于搞清楚了数据链路层是干啥的、帧长什么样。数据链路层就是“送货路段的管理员”。帧就是它打包出来的“包裹”。MAC地址、VLAN都住在这个包裹里。道阻且长行则将至。路是一段一段走的知识也是一层一层学的。慢慢来比较快。继续干就对了。写好啦886。

更多文章