浅谈TC8数据链路层测试

2023-05-16

当今时代,智能汽车已成为一个炙手可热的话题,各种先进汽车电子技术蓬勃发展,比如自动驾驶、V2X、OTA......这些新技术的背后都离不开车载以太网通信技术的支持。

浅谈TC8数据链路层测试 - 知乎

其中数据链路层实现了链路管理、虚拟局域网的划分并可提供服务质量,因此数据链路层是车载以太网中很关键的一部分。下面让我们一起走进数据链路层及其测试的世界吧。

数据链路层简介

ISO提出的七层OSI模型是现代通信的理论基础,这七层由低到高分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

图 1 OSI参考模型即各层解释

参考图2可以看到车载以太网与传统以太网比较,数据链路层涉及知识点内容基本一样,主要包括Ethernet帧、MAC和VLAN等。

下面对数据链路层的主要知识点做简要介绍:

图 2 车载以太网与传统网络对比图

1.1 MAC地址

MAC地址也叫物理地址,通常在网络设备制造商固化网络设备的EPROM中。

MAC地址二进制的48位(6个字节)组成,通常以12个十六进制的数表示

00-E0-FC-EA-40-33

前6个数为组织标识符OUI),表示制造商编码;

后6个数是扩展标识符EID),表示制造商某个产品的序列号

一般不做更改的话,某一个MAC地址在全世界是唯一的。

常见的OUI有00-E0-FC(HUAWEI)、00-26-C6(Intel)和00-00-F0(Samsung)

图 3 MAC地址组成

MAC地址主要分为三类:单播地址、组播地址和广播地址。

1.2 Ethernet帧格式

Ethernet帧具体的组成可参考图4,

目的地址、源地址和类型组成该帧的以太网首部

FCS组成以太网尾部

数据包含了数据链路层以上各层添加的协议首部和应用数据,

如图4所示,数据应包括IP首部、TCP首部和应用数据。

图 4 Ethernet帧格式

Ethernet帧组成介绍如下:

  • 目的地址:帧到达设备的MAC地址
  • 源地址:帧发送设备的MAC地址
  • 类型:标识上一层使用的协议类型,比如0x0800(IPv4协议)、0x0806(ARP协议)和0x86DD(IPv6协议)
  • 数据:上层传递下来的内容,字节长度介于46~1500字节之间
  • FCS:32位的CRC校验码,校验的字段包括目的地址、源地址、类型和数据字段

1.3 虚拟局域网VLAN

虚拟局域网(VLAN)是一组逻辑上的设备和用户组成的网络,这些设备和用户并不受物理位置的限制,相互之间的通信就像在同一个局域网中一样。

说到VLAN技术,不得不提IEEE802.1Q标准,该标准定义了一切关于VLAN连接介质访问控制的规则并对VLAN通信的数据帧格式做了定义。

VLAN有诸多的优点

  • 增加了局域网设计的灵活性;
  • 限制广播域,提高网络传输效率;
  • 提高网络安全性,禁止跨VLAN访问,VLAN间不会相互影响。

因为这些优点,VLAN不仅在传统网络中被广泛使用,车载以太网中也同样应用广泛。

图 5 802.1Q帧格式

802.1Q帧基于Ethernet帧增加了4字节的802.1Q标记,增加部分简介如下:

  • TPID:标签协议标识符,表示帧类型,取值为0x8100表示802.1Q帧
  • PCP:表示帧的优先级,取值范围0~7,取值越大优先级越高
  • CFI:标准格式指示位,以太网中CFI=0,表示规范格式
  • VLAN ID:共有4096个VLAN(0~4095),其中0、4095为保留VLAN

1.4 数据链路层地址学习

数据链路层的寻址和链路管理都是通过交换机实现的

交换机内部有一个上电后自动建立的MAC地址转发表,维护记录了MAC地址与其所对应端口的关系    交换机是依据报文的目的MAC地址和MAC地址转发表转发数据报文

