999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于RTnet的實時網絡改造

2022-02-24 06:27:58王晨博孟博張楠
電子測試 2022年2期

王晨博,孟博,張楠

(中航工業西安航空計算技術研究所,陜西西安,710068)

關鍵字:RTnet;端到端時延;Linux;TDMA

0 引言

在對實時性要求較高的系統中,采用TCP協議雖然可提供可靠的通信服務,然而其三次握手協議增加了額外的時間開銷,導致數據傳輸不具備有界的傳輸時延。目前有很多機構進行了實時以太網通信的研究,但是大部分方案只能提供數據傳輸的軟實時保證,其它一些方案需要多節點的架構設計進行適應性更改,不具備適用性。RTnet是一個與Linux網絡子系統類似的網絡協議棧,能夠在不改變現有網絡硬件的前提下提供硬實時保證。

RTnet是一個基于RTAI或Xenomai的開源硬實時網絡協議棧,由德國漢諾威大學的Ulrich Marx開發,RTnet使用標準以太網設備,支持包括千兆以太網的多種網絡適配器。RTnet以確定性的方式實現UDP/IP、TCP/IP、ICMP和ARP等協議,并為內核空間和用戶空間之間提供了POSIX Socket API接口[1]。為了避免以太網中不可預測的沖突和擁塞,RTnet中設置了一個額外的實時媒體訪問控制層RTmac。

RTnet的關鍵技術就是時分多址(TDMA)技術,采用改進的Linux操作系統結合RTnet實時協議棧來提高以太網實時性。本文搭建了一個使用RTnet協議棧的多節點和交換機的網絡拓撲,并設計了主節點和從節點之間的數據傳輸時間延遲測試方案。

1 RTnet協議棧

RTnet參考了標準Linux的模塊化設計思想,可以根據需要加載相應的模塊。RTnet的動態模塊主要包括UDP/IP協議、數據包管理、RTcap、RTcfg、RTmac、Socket API、RT driver等模塊,這些動態模塊的具體描述如下:

(1)數據包管理。包管理通過實時任務處理包的傳輸和接收。在發送端,數據包通過協議棧發送出去。在接收端,數據包從實時驅動層接收到堆棧管理。棧管理的功能是根據不同的協議類型進行分組。棧管理的優先級高于所有需要RTnet服務的任務,這種機制旨在避免優先級倒置。RTnet將分片數據包存儲在“rtskbs”的數據結構中,所有的rtskb都有一個固定的大小而且可以裝在最大長度的數據包。與普通堆棧不同,rtskbs必須以嚴格確定的方式進行分配。由于這個原因,rtskb被預先分配到多個池中,每個池對應數據包的生產者或消費者。使用時從池中獲取,如果池中沒有足夠的rtskb則獲取失敗。

(2)UDP/IP協議。與常規的UDP/IP協議棧相比,動態ARP被轉換為靜態配置,簡化了路由和地址解析。通過動態加載rtipv4.ko或rtipv6.ko模塊可以實現這種性能。RTnet路由基于兩個表:主路由表和可選網絡路由表。主路由表包含所有可以通過本網段直接到達的目的IP地址。可選路由表僅在需要不同的網絡通信時使用。RTnet在發送大數據包時,通過IP分片將數據包在網絡上分成多個部分進行發送。在接收端,RTnet棧中的IP層接收一系列分片的IP數據包,并將它們重新組合,然后將整個數據包傳遞給UDP層。

(3)RT driver。RTnet下的網卡驅動采用了和Linux類似的架構,為了對數據包時間戳進行精確管理,RTnet沒有采用NIC內置的時間戳,而是在接收中斷和數據包發送時進行記錄[4]。為了支持RTcap和RTmac,還提供了發送重定向和訪問MTU的接口。

(4)API接口。應用程序可以通過POSIX兼容的socket接口和IO接口使用RTnet。本設計中使用到的RTnet API接口包括:rt_dev_open()、rt_dev_socket()、rt_dev_close()、rt_dev_ioctl()、rt_dev_read()、rt_dev_write()、rt_dev_recvmsg()、rt_dev_recvfrom()、rt_dev_recv()、rt_dev_sendmsg()、rt_dev_sendto()、rt_dev_send()、rt_dev_bind()、rt_dev_connect()、rt_dev_listen()、rt_dev_accept()和 rt_dev_shutdown()。

