绪论
1969年,互联网的前身——ARPANET成功地连接了四个关键节点:①加州大学洛杉矶分校、②斯坦福研究所、③加州大学圣巴巴拉分校、④犹他州大学。这四个节点的成功连接标志着分组交换(Packet Switching)网络的正式运行,为后来全球互联网的发展奠定了基础。
随后,分组交换网络技术不断演进和发展。从最初的NCP(Network Control Protocol,网络控制协议),到1973年TCP(Transmission Control Protocol,传输控制协议)的诞生,再到1978年TCP/IP架构的确立,无论是网络规模,还是技术迭代,都在日新月异地变化。
随着互联网规模的不断扩大,对地址范围更大、更高效、更安全的网络协议的需求也日益增长。1990年,IETF(Internet Engineering Task Force,互联网工程任务组)开始规范IPv4后的下一代协议;1994年,形成了IPng(IP Next Generation)的初步设计;1998年IPv6规范正式发布。它提供了更大的地址空间和更高的安全性,为未来互联网的发展开辟了新的道路。
过去的55年里,互联网不仅改变了我们的通信方式,还深刻地影响了社会的各个方面。如今,互联网已经成为现代社会不可或缺的一部分,它连接着世界各地的人们,促进了信息的快速传播和交流。
与此同时,车载通信技术的发展也日新月异。2008年,当年量产的新一代宝马7系(F01)将“以太网+IP”的通信方式引入汽车领域,这一创新性的举措为车载通信技术的发展树立了新的榜样。随着“以太网+IP”在汽车领域的广泛应用,IPv4协议逐渐成为车载IP通信的主流协议。然而,也有一些汽车制造商尝试基于IPv6协议部署以太网通信,以满足未来车载通信的需求。
IPv6协议在车载以太网的设计、实现和测试中扮演着重要角色。为车载通信的未来发展提供了广阔的前景。相比IPv4,IPv6的主要变化如下:
- 扩展的寻址能力
- 首部格式简化
- 改进对扩展首部和选项的支持
- 流标签能力
- 完善身份验证和隐私功能
在车内通信场景下,通常通过二层交换机或总线式通信进行组网,而不涉及三层路由器的应用。因此,相较于传统的数据通信而言,IPv6协议在车载通信中的应用将更为简洁高效。
首部报文格式
IPv6的全称是Internet Protocol version 6,其中,Internet Protocol译为“互联网协议”。所以,IPv6就是互联网协议第6版,其基本首部包含8个固定字段,如下图所示:
各个字段的作用是:
- 版本(Version):这是一个4位的版本号,它指明协议的版本,对于IPv6来说,这个值被设为6。
- 通信量类(Traffic Class):这个字段用于标识数据包的优先级或服务质量(QoS)需求。在车内通信场景下,对于网络层不涉及复杂的QoS处理,建议将此字段统一置为0。
- 流标号(Flow Label):流标签字段用于标识属于同一“流”的数据包,以便进行特殊处理。但在车内通信环境中,由于网络拓扑相对简单且流量模式可预测,通常不需要使用流标签功能,因此建议也将其置为0。
- 有效载荷长度(Payload Length):这个字段指明了IPv6头部之后的数据长度,即有效载荷的长度。它是确保数据包完整传输的重要参数。
- 下一个首部(Next Header):该字段用于标识紧跟在IPv6头部后面的第一个扩展头部或上层协议的类型。它允许IPv6协议灵活地支持各种扩展和上层应用。
- 跳数限制(Hop Limit):这个字段类似于IPv4中的TTL(生存时间)字段,用于防止数据包在网络中无限循环。该值的使用,和路由关联较大,在车内通信场景下,该值需要按实际通信场景确定配置。
- 源地址(Source Address):源地址字段指明了发送数据包的设备的IPv6地址。它是网络层进行路由选择和数据包追踪的关键信息。
- 目的地址(Destination Address):目的地址字段指明了接收数据包的设备的IPv6地址。同样,它也是网络层进行路由选择和数据包投递的重要依据。
IPv6通过其灵活性和扩展性为现代网络通信提供了强大的支持。在车内通信场景下,通过合理地配置和使用IPv6的各个字段,可以实现高效、可靠且安全的数据传输。
在IPv4中,如果数据报在其首部中使用了选项,那么沿着数据报通信的每一个路由器都要对这些选项逐一检查,这种机制并不利于处理速度。IPv6中把原来IPv4首部的选项字段都放在了扩展首部中,并且仅有路径两端的源点和终点处理扩展首部(逐条选项扩展首部除外)。从而提高了整个网络的通信效率。
IPv6的扩展首部,拼接在IPv6基本首部之后,可以有零个、一个或多个。扩展首部的长度固定为8字节的整数倍。常见的扩展首部如下:
- 逐跳选项(Hop-by-Hop Options):这种类型的扩展首部用于携带那些必须在IPv6数据包传输路径上的每一个节点都被检查和处理的选项信息。
- 路由选择(Routing):路由选择扩展首部包含有关数据包传输路径的附加信息,允许数据包在到达最终目的地之前经过特定的节点或网络。
- 分片(Fragment):当IPv6数据包太大而不能在一个网络帧中发送时,分片扩展首部就会被用来将数据包分割成更小的片段,并在目的地进行重组。
- 目的站选项(Destination Options):目的站选项扩展首部包含仅在数据包到达最终目的地时才需要处理的选项信息。
对于车载以太网,车内通信不涉及路由,同时对于网络层不使用分片。一般不使用IPv6的扩展首部。
地址架构
对于IPv6地址是一个128位的接口标识,包含3种类型:
- 单播(Unicast):单个接口的标识。
- 任播(Anycast):一组接口的标识,但数据报只交付其中的一个对象 (通常是距离最近的一个)。
- 组播(Multicast):一组接口的标识,数据报交付组中所有对象。IPv6中没有广播地址,其功能被组播取代。
IPv6每个地址占128位,地址空间大于3.4×1038 个。常用的地址标识形式有2种:
- 基本形式为「x❌x❌x❌x:x」,其中”x”是1~4位的十六进制数,如:「ABCD:EF01:2345:6789:ABCD:EF01:2345:6789」
- 很多分配IPv6地址的规则,会使地址中包含多个0,所以可以使用特殊语法,来压缩0。使用“::”,例如:「2001:DB8:0:0:8:800:200C:417A」
也可以表示为:「2001:DB8::8:800:200C:417A」
表1 IPv6地址的分类
ICMPv6
同IPv4协议,IPv6也需要使用ICMP协议传递差错、查询信息。ICMPv6比ICMPv4更加复杂,而在IPv4中ARP(地址解析协议)和 IGMP(网际组管理协议)的功能,在IPv6中都融合到了ICMPv6中。
每个ICMPv6报文,前面都会有一个IPv6基本首部,以及零个、一个或多个IPv6扩展首部,ICMPv6首部,由前一个首部中的Next Header字段值为58进行标识。ICMPv6报文通用格式如下所示。
其中,Type字段指示消息的类型,它决定了剩余数据的格式;Code字段基于Type字段,提供了额外的消息粒度。Checksum字段用于检查ICMPv6首部和部分IPv6首部是否有数据损坏。
ICMPv6报文分为两类:错误类消息(error messages)和信息类消息(informational messages),两类消息通过最高位的零来标识。
表2 ICMPv6的报文类型
同IPv4,对于IPv6协议栈,必须搭配ICMPv6使用。
IPv6的邻居发现
NDP(Neighbor Discovery Protocol,邻居发现协议)是IPv6协议体系中一个重要的基础协议。通过使用ICMPv6报文实现。IPv6邻居发现协议对应于IPv4的①ARP(地址解析协议)、②ICMP路由发现、③ICMP重定向。但是邻居发现协议对IPv4的协议集进行了大量改进。
ICMPv6消息类型中,有5种是为了支持邻居发现协议而定义的,如下表所示。
表3 NDP的报文类型
邻居请求(NS)报文替代了IPv4中的ARP请求报文,其主要目的是把一个IPv6地址,转化为链路层地址。对应的邻居通告(NA)报文类似IPv4中的ARP响应报文,其格式如下:
车载运用中,可根据实际通信场景,定义NDP协议的实现机制,并定义RFC4861规范中定义的协议的相关参数。
总结
IP通信是现代互联网的核心,IPv4于诞生于20世纪70年代,随着网络技术的飞速发展,IPv4地址枯竭,以及IPv4一些固有的局限性,逐渐显露出一些技术瓶颈。而IPv6可以有效改善这些问题。
对车载通信而言,由于车内是一个相对简单的局域网环境,对IPv6的使用不像传统网络通信那么迫切。但随着车辆智能化、网联化程度提高,IPv6仍是车内IP通信的一个优选方案,一个可能的未来趋势,IPv6在车内使用的设计、实现、测试,是车载以太网领域需要考虑的重要课题。
经纬恒润作为OPEN联盟会员和AUTOSAR联盟的高级合作伙伴,长期为国内外各大OEM和供应商提供涵盖TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS等技术领域的设计和测试咨询服务,积极研发和探索车载网络前沿技术的工程应用。通过多个项目的实践经验,已建立了高质量、本土化的设计与测试一体化解决方案,为整车网络架构提供可靠支持。
参考资料
[1]RFC 2464, Transmission of IPv6 Packets over Ethernet Networks
[2]RFC 4291,IP Version 6 Addressing Architecture
[3]RFC 4443,Internet Control Message Protocol (ICMPv6) for IPv6 Specification
[4]RFC 4861, Neighbor Discovery for IP version 6
[5]RFC 4862, IPv6 Stateless Address Autoconfiguration
[6]RFC 8200, Internet Protocol, Version 6 (IPv6) Specification
了解更多:
请致电 010-64840808转6115或发邮件至market_dept@hirain.com(联系时请说明来自CSDN)