本申请要求申请日为2021年04月17日、申请号为202110415169.3、申请名称为“一种组建网络的方法和装置”的中国发明专利申请的优先权,其全部内容通过引用结合在本申请中。
发明内容
本申请提供一种组建网络的方法、以太网系统和车辆,能够提升主备链路切换的响应时间,实现网络快速重组,保证车载应用的需求。
第一方面,提供一种组建网络的方法,该网络包括M个骨干节点,该M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,该M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。其中,M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态;M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态。该方法包括:第一骨干节点获取环形网络中的链路故障信息,第一骨干节点根据该链路故障信息将第一骨干节点的第二骨干端口切换为转发状态。
本申请中,第一骨干节点可以获知环形网络中的链路故障信息,该链路故障信息作为事件触发源,第一骨干节点在获取该信息的情况下,将其处于阻塞状态的端口切换为转发状态,从而启动原阻塞状态的端口所在的备用链路。端口状态切换后,环形网络可以重组为线形通信网络,用于链路故障下的通信。相比于现有技术中,当出现链路故障时,所有节点静默,然后进行新一轮的节点选举和链路裁切,以重建剩余链路之间的通信连接,本申请可以提升主备链路切换的响应时间,实现网络快速重组,保证车载应用的需求。
结合第一方面,在第一方面的某些实现方式中,第一骨干节点获取环形网络中的链路故障信息,包括:第一骨干节点通过第一骨干节点的第一骨干端口接收通知报文,通知报文用于指示第一链路发生故障,第一链路为第二骨干节点的第一骨干端口所在的链路。
结合第一方面,在第一方面的某些实现方式中,该通知报文为桥接协议数据单元BPDU报文。
结合第一方面,在第一方面的某些实现方式中,第一骨干节点获取环形网络中的链路故障信息,包括:第一骨干节点确定第二链路发生故障,第二链路为第一骨干节点的第一骨干端口所在的链路。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:第一骨干节点将第一骨干节点的第一骨干端口切换为阻塞状态。
结合第一方面,在第一方面的某些实现方式中,第一骨干节点确定第二链路发生故障,包括:第一骨干节点通过差分信号诊断确定第二链路发生故障。
结合第一方面,在第一方面的某些实现方式中,M个骨干节点中的每一个包括第一标识,第一标识用于标识网络中的骨干节点。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:第一骨干节点检测第一标识;第一骨干节点根据第一标识确定自身为网络中的骨干节点。
第二方面,提供一种组建网络的方法,其特征在于,该网络包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态,第二骨干节点为M个骨干节点中除第一骨干节点之外的一个。该方法包括:第二骨干节点确定第一链路发生故障,第一链路为第二骨干节点的第一骨干端口所在的链路;第二骨干节点通过第二骨干节点的第二骨干端口发送通知报文,通知报文用于指示第一链路发生故障。
本申请中,第二骨干节点在确定第一链路发生故障时,会发送通知报文,使得第一骨干节点可以获知环形网络中的链路故障信息,该链路故障信息作为事件触发源,第一骨干节点在获取该信息的情况下,将其处于阻塞状态的端口切换为转发状态,从而启动原阻塞状态的端口所在的备用链路。端口状态切换后,环形网络可以重组为线形通信网络,用于链路故障下的通信。相比于现有技术中,当出现链路故障时,所有节点静默,然后进行新一轮的节点选举和链路裁切,以重建剩余链路之间的通信连接,本申请可以提升主备链路切换的响应时间,实现网络快速重组,保证车载应用的需求。
结合第二方面,在第二方面的某些实现方式中,该方法还包括:第二骨干节点将第二骨干节点的第一骨干端口切换为阻塞状态。
结合第二方面,在第二方面的某些实现方式中,第二骨干节点的第一骨干端口为主端口,第二骨干节点的第二骨干端口为从端口。
结合第二方面,在第二方面的某些实现方式中,第二骨干节点确定第一链路发生故障,包括:第二骨干节点通过差分信号诊断确定第一链路发生故障。
结合第二方面,在第二方面的某些实现方式中,M个骨干节点中的每一个包括第一标识,第一标识用于标识网络中的骨干节点。
结合第二方面,在第二方面的某些实现方式中,该方法还包括:第二骨干节点检测第一标识;第二骨干节点根据第一标识确定自身为网络中的骨干节点。
结合第二方面,在第二方面的某些实现方式中,该通知报文为桥接协议数据单元BPDU报文。
第三方面,提供一种组建网络的方法,该网络包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态。该网络还包括终端节点,终端节点包括第一终端端口和第二终端端口,第一终端端口为转发状态,第二终端端口为阻塞状态。M个骨干节点中的至少两个骨干节点还包括第三终端端口,第一终端端口和第二终端端口与至少两个骨干节点的第三终端端口相连。该方法包括:终端节点确定第三链路发生故障,第三链路为第一终端端口所在的链路;终端节点将第二终端端口切换为转发状态。
本申请中,终端节点可以获知其主备链路的故障信息,该链路故障信息作为事件触发源,终端节点在获取该信息的情况下,将其处于阻塞状态的端口切换为转发状态,从而启动原阻塞状态的端口所在的备用链路。相比于现有技术,本申请无需终端节点之外的设备参与控制与处理,在终端节点内部的配置逻辑下完成主备链路的快速切换,因此,可以提升主备链路切换的响应时间,实现网络快速重组,保证车载应用的需求。
结合第三方面,在第三方面的某些实现方式中,该方法还包括:终端节点将第一终端端口切换为堵塞状态。
结合第三方面,在第三方面的某些实现方式中,终端节点确定第三链路发生故障,包括:终端节点通过差分信号诊断确定第三链路发生故障。
结合第三方面,在第三方面的某些实现方式中,终端节点包括第二标识,第二标识用于标识网络中的终端节点。
结合第三方面,在第三方面的某些实现方式中,该方法还包括:终端节点检测第二标识;终端节点根据第二标识确定自身为网络中的终端节点。
第四方面,提供一种组建网络的装置,该网络包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态,第二骨干节点为M个骨干节点中除第一骨干节点之外的一个。该装置包括收发单元和处理单元。可选地,该装置为第一骨干节点。收发单元,用于获取环形网络中的链路故障信息;处理单元,用于根据链路故障信息将第一骨干节点的第二骨干端口切换为转发状态。
结合第四方面,在第四方面的某些实现方式中,收发单元具体用于:通过第一骨干节点的第一骨干端口接收通知报文,该通知报文用于指示第一链路发生故障,第一链路为第二骨干节点的第一骨干端口所在的链路。
结合第四方面,在第四方面的某些实现方式中,该通知报文为桥接协议数据单元BPDU报文。
结合第四方面,在第四方面的某些实现方式中,处理单元还用于:确定第二链路发生故障,第二链路为第一骨干节点的第一骨干端口所在的链路。
结合第四方面,在第四方面的某些实现方式中,处理单元还用于:将第一骨干节点的第一骨干端口切换为阻塞状态。
结合第四方面,在第四方面的某些实现方式中,处理单元具体用于:通过差分信号诊断确定第二链路发生故障。
结合第四方面,在第四方面的某些实现方式中,M个骨干节点中的每一个包括第一标识,第一标识用于标识网络中的骨干节点。
结合第四方面,在第四方面的某些实现方式中,处理单元还用于:检测第一标识;根据第一标识确定自身为网络中的骨干节点。
第五方面,提供一种组建网络的装置,该网络包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态,第二骨干节点为M个骨干节点中除第一骨干节点之外的一个。该装置包括收发单元和处理单元。可选地,该装置为第二骨干节点。处理单元,用于确定第一链路发生故障,第一链路为第二骨干节点的第一骨干端口所在的链路;收发单元,用于通过第二骨干节点的第二骨干端口发送通知报文,通知报文用于指示第一链路发生故障。
结合第五方面,在第五方面的某些实现方式中,处理单元还用于:将第二骨干节点的第一骨干端口切换为阻塞状态。
结合第五方面,在第五方面的某些实现方式中,第二骨干节点的第一骨干端口为主端口,第二骨干节点的第二骨干端口为从端口。
结合第五方面,在第五方面的某些实现方式中,处理单元具体用于:通过差分信号诊断确定第一链路发生故障。
结合第五方面,在第五方面的某些实现方式中,M个骨干节点中的每一个包括第一标识,第一标识用于标识网络中的骨干节点。
结合第五方面,在第五方面的某些实现方式中,处理单元还用于:检测第一标识;根据第一标识确定自身为网络中的骨干节点。
结合第五方面,在第五方面的某些实现方式中,该通知报文为桥接协议数据单元BPDU报文。
第六方面,提供一种组建网络的装置,该网络包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态。该网络还包括终端节点,终端节点包括第一终端端口和第二终端端口,第一终端端口为转发状态,第二终端端口为阻塞状态。M个骨干节点中的至少两个骨干节点还包括第三终端端口,第一终端端口和第二终端端口与至少两个骨干节点的第三终端端口相连。该装置包括处理单元。可选地,该装置为终端节点。处理单元,用于确定第三链路发生故障,第三链路为第一终端端口所在的链路。处理单元,还用于将第二终端端口切换为转发状态。
结合第六方面,在第六方面的某些实现方式中,处理单元还用于:将第一终端端口切换为堵塞状态。
结合第六方面,在第六方面的某些实现方式中,处理单元具体用于:通过差分信号诊断确定第三链路发生故障。
结合第六方面,在第六方面的某些实现方式中,终端节点包括第二标识,第二标识用于标识该网络中的终端节点。
结合第六方面,在第六方面的某些实现方式中,处理单元还用于:检测第二标识;根据第二标识确定自身为网络中的终端节点。
第七方面,提供一种组建网络的装置,该装置包括:存储器,用于存储计算机程序;处理器,用于执行存储器中存储的计算机程序,以使得该装置执行第一方面的任一种可能的实现方式中的方法,或执行第二方面的任一种可能的实现方式中的方法,或执行第三方面的任一种可能的实现方式中的方法。
第八方面,提供一种芯片系统,该芯片系统包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片系统的设备执行第一方面的任一种可能的实现方式中的方法,或执行第二方面的任一种可能的实现方式中的方法,或执行第三方面的任一种可能的实现方式中的方法。
第九方面,提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行第一方面的任一种可能的实现方式中的方法,或执行第二方面的任一种可能的实现方式中的方法,或执行第三方面的任一种可能的实现方式中的方法。
第十方面,提供一种以太网系统,包括:M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态,第二骨干节点为M个骨干节点中除第一骨干节点之外的一个。
第一骨干节点用于:获取环形网络中的链路故障信息;
根据链路故障信息将第一骨干节点的第二骨干端口切换为转发状态。
结合第十方面,在第十方面的某些实现方式中,第二骨干节点用于:确定第一链路发生故障,第一链路为第二骨干节点的第一骨干端口所在的链路;通过第二骨干节点的第二骨干端口发送通知报文,通知报文用于指示第一链路发生故障;
第一骨干节点具体用于:通过第一骨干节点的第一骨干端口接收通知报文。
结合第十方面,在第十方面的某些实现方式中,第二骨干节点还用于:将第二骨干节点的第一骨干端口切换为阻塞状态。
结合第十方面,在第十方面的某些实现方式中,第二骨干节点的第一骨干端口为主端口,第二骨干节点的第二骨干端口为从端口。
结合第十方面,在第十方面的某些实现方式中,第二骨干节点具体用于:通过差分信号诊断确定第一链路发生故障。
结合第十方面,在第十方面的某些实现方式中,通知报文为桥接协议数据单元BPDU报文。
结合第十方面,在第十方面的某些实现方式中,第一骨干节点具体用于:确定第二链路发生故障,第二链路为第一骨干节点的第一骨干端口所在的链路。
结合第十方面,在第十方面的某些实现方式中,第一骨干节点还用于:将第一骨干节点的第一骨干端口切换为阻塞状态。
结合第十方面,在第十方面的某些实现方式中,第一骨干节点具体用于:通过差分信号诊断确定第二链路发生故障。
结合第十方面,在第十方面的某些实现方式中,M个骨干节点中的每一个包括第一标识,第一标识用于标识以太网系统中的骨干节点。
结合第十方面,在第十方面的某些实现方式中,以太网系统还包括终端节点,终端节点包括第一终端端口和第二终端端口,第一终端端口为转发状态,第二终端端口为阻塞状态,M个骨干节点中的至少两个骨干节点还包括第三终端端口,第一终端端口和第二终端端口与至少两个骨干节点的第三终端端口相连。终端节点用于:确定第三链路发生故障,第三链路为第一终端端口所在的链路;将第二终端端口切换为转发状态。
结合第十方面,在第十方面的某些实现方式中,终端节点还用于:将第一终端端口切换为堵塞状态。
结合第十方面,在第十方面的某些实现方式中,终端节点具体用于:通过差分信号诊断确定第三链路发生故障。
结合第十方面,在第十方面的某些实现方式中,终端节点包括第二标识,第二标识用于标识以太网系统中的终端节点。
第十一方面,提供一种车辆,其特征在于,包括第十方面或第十方面的任一种可能的实现方式中的以太网系统。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1是本申请实施例的一种应用场景的示意图。如图1所示,本申请实施例提供的方法可以应用于以太网系统100中,该以太网系统100可以包括区域控制器(domaincontroller,DC)110、整车集成单元(vehicle integrated/integration unit,VIU)120以及车辆零部件130。DC 110、VIU 120、以及车辆零部件130之间通过以太网(ethernet)技术通信。
在图1中,DC 110包括多个DC,每个DC用于管理车辆中的某一个功能域,即DC与位于功能域内的多个车辆零部件之间存在通信连接。DC 110用于控制对应功能域内的车辆零部件,或者为对应的功能域内的车辆零部件提供数据的处理功能。
作为示例,车辆中的DC可以包括自动驾驶域控制器、座舱域控制器(cockpitdomain controller,CDC)、整车域控制器(vehicle domain controller,VDC)等。自动驾驶域控制器可以为实现自动驾驶功能的车辆零部件提供服务,实现自动驾驶功能的车辆零部件包括单目摄像头、双目摄像头、毫米波雷达、激光雷达、超声波雷达等。CDC可以为座舱域的车辆零部件提供服务,其中座舱域的车辆零部件包括抬头显示器、仪表显示器、收音机、导航、摄像头等。VDC可以为车身域的车辆零部件以及底盘域的车辆零部件提供服务,其中,车身域的车辆零部件包括门窗升降控制器、电动后视镜、空调、中央门锁等。底盘域的车辆零部件包括制动系统中的车辆零部件、转向系统中的车辆零部件、加速系统中的车辆零部件,比如油门等。
车辆零部件130,包含执行元件,执行元件用于实现特定的功能,其中执行元件例如可以是车辆中的传感器133或者执行器132等。可选地,车辆零部件130还可以包括(electronic control unit,ECU)131。其中,车辆零部件130可以包含以下车辆零部件中一种或多种,具有部分或者完整ECU功能的车辆零部件;以及不具有电子控制功能的车辆零部件。其中,具有完整的电子控制功能的车辆零部件130,可以理解为,车辆零部件130可以由自身的ECU 131实现车辆零部件130所需的全部电子控制功能。具有部分的电子控制功能的车辆零部件130,可以理解为,车辆零部件130所需的一部分电子控制功能由车辆零部件130中的ECU实现,车辆零部件130所需的另一部分电子控制功能由VIU 120实现。不具有电子控制功能的车辆零部件130,可以理解为,车辆零部件130不具有实现电子控制功能的电子控制单元ECU,车辆零部件130所需的电子控制功能全部由VIU实现。其中,ECU 131,位于车辆零部件的内部,用于为车辆零部件提供电子控制功能。例如,雨刷器内的电子控制单元,位于车门内的电子控制单元等。
VIU 120,与车辆零部件130之间存在通信连接,且与车辆中的DC 110之间存在通信连接。例如,图1中VIU 1与车辆零部件1、车辆零部件2、车辆零部件3通信连接,且VIU 1与DC1和DC2之间存在通信连接。可选地,VIU 120可以与DC 110中的某一个DC之间存在通信连接,例如,图1所示的VIU b与DC n之间存在通信连接。VIU 120还可以与DC 110中多个DC之间都存在通信连接,例如,图1所示的VIU 1可以与DC 1和DC 2之间都存在通信连接。
作为示例,VIU 120可以将从DC 110获取的控制信息发送至车辆零部件130中对应的部件,并基于获取的控制信息控制车辆零部件130中的部件执行某种操作,例如,基于控制信息控制雨刷器的动作;又例如,基于控制信息控制车门门锁的开关状态等。VIU 120也可以对车辆零部件130中待处理的数据进行处理,例如,将通过雨刷器的敏感元件采集的雨量信息进行数据处理,确定雨刷器的工作状态,其中工作状态包括雨刷器的工作频率或开关状态。又例如,将车门上通过门锁的敏感元件获取的指纹信息进行数据处理,确定车门的开关状态信息。VIU 120还可以将数据处理的结果发送至DC 110,由DC 110根据区域的工作状态生成相应的控制信息。
目前,车载以太网系统中,环形网络由于成本最低而被广泛使用。例如,在系统100中,各个VIU之间可以通过有线的方式连接成环形网络,或者,也可以称为骨干网络,每个VIU作为一个环形网络中的一个骨干节点。进一步,可以将车内的电子设备(例如,图1中的DC110、车辆零部件130)连接到环形网络上,从而车内的电子设备可以通过环网实现通信,接入环网的设备可以称为终端节点。
使用环形网络必然会在二层网络中形成二层环路,通常为了消除二层环路,可以使用生成树协议(spanning tree protocol,STP)、快速生成树协议(rapid spanning treeprotocol,RSTP)、多生成树协议(multiple spanning tree protocol、MSTP)等,通过节点选举进行链路剪裁与环路消除动作。然而,STP/RSTP/MSTP等协议由于收敛算法与机制的限制,导致网络拓扑建立时间无法满足车载应用的需求。
有鉴于此,本申请提供一种组建网络的方法、以太网系统和车辆,能够提升主备链路切换的响应时间,实现网络快速重组,保证车载应用的需求。
图2是本申请实施例提供的一种组建网络的方法200的示意性框图,该网络包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,该环形网络也可以称为骨干网络,M为大于2的整数。其中,M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态,第二骨干节点为M个骨干节点中除第一骨干节点之外的一个。
本申请中,网络中包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间可以通过第一骨干端口和第二骨干端口形成环形网络。在该环形网络中,可以将第一骨干节点的第二骨干端口设置为阻塞状态,M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态,从而避免二层环路。此时,处于阻塞状态的端口所在的链路也可以称为备用链路,而这些处于转发状态的端口两两相连,共同形成主链路。其中,组建网络的方法200,包括以下步骤:
S210,第一骨干节点获取环形网络中的链路故障信息。
本申请中,链路故障包括但不限于以下可能:骨干节点的骨干端口松动导致链路故障、链路所连接的任一个骨干节点掉电导致链路故障、链路上的通信线短路、开路、断路等导致链路故障。
应理解,本申请中,骨干端口是骨干节点的端口中用于形成环形网络的端口,一个骨干节点可以包括两个骨干端口,两个骨干端口分别连接一个骨干节点。
作为一种可能的实现方式,链路故障信息包括第一链路发生故障,该第一链路为第二骨干节点的第一骨干端口所在的链路。其中,S210中,第一骨干节点获取环形网络中的链路故障信息,包括:
第二骨干节点确定第一链路发生故障,第二骨干节点通过第二骨干节点的第二骨干端口发送通知报文,通知报文用于指示第一链路发生故障。对应地,第一骨干节点可以通过第一骨干节点的第一骨干端口接收通知报文。
也就是说,当第二骨干节点检测到第一链路发生故障时,该故障信息可以触发第二骨干节点发送通知报文,该通知报文用于指示链路故障信息,第二骨干节点可以通过其第二骨干端口发送通知报文。通知报文可能会经过环形网络中各个骨干节点的转发,第一骨干节点会在其第一骨干端口接收到通知报文,从而根据该通知报文获取环形网络中的链路故障信息。
本申请中,第一链路发生故障包括但不限于以下可能:第二骨干节点的第一骨干端口松动导致链路故障、第一链路所连接的另一端的骨干节点掉电导致链路故障、第一链路上的通信线短路、开路、断路等导致链路故障。
需要说明的是,当环形网络中某一条链路或者某个节点发生故障,故障链路所连接的两个骨干节点或者故障节点所连接的两个骨干节点均会检测到链路故障信息,该故障信息作为通知报文的触发源,因此,这两个第二骨干节点会将通知报文从其可以正常通信的端口转发出去,也就说是,在环形网络中,会有存在两个第二骨干节点,分别执行发送通知报文的步骤,从而环形网络中会存在两个通知报文,其在环形网络中的传输方向相反,其中一个会到达第一骨干节点的第二骨干端口,由于该端口为阻塞状态,因此通知报文在该端口处将会被丢弃。另一个通知报文会到达第一骨干节点的第一骨干端口,由于该端口为转发状态,因此第一骨干节点可以通过其第一骨干端口接收该通知报文。第一骨干节点在接收到通知报文的情况下,即获知环形网络中发生了链路故障。换而言之,通过通知报文,使得第一骨干节点获取链路故障信息。
应理解,本申请中的通知报文即为链路故障下的通知报文,在发生链路故障时,将会触发通知报文的发送,而在未发生链路故障的情况下,将不会触发通知报文的发送,从而对第一骨干节点来说,接收到通知报文,即视为环形网络中的链路发生了故障,在未接收到的情况下,即视为链路正常。而对于通知报文所包括的具体信息,可以携带发生故障的链路的具体信息,即具体是哪个链路发生了故障,也可以不携带,本申请不做限定。
作为一种可能的实现方式,链路故障信息包括第二链路发生故障,该第二链路为第一骨干节点的第一骨干端口所在的链路。其中,S210中,第一骨干节点获取环形网络中的链路故障信息,包括:第一骨干节点确定第二链路发生故障。
本申请中,第一骨干节点可以获取其第一骨干端口所在的链路的故障信息。换言之,环形网络中如果是第二链路发生故障,第一骨干节点可以通过其自身端口性能获得第一骨干端口的故障信息,在这种情况下,第一骨干节点的第二骨干端口无法与外界通信,且第一骨干节点的第一骨干端口为阻塞状态,因此不会接收到通知报文。
本申请中,环形网络中如果是第一链路发生故障,则第一骨干节点可以通过其第一骨干端口接收通知报文,从而获取链路故障信息,如果是第二链路发生故障,则第一骨干节点可以直接获取到链路故障信息。
本申请中,第二链路发生故障包括但不限于以下可能:第一骨干节点的第一骨干端口松动导致链路故障、第二链路所连接的另一端的骨干节点掉电导致链路故障、第二链路上的通信线短路、开路、断路等导致链路故障。
S220,第一骨干节点根据链路故障信息将第一骨干节点的第二骨干端口切换为转发状态。
当第一骨干节点获取链路故障信息,会将其处于阻塞状态的第二骨干端口切换为转发状态。也就是说,第一骨干节点可以根据链路故障信息获知当前环形网络中存在链路故障,因此立即将原来处于阻塞状态的第二骨干端口切换为转发状态,从而启用环形网络中的备用链路,如此以来,所有正常的节点可以继续通过备用链路和未发生故障的链路所形成的线形通信网络进行正常通行,完成故障状态下的通信,保证以太网系统的通信安全。
本申请中,第一骨干节点可以获知环形网络中的链路故障信息,该链路故障信息作为事件触发源,第一骨干节点在获取该信息的情况下,将其处于阻塞状态的端口切换为转发状态,从而启动原阻塞状态的端口所在的备用链路。端口状态切换后,环形网络可以重组为线形通信网络,用于链路故障下的通信。相比于现有技术中,当出现链路故障时,所有节点静默,然后进行新一轮的节点选举和链路裁切,以重建剩余链路之间的通信连接,本申请可以提升主备链路切换的响应时间,实现网络快速重组,保证车载应用的需求。
需要说明的是,本申请中,端口的转发状态(forward)指该端口可以传输物理层(physical layer)信号,也可以传输层二及以上报文。端口的堵塞状态(block)指的是该端口可以传输物理层(physical layer)信号,不可以传输层二及以上报文,层二及以上报文经过该端口将会被丢弃。
应理解,本申请中的链路指的是两个节点之间的直线链路,即这两个节点之间不存在其他的节点。
可选地,如果是第一链路发生故障,则该方法还包括:S230-a,第二骨干节点将其第一骨干端口切换为阻塞状态。
本申请中,第一链路发生故障后,第二骨干节点可以将其第一骨干端口切换为阻塞状态。通过这种方式,当第一链路恢复正常后,该环形网络中仍然有一个处于阻塞状态的端口,避免形成网络风暴。
特此说明,如果是第一链路发生故障,在环形网络中会有两个第二骨干节点分别执行发送通知报文的步骤,然而,这两个第二骨干节点中只有一个会将其第一骨干端口切换为阻塞状态。
应理解,本申请中第二骨干节点发送通知报文,第一骨干节点接收通知报文,不限定通知报文在传输过程中是否经过其他骨干节点的转发,即可以是第二骨干节点直接通过第一和第二骨干节点之间的链路将通知报文发送给第一骨干节点,也可以是第二骨干节点先将该通知报文发送至与其相连的骨干节点,经过一次或多次转发从而到达第一骨干节点。
可选地,在S220之前,第二骨干节点将其第一骨干端口切换为阻塞状态。
也就是说,第二骨干节点在发送通知报文之前,将其第一骨干端口切换为阻塞状态,如此以来,避免了第二骨干节点的第一骨干端口在切换为阻塞状态之前,第一骨干节点的第二骨干端口已经切换为转发状态且第一链路已经恢复正常,有助于保障网络安全。
可选地,第二骨干节点的第一骨干端口为主端口,第二骨干节点的第二骨干端口为从端口。
在点对点(peer to peer,P2P)通信中,一条链路所连接的两个端口会分别被设置为主(master)端口和从(slave)端口,并且在环形网络中,任一条链路始终以主端口和从端口配对连接。若两个主端口直接连接或者两个从端口直接连接,将无法通信。在主端口和从端口配对连接形成的链路中,主端口会主动向从端口发送握手信号,从而和从端口建立通信连接。
本申请中,当第一链路发生故障后,发送通知报文的两个第二骨干节点可以检测其第一骨干端口是否为主端口,当为主端口时,该第二骨干节点将其第一骨干端口切换为堵塞状态。也就是说,当链路故障后,将故障链路所连接的主端口设置为阻塞状态,通过这种方式,当该故障链路恢复正常后,链路中的主端口为阻塞状态,能够避免该链路上的握手信号,从而可以减少通信开销。
可选地,本申请的方案中,也可以是第二骨干节点的第一骨干端口为主端口,第二骨干节点的第二骨干端口为从端口。也就是说,可以将故障链路所连接的从端口切换为阻塞状态,本申请不做限定。
换而言之,在配置节点的切换逻辑时,当链路发生故障,第二骨干节点可以检测其第二骨干端口是否为主端口,当为主端口时,将其第二骨干端口切换为阻塞状态。或者,也可以配置为,第二骨干节点检测其第二骨干端口是否为从端口,当为从端口时,将其第二骨干端口切换为阻塞状态。应理解,无论上述哪种配置方式,每个骨干节点上配置的切换逻辑应该是相同的,避免形成切换混乱。
应理解,对于第二骨干节点,其第一骨干端口和第二骨干端口均为转发状态,在一种可能的实现方式中,第一链路也可以是第二骨干节点的第二骨干端口所在的链路,从而发送通知报文的端口也可以是第二骨干节点的第一骨干端口,本申请不做限定。
在一种可能的实现方式中,该通知报文为桥接协议数据单元(bridge protocoldata unit,BPDU)报文。
本申请可以利用现有STP/RSTP协议中的BPDU报文,通过改变其触发条件,从而在实现网络快速重组的同时,可以更好的和现有协议兼容,减少过多的配置操作,简单易行。
可选地,通知报文还可以是网路群组管理协议(Internet group managementprotocol,IGMP)的广播报文,即以广播的形式发送链路故障信息。通知报文也可以是定向组播报文,将所有骨干节点组成组播组,通过发送组播报文进行通知。通知报文也可是媒体接入控制(media access control,MAC)组播报文,由MAC层组播报文完成链路故障信息的通知。可选地,通知报文也可以是定向单播报文,由骨干节点定向发送。
应理解,本申请中,通知报文可以是骨干节点在检测到链路故障之前生成的,即链路故障信息只是作为骨干节点发送通知报文的触发源。也可以是骨干节点在检测到链路故障之后,生成通知报文再将其发送,本申请对此不做限定。
应理解,以上通知报文的具体类型仅为举例说明,本申请不限定通知报文的格式和名称,只要是实现与本申请相似的功能,即在链路故障的情况下发送通知报文,且该通知报文可以使得环形网络中原来处于阻塞状态的端口切换为转发状态,都属于本申请的保护范围。
可选地,如果是第二链路发生故障,则该方法还包括:S230-b,第一骨干节点将其第一骨干端口切换为阻塞状态。
第一骨干节点确定第二链路发生故障时,第一骨干节点将其第一骨干端口切换为阻塞状态。通过这种方式,当第二链路恢复正常时,环形网络中仍然存在一个处于阻塞状态的端口,从而可以避免网络风暴,保证通信安全。
可选地,第一骨干节点在S220之前执行S230-b,即,第一骨干节点将其第二骨干端口切换为转发状态之前,先将其第一骨干端口切换为阻塞状态。
应理解,对于第一骨干节点,其第一骨干端口可以为主端口,也可以为从端口,对应地,其第二骨干节点可以为从端口,也可以为主端口,即初始状态下,环形网络中处于阻塞状态的端口可以是主端口,也可以是从端口,本申请不做限定。
还应理解,本申请中的主端口与从端口,其物理硬件是相同的,只是端口的配置不同。例如,可以通过为两个端口配置不同的标识来区分主端口和从端口。
作为一种可能的实现方式,第四链路可以是第一骨干节点的第二骨干端口所在的链路,第一骨干节点的第二骨干端口和第二骨干节点的第一骨干端口直接相连,即,第四链路和第一链路可以是同一条链路,当第一链路(第四链路)发生故障时,第一骨干节点可以检测到其第二骨干端口所在的链路发生故障,此外,第二骨干节点还会通过其第二骨干节点发送通知报文,从而第一骨干节点可以通过其第一骨干端口接收到通知报文。第一骨干节点可以在检测到其第二骨干端口所在的链路发生故障时,或者在接收到通知报文时,其将其第二骨干端口切换为转发状态。可选地,第一骨干节点还可以确定其第二骨干端口为主端口(或从端口),进一步将其第二骨干端口又切换为阻塞状态。或者,第二骨干节点可以确定其第一骨干端口为主端口(或从端口),进一步将其第一骨干端口切换为阻塞状态。
可选地,第一骨干节点在检测到第四链路发生故障时,确认是环形网络中的备用链路发生了故障,因此即使接收到通知报文,也可以不进行端口状态的切换。
在一种可能的实现方式中,第二骨干节点确定第一链路发生故障,包括:第二骨干节点通过差分信号诊断确定第一链路发生故障。
差分信号诊断是以太网物理层的链路诊断技术,具体来说,节点可以检测其端口连接的双绞线上所传输的电压差和载波波形,当传输的电压差和/或载波的波形发生异常时,可以确定链路发生故障。
因此,本申请中,通过差分信号诊断检测链路故障,可以实现链路故障的快速发现,进而提升主备链路切换的响应时间,实现网络快速重组,保证车载应用的需求。
可选地,本申请中,第二骨干节点确定第一链路发生故障,还可以是:第二骨干节点通过连通性检测报文确定第一链路发生故障。
具体地,第二骨干节点可以在其第一骨干端口周期性地发送连通性检测报文,根据有效时间内是否收到连接第一链路的另一端口的响应报文来判断该第一链路是否正常。
应理解,以上故障诊断和发现的方法只为举例,并不构成对本申请的限定,本领域的技术人员也可以通过其他方式实现链路故障的发现。例如:通过链路心跳的方式检测链路的连接状态等。
类似地,第一骨干节点确定第二链路发生故障,包括:第一骨干节点通过差分信号诊断确定第二链路发生故障。或者,第一骨干节点通过连通性检测报文确定第二链路发生故障。或者也可以通过其他方式。
在一种可能的实现方式中,M个骨干节点中的每一个都包括第一标识,第一标识用于标识网络中的骨干节点。
本申请中,通过为环形网络中的骨干节点配置第一标识,具有该第一标识的骨干节点将会根据链路状态发送通知报文,或者,当接收到通知报文,将会将处于阻塞状态的端口切换为转发状态。或者,当其收到通知报文,会将该通知报文在环形网络中继续转发,从而实现主备链路的切换和网络重组。而对于没有第一标识的节点,不属于环形网络中的骨干节点,将不会进行发送和识别通知报文。也就是说,通过第一标识,可以对网络中的骨干节点进行区分。
以上方式仅为举例说明,也可以通过为网络中的其他节点进行标识,从而区分骨干节点和非骨干节点,本申请对此不做限定。
可选地,该方法200还包括:S240,第一骨干节点检测第一标识,第一骨干节点根据第一标识确定自身为网络中的骨干节点。
类似地,该方法200还包括:S250,第二骨干节点检测第一标识,第二骨干节点根据第一标识确定自身为网络中的骨干节点。
作为一种可能的实现方式,第一标识可以是写入寄存器的数值,其用于标识骨干节点。当骨干节点上电后,通过读取寄存器中的数值,从而确定其为骨干节点,进一步,执行骨干节点的切换逻辑,例如:如果某一个处于转发状态的骨干端口所在的链路发生故障,将会通过另一个处于转发状态的骨干端口发送通知报文。或者,如果某一骨干节点有处于阻塞状态的端口,当接收到通知报文,可以将其处于阻塞状态的端口切换为转发状态。或者,当某一个骨干节点的两个骨干端口都是转发状态,当其收到通知报文,会将该通知报文在环形网络中继续转发。
下面说明骨干节点的配置过程和上电检测过程。
步骤1:配置接入网络的设备为骨干节点,例如,通过第一标识标识骨干节点,并且配置骨干节点的两个骨干端口。
步骤2:配置所有骨干节点的所有骨干端口的端口熟悉,标识骨干端口的状态,在所有骨干节点中指定一个端口为阻塞状态,其他所有端口为转发状态。为每个骨干节点配置运行逻辑。
步骤3:配置上电组网时间抖动差异寄存器,配置上电启动时间抖动差异,消除上电抖动差异引起的网络切换震荡。
步骤4:上电,开启骨干节点工作状态与运行逻辑。其中,骨干节点的运行逻辑也就是上文中提及的组建网络的方法200。
步骤5:如果运行逻辑中包括骨干节点的切换限制条件,当骨干节点的任意端口达到切换限制条件,端口停止切换状态,保留当前最后一次设定状态,并且发出网络链路异常通知,以及切换超限端口信息。重启或者软件清除后清除该状态警告,恢复正常功能。
下面结合图3对上文中的方法200进行举例说明。图3是本申请实施例提供的一种以太网系统300的示意性框图。
如图3所示,以太网系统300包括4个骨干节点,即M=4,分别为节点310、节点320、节点330和节点340。节点310、节点320、节点330和节点340中的每一个包括两个骨干端口P1和P2,P1端口和P2端口两两相连形成环形网络。为了便于说明,将节点310的P2端口和节点340的P1端口所连接的链路(link)称为链路L1,L1也可以称为节点310的P2端口所在的链路,或者节点340的P1端口所在的链路。类似地,L4为节点320的P2端口所在的链路或节点310的P1端口所在的链路,L2为节点330的P2端口所在的链路或节点320的P1端口所在的链路,L3为节点340的P2端口所在的链路或节点330的P1端口所在的链路。其中,节点310(第一骨干节点)的P1端口(第一骨干端口的一例)为转发状态,节点310的P2端口(第二骨干端口的一例)为阻塞状态。除节点310之外的任何一个节点,即节点320、节点330和节点340的P1端口和P2端口均为转发状态,从而可以避免二层环路。此时,L1即为备用链路,L2、L3、L4共同组成主链路。
应理解,节点310的P2端口为堵塞状态,导致层二及以上报文经过该端口时不能被转发,但是L1链路是正常的,也就是说,节点340通过P1端口发送的层二及以上报文可以通过链路L1传输至节点310的P2端口,但是到达节点310的P2端口时,将不会被转发。
在某个时刻,链路L2(第一链路的一例)发生故障,节点320(第二骨干节点的一例)可以检测到其P1端口(第二骨干端口的一例)所在的链路发生故障,该故障信息作为触发源,节点320会并将BPDU报文(通知报文的一例)从其P2端口发送,该BPDU报文经过链路L4,节点310会通过其P1端口接收该BPDU报文,节点310在接收到BPDU报文的情况下,即获知环形网络中发生了链路故障,因此,会立即将其P2端口切换为转发状态,从而使得备用链路L1启用。
链路L2发生故障,节点330也会检测到其P2端口(第二骨干端口的一例)所在的链路发生故障,该故障信息作为触发源,节点330也会发送BPDU报文,节点330将BPDU报文从其P1端口发送,该BPDU报文经过链路L3,节点340会通过其P2端口接收该BPDU报文,节点340确定其P1端口为转发状态,因此会将该BPDU报文从其P1端口转发出去。但是,由于节点310的P2端口为堵塞状态,节点310无法通过其P2端口接收到该BPDU报文。
从上可知,当链路L2发生故障,节点310在通知报文的触发下,可以获知环形网络中发生链路故障,因此会立即将其P2端口切换为转发状态,从而使得备用链路L1启用,进一步,链路L4、L1、L3组成的新的线形链路仍然可以用于节点310、节点320、节点330和节点340的正常通信。相比于技术中新一轮的节点选举等方法,本申请可以提升主备链路切换的响应时间,实现网络快速重组,保证车载应用的需求。
可选地,节点330还会将其P2端口切换为阻塞状态,或者,节点320还会将其P1端口切换为阻塞状态。
可选地,该方法还包括:L2恢复正常,节点320和节点330通过L2恢复物理连接。而节点320的P1端口和节点330的P2端口中有一个处于堵塞状态,不能转发数据,此时,环形网络恢复初始状态,L2成为环形网络中新的备用链路。
可选地,在节点330发送BPDU报文之前,节点330将其P2端口切换为阻塞状态。或者,节点320在发送BPDU报文之前,节点320将其P1端口切换为阻塞状态。
在一种可能的实现方式中,图3中的P1端口均被设置为主端口,P2端口均为设置为从端口。在进行端口切换时,可以默认将故障链路所连接的主端口切换为阻塞状态。即将节点320的P1端口设置阻塞状态,而节点330的P2端口的状态不变,仍然为转发状态。
可选地,在进行端口切换时,可以默认将故障链路所连接的从端口切换为阻塞状态。即将节点330的P2端口设置阻塞状态,而节点320的P1端口的状态不变,仍然为转发状态。
可选地,链路L2发生链路故障,也可以是节点330发生故障(例如,掉电),从而导致链路L2和L3同时发生故障。在这种情况下,节点340会检测到其P2端口所在的链路发生故障,从而通过其P1端口发送BPDU报文,节点320会检测到其P1端口所在的链路发生故障,从而通过其P2端口发送BPDU报文,此时,节点340的运行逻辑可以参考上文节点330,节点320的运行逻辑与上文节点320类似,在此不再赘述。
可选地,在图3所示的环形网络中,如果链路L4(第二链路的一例)发生故障,节点310可以确定其P1端口所在的链路发生故障,节点310根据该链路故障信息将其P2端口切换为转发状态,从而启用备用链路L1。
可选地,如果链路L4发生故障,节点310还可以将其P1端口切换为阻塞状态。
作为示例,在图3所示的环形网络中,如果是链路L1(第四链路的一例)发生故障,节点310会检测到其P2端口所在的链路发生故障,节点340(第二骨干节点的一例)也会检测到其P1端口所在的链路发生故障,因此通过其P2端口发送BPDU报文,该BPDU报文用于通知环形网络中的链路故障,该BPDU报文经过节点330和节点320的转发,节点310会通过其P1节点接收到BPDU报文。可选地,节点310可以在检测到其P2端口所在的链路发生故障或者在收到BPDU报文时,获知环形网络中发生链路故障,将其P2端口切换为转发状态。
可选地,图3中的P1端口均被设置为主端口,P2端口均为设置为从端口,在进行端口切换时,可以默认将故障链路所连接的主端口切换为阻塞状态。即在L1发生故障时,节点340可以将其P1端口切换为阻塞状态,节点310的P2端口的状态不变,仍然为转发状态。或者,在进行端口切换时,可以默认将故障链路所连接的从端口切换为阻塞状态。即在L1发生故障时,节点310可以再将其P2端口切换为阻塞状态,而节点340的P1端口的状态不变,仍然为转发状态。换而言之,经过状态切换之后,可能会存在两种情况:
1.节点310的P2端口为转发状态,节点340的P1端口为阻塞状态,或者,
2.节点310的P2端口仍然为阻塞状态,节点340的P1端口仍然为转发状态。
可选地,如果是链路L1发生故障,节点310可以确定其P2端口所在的链路发生故障,且其P2端口为阻塞状态,即确定是环形网络中的备用链路发生了故障,因而在接收到BPDU报文时,可以不进行状态切换。
在图3中,节点310、节点320、节点330和节点340中的每一个包括标识a,当上电后,节点通过读取寄存器的a值确定其为骨干节点,从而执行上述方法200。
在图3中,节点310、节点320、节点330和节点340确定链路故障的方法可以参考上文,在此不再赘述。
应理解,图3仅以4个骨干节点连接成环形网络为例进行说明,形成环形网络的骨干节点的个数还可以是3个、5个,或者128个等,本申请对其个数不做限定。
图4示出了本申请实施例提供的一种组建网络的方法400的示意性流程图。该网络包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。其中,M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态,第二骨干节点为M个骨干节点中除第一骨干节点之外的一个。该网络还包括终端节点,终端节点包括第一终端端口和第二终端端口,第一终端端口为转发状态,第二终端端口为阻塞状态。其中,M个骨干节点中的至少两个骨干节点还包括第三终端端口,第一终端端口和第二终端端口与至少两个骨干节点的第三终端端口相连。
本申请中,环形网络还可以接入一个或多个终端节点,终端节点通过其第一终端端口和第二终端端口分别和环形网络中的两个骨干节点相连,可以将终端节点的第一终端端口设置为转发状态,第二终端端口设置为阻塞状态,即第一终端端口所在的链路为主链路,第二终端端口所在的链路为备用链路,从而实现终端节点的冗余接入。如图4所示,方法400包括:
S410,终端节点确定第三链路发生故障,第三链路为第一终端端口所在的链路。
本申请中,第三链路发生故障包括但不限于以下可能:终端节点的第一终端端口松动导致链路故障、第三链路所连接的另一端的骨干节点掉电导致链路故障、第三链路上的通信线短路、开路、断路等导致链路故障。
S420,终端节点将第二终端端口切换为转发状态。
也就是说,当终端节点确定第三链路发生故障,其可以将第二终端端口从阻塞状态切换为转发状态,从而启用阻塞端口所在的备用链路,保障通信安全。
本申请中,终端节点可以获知其主备链路的故障信息,该链路故障信息作为事件触发源,终端节点在获取该信息的情况下,将其处于阻塞状态的端口切换为转发状态,从而启动原阻塞状态的端口所在的备用链路。相比于现有技术,本申请无需终端节点之外的设备参与控制与处理,在终端节点内部的配置逻辑下完成主备链路的快速切换,因此,可以提升主备链路切换的响应时间,实现网络快速重组,保证车载应用的需求。
可选地,在终端节点将第二终端端口切换为转发状态之前,该方法400还包括:S430,终端节点将第一终端端口切换为堵塞状态。
也就是说,终端节点可以将第一链路所连接的第二终端端口切换为堵塞状态,使得第一链路成为备用链路,第一终端端口所在的链路成为主链路。通过这种方式,当第三链路恢复正常后,不会由终端节点的接入而构建新的环网拓扑和多环嵌套的复杂网络,保证通信系统的可靠性。
此外,通过这种方式,当第三链路恢复正常后,终端节点接入环形网络的两条链路仍然存在一条主链路,一条备用链路。通过这种方式,可以避免终端节点的两条链路都可以与环形网络通信,从而解决了终端节点冗余接入会构建复杂网络拓扑的问题,提升了重要终端节点冗余接入的可靠性。
在一种可能的实现方式中,S410,终端节点确定第三链路发生故障,包括:终端节点通过差分信号诊断确定第三链路发生故障。
关于差分信号诊断的具体说明可以参见上文方法200中,在此不再赘述。
本申请中,通过差分信号诊断检测链路故障,可以实现链路故障的快速发现,进而提升主备链路切换的响应时间,实现骨干网络的快速重组,保证车载应用的需求。
也就是说,本申请可以在物理层实现主备链路的切换,从而效率更高。
可选地,本申请中,S410,终端节点确定第三链路发生故障,还可以是:终端节点通过连通性检测报文确定第一链路发生故障。
应理解,以上故障诊断和发现的方法只为举例,并不构成对本申请的限定,本领域的技术人员也可以通过其他方式实现链路故障的发现。例如:通过链路心跳的方式检测链路的连接状态等。
应理解,本申请中,链路故障包括但不限于可能:端口松动引起的链路故障、骨干节点掉电链路故障、链路上的通信线短路、开路、断路等。
可选地,在方法400中,终端节点包括第二标识,第二标识用于标识以太网系统中的终端节点。
本申请中,通过为以太网系统中的终端节点配置第二标识,具有该第二标识的终端节点将不会识别或转发以太网系统中的通知报文,也不会在通知报文的作用下切换端口的状态。即,具有第二标识的终端节点只对自身的主备链路的状态进行监测,不参与骨干网络的切换逻辑。
以上方式仅为举例说明,也可以通过为以太网系统中的其他节点进行标识,从而区分终端节点和非终端节点。
可选地,该方法400还包括:S440,终端节点检测第二标识,终端节点根据第二标识确定自身为网络中的终端节点。
作为一种可能的实现方式,第二标识可以是写入寄存器的数值,其用于标识终端节点,当终端节点上电后,通过读取寄存器中的数值,从而确定其为终端节点,进一步,执行终端节点的切换逻辑,即:如果某一终端端口所在的链路故障,将会打开备用链路,完成主备链路的切换,保证通信安全。
应理解,本申请中,当终端节点确定第二终端端口所在的链路发生故障,其可以不进行任何操作。当第二终端端口所在的链路恢复正常时,第二终端端口仍然为阻塞状态,第二终端端口所在的链路仍然为备用链路。
因此,本申请中,通过第一标识和第二标识,使得终端节点和骨干节点的切换逻辑相关独立,互不干扰,从而有助于提升以太网系统的可靠性和简洁性。
下面说明终端节点的配置过程和上电检测过程。
步骤1:配置接入网络的设备为终端节点,例如,通过第二标识标识终端节点,并且配置终端节点的两个终端端口。
步骤2:设置终端节点的两个终端端口一个为阻塞状态,一个为转发状态,配置终端节点的运行逻辑,并将终端节点接入环形网络骨干节点。
步骤3:配置上电组网时间抖动差异寄存器,配置上电启动时间抖动差异,消除上电抖动差异引起的网络切换震荡。
步骤4:上电,开启终端节点工作状态与运行逻辑。其中,终端节点的运行逻辑也就是上文中提及的组建网络的方法400。
步骤5:如果运行逻辑中包括终端节点的切换限制条件,当终端节点达到设定的限制条件,终端节点下线或者直至主备链路信号质量恢复到优良再次恢复开启,或到下次重启上电后开启,或者有管理设备设定后续动作。如果未设定切换限制条件,终端设备将根据链路信号质量和设置进行自由诊断与切换。
下面结合图5对上文中的方法400进行举例说明。图5是本申请实施例提供的一种以太网系统500的示意性框图。
如图5所示,以太网系统500包括4个骨干节点,即M=4,分别为节点310、节点320、节点330和节点340。节点310、节点320、节点330和节点340中的每一个包括两个骨干端口P1和P2,P1端口和P2端口两两相连形成环形网络。该以太网系统500中还包括一个终端节点,即节点510,节点510包括端口P1(第一终端端口的一例)和P2(第二终端端口的一例),节点510的P1端口为转发状态,节点510的P2端口为阻塞状态。其中,节点310和节点330还包括端口P3(第三终端端口的一例),节点310的P3端口和节点510的P1端口连接,记为链路L5,节点330的P3端口和节点510的P2端口连接,记为链路L6。
在图5中,节点510通过节点310和节点330(即,至少两个骨干节点的一例)的P3端口(第三终端端口的一例)接入环形网络,实现冗余接入,将节点510的任一个终端端口,例如P2端口设置为阻塞状态,则链路L6仅可以传输物理层信号,不能传输数据,因此L6为备用链路,而节点510的P1端口为转发状态,即L5链路为主链路,节点510可以通过L5与环形网络通信。
当L5(第三链路的一例)发生故障,节点510检测到其P2端口所在的链路发生故障,该故障信息作为事件触发源,使得节点510可以将其P2端口切换为转发状态,即启用备用链路,通过L6与环形网通信。因此,本申请可以提升主备链路切换的响应时间,实现网络快速重组,保证车载应用的需求。
可选地,L5还可以将其P1端口切换为堵塞状态,可以避免终端节点的两条链路都可以与环形网络通信,从而解决了终端节点冗余接入会构建复杂网络拓扑的问题,提升了重要终端节点冗余接入的可靠性。
作为示例,L5发生故障,可以是节点310故障或者节点310的P3端口异常引起的故障,或者L5的线路异常引发的故障。
可选地,节点510通过差分信号诊断确定L5发生故障。
可选地,节点510包括标识b,当上电后,节点510通过读取寄存器的b值确定其为骨干节点,从而执行上述方法400。
可选地,该方法400还包括:L5恢复正常,节点510与节点310通过L5恢复物理连接。而节点510的P1端口处于堵塞状态,不能转发数据,此时,L5成为节点510的新的备用链路。
应理解,图5仅以4个骨干节点连接成环形网络为例进行说明,形成环形网络的骨干节点的个数还可以是3个、5个,或者128个等,本申请对其个数不做限定。此外,图5中与节点510所连接的,也可以是节点310、节点320、节点330和节点340中的任意两个骨干节点。而环形网络中可以接入两个或多个终端节点,与多个终端节点相连的骨干节点可以相同,也可以不同,本申请均不作限定。
在一种可能的实现方式中,可以将上述方法200和方法400结合起来,形成另一种组建网络的方法。例如,网络中包括M个骨干节点和至少一个终端节点,采用方法200中的流程进行骨干网络的主备链路切换,采用方法400中的流程进行终端节点的主备链路切换,具体过程可以参考上述方法200和方法400中的描述,此处不再赘述。
上文结合图1至图5说明了本申请的组建网络的方法。下文结合图6至图8介绍本申请实施例的装置。应理解,图6至图8所示的装置可以实现上述方法中各个步骤,为了简洁,在此不再赘述。
图6是本申请实施例提供的一种组建网络的装置的示意性结构图。该网络包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态,第二骨干节点为M个骨干节点中除第一骨干节点之外的一个。
如图6所示,该装置600包括收发单元610和处理单元620。可选地,该装置为第一骨干节点。收发单元610,用于获取环形网络中的链路故障信息;处理单元620,用于根据链路故障信息将第一骨干节点的第二骨干端口切换为转发状态。
可选地,收发单元610具体用于:
通过第一骨干节点的第一骨干端口接收通知报文,该通知报文用于指示第一链路发生故障,第一链路为第二骨干节点的第一骨干端口所在的链路。
可选地,该通知报文为桥接协议数据单元BPDU报文。
可选地,处理单元620还用于:确定第二链路发生故障,第二链路为第一骨干节点的第一骨干端口所在的链路。
可选地,处理单元620还用于:将第一骨干节点的第一骨干端口切换为阻塞状态。
可选地,处理单元620具体用于:通过差分信号诊断确定第二链路发生故障。
可选地,M个骨干节点中的每一个包括第一标识,第一标识用于标识网络中的骨干节点。
可选地,处理单元620还用于:检测第一标识;根据第一标识确定自身为网络中的骨干节点。
图7是本申请实施例提供的一种组建网络的装置的示意性结构图。该网络包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态,第二骨干节点为M个骨干节点中除第一骨干节点之外的一个。
如图7所示,该装置700包括收发单元710和处理单元720。可选地,该装置为第二骨干节点。处理单元720,用于确定第一链路发生故障,第一链路为第二骨干节点的第一骨干端口所在的链路;收发单元710,用于通过第二骨干节点的第二骨干端口发送通知报文,通知报文用于指示第一链路发生故障。
可选地,处理单元720还用于:将第二骨干节点的第一骨干端口切换为阻塞状态。
可选地,第二骨干节点的第一骨干端口为主端口,第二骨干节点的第二骨干端口为从端口。
可选地,处理单元720具体用于:通过差分信号诊断确定第一链路发生故障。
可选地,M个骨干节点中的每一个包括第一标识,第一标识用于标识网络中的骨干节点。
可选地,处理单元720还用于:检测第一标识;根据第一标识确定自身为网络中的骨干节点。
可选地,该通知报文为桥接协议数据单元BPDU报文。
图8是本申请实施例提供的一种组建网络的装置的示意性结构图。该网络包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态。该网络还包括终端节点,终端节点包括第一终端端口和第二终端端口,第一终端端口为转发状态,第二终端端口为阻塞状态。M个骨干节点中的至少两个骨干节点还包括第三终端端口,第一终端端口和第二终端端口与至少两个骨干节点的第三终端端口相连。
如图8所示,该装置800包括处理单元810。可选地,该装置为终端节点。处理单元810,用于确定第三链路发生故障,第三链路为第一终端端口所在的链路。处理单元810,还用于将第二终端端口切换为转发状态。
可选地,处理单元810还用于:将第一终端端口切换为堵塞状态。
可选地,处理单元810具体用于:通过差分信号诊断确定第三链路发生故障。
可选地,终端节点包括第二标识,第二标识用于标识该网络中的终端节点。
可选地,处理单元810还用于:检测第二标识;根据第二标识确定自身为网络中的终端节点。
可选地,该装置800还可以包括收发单元820,用于执行数据的收发。
图9示出了本申请实施例提供的一种组建网络的装置900的示意性结构图。该装置900包括至少一个存储器910和至少一个处理器920,所述至少一个存储器910用于存储程序,所述至少一个处理器920用于运行所述程序,以实现本申请的技术方案。
应理解,本申请实施例中的处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
可选地,该装置900还可以包括收发器930,用于执行数据的收发功能。
具体地,该装置900可对应于根据本申请实施例的方法200和400中的第一骨干节点,该装置900可以包括方法200或400中的第一骨干节点执行的方法的单元。或者,该装置900可对应于根据本申请实施例的方法200或400中的第二骨干节点,该装置900可以包括方法200和400中的第二骨干节点执行的方法的单元。或者,该装置900可对应于根据本申请实施例的方法400中的终端节点,该装置900可以包括方法400中的终端节点执行的方法的单元。应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质具有程序指令,当所述程序指令被直接或者间接执行时,使得本申请的技术方案得以实现。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行本申请的技术方案,或者使得所述计算设备实现前文中的控制器的功能。
本申请实施例还提供一种芯片,包括至少一个处理器和接口电路,所述接口电路用于为所述至少一个处理器提供程序指令或者数据,所述至少一个处理器用于执行所述程序指令,使得本申请的技术方案得以实现。
应理解,当上述装置600、700、800、900为芯片或者芯片系统时,其收发器或者收发单元可以是输入输出接口,其中,接收器或者接收单元可以理解为输入接口,发送器或者发送单元可以理解为输出接口。
下面将描述本申请实施例的以太网系统。
本申请实施例提供一种以太网系统,该以太网系统包括M个骨干节点,M个骨干节点中的每一个包括第一骨干端口和第二骨干端口,M个骨干节点之间通过第一骨干端口和第二骨干端口形成环形网络,M为大于2的整数。M个骨干节点包括第一骨干节点,第一骨干节点的第一骨干端口为转发状态,第一骨干节点的第二骨干端口为阻塞状态。M个骨干节点中除第一骨干节点之外的任一个骨干节点的第一骨干端口和第二骨干端口均为转发状态,第二骨干节点为M个骨干节点中除第一骨干节点之外的一个。
第一骨干节点用于:获取环形网络中的链路故障信息;根据链路故障信息将第一骨干节点的第二骨干端口切换为转发状态。
可选地,第二骨干节点用于:确定第一链路发生故障,第一链路为第二骨干节点的第一骨干端口所在的链路;通过第二骨干节点的第二骨干端口发送通知报文,通知报文用于指示第一链路发生故障;
第一骨干节点具体用于:通过第一骨干节点的第一骨干端口接收通知报文。
可选地,第二骨干节点还用于:将第二骨干节点的第一骨干端口切换为阻塞状态。
可选地,第二骨干节点的第一骨干端口为主端口,第二骨干节点的第二骨干端口为从端口。
可选地,第二骨干节点具体用于:通过差分信号诊断确定第一链路发生故障。
可选地,该通知报文为桥接协议数据单元BPDU报文。
可选地,第一骨干节点具体用于:确定第二链路发生故障,第二链路为第一骨干节点的第一骨干端口所在的链路。
可选地,第一骨干节点还用于:将第一骨干节点的第一骨干端口切换为阻塞状态。
可选地,第一骨干节点具体用于:通过差分信号诊断确定第二链路发生故障。
可选地,M个骨干节点中的每一个包括第一标识,第一标识用于标识以太网系统中的骨干节点。
可选地,以太网系统还包括终端节点,终端节点包括第一终端端口和第二终端端口,第一终端端口为转发状态,第二终端端口为阻塞状态,M个骨干节点中的至少两个骨干节点还包括第三终端端口,第一终端端口和第二终端端口与至少两个骨干节点的第三终端端口相连。
该终端节点用于:确定第三链路发生故障,第三链路为第一终端端口所在的链路;将第二终端端口切换为转发状态。
可选地,终端节点还用于:将第一终端端口切换为堵塞状态。
可选地,终端节点具体用于:通过差分信号诊断确定第三链路发生故障。
可选地,终端节点包括第二标识,第二标识用于标识以太网系统中的终端节点。
可选地,第一骨干节点还用于:检测第一标识;根据第一标识确定自身为网络中的骨干节点。
可选地,第二骨干节点还用于:检测第一标识;根据第一标识确定自身为网络中的骨干节点。
本申请实施例还提供一种车辆,包括本申请实施例提供的上述任一种以太网系统。
需要说明的是,上述车辆可以为智能车辆、新能源车辆或者传统车辆等,本申请不做限定,其中,新能源车辆包括纯电动车辆、增程式电动车辆、混合动力车辆、燃料电池车辆、其他新能源车辆等。传统车辆包括汽油车辆、柴油车辆等。
作为示例,上述以太网系统用于车辆,骨干节点可以为VIU,终端节点可以为域控制器DC,例如,CDC、VDC等。
可选地,本申请中,终端节点和骨干节点可以都是交换芯片(Line switch,LSW),其硬件结构相同,通过第一标识和第二标识来区分终端节点和骨干节点,使得节点可以根据不同的标识执行不同的切换逻辑,减小交换芯片的配置复杂性。
应理解,本申请中,每一个骨干节点或终端节点均可以存在一个或多个其他端口,例如,非骨干关口或者非终端端口,这些端口可以接入其他的设备,例如,微处理单元(micro processor unit,MPU)、微控制单元(micro control unit,MCU)、输入/输出接口(input/output interface,I/O接口)等,本申请对此不做限定。
还应理解,图1只是本申请的一种应用场景的示意图,本申请的应用场景不限于此,例如,本申请的方案也可以用于传统以太网中,其中,骨干节点可以是路由器或交换机,终端节点也可以是路由器或者交换机。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的网络架构以及业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:包括单独存在A,同时存在A和B,以及单独存在B的情况,其中A,B可以是单数或者复数。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应理解,在本申请的各种实施例中,第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。例如,区分不同条件下的带宽等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。