(5)RTmac。實時媒體訪問控制(RTmac)為RTnet提供TDMA訪問策略。RTmac基于主/從節點的工作模式。如果第一主節點不工作,可以使用其他主節點。一個主節點周期性的發送數據到所有從節點,每一個節點(包含主節點)在一個TDMA周期中至少擁有一個時隙,在該分配的時隙中節點可以向外發送數據。在不同配置模式中,一個節點可能在TDMA周期中擁有多個時隙,多種TDMA的分配策略如圖1所示。若遇到一個時隙分配給多個節點,則按照節點的優先級進行排隊,最高優先級的節點在當前周期發送數據,次優先級的節點在第二個TDMA周期中的對應時隙發送數據,保證了高優先級實時數據的確定性傳輸。該模塊中配置了32個節點優先級,最低的優先級是為非實時協議保留的[5]。在使用RTmac實時拓展時,需要動態加載tdma.ko和rtmac.ko模塊。通過使用RTmac實時拓展,可以使網絡中的數據以確定的時間片進行發送,保證有界的數據傳輸延遲,增加數據傳輸的確定性和可靠性。

圖1 TDMA策略

(6)RTcap。主要用于網絡發送數據和接收數據的捕獲,用于進行網絡傳輸特性分析。其時間戳抖動非常低,通常低于10us。RTcap.ko動態模塊需要在所有網絡接口設備的驅動加載之后再加載。

2 實時網絡測試

本文主要對數據包往返時間RTT進行測試。首先使用TCP/IP協議棧對節點間的數據傳輸延遲進行測試并記錄,之后加載RTAI和RTnet的相關動態模塊,完成Linux從內核到協議棧的實時化轉換,然后對使用RTnet協議棧的節點間數據傳輸延遲進行測試。RTAI的動態模塊主要包括rt_make_hard_real_time()和rt_make_soft_real_time(),其主要功能為進行內核空間與用戶空間的相互轉換,使測試數據的發送和接收任務在內核中完成,而不是在用戶空間傳送,這樣使得任務的優先級變為最高,保證其實時性。

2.1 測試環境搭建

測試使用若干臺PC機和COTS交換機,其中一臺作為主節點,剩余PC機作為從節點,所有節點在一個網段內,測試網絡拓撲如圖2所示。

圖2 測試網絡拓撲

主從節點配置操作系統為Linux fedora 2.6版本,在進行通信測試前,需要在Linux fedora 2.6的基礎上進行內核的實時化拓展,添加RTAI(Real Time Application Interface)動態加載模塊,最后加載RTnet模塊。本文選用的RTAI版本為RTAI-3.6.2,RTnet版本為0.9.10。

在運行RTnet網絡協議之前,首先禁用 Linux系統的網絡接口設備,并卸載Linux 系統的網絡接口設備的驅動[2]。然后加載實時網絡接口設備相關的驅動,具體的操作系統實時化步驟如下所示。

其中,RTAI模塊完成了對Linux內核的實時性改進。

2.2 測試軟件

測試軟件主要包括發送模塊、接收模塊,數據庫模塊和主控制模塊四個部分。數據庫模塊用來在準備階段產生網絡數據庫文件,包括源/目的IP地址、源/目的端口和數據長度等。在硬實時模式下,發送模塊完成初始化操作,使用mailbox機制將數據包發送至主控制模塊。接收模塊完成初始化操作,使用mailbox機制從主控制模塊獲取數據包。主控制模塊包含若干發送和接收線程,發送線程完成數據包的組包,封裝等操作并發送至以太網,接收線程完成數據接收解析,之后將數據包通過mailbox傳遞至接收模塊。

