当前位置:首页 > 科技 > 正文

车载以太网(三)

上篇文章笔者简要介绍了车载网络技术发展的历史。这篇文章笔者将对网络的一些基础知识和技术概念进行介绍,作为后续详细说明车载以太网技术的铺垫。

目前存在多种网络和用来实现这些网络的技术方案。之所以存在这么多网络技术有一个看似非常合理的原因,即不同的需求需要不同的解决方案。但如此多的网络技术带来的问题是需要学习和理解大量不同类型的网络协议和相关技术。理解网络的一些基本特性能够使这个学习和理解过程相对容易一些。

最早期的网络技术是比较直观和简单的。与现代网络技术相比,它们只能以很低的速率运行,具有极少的功能,并且使用最简单的信号和消息系统来支持基本的通信。因为这种网络技术非常简单,描述它们的运行方式也很容易,不需要复杂的机制去解释不同的功能如何工作。时至今日,网络技术已经大不相同,它们更加复杂,并且通常由大量不同的硬件和软件协同工作来实现核心的功能。网络硬件和网络程序可能由不同的公司设计和研发,但又要求能够在一起无缝集成和高效工作。现代网络技术对于任何人来讲已经过于复杂,很难完全掌握,因此需要在不同的特定技术领域的专家和更细化的分工合作。正是由于以上原因,诸如以太网这样的现代网络技术,以及运行在以太网之上的许多协议,协议集合(例如TCP/IP)都被拆分为不同的标准进行定义,而不是用单一的标准涵盖所有的内容。网络所需要的各种不同功能被拆分为更小的技术领域,每个功能块的运行和实施都有专门的规范进行定义,包括不同模块之间的统一接口定义。将一个非常复杂的网络技术分解为便于理解的多个小技术领域,从而建立一个强大、灵活并且具有成本效益的网络系统,以太网就是这样的网络技术。将复杂网络技术处理为更易于理解和管理的组成部分的最常用方法是分层。分层是将网络功能划分到不同的层,每一个层包含一定的硬件和软件组成元素。每一个层负责执行特定类型的任务,并且与上层和下层进行交互。所有层在垂直方向堆叠在一起,并且越低的层负责越具体的任务,诸如硬件信号收发,提供诸如基本的packet发送服务给高层。高层使用这些服务实现更抽象的功能,诸如确保可靠的通信,或者实现特定的用户功能。车载以太网实际上是基于在一起工作的一定数量不同的架构。核心的底层架构通过不同的IEEE 802标准以及博通公司的BroadR-Reach技术进行定义。TCP/IP架构应用于基本车载以太网技术之上,使用运行在互联网上的技术实现汽车工业标准的message传输。另外一个完全独立的特殊架构称为AVB(Audio-Video Bridging),它用来实现时间敏感的应用,诸如视频回放。所有这些架构技术笔者在以后将进行详细介绍,这里只是先做个大概的介绍。

接下来介绍一个重要的网络技术术语:协议(protocol)。如果要选出一个在网络相关书籍中出现频率最高的术语,协议也许是其中一个。你会看到网络协议、互联网协议、高层协议、低层协议、协议栈和协议集合等术语。协议用来定义网络的元素,但许多网络书籍和标准不断的使用“协议”,却从来没有给它一个明确的定义。造成这种情况的一个原因是“协议”这个词可以有很多含义,因此比较难以把握它在各种语境下到底指代什么。有些时候我们在理解一个技术术语时,如果我们回头看下它对应的英文单词在日常生活中是如何使用的,也许理解起来会容易一些。protocol在日常生活中可以指行为的准则或者外交上的某种形式的礼节,人们必须遵守这些规则以确保能够高效的沟通并且不发生冲突。人们也必须理解与其它国家的人沟通时他们如何做才是得体的,例如,即使他们不习惯,也不能违反当地的风俗习惯。也许这些看起来与网络协议没什么关系,但实际上这是对网络协议究竟是什么的一个从事物本质上的很好的诠释。在现实世界中,人与人交往需要规则和礼节,在网络世界中,发送方和接收方想进行数据交换,也必须建立数据交换的规则、标准或者约定,发送方和接收方必须使用相同的网络协议才能进行通信(就像两个人如果想直接沟通,必须使用同一种语言一样,网络协议是发送方和接收方所使用的语言)。网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。一台设备上的第 n层与另一台设备上的第n层进行通信的规则就是第n层协议。在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。网络协议使网络上各种设备能够相互交换信息。有些时候,人们会将与“协议”完全没有关系的事物也叫做协议(例如,数据库标准或者计算机语言实际上不是“协议”,但常常被叫做协议),也许是因为不理解协议是什么,也许就是因为协议听起来很专业,喜欢用这个词。不管怎样,当我们知道了“协议”的真实含义之后,对于正确理解经常产生混淆的网络世界是很有意义的。

