主权项 |
一种列车以太网络路径的动态规划方法,其特征在于,步骤如下:在列车以太网络路径的动态规划方法中所用交换设备的中继口分为上行中继口和下行中继口;该动态规划方法设有三种网络报文,分别为环路检测报文、链路通知报文和心跳检测报文;三种网络报文在数据链路层运行,三种网络报文的目的MAC地址均为组播MAC地址,即当交换设备收到上述三种网络报文时,直接转发至CPU端口,不遵循交换设备正常的转发规则;环路检测报文包含发送设备的MAC地址和目的端口号,用来检测物理链路是否存在环路;交换设备根据是否收到自身发送的环路检测报文来确定阻塞具体的下行中继口,防止网络拓扑中存在逻辑环路;链路通知报文向交换设备的所有中继口发送,用来通告其他交换设备链路发生变化,保证交换设备的同步控制;链路通知报文使用多次重发机制,通过TTL机制限制通信链路中的报文流量,同时采用广播和组播并存的方式发送报文以提高报文扩散的速度;心跳检测报文周期性向物理链路连接正常的中继口发送,用来检测中继口之间的通信质量;当检测到链路正常,但是接收心跳检测报文超时时,交换设备弃用该链路,同时对网络重新进行一次路径规划;当交换设备上电启动后,首先配置交换设备,除了配置交换设备的常规配置外,还包括根据网络拓扑配置交换设备的上行中继口和下行中继口、配置报文发送的时间间隔和同步等待时间,然后阻塞所有中继口;再创建两个线程:网络路径控制线程和网络数据接收线程;网络路径控制线程用来周期性的发送报文,检测交换设备的状态,然后根据不同的状态进行相应的控制,其控制步骤如下:步骤1,交换设备发送环路检测报文和心跳检测报文,其中环路检测报文只向下行中继口发送;步骤2,交换设备检测中继口物理链路状态是否发生变化,若发生变化,则发送链路通知报文,将物理链路状态变化通告网络中的其他交换设备,继续执行步骤4;否则执行步骤3;步骤3,交换设备检查心跳检测报文超时标识和链路通知报文接收标识,如果检查到心跳检测报文超时标识或链路通知报文接收标识,则重新规划网络路径,继续执行步骤4,否则执行步骤7;步骤4,交换设备检测到中继口物理链路状态发生变化、心跳检测报文超时标识或链路通知报文接收标识时,首先交换设备阻塞自身的所有中继口,等待一个同步等待时间,同步所有交换设备的控制状态,即为阻塞自身的所有中继口,然后执行步骤5;步骤5,交换设备打开自身的下行中继口,上行中继口保持阻塞状态,然后交换设备在一个同步等待时间内周期性的发送环路检测报文;如果交换设备接收到其他交换设备的环路检测报文,则根据其所携带的MAC地址大小决定是否丢弃该环路检测报文,或选择性转发该环路检测报文;如果交换设备接收到自身的环路检测报文,则表示网络上存在物理环路,确定待阻塞端口,防止网络风暴的发生,待阻塞端口由环路检测报文中携带的端口号决定,然后执行步骤6;步骤6,打开交换设备自身的上行中继口,保证网络的正常通信,同时在一个同步等待时间内周期性的清空自身中继口的MAC地址学习表,防止正常数据的转发错误,然后执行步骤7;步骤7,交换设备采用超时信号量等待延时,然后重新执行步骤1;如果在等待延时期间接收到链路通知报文,则跳出延时,直接进入步骤1,重新开始新的网络路径规划;网络数据接收线程用来接收其他设备发送的环路检测报文、链路通知报文和心跳检测报文,然后针对不同的报文做相对应的处理,其处理过程如下:如果交换设备接收到环路检测报文,则比较环路检测报文中的MAC地址和自身交换设备的MAC地址的大小,如果前者小,则将环路检测报文原封不动的转发至处于转发状态的下行中继口;如果前者大,则丢弃环路检测报文;如果相等,则判断接收环路检测报文的中继口是否处于转发状态的下行中继口或处于非监听状态的上行中继口,如果是,则阻塞环路检测报文中携带的端口号,否则丢弃报文;如果交换设备接收到链路通知报文,首先判断TTL的值是否为0,如果是则丢弃链路通知报文,否则将TTL的值减1,同时转发至当前交换设备的其它中继端口;为了防止链路通知报文在复杂的网络路径中重复转发问题,交换设备对链路通知报文只转发两次;如果交换设备接收到心跳检测报文,则清除超时计时器,如果交换设备的某中继口在超时时间内没有收到相邻交换设备发送的心跳检测报文,则表示该物理链路存在问题,当前交换设备发送链路通知报文,重新规划网络路径。 |