mailbox服務由RTAI調度器提供,mailbox相關的API接口函數包括:rt_mbx_init ()、rt_mbx_delete ()、rt_mbx_send ()、rt_mbx_if ()、rt_mbx_until ()、rt_mbx_timed ()、rt_mbx_receive ()。使用mailbox服務時需要將rtai_sched. ko模塊加載進Linux內核內。

2.3 測試方法

按照圖3搭建測試環境,本時延測試使用主節點和從節點A進行。配置TDMA循環長度為1ms,在1個TDMA周期中主節點和從節點A分別有兩個200us的發送時隙。主節點發送請求數據幀,配置數據幀長度為1000字節。從節點A收到該數據幀后立即回復主節點一個相應數據幀。

圖3 主從節點時間片均為200us

采用TCP/IP協議棧與采用RTNET協議棧分別進行測試的結果如表1所示,由于經過RTAI改造的Linux內核的時鐘精度得到提高,因此RTnet協議棧的測試結果取值可以精確到0.1us。

表1 RTT測試統計結果

從測試結果可以看出,采用TCP/IP協議棧傳輸時,RTT平均值較大,且標準差很大。采用RTNET協議棧傳輸時,RTT平均值與抖動均有很大程度降低,滿足數據的實時性需要。

3 結語

通過對傳統交換式以太網進行實時性改進,測試了使用RTAI和RTnet技術后的網絡端到端時延。測試結果表明,網絡的實時性得到了提高。

主站蜘蛛池模板: 免费视频在线2021入口| 天天综合网色中文字幕| 国产精品尤物在线| 伊人狠狠丁香婷婷综合色| 激情综合婷婷丁香五月尤物| 亚洲成a人片| 日本五区在线不卡精品| 久久精品无码中文字幕| 狠狠躁天天躁夜夜躁婷婷| 在线中文字幕网| 毛片免费试看| 国产一级片网址| 亚洲国产天堂久久综合226114 | 好吊色国产欧美日韩免费观看| 亚洲天堂色色人体| 狠狠做深爱婷婷综合一区| 国产a v无码专区亚洲av| 亚洲高清中文字幕在线看不卡| 国产成人成人一区二区| 欧美综合区自拍亚洲综合绿色| 欧美国产日产一区二区| 久久久久亚洲精品成人网| 国产精品久久久久久久伊一| 影音先锋丝袜制服| 狠狠色成人综合首页| 亚洲日韩在线满18点击进入| 99视频在线精品免费观看6| 亚洲国产综合第一精品小说| 欧美不卡在线视频| 手机看片1024久久精品你懂的| a国产精品| 成人在线综合| 97国产在线播放| 欧洲高清无码在线| 91丨九色丨首页在线播放| 精品国产自| 国产aaaaa一级毛片| 中文字幕亚洲乱码熟女1区2区| 97久久超碰极品视觉盛宴| 国产在线观看一区精品| 99激情网| 国产国语一级毛片在线视频| 无码'专区第一页| 综合亚洲网| 亚洲成a∧人片在线观看无码| 免费可以看的无遮挡av无码| 精品伊人久久久香线蕉| 精品三级网站| 夜夜操国产| 亚洲国产欧美国产综合久久| 亚洲天堂区| 亚洲精品欧美重口| 九九九精品成人免费视频7| 青青草欧美| 成人在线第一页| 亚洲一级色| 好紧太爽了视频免费无码| …亚洲 欧洲 另类 春色| 日本一区二区不卡视频| 亚洲精品日产精品乱码不卡| 99精品在线视频观看| 免费国产高清精品一区在线| 国内精品视频在线| 亚洲高清免费在线观看| 国产农村妇女精品一二区| 蝌蚪国产精品视频第一页| 在线亚洲天堂| 欧美色99| 国产理论精品| 亚洲国产日韩在线观看| 99精品欧美一区| 在线观看国产精品第一区免费 | 欧美日韩精品综合在线一区| 色综合久久无码网| 91福利免费| 亚洲欧洲自拍拍偷午夜色无码| 免费人成又黄又爽的视频网站| 五月婷婷导航| 欧美黄色a| 亚洲精品777| 国产麻豆福利av在线播放| 国产麻豆另类AV|