基于(yú)FAST的(de)TSN交換(7)TSN網絡接口适配器需求分析與實現模型
發布時(shí)間:2019-1-27
TSN網絡實現确定性的(de)分組交換不(bù)但需要(yào / yāo)TSN交換機,TSN接口适配器以(yǐ)及管理控制系統配合實現,而(ér)且必須能夠清晰的(de)給出(chū)時(shí)間敏感流量的(de)規範特性。由于(yú)TSN技術發展迅速,新标準和(hé / huò)修訂不(bù)斷湧現,特别是(shì)面向特定行業的(de)解決方案差異較大(dà),因此不(bù)同廠商的(de)TSN設備互聯互通十分困難。TSN解決方案提供商必須提供TSN網絡整套解決方案,在(zài)研制TSN交換機同時(shí),必須提供配套的(de)網絡接口适配器和(hé / huò)控制軟件的(de)方案。
一、TSN網絡接口适配器的(de)特點
(1)與商用網卡的(de)比較
由于(yú)TSN網絡具有明顯的(de)行業特點,不(bù)同場景下的(de)TSN交換具有不(bù)同的(de)網絡接口和(hé / huò)鏈路,資源預約方式,時(shí)間同步方式,故障冗餘等要(yào / yāo)求,特别的(de)TSN定義了(le/liǎo)與标準以(yǐ)太網不(bù)同的(de)UNI接口,因此構建TSN網絡不(bù)能使用标準的(de)網絡接口适配器,必須進行針對性的(de)定制。
TSN網絡接口适配器與标準網卡的(de)比較如下表所示。
(2)TSN接口适配器實現模型
TSN接口适配器實現需要(yào / yāo)考慮外部接口定義以(yǐ)及内部處理模型兩方面,如下圖所示。TSN接口适配器的(de)接口包含與結點CPU連接的(de)接口,與網絡連接的(de)接口(UNI)以(yǐ)及與配置管理系統連接的(de)接口。
通常TSN接口适配器與控制計算機CPU的(de)接口爲(wéi / wèi)PCIe接口,可保證較大(dà)的(de)傳輸帶寬和(hé / huò)較小的(de)延時(shí),與傳感器/控制器節點連接的(de)接口爲(wéi / wèi)以(yǐ)太網接口(适配器與控制器/傳感器物理分離)或内部總線接口(适配器與傳感器/控制器深度集成在(zài)一個(gè)SOC系統内)。
TSN适配器與網絡爲(wéi / wèi)标準的(de)以(yǐ)太網接口,本文後續将會對UNI接口進行詳細分析。而(ér)對TSN接口适配器的(de)配置管理接口可采用多樣化的(de)實現方式,既可以(yǐ)通過CPU接口,由驅動程序對适配器進行管理控制,也(yě)可以(yǐ)通過UNI接口,由外部的(de)集中控制器對适配器進行控制。在(zài)特定環境中,TSN網絡還可以(yǐ)采用獨立的(de)總線對接口适配器的(de)管理甚至是(shì)時(shí)間同步進行控制。
TSN适配器内部邏輯除了(le/liǎo)比較直觀和(hé / huò)标準的(de)“分類标記整形與調度”,“時(shí)間同步”,“配置管理”外,還包含“冗餘控制”和(hé / huò)“應用加速”兩部分。
冗餘控制是(shì)根據TSN網絡特定應用場景的(de)需求确定的(de),例如在(zài)艦船上(shàng)特定應用場景需要(yào / yāo)支持冗餘接入備份的(de)雙口功能。
應用加速功能是(shì)擴充網絡适配器功能,使之(zhī)具有類似智能網卡的(de)應用加速功能,以(yǐ)便減小TSN網絡結點體積和(hé / huò)功耗對特定應用的(de)加速。一個(gè)典型的(de)場景是(shì)将高分辨攝像頭通過TSN适配器接入網絡,适配器不(bù)但能根據攝像頭的(de)數據流規範向網絡預約資源,保證采集數據傳輸的(de)質量,還可以(yǐ)利用可編程資源,在(zài)數據傳輸前完成視頻采集數據的(de)編解碼和(hé / huò)内容加解密等處理。這(zhè)類功能雖然與TSN無關,但可以(yǐ)對全系統整體的(de)處理效率、功耗和(hé / huò)體積進行優化,特别适合汽車、飛機和(hé / huò)衛星上(shàng)數據采集和(hé / huò)計算分析的(de)場景。
二、TSN網絡的(de)用戶網絡接口(UNI)設計
UNI定義了(le/liǎo)TSN端節點與網絡的(de)接口規範,從物理層的(de)接口速率,線纜長度,時(shí)間同步,到(dào)鏈路層的(de)資源預約和(hé / huò)故障冗餘等機制都需要(yào / yāo)進行針對性設計。
(1)UNI接口速率
目前工業環境下TSN網絡鏈路主要(yào / yāo)采用100M以(yǐ)太網和(hé / huò)1G以(yǐ)太網,對10/100/1000以(yǐ)太網速率的(de)自動協商并沒有明确的(de)要(yào / yāo)求。一方面是(shì)因爲(wéi / wèi)網絡是(shì)封閉和(hé / huò)确定的(de),其中接入節點的(de)帶寬可以(yǐ)預先規劃;另一方面是(shì)不(bù)确定的(de)鏈路協商速率使得網絡延時(shí)和(hé / huò)帶寬難以(yǐ)預知,增加了(le/liǎo)确定性管理的(de)複雜性。因此TSN接口适配器在(zài)設計時(shí)可以(yǐ)根據需求固定網絡接口的(de)速率,使用簡單的(de)MAC層處理邏輯,而(ér)無需支持接口速率的(de)自适應。
(2)UNI接入電纜長度
TSN網絡UNI設計時(shí)一個(gè)比較容易忽略的(de)問題時(shí)TSN網絡中網線的(de)長度。假設信号在(zài)光纖和(hé / huò)電纜上(shàng)傳輸的(de)速度爲(wéi / wèi)每秒30萬公裏(由于(yú)存在(zài)分布電感和(hé / huò)電容,電信号在(zài)電纜中傳輸速度一般按照20萬公裏估算),那麽30m的(de)傳輸延時(shí)約爲(wéi / wèi)100ns左右。因此爲(wéi / wèi)了(le/liǎo)提升時(shí)間同步精度,TSN網絡在(zài)規劃時(shí)必須考慮電纜長度。如果接口适配器接入網絡的(de)接入電纜長度無法确定,那麽可以(yǐ)考慮采用IETF Detnet工作組提出(chū)的(de)大(dà)規模網絡确定性轉發的(de)方案,放松對時(shí)間同步的(de)要(yào / yāo)求。
(3)UNI的(de)資源預約
TSN保證确定性交換的(de)前提就(jiù)是(shì)提前有一個(gè)類似“高鐵運行時(shí)刻表”的(de)規劃圖,生成這(zhè)個(gè)規劃圖分爲(wéi / wèi)在(zài)線兩種和(hé / huò)離線方式。在(zài)線規劃方式要(yào / yāo)求TSN網絡接口支持類似802.1Qat和(hé / huò)802.1Qcc協議,動态的(de)爲(wéi / wèi)時(shí)間敏感業務預約網絡資源,其優點是(shì)支持網絡節點的(de)動态加入和(hé / huò)退出(chū)以(yǐ)及可變的(de)時(shí)間敏感業務傳輸需求,但這(zhè)大(dà)大(dà)增加了(le/liǎo)TSN網絡接口驅動的(de)複雜性。
離線規劃方式主要(yào / yāo)針對時(shí)間敏感業務傳輸需求是(shì)固定的(de)封閉網絡,例如工廠車間的(de)現場控制網絡,列車骨幹網絡和(hé / huò)汽車車載網絡等。這(zhè)些網絡的(de)網絡接口不(bù)需采用動态協議向網絡預約資源,十分适合計算和(hé / huò)存儲能力都十分有限的(de)傳感器和(hé / huò)控制器接入TSN網絡。
離線資源預約隻适用于(yú)滿足局域網内部交換的(de)确定性,在(zài)更大(dà)區域範圍内跨網關或路由器的(de)确定性轉發控制必須采用其他(tā)的(de)技術,如2015年IETF成立的(de)Detnet(确定性網絡)工作組提出(chū)的(de)L3網絡中的(de)确定性保證機制,當然目前Detnet相關規範還在(zài)草案階段,與TSN相比,更加不(bù)夠成熟。
(4)UNI時(shí)間同步
雖然近年來(lái)一些IETF Detnet工作組針對大(dà)規模網絡提出(chū)了(le/liǎo)不(bù)需要(yào / yāo)時(shí)間同步的(de)确定性轉發方案,但這(zhè)些會大(dà)大(dà)增加網絡接口和(hé / huò)交換對時(shí)間槽标記和(hé / huò)映射的(de)複雜性,難以(yǐ)在(zài)局域網中部署。因此TSN網絡接口适配器必須支持1588時(shí)間同步機制。
當前一些商用網卡如i350,82559,x550等支持1588PTP協議。但由于(yú)這(zhè)些網卡的(de)時(shí)間同步實現必須驅動參與,例如生成follow up同步幀,因此需要(yào / yāo)占用計算和(hé / huò)存儲資源,難以(yǐ)支持較高頻率的(de)時(shí)間同步,同步精度難以(yǐ)保證。條件許可情況下,TSN網絡接口适配器應由硬件實現全部的(de)時(shí)間同步功能。
(5)UNI故障冗餘
除了(le/liǎo)具有确定性延時(shí)外,确保分組不(bù)丢包的(de)可靠傳輸也(yě)是(shì)TSN的(de)重要(yào / yāo)目标。TSN 802.1CB規範定義了(le/liǎo)爲(wéi / wèi)了(le/liǎo)确保可靠傳輸的(de)幀複制和(hé / huò)消除機制,基本思想是(shì)從TSN網絡接口就(jiù)将數據流劃分成不(bù)同的(de)子(zǐ)流,不(bù)同的(de)子(zǐ)流通過網絡中不(bù)同的(de)路徑進行傳輸,在(zài)子(zǐ)流的(de)彙聚點再進行重複分組的(de)丢棄,以(yǐ)避免路徑故障帶來(lái)的(de)分組丢失。因此,TSN網絡接口适配器必須支持多個(gè)冗餘的(de)網絡接口接入網絡,并可根據需求支持802.1CB等協議的(de)處理。
後續我們會對基于(yú)FAST架構和(hé / huò)Zynq FPGA的(de)TSN接口适配器的(de)設計思路和(hé / huò)實現技術進行分析,歡迎繼續關注。