用OSI模型来看车载网络

发布于 2022-11-14 16:01
浏览
0收藏

用OSI模型来看车载网络-汽车开发者社区


OSI 7 层模型简介


工作涉及过网络工程的朋友,相信都会接触过OSI 7层模型这个概念。汽车车载网络作为一种重要的网络用例,自然也会经常遇见这个概念。尤其近年来随着车载以太网的普及以及车联网技术的实现,汽车网络愈加复杂。而OSI 7层模型则可以说是用以理解和设计汽车网络的利器。


OSI全称是Open System Interconnect,即开放式系统互连。有时也叫OSI参考模型,是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层)。


首先,这是一个互连模型,其目的在于研究网络通讯。

其次,为什么要分层?其意义在于更好地解耦复杂问题,让层与层之间各自独立。


功能相仿的内容抽象到同一层里,让每层专注于自己的任务和分工,各司其职提高效率。出了故障时也能顺藤摸瓜,按层排查。各个制造商也可以按分层结构集中开发某一层或者某几层的软件或者硬件设备。


用OSI模型来看车载网络-汽车开发者社区


图1:OSI 7 层模型


这个模型从80年代提出到今历久不衰,可见其分层的合理性。该模型同时还适用于各类网络通讯,为众多网络开发人员提供统一的语言。按照不同网络的标准和规范,不一定都会全部应用完这7层(实际上用完7层的网络不多),但是通过合并某些层次,该模型也可以退化成TCP/IP(4层)等模型。


接下来我们从上往下一层一层的来剖析这个模型。为了辅助参考,我们类比一个老板接收报告的例子。


第7层应用层:这是人机交互的一层。

应用层顾名思义就是被终端业务应用使用的一层,这一层提供的数据是能被一般人所理解的,例如我们平时浏览网页或者查看邮件所看到的数据,都是应用层所提供的。典型的应用层协议有HTTP,FTP,SMTP,DNS等。


以参考例子来看,应用层协议就像是一份呈现在老板桌上的市场分析报告,其编排都是按照老板所熟悉的模板来进行,对老板来说一目了然。


第6层表示层:这是确保数据格式可用的一层。

这一层会调整数据为应用可读的格式。通讯上的加解密、解压缩和编译码等工作都会在这一层进行。典型的表示层协议有ASCII码到EBCIDC的转换、SSL和MPEG等。


以参考例子来看,表示层协议就像是老板的秘书,把收到的原始报告按照老板熟悉的模板重新编排。


第5层会话层:这是维护连接和控制端口及会话的一层。

这一层主要功能是负责两个通讯节点之间的传输联接。过程中包括建立通讯通道、在使用时确保会话畅通并在使用结束后结束会话。会话层还可以在数据传输过程中设置检查点,如果传输中断,设备可以在最后一个检查点处重传。典型的会话层协议有RPC、SQL和NFS等。


以参考例子来看,会话层就像公司里的通讯助理,她负责与报告提供方联系,确保报告通过快递发出,并通过快递单号追踪物料情况,确认收货等。


第4层传输层:这是通过协议传输数据的一层。

这一层主要功能是管理传输的数据包,提供端到端的数据传输服务。过程中可以采用面向连接或者无连接的方式来实现。如果需要数据分包整包、流量控制、错误控制等都会发生在这一层。传输层是承上启下的一层,往上的更偏应用上层,往下的更偏底层软硬件。典型的传输层协议有TCP(面向连接)和UDP(无连接)。


以参考例子来看,传输层就像快递公司。报告提供方找到对应的快递公司来运送报告,把单号告诉公司通讯助理。至于这个信件具体怎么运输,货物会否丢失,公司通讯助理是否隔天能收到,就是靠快递公司来管理保证了。


第3层网络层:这是路径选择的一层。

这一层的主要功能是数据打包解包和路径选择,其目的是实现两个端系统之间的数据透明传送。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。网络层一方面会把数据在发送端分段成单个的数据包,在接收端把数据包组合后提供给传输层。同时网络层会寻找最佳的物理传输路径,确定数据包的实际路由路径。典型的网络层协议有IP和ICMP等。


以参考例子来看,网络层就相当于快递公司里的城际运输。例如报告提供方发给公司通讯专员的发件地址是广州市XX路YY号,收件地址是上海市AA路BB号。城际运输会先关注广州到上海,选择一条合理的运输路线发往上海。到上海后再按照目标地址转运到其附近的快递站。


第2层数据链路层:这是连接软硬件的一层。

这一层负责建立和终止两个通讯节点之间的物理连接,定义在单个链路上如何传输数据。这一层协议与传输的物理介质有关,属于软硬件交互的一层。数据链路层还负责如何将数据组合成数据块,在数据链路层中称为帧。帧是数据链路层的传送单位。同时这一层还会负责控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配等。典型的数据链路层协议有Ethernet、IEEE802.3和CSMA/CD等。


以参考例子来看,数据链路层就像地方快递员,将信件从快递站送到公司门口。


