朱紅崗 張哲瑞

摘要:針對列車網絡控制系統中以太列車骨干網絡的傳輸及網絡協議特性,文章給出了ETB構成及編組拓撲,從底層初始化、列車拓撲發現協議初始化、協議管理和軟件初始化4個方面介紹,模擬了ETB網絡的具體流程,實現了ETB網絡節點的自動編組。
關鍵詞:以太列車骨干網絡;列車拓撲發現協議;自動編組
以太列車骨干網絡是將工業以太網的帶寬高、速率快、實時性好等特點引入了列車網絡中,以適應未來列車網絡系統發展的方向。以太列車骨干網絡(Ethernet Train Backbone,ETB)與工業以太網的不同之處在于網絡拓撲結構、禁止使用生成樹、快速生成樹協議和網絡初始化協議。株洲時代電氣針對ETB的初始化協議提出了一種分布式比較算法,使用了鏈路層的LLDP協議來建立所有節點的信息,最后形成一個連接向量表。本文研究了ETB的編組形式及協議組成,模擬了ETB網絡的數據流,實現了列車ETB網絡節點自動編組。
1.ETB網絡拓撲
ETB網絡拓撲結構采用線性結構,每個ETBN有兩個參考方向,從Tc2車指向Tc1車為方向1,從Tc1車指向Tc2車為方向2。車輛的物理連線使ETBN的方向1與車輛的方向1相同,這樣保證了多個節點情況下,每個節點的方向1應是相同的,列車通信方向也一致。列車的首節點地址是01,其余節點按總線方向2從02開始按遞增順序依次編號,最后命名的節點為尾節點。列車上的終端設備,可以直接連接到以太列車骨干網節點(ETB Node,ETBN)上。以太列車骨干網拓撲結構如圖1所示。
以太列車骨干網主要包括4個部分:底層初始化、運行TTDP協議、協議管理、軟件初始化。底層初始化使得底層能夠順利實現收發數據的工作,運行TTDP協議完成ETB網絡的編組和通信,在編組成功后分配IP地址,協議管理和軟件初始化完成對應用層數據的傳輸控制,實現列車網絡的順暢運行。
2.底層初始化
底層初始化軟件主要完成4個方面的功能。
2.1線程的初始化
負責程序所有底層線程的初始化,接口API函數對各種數據結構進行填充,如port:端口號,interface:ETB網口的標識號等。
線程初始化包括:實現線程的鏈表結構的初始化;開啟所有線程;初始化路由表;初始化客戶端;取得相應的端口的IP等信息;連接vns server。
線程初始化組件的數據結構包括:路由器ID號、區域ID號、更新頻率、OSPF協議的hello幀的間隔時、路由更新時間、ARP ttl時間、nat超時時間、線程指針函數、路由表、ARP協議地址映射、ARP隊列、客戶端命令、路由更新協議、nat協議表結構、nat保持線程、nat表喚醒條件、ARP線程、OSPF協議的hello線程、OSPF協議的更新線程、OSPF超時處理線程、迪克斯加算法處理線程、路由更新廣播線程、路由廣播更新協議喚醒條件、路由器狀態線程、上次路由器狀態保持結構、本地ip過濾列表、日志文件等。
2.2內存的初始化
內存初始化接口函數為mem init(),主要完成內存初始化。
2.3內存棧的管理的初始化
內存棧初始化接口函數為mems init(),主要實現內存棧初始化。
2.4對數據包進行管理
數據包管理完成所有的數據包函數的初始化。
3.TTDP協議初始化
TTDP協議完成對ETB的網絡節點進行編組。TTDP協議包含HELLO幀和TOPOLOGY幀。每個ETB節點會不停地檢測ETB上的其他節點,在方向1和方向2上通過多播方式周期性發送這兩個數據幀。HELLO幀用于檢測相鄰ETBN的情況,根據幀的源MAC地址來查找自己的轉發表,確定ETBN的左右節點并記錄,更新左右節點表,即連接向量域(Connectivity Vector),如果ETB上只有一個ETBN,則一段時間后自動宣布進入穩態。TOPOLOGY幀用于檢測網絡上所有可能出現的節點的編號情況,根據拓撲對總表進行一次更新,即ETBN向量域(ETBN Vector),對整個列車進行編組。
列車網絡的安全性能和級別較高,考慮到冗余控制策略,實現帶冗余的TTDP協議包發送流程,主要分為以下3個線程:
線程1:發送TTDP HELLO幀,構建相鄰節點廣播包,并且將該包通過mac層發送至相鄰節點,測試節點之間的物理連接,并且建立ETBN向量表,用來描述方向1或方向2上所有節點的連接關系。
線程2:接收和發送TTDP TOPOLOGY幀,接收全局廣播包,判斷是否本節點發出,若是,則丟棄該數據包;若否,更新本節點mac表,同時將相鄰節點廣播包發送至全局網絡,向其他ETBN通告本節點的拓撲發現信息,同時建立連接表Connectivity Table,并更新自己的連接表。
線程3:發送冗余判別廣播包,熱備端ETBN不斷地發送心跳包到其余ETBN,若收到其余ETBN心跳包應答信息,熱備端保持;若未收到應答信息,則執行冗余切換,由備份ETBN接管熱備端的所有運行工作。
4.協議管理
協議管理,完成編組車輛間的網絡通信協議管理,分為5部分:
(1)端口初始化:獲取網13IP地址,對IP地址和MAC地址進行定位。
(2)ARP數據處理:打包并發送ARP格式的hello幀,管3~ARP的隊列。
(3)OSPF hello數據處理:基于OSPF協議而開發的Hello包并定時發出,用于發現相鄰ETBN、建立連接關系、選舉DR和BDR、確保雙向通信。
(4)OSPF lsa數據處理:打包并發送OSPF~lsa幀格式數據并定時發出。OSPF lsa數據主要類型有:路由鏈路信息:鏈路Router-id,接口地址,接口網絡,接口類型。網絡鏈路信息DR通告。匯總鏈路ABR通告。(d)通告外部路由。
(5)OSPF lsa timeout數據處理:打包并發送OSPF的lsa timeout幀格式并定時發出,用于探測lsa數據幀是否超時。
5.軟件初始化
軟件初始化,完成編組車輛間的數據交互。在端口正常狀態下,判斷網絡協議類型:
(1)是否是ARP數據包,判斷為ARP應答,則更新隊列,返回目的地址不可達。判斷為ARP請求,請求IP與網口地址一致則進行ARP應答,不一致則丟棄該報文。
(2)判斷是否是IP數據包,若是則進入IP數據處理線程;若以上兩種數據包都不是,則丟棄該報文。
其中,IP數據處理線程分為以下3部分:
(1)是否為OSPF廣播包,若目的地址與網口地址匹配,進行OSPF迪克斯加算法處理;若不匹配,查看路由下一跳是否存在,若存在下一跳,TTL減1,進行校驗和,發送數據包,若不存在下一跳,返回目的地址不可達。
(2)是否為TCP或者UDP報文,若為TCP包,進行TCP數據處理;若為UDP包,返回目的地址不可達。
(3)是否為ICMP報文,若為ICMP包,執行應答請求,創建應答數據,否則,返回目的地址不可達。
6.結語
本文介紹了列車網絡控制系統中以太列車骨干網絡ETB的構成和編組拓撲,從底層初始化、列車拓撲發現協議TTDP初始化、協議管理和軟件初始化4個方面詳細說明了模擬ETB網絡的具體流程,實現了ETB網絡中列車節點的自動編組,后續工作將研究列車網絡控制系統中的以太編組網絡。