下面介绍区分不同网络技术的2个基本维度。第1个是网络技术如何确定信息传输的路径。有2种基本的方法确定传输路径:1. 线路交换技术(Circuit Switching):在信息传输之前确定设备之间的传输路径,然后此路径用于多次的信息传输。2. 包交换技术(Packet Switching):信息被分解为多个信息元素(packet-包),每个packet理论上都可以通过不同的路径进行传输。第一种线路交换技术通常称为旧的信息传输技术,例如多年以前的固定电话网络。当建立一个通话连接后,两个电话设备之间线路将一直保持直到通话结束。现代的网络技术几乎都使用第二种包交换技术。包交换技术将信息被拆分为包进行传输,接收方再将所有的包还原成原始的信息。这里需要注意一点,“Packet”只是在网络上传输的message的几种类型的一种,其它的类型还有frame(帧),datagram(数据报)、协议数据单元、服务数据单元。在某些情况下,这些用于指代message的不同术语非常有用,因为通过它们的名称就可以判断message所包含的数据是什么。特别值得注意的是,这些不同的名称通常与OSI参考模型中特定层的协议有关联,因此这些名称对于清晰地描述包含不同层的多个协议时会非常有用。但另一方面,这些名称也同样会造成困惑,因为对它们的使用并不总是能够保持正确性和一致性。一些人能够严格按照规则在合适的技术场景下使用它们,但很多人却经常将它们混淆使用。更糟糕的是,当这种混淆使用发生在用于描述OSI参考模型中特定层协议时,往往会造成严重的困惑。笔者将用于指代不同类型message的几个常用术语描述如下,以便大家进行区分:1. Packet(包):这个术语经常用来指代OSI参考模型中网络层协议所发送的message,例如你会经常看到“IP packet”这样的描述。但packet也经常被用来指代任何类型的message,因此在很多地方都可以看到它。2. Datagram(数据报):这个词基本上与packet是同义词,也经常用来描述网络层技术。但datagram也经常用来指代OSI参考模型中更高层发送的message,这种情况比packet要频繁得多。3. Frame(帧):这个词绝大部分情况下都用于指代OSI参考模型中低层发送的message,一般是物理层和数据链路层。frame这个词在讨论诸如以太网这样的网络技术时会经常看到,CAN总线标准也使用frame用来描述它的message。之所以叫做frame是因为它将高层发送的packet或者datagram在低层加上额外的头信息,从而形成特定的frame(帧)格式。4. PDU(协议数据单元)和SDU(服务数据单元):这2个词是用来描述OSI参考模型中的协议message的正式术语。第N层的一个PDU是包括第N层的头信息和经过封装的来自第N+1层的message,这也可以叫做第N层的SDU和第N+1层的PDU。这里需要说明的是,以上所介绍的这些技术术语的应用并不是一成不变的,有些时候它们会被误用和滥用。在IEEE 802.3以太网标准中将数据链路层(OSI参考模型的第2层)的message称为“frame”,也称为“packet',但如上所述,'packet'通常用来描述高层的message。不过,只有大家清楚所看到的术语的真实技术含义,在遇到这些非正式用法的时候就不会有什么问题了。最后还必须指出,有一些特定的协议用非常特别的词来描述它们的message,这些词在网络世界的任何其它地方都看不到。一个很好的例子是传输控制协议(TCP),这个协议将它发送的message称为segments。第2个是网络技术是连接导向的还是非连接导向的。连接导向的网络技术在两个设备之间传输数据之前需要建立它们之间的一个逻辑连接 。这通常是指建立一组规则,诸如定义这个逻辑连接如何初始化、如何管理以及如何终止。通常由一个设备发送建立连接的请求,另外一个进行响应。它们通过传递控制信息来决定是否应该建立连接以及如何建立连接。当连接建立成功后,数据开始传输。当数据传输完成之后,连接断开。非连接导向的网络技术不需要在两个设备之间建立连接。只要有设备需要发送信息到另一个设备就马上发送。