MAC地址转发表包含三项基本内容:

  1. MAC地址(目的MAC地址)
  2. 端口(MAC地址对应端口)
  3. VLAN ID(MAC所属VLAN)

数据链路层的地址学习主要指交换机的地址学习,是通过将接收报文的源MAC地址和对应的端口记录在MAC地址转发表的方式来完成的。在配置VLAN后,交换机有共享VLAN学习和独立VLAN学习两种MAC地址学习方式。

(1)SVL(Shared VLAN Learning)即共享VLAN学习

交换机将所有端口学习到的MAC地址全部记录到一张共享的MAC地址转发表中,任意端口接收的包含任何VLAN的报文都参照此表进行转发处理。

图 6 共享VLAN学习

(2)IVL(Independent VLAN Learning)即独立VLAN学习

交换机为每个VLAN维护独立的MAC地址转发表。某VLAN内的端口接收的报文,其源MAC地址只被更新到该VLAN对应的MAC地址转发表中,其他VLAN的MAC地址转发表是无法查询该表信息的。

图 7 独立VLAN地址学习

为便于交换机的链路管理,MAC地址转发表一般可分为静态地址表、动态地址表和过滤地址表。

静态地址表记录端口的静态MAC地址,该地址通常不会老化。如果数据链路固定,采用静态地址表可以省略地址学习的过程,提高交换机的转发效率。

动态地址表是通过前面介绍的地址学习获得的,但动态地址表的空间有限,为节省资源,交换机采用老化机制维护地址表。

交换机在完成某地址的学习后启动定时器,在老化时间内没有再次收到相同的源MAC地址报文,该地址会从动态地址表中删除。

交换机通过配置过滤地址对某些源地址或目的地址是这个地址的帧进行过滤

1.5 服务质量(QoS)简介

服务质量是指利用各种网络技术为指定的网络通信提供更好的服务能力,用来解决网络延迟和阻塞的一种技术。一般谈到服务质量主要指的是带宽、时延、抖动、丢包率

服务质量如何实现呢?

首先对进入的数据流按照一定的规则划分成不同的数据流;

根据入口的配置、报文的VLAN标签中PCP字段对报文进行标记;

约束已分类的数据流所占用的带宽;

将数据流中的报文送往端口的某个输出队列中;

采用调度算法发送队列中的报文;

最后对出口的流量进行整形,实现服务质量。

图 8 交换机服务质量实现示意图

TC8数据链路层测试规范

2.1 TC8数据链路层测试规范概述