第1层物理层:这是通过物理介质传输原始二进制码流的一层。

这一层就是具体的物理介质,例如是同轴线缆或是无线电磁波等。这一层定义了物理网络接口的规格,设备间线缆或无线连接的规格,确保原始二进制码流(0101000…)和位速率控制等。典型的物理层协议有100BASE-T1 和1000BASE-T1等。


这一层相信不需要配合参考例子理解。硬要以参考例子来看的话,物理层就是这个信件寄送过程所经历的物理介质,就是整个物理世界。


OSI 7层模型是最广泛的一种网络通讯分层抽象。而针对具体不同的通讯网络,我们可能需要着重关注其中一层,然后再细分几个子层。又或者将OSI 7层的某几个层次合并为一个来处理。这就像公司里我们经常把员工分为基层员工、中层干部和高管,便于我们能有统一的语言交流和分析。但是根据实际的工作任务,有时候可能需要把基层员工细分为实习生、工程师、资深工程师等才能分析讨论问题,而中层干部和高管都统一归类为领导就足以完成讨论。


分层模型本质上是一个工具,我们还是应该以解决问题为导向,灵活应用这个工具。接下来我们以汽车上常用的两种通讯方式为例子,看看怎么应用OSI 7层模型分析和理解这两种通讯方式。


用OSI模型来看车载网络-汽车开发者社区


以CAN通讯为例


CAN全称是Controller Area Network的缩写,即控制器局域网络,属于工业现场总线,是ISO国际标准化的串行通信协议,在汽车网络通讯上广泛使用。


Classic CAN的一种经典应用是信号传输。如下图所示,这种CAN总线的信号传输只用到了物理层、数据链路层和应用层。CAN的数据帧直接可以解析成应用报文和信号。但是考虑到车载网络的可靠性要求和器件通用标准化要求,CAN通讯针对物理层和数据链路层作了更详尽的分析和协议标准规定。


用OSI模型来看车载网络-汽车开发者社区


图2:基于CAN的信号通讯与OSI模型


具体来看,CAN的数据链路层分为逻辑链路控制(LLC)子层和媒体访问控制(MAC)子层。MAC子层的功能主要是传送规则,即控制帧结构、执行仲裁、错误检测、出错标定和故障界定;LLC子层的功能主要是报文滤波、超载通知和恢复管理。物理层则由收发器、传输介质(线缆)和接口实现,负责定义总线电压和容错性能等。


当然除了简单的信号传输,CAN通讯还可以用来做诊断等应用。这种场景下,则需要细分网络层、传输层等其他层次,以支撑更复杂的通讯应用。


用OSI模型来看车载网络-汽车开发者社区


以SOME/IP通讯为例


SOME/IP (Scalable service-Oriented MiddlewarE over IP),即“运行于IP之上的可伸缩的面向服务的中间件”。它是车载以太网通信引入的一个概念,本身属于OSI 模型第4层之上的应用层协议,主要为针对汽车电子的应用层提供API接口,并已经纳入了AutoSAR标准体系。


如下图所示,对于4层及以下的协议,SOME/IP可以复用互联网相对成熟的协议。下层的MAC Header、IP Header、TCP/UDP Header都可以基于现有协议定义,底层的寻址逻辑、建链逻辑、流量控制、错误控制等都可以较好地复用现有硬件设备或者软件协议栈。


用OSI模型来看车载网络-汽车开发者社区


图3:SOME/IP通讯与OSI模型


SOME/IP协议实际上对数据的序列化和反序列化、远程调用机制和服务发现机制等都进行了定义,也涉及到会话层和表示层的部分功能。但是整个协议没有特殊的细分层次需求,所以在通讯协议上无需再划分不同的子层协议。回到开头的例子,这就像一间小型公司,可能看分析报告、整编模板和追踪快递都由同一个人来负责,而不是三个岗位。


通过CAN和SOME/IP通讯这两个例子,我们可以进一步理解OSI参考模型在我们分析网络通讯时能起的作用。这个通用模型实际上更像一个指导工具,把网络操作分成低复杂性单元,帮助设计和理解新网络。层次的划分使各层独立,减少相互影响。例如设计应用层SOME/IP协议的同时,可以复用原有的下层协议而不干涉。这种灵活性也使得根据网络特性而单独替换某层协议十分方便,解决了异种网络互连时所遇到的兼容性问题。


当然除了CAN和SOME/IP通讯,OSI 模型也用于DoCAN、DoIP、蓝牙、5G、Wi-Fi等多种汽车相关的网络通讯。希望这篇文章能让大家有所收获,在遇到更多的网络通讯问题时能使用到OSI模型这个利器。


参考来源:

1. What Is the OSI Modelhttps://www.imperva.com/learn/application-security/osi-model/

2. SOME/IP in a Nutshell, 

https://assets.vector.com/cms/content/events/2019/VH/VIC2019/Track_1_5_Glancing_Ethernet_communication_for_Automotive_4.pdf



文章转载自公众号: 焉知智能汽车

标签
收藏
回复
举报
回复
相关推荐