下面对message的格式做一个介绍。每一个协议都使用特定的格式化方法,这个方法决定了它所使用的message结构。显而易见,用来连接一个网页服务器和网页浏览器的message,与在OSI低层连接2个以太网设备的message是有很大不同的。尽管如此,一个特定类型的message格式完全取决于它所使用的技术的本质,因此message基本上还是遵循一个总体上统一的结构。一般来讲,每一个message都包含以下3种基本元素:1. 头(Header)。header是放在message的实际数据之前的信息。header包括少量的表示控制信息的字节,这些控制信息用于表示message所包含数据的重要事实,并且说明这些数据如何解释和使用。header作为不同设备的协议元素之间进行通信和控制的联接。有些情况下header也可能用来对共享通道进行管理和使用权限控制,或者用于其它目的,诸如控制message的发送地点。2. 数据(data):data是message实际传输的数据,也经常被叫做message的payload。payload这个词原来用于航天工业,用来表示运输工具的最大载荷,message的payload则可以理解为message所能承载的最大数据量。绝大多数message都包含一定数量的数据,但有些message实际上不包含任何数据,这些message仅仅用于控制和通信的目的。例如,在数据 发送之前用来建立或者终止一个逻辑连接。3.尾(footer): footer是放在message的实际数据之后的信息。footer通常也包含控制信息,这点与header类似。footer有时候也叫做trailer。图1展示了message的一般结构。

一般来说,将多个设备组成一个网络有2个目的,即交换信息和共享资源。这里的“资源”可以指硬件设备、软件程序和数据库,或者任何的其它数据集合。信息和资源如何在网络上进行共享取决于网络和组成网络的设备被设定为以何种方式运行。更具体的说,网络设计者必须选择哪些设备管理资源、哪些设备为了获取信息发布请求、哪些设备对这些请求进行响应。在一些网络中,所有设备在这些方面是同等的,而另外一些网络中,不同设备承担特定的职责。这种决定网络上的设备如何进行交互的不同方法有时候叫做运行模型(operational models)或者结构模型(structural models)。网络设备所负责的工作任务也称为他们的角色,这一点与电视剧中的演员类似。网络一般有三种运行模型。1. 对等模型(Peer to Peer):每个网络设备的角色都是对等的,都可以发送请求和响应请求,没有设备设计成执行一个特殊的角色。这种模型一般用于小型和简单的网络。2. 客户/服务模型(Client/Server):有一小部分设备作为服务器,它们配备特殊的硬件和软件,从而可以更高效地与多个客户端交互。客户端之间也可以进行交互,但大多数时间客户端是发送给服务器各种请求,随后服务器发送响应给客户端。3. 主/从模型(Master/Slave):这个模型与客户/服务模型比较类似,但主设备在主/从模型中的扮演的角色比服务器在客户/服务模型中的角色更加正式和核心。除了向其它设备提供服务之外,主设备实际上负责控制整个网络的运行。在某些情况下,从设备为了减小尺寸和成本可以相对简单,它完全依赖于主设备去告诉它何时工作以及做什么。另外一个重要区别是,在客户/服务模型中,通常是由客户端发起请求,然后服务器进行应答;而在主/从模型中,主设备可以管理所有的通信,从设备不会发起任何通信。车载网络中的LIN总线是使用主/从模型的一个很好的例子。在车载网络中,尽管实际的设备类型和设备功能多种多样,但从网络运行模型上来讲基本都属于对等模型。但也存在客户/服务模型的例子,比如当汽车与诊断设备连接时,诊断设备就成为了客户端,它发送请求给车内的ECU,车内的ECU根据请求回应所需的信息。这个例子也说明了同样的设备可以扮演多个角色,这取决于应用的具体场景:一个ECU被诊断设备激活后就可以工作在客户/服务模式,即使在通常情况下,它在车辆内部网络中运行在对等模式下。

你可能想看:

有话要说...

取消
扫码支持 支付码