OPEN(http://www.opensig.org)组织由全世界主要整车厂和供应商组成,旨在推广以太网技术在车辆中的应用。OPEN下属多个技术委员会(Tech Committee,简称“TC”),对不同方面的技术细节进行量化定义,并发布相应规范。其中,TC8规范包括车载以太网ECU从物理层到应用层的各层操作性以及常规基础功能服务,目的在于提高不同ECU之间的兼容性。

《OPEN Alliance Automotive Ethernet ECU Test Specification Layer 2 – TC8 ECU Test》是TC8数据链路层的测试规范,该测试规范囊括了大多数数据链路层的测试规范,涉及VLAN、常规功能、地址学习、帧过滤、时间同步、服务质量和配置等方面。

2.2 TC8数据链路层测试连接设置

TC8为保证测试结果的可靠,对测试中Test Station和DUT的连接做了要求。图9是TC8数据链路层的测试中用到典型连接设置图。

图 9 交换机标准测试设置

2.3 TC8数据链路层测试规范介绍及实例

TC8数据链路层测试规范中的测试用例是按功能域分组的。应根据ECU的配置,挑选相应的功能域和测试用例对其进行测试。TC8数据链路层测试的功能域可分为7个部分,下面对各功能域和测试用例做简要介绍。

(1)VLAN测试

本部分测试DUT是否根据VLAN要求对未标记、单标记和双标记的帧进行丢弃或转发到相应的端口。

如果目的端口是内部端口,一般使用ICMP报文和ARP报文进行测试;

如果目的端口是外部端口,一般采用广播报文进行测试。

VLAN测试的大致步骤是先从Test Station发送报文到DUT的每个端口,再监听相应的端口是否收到了期望的报文,根据DUT的行为是否符合其VLAN配置需求判断测试是否通过。

图 10 VLAN测试工程脚本图(蓝框内为报文发送和监听函数)

(2)常规测试

本部分测试的是DUT的常规功能,包括储存转发功能、启动时间、入出口的镜像、端口禁用、最大帧的限制和最大队列限制等。

以储存转发功能测试为例,测试步骤大致是先构造可以转发到其他端口的有效帧从Test Station发往DUT;然后监听各端口并在期望的端口收到该帧;最后将有效帧的FCS更改并发给DUT,监听所有端口。如果无法收到该帧,说明交换机有储存转发功能。

图 11 储存转发功能测试工程脚本图(蓝框为两组发送监听函数)

(3)地址学习

本部分测试的是DUT地址学习的功能,包括ARL地址的读写、外部端口的地址学习、内部端口的地址学习、动态地址的老化时间、禁止地址学习、未知目的MAC地址的处理、静态MAC地址的确认、地址学习一次性模式、地址学习数量限制、共享VLAN地址学习、多播地址学习和未知源MAC地址的处理。

(4)帧过滤

本部分测试的是DUT的帧过滤规则,比如是否根据需要丢弃或转发至特定端口,亦或者限制某种帧的入口速率等。

(5)时间同步

这部分测试时钟同步主端口的时间信息会不会受到干扰。该测试要求DUT具备至少一个IEEE1588或IEEE802.1AS/IEEE8021.1AS-Rev的时钟同步主端口,并且需要桥接时域中的时钟同步主端口。

(6)服务质量

本部分测试的是DUT的服务质量配置是否按照要求设置。这些设置包括:

  • 特定的端口配置了严格优先级作为传输选择算法;
  • 特定的端口使用加权轮询作为传输选择算法;
  • 是否按要求配置了VLAN优先级和内部流量类别之间的映射;
  • 正确配置基于速率的流量整形器。

(7)配置测试

本部分测试的是DUT在完成配置前是否支持转发模式。

一般DUT在上电后完成配置前是不会对已接收报文进行转发的。因此,测试的方法是在DUT上电前通过Test Station向DUT的端口发送报文,监听各端口收到的报文。如果在DUT配置完成后端口才收到转发报文,说明DUT在完成配置前是不支持转发模式的。

总结

本文介绍数据链路层的主要技术点,包括MAC地址、帧报文、VLAN、地址学习和服务质量等,以及介绍了TC8数据链路层测试内容和方法。通过这篇文章的介绍,相信大家对数据链路层以及TC8数据链路层测试有了一定的了解,希望这篇文章可以起到抛砖引玉的作用,帮助大家理解车载以太网数据链路层及其TC8相关测试并自行探索更深更丰富的车载以太网通信的知识,因篇幅有限,我们今天就介绍到这里啦,期待大家能在下方的留言区与我们进行交流哦~

更多精彩推荐:

浅谈TC10休眠唤醒规范

看这里!TC10休眠唤醒测试干货集结

汽车以太网对TCP/IP协议簇的应用

道路千万条,安全第一条——TCP/IP协议一致性测试排雷攻略

一刻钟读懂gPTP

选择困难?FQTSS协议来帮你

汽车以太网IOP测试之前世今生

商用车网络设计利器—SAE J1939协议

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅谈TC8数据链路层测试 的相关文章

  • 什么情况下需要加extern “C“,通俗易懂

    下午看了一些关于extern 34 C 34 的博客 xff0c 都写得很啰嗦 xff0c 看来看去还是有一些细节不怎么了解 xff0c 自己开了个程序测试了一下 xff0c 总结了什么情况下需要加入extern C 首先c 43 43 和
  • POSIX介绍

    POSIX表示可移植操作系统接口 xff08 Portable Operating System Interface of UNIX xff0c 缩写为 POSIX xff09 xff0c POSIX标准定义了操作系统应该为应用程序提供的接
  • Linux crond 命令使用实例

    每一分钟调用一次 ls l etc gt tmp to txt crontab e 进行编辑 1 ls l etc gt tmp to txt 1 代表每一分钟执行一次 1 第二个 代表一天中的某个小时 案例2 xff1a 写一个脚本 vi
  • DoIP诊断技术一点通

    DoIP的全称是Diagnostic Over Internet Protocol xff0c 即基于TCP IP协议的诊断协议 随着以太网技术在车载领域的应用范围逐步扩大 xff0c 越来越多的控制器支持通过以太网进行诊断通信 xff0c
  • 嵌入式必备基础一

    嵌入式必备知识 Oliver H的博客 CSDN博客 一 进程与线程 1 1 进程和线程的概念 1 1 1 什么是进程 线程 xff0c 各自有什么优点 概念 xff1a 进程是对运行时程序的封装 xff0c 是系统进行资源调度和分配的的基
  • 嵌入式基础二——C/C++

    二 C C 43 43 2 1 c和c 43 43 区别 概念相关面试题 2 1 1 new和malloc的区别 属性 xff1a new delete是C 43 43 关键字 xff0c 需要编译器支持 malloc free是库函数 x
  • ​Linux 黑话解释:什么是 POSIX?

    POSIX xff0c 你肯定在各种在线论坛和文章中 xff0c 听到过这个缩写 xff0c 或读到过关于它的信息 程序员和系统开发人员似乎最关心这个问题 它听起来很神秘 xff0c 虽然有很多关于这个主题的好资料 xff0c 但一些讨论区
  • 科研进阶篇——论文完结

    终于完成了人生的第一篇学术论文 xff0c 对这次的科研做个总结 xff0c 画上一个完美的问号 xff0c 让我们快乐的继续进阶 xff0c 投了会议 xff0c 中了的话应该会推荐到CCF C期刊 虽然还没出结果 xff0c 还是为自己
  • AP AUTOSAR 平台设计总体框架全解

    AP AUTOSAR 平台设计总体框架全解 01 简介 1 1内容 本规范描述技术范围和方法 AP的背景 逻辑和物理视图的架构 xff0c 是AUTOSAR自适应平台设计的总体框架 全文32000余字 xff0c 建议收藏阅读 02 技术范
  • 谈谈Bootloader自更新

    目录 01 Supplier Boot SB 43 Customer Boot CB 02 将Boot先放到RAM中运行 xff0c 然后更新Boot的Flash区域 03 两个CB 43 minBoot 04 小结 汽车控制器的BootL
  • E2E通信保护协议学习笔记

    E2E通信保护协议学习笔记 最近在做功能安全方面工作 xff0c 想了解E2E保护的问题 本文试着说明两个点 xff1a 功能安全需要考虑通信失效造成的影响 xff0c 因此E2E通信保护协议被提出 xff0c 以满足功能安全要求 xff1
  • TSN(时间敏感网络)介绍

    1 前言 TSN是时间敏感网络 xff08 Time Sensitive Network xff09 的英文缩写 xff0c 是IEEE 802 1 TSN工作组开发的一系列数据链路层协议规范的统称 xff0c 用于指导和开发低延迟 低抖动
  • 汽车OTA是个什么鬼?

    OTA xff1a Over the Air Technology 这描述的是手机吧 xff01 不过一开始的手机也是不可以直接OTA的 1997年之前所有汽车都是一个独立的机械个体 xff0c 一个方向盘 xff0c 一组踏板 xff0c
  • Hypervisor简介

    从头开始了解和使用Hypervisor xff08 第4部分 xff09 嘶吼 RoarTalk 回归最本质的信息安全 互联网安全新媒体 4hou com 根据 Hypervisor 的不同类型 xff0c 我们将虚拟化分为I 型和 II
  • 使用repo下载google源码,跟编译 ,遇到的错误解决

    最近一直想下载android的源码看看 xff0c 但是按照官方的文档下载 xff0c 遇到了问题 在执行的curl http commondatastorage googleapis com git repo downloads repo
  • S32V234 Linux yocto开发环境搭建

    一 主机环境 主机 xff1a Ubuntu 16 04 5 64bit S32V bsp infomation xff1a Bsp version auto yocto bsp 19 0 Linux Kernel version 4 13
  • NXP S32G2开发

    https blog csdn net bigzhizhi article details 123069235 导言 Linux BSP是一组源代码 xff0c 可用于为受支持的板卡创建U Boot引导加载程序 Linux内核映像 根文件系
  • 简单解决Please install the gcc make perl packages from your distribution问题 and VirtualBox安装增强功能失败

    在vbox安装ubantu增强功能 xff0c 出现下面这种情况 xff1a Please install the gcc make perl packages from your distribution 在这里插入图片描述 把需要的包都

随机推荐

  • 图形学就业方向&&春招部份纪实

    以下分几个模块分别介绍图形学 xff1a 1 图形学未来方向以及需要的技术 2 个人找工作情况 xff0c 具体介绍 图形学未来方向以及需要的技术 最近GAMES论坛搞了一个计算机图形学走进高校企业活动 xff0c 可以简称图形学招聘活动
  • SOME/IP 消息的布局

    1 SOME IP 消息的布局 前面两篇文章 SOME IP概述 分层结构及要实现的需求 SOME IP概述2 SOME IP的主要中间件功能 43 SOME IP报文PDU的封装 讲述了SOME IP的基本概念 需求及架构在以太网的4层模
  • 什么才是软件定义汽车?

    Software Defined Vehicle The Eclipse Foundation 导读 xff1a 移动出行时代 xff0c 汽车逐渐由机械驱动的硬件向软件驱动的电子产品过渡 xff0c 软件定义汽车趋势愈发明显 这一过程中汽
  • 一文看懂四大汽车总线:LIN、CAN、FlexRay、MOST

    前言 随着汽车工业的发展 xff0c 汽车各系统的控制逐步向自动化和智能化转变 xff0c 汽车电气系统变得日益复杂 传统的电气系统大多采用点对点的单一通信方式 xff0c 相互之间少有联系 xff0c 这样必然会形成庞大的布线系统 据统计
  • 浅谈ASIL: 汽车安全性等级

    目录 ASIL 表示汽车安全性等级 ASIL的确定 1 严重度 2 暴露度 3 可控度 ASIL 故障分析手段 ASIL 表示汽车安全性等级 这是 ISO 26262 标准针对道路车辆的功能安全性定义的风险分类系统 ASIL 根据伤害的可能
  • SOA中间件DDS(数据分发服务-Data Distribution Service)

    DDS协议 高可靠性 实时性 DDS Data Distribution Service for Real Time Systems xff0c 是一种面向实时系统的数据分发服务 xff0c 由OMG提供 xff0c 它的权威性可以证明该协
  • MQTT与DDS的比较

    MQTT VS DDS MQTT协议 三种服务质量 QoS xff1a 最多一次 Sender 发送的一条消息 xff0c Receiver 最多能收到一次 xff0c 也就是说 Sender 尽力向 Receiver 发送消息 xff0c
  • R-Car H3系列SOC芯片与R-Car M3 R8A77961JBP0BA区别

    RENESAS推出的 xff1a R Car H3 系列 SOC 芯片 R8A77951JA00BA xff03 YJ1 xff0c R Car M3 系列 SOC 芯片 R8A77960JA60BG xff03 YJ5 在内核上 xff1
  • PTP(IEEE1588),TSN时间同步方法

    本文首先简要介绍主流的时间同步方式GNSS xff0c NTP xff0c PTP 然后通过NTP和PTP对比 xff0c 解释PTP性能更优秀的原因 xff1b 并对算法公式进行了推导 0 Why need time synchroniz
  • AUTOSAR的四种功能安全机制

    虽然AUTOSAR不是一个完整的安全解决方案 xff0c 但它提供了一些安全机制用于支持安全关键系统的开发 本文用于介绍AUTOSAR支持的四种功能安全机制 xff1a 内存分区 xff08 Memory Partitioning xff0
  • libstdc++版本冲突的解决

    类似的问题出现在测试环境部署过程 xff0c 当编译完成该前端解析器后 xff0c 由于其依赖一些库文件 xff0c 包括系统库文件libstdc 43 43 so 6 及 libc so xff0c 这都是系统至关重要的库文件 但是不同系
  • 3D打印——CLIP技术之更快速更高表面质量

    论文 Gradient light video projection based stereolithography for continuous production of solid objects 阅读 论文共分为6个章节 xff1a
  • 汽车上DTC是什么意思?DTC是什么故障

    DTC的全称是 Diagnostic Trouble Code xff0c 意为诊断故障代码 如今 xff0c 汽车很多故障都是通过故障代码去诊断的 xff0c 例如汽车底盘检测 车身及附件检测 汽车污染物与噪声处理部件等相关检测等 目的旨
  • 人生算法——读书笔记

    跨越出生和运气 xff0c 实现富足和自由 用概率思维 做好决策 人生算法九段 广义而言大自然有两个重要的算法 xff0c 一个是进化 xff0c 一个是大脑 现实中我们虽然拼命思考 xff0c 但是极少思考自己的思考 围绕认知的飞轮 xf
  • Linux 上功能强大的网络工具 tcpdump 详解

    tcpdump 是用于捕获传入和传出流量的网络实用程序 这是您需要了解的有关在 Linux 上使用 tcpdump 的所有信息 Linux 配备了大量的网络实用程序可供选择 tcpdump 是一种功能强大的网络工具 xff0c 如果您需要对
  • 简析车载以太网TSN标准

    众所周知 xff0c 通用以太网是以非同步方式工作的 xff0c 网络中任何设备都可以随时发送数据 xff0c 因此在数据的传输时间上既不精准也不确定 xff1b 同时 xff0c 广播数据或视频等大规模数据的传输 xff0c 也会因网络负
  • 英伟达发布的系统级芯片orin

    本文为英伟达全面分析的第七篇文章 xff0c 关注英伟达在今年会大规模交付的Orin系统级芯片 Orin 是亚特兰蒂斯神话第一任统治者 xff0c 海王Altan的儿子 Orin一经发布 xff0c 便成为众多车企争抢装车的对象 本文重点探
  • Shell内置命令之exit的语法与实例

    系统中是有exit命令的 用于退出当前用户的登录状态 但是在 Shell 脚本中 exit 语句是用来退出当前脚本的 下面这篇文章主要给大家介绍了关于Shell内置命令之exit的语法与实例 需要的朋友可以参考下 https www jb5
  • SHELL编程

    一 变量 1 shell 脚本基础知识 编译型语言 xff1a 如 c语言 解释型语言 xff1a shell 脚本 shell脚本的本质 xff1a shell命令的有序集合 2 shell 编程的基本过程 基本过程分为三步 xff1a
  • 浅谈TC8数据链路层测试

    当今时代 xff0c 智能汽车已成为一个炙手可热的话题 xff0c 各种先进汽车电子技术蓬勃发展 xff0c 比如自动驾驶 V2X OTA 这些新技术的背后都离不开车载以太网通信技术的支持 浅谈TC8数据链路层测试 知乎 其中数据链路层实现