www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]VxWorks下UDP協(xié)議棧效率的研究與改進

摘要 電信網(wǎng)與計算機網(wǎng)的融合是一種趨勢。在實時嵌入式操作系統(tǒng)VxWorks環(huán)境下,使用以太網(wǎng)上的UDP協(xié)議,高效傳輸電信業(yè)務(wù)的信令與數(shù)據(jù)。描述在此情況下,根據(jù)實際需求對以太網(wǎng)傳輸中網(wǎng)絡(luò)設(shè)備驅(qū)動程序與UDP協(xié)議棧進行改進的研究與探索。
關(guān)鍵詞 VxWorks UDP 協(xié)議棧效率 網(wǎng)絡(luò)設(shè)備驅(qū)動

1 使用VxWorks標準UDP協(xié)議棧存在的問題
   
在VxWorks標準的IP協(xié)議實現(xiàn)的前提下,其UDP協(xié)議的實現(xiàn)存在于IP層。在VxWorks中有一個網(wǎng)絡(luò)任務(wù)(亦即進程),用于完成以太網(wǎng)包的收發(fā)處理及與各種網(wǎng)絡(luò)協(xié)議的接口,其名為tNetTask,優(yōu)先級低于一般的系統(tǒng)任務(wù)而高于應(yīng)用程序任務(wù)。系統(tǒng)的上層網(wǎng)絡(luò)協(xié)議,如Telnet、FTP等,在服務(wù)器端有一個相應(yīng)的任務(wù),處理網(wǎng)絡(luò)任務(wù)轉(zhuǎn)交過來的數(shù)據(jù)報。

    應(yīng)用程序想要實現(xiàn)UDP數(shù)據(jù)報的收發(fā),就要使用操作系統(tǒng)提供的socket編程接口,主要包括創(chuàng)建socket,綁定socket和源IP與端口號,發(fā)送UDP數(shù)據(jù)報和接收socket中收到的內(nèi)容。在VxWorks中有4個函數(shù)與之相對應(yīng),分別是:socket()、bind()、sendto()和recvfrom()。在VxWorks操作系統(tǒng)中,socket號是與文件打開描述符(fd)同樣管理的,一個socket與源IP和一個源端口相對應(yīng)。Sendto()函數(shù)調(diào)甩時指明目的的IP地址和服務(wù)端口號。

    本文描述的UDP協(xié)議棧使用背景可簡要描述如下:該系統(tǒng)使用的主要硬件CPU平臺是摩托羅拉公司的MPC860的CPU,主頻為50 MHz;操作系統(tǒng)使用美國WindRiver公司的VxWorks。系統(tǒng)中各個設(shè)備(均有以太網(wǎng)接口)之間要在以太網(wǎng)上進行信令與語音、數(shù)據(jù)業(yè)務(wù)的傳輸,各種數(shù)據(jù)包采用統(tǒng)一的消息頭編碼格式。

    使用標準UDP協(xié)議棧最大的問題是效率。在該系統(tǒng)平臺上,網(wǎng)絡(luò)傳輸?shù)乃俾食蔀樽畲蟮钠款i,并由此影響了系統(tǒng)的容量。根據(jù)測試的極限速率,使用10M以太網(wǎng)的實際有效傳輸速率僅有1.8 Mb/s,使用100M以太網(wǎng)口電沒有明顯的提高。另外,還有一個問題,網(wǎng)絡(luò)任務(wù)經(jīng)常會掛起,在開機運行較長時間后此現(xiàn)象尤為明顯,這對系統(tǒng)的可用性和無故障工作時間構(gòu)成威脅。而項目的目標是實現(xiàn)高效穩(wěn)定的以太網(wǎng)包處理。

2 改進UDP協(xié)議棧的思想與理由
   
根據(jù)對VxWorks操作系統(tǒng)的研究,發(fā)現(xiàn)它對以太網(wǎng)包的處理與一般的IP協(xié)議棧有所不同。MAC層的控制由硬件寄存器來實現(xiàn),實現(xiàn)了發(fā)送方以太網(wǎng)幀的成幀和接收的以太網(wǎng)幀頭確認以后,通過DMA方式實現(xiàn)內(nèi)存與網(wǎng)絡(luò)介質(zhì)間的通信,網(wǎng)絡(luò)任務(wù)與硬件之間通過設(shè)備中斷進行通信。在該操作系統(tǒng)中,有一個MUX層,它提供統(tǒng)一的發(fā)送函數(shù),其參數(shù)為發(fā)送的網(wǎng)絡(luò)設(shè)備管理表指針和發(fā)送的數(shù)據(jù)報指針。我們知道,在一個有多個網(wǎng)絡(luò)設(shè)備同時工作的計算機系統(tǒng)中,標準的IP協(xié)議棧要完成選取從哪個網(wǎng)絡(luò)設(shè)備端口(gate way)發(fā)送和判斷ARP的Cache中是否有對端的MAC地址,從而決定是否啟動ARP進行解析。在VxWorks中。是通過查Route表和ARP表來完成以上兩項工作的。Route表中儲存的是與每一個通信的子網(wǎng)的gart way,ARP表中儲存的是已知的IP地址與MAC地址的對應(yīng)關(guān)系。另外,數(shù)據(jù)報接收的處理過程中是在IP數(shù)據(jù)報存入內(nèi)存后申請MUX層的隊列緩沖區(qū),然后依次調(diào)用各上層協(xié)議的處理函數(shù)。

    根據(jù)以上情況,考慮在MUX層修改UDP協(xié)議棧,在發(fā)送過程中,跳過socket接口,直接使用MUX層的發(fā)送函數(shù)。這樣,可以減少從UDP層網(wǎng)絡(luò)數(shù)據(jù)報緩沖區(qū)到MUX層緩沖區(qū)之間的復(fù)制工作,從而提高發(fā)送效率。在接收數(shù)據(jù)包的處理過程中,在MUX層收到數(shù)據(jù)報后鉤掛(hook)一個處理函數(shù),對UDP協(xié)議的數(shù)據(jù)包進行分檢,優(yōu)先于其他協(xié)議的處理。這樣可減少從MUX層緩沖區(qū)到UDP層網(wǎng)絡(luò)數(shù)據(jù)報緩沖區(qū)之間的復(fù)制,而且可以不再要求上層使用輪誨的方法檢查socket的緩沖區(qū)中的內(nèi)容,提高了處理的實時性。

3 改進UDP協(xié)議棧出現(xiàn)的新問題
    VxWorks的muxLib類庫中允許用戶自己定義一個協(xié)議棧,將協(xié)議棧綁定到一個具體的網(wǎng)絡(luò)端口上,同時要有一個處理函數(shù)對該網(wǎng)絡(luò)設(shè)備上收到的包進行處理。加載改進后的協(xié)議棧要先創(chuàng)建一組緩沖區(qū),每種緩沖區(qū)對應(yīng)不同的數(shù)據(jù)報長。預(yù)先分配一大塊內(nèi)存,可避免發(fā)送數(shù)據(jù)包時再去分配內(nèi)存,并可根據(jù)各種長度的數(shù)據(jù)報的使用頻度申請不同個數(shù)的緩沖區(qū)。發(fā)送過程中,要填寫IP首部的其他內(nèi)容,如協(xié)議版本號、UDP協(xié)議編號、idenfication域、IP首部校驗和等等。在填寫的過程中,可以有意識地按照CPU的作業(yè)寬度和整數(shù)邊界進行內(nèi)存賦值,提高發(fā)送效率。在接收過程中,要先判斷是否為UDP協(xié)議的數(shù)據(jù)報(根據(jù)第24字節(jié)為Oxll),然后做合法檢驗。對本協(xié)議棧處理的數(shù)據(jù)報,處理后要將其從MUX層的緩沖區(qū)隊列中刪除,未刪除的數(shù)據(jù)報由其他協(xié)議的處理函數(shù)處理。

    經(jīng)過對協(xié)議棧的改進發(fā)現(xiàn),在單向收發(fā)的環(huán)境下,發(fā)送效率提高了3倍左右;但是接收方效率的提高很不盡如人意,而且穩(wěn)定性仍然存在問題,在運行幾十小時后,網(wǎng)絡(luò)任務(wù)的掛起現(xiàn)象出現(xiàn)得仍很頻繁。關(guān)于接收方的問題,原因是:接收方的網(wǎng)絡(luò)任務(wù)每收到一個包,從設(shè)備緩沖區(qū)搬移到應(yīng)用緩沖區(qū),然后切換到應(yīng)用程序任務(wù)進行處理,處理結(jié)束以后再切換到網(wǎng)絡(luò)任務(wù)收下一包,如果接收速度高于處理速度就會造成阻塞。下面舉一個形象的例子:某個酒吧只有一個服務(wù)員,假設(shè)這個服務(wù)員要做兩件事情,有顧客來的時候要到門口去給顧客開門,然后再到柜臺為顧客服務(wù),顧客依到達次序排隊。假設(shè)門口和柜臺之間的移動時間不能忽略,并且為顧客開門的優(yōu)先級比較高,就是說如果有新顧客到來,必須先放下正在服務(wù)的顧客去開門。在這種情況下,如果顧客的到來間隔是均勻的,為每一位顧客服務(wù)要服務(wù)員跑兩趟。如果顧客到達的間隔比較小,就出現(xiàn)服務(wù)員在門口和柜臺之間頻繁移動的情況。假如能使顧客分撥到達,每次有多個顧客到達,服務(wù)員就可以從柜臺到門口開門讓多個顧客進入,再回柜臺為顧客服務(wù)。試驗證明,在這種模型下接收效率能大幅提高,但是對均勻到達的顧客服務(wù)效率的提高難以得到解決。

4 深入網(wǎng)絡(luò)設(shè)備驅(qū)動
   
經(jīng)過對操作系統(tǒng)更為深入的研究發(fā)現(xiàn),MUX層的發(fā)送數(shù)據(jù)包最終是通過調(diào)用網(wǎng)絡(luò)設(shè)備驅(qū)動程序中的發(fā)送函數(shù)實現(xiàn)的。分析網(wǎng)絡(luò)設(shè)備驅(qū)動的代碼發(fā)現(xiàn),其發(fā)送過程可描述為:

    ◇檢查設(shè)備緩沖區(qū)(BD表)是否有可用BD;
    ◇根據(jù)設(shè)備緩沖區(qū)的可用情況與發(fā)送數(shù)據(jù)包的長度,判斷是否需要進行分片;
    ◇根據(jù)設(shè)備緩沖區(qū)的可用情況決定傳輸發(fā)送還是拷貝發(fā)送;
    ◇置位設(shè)備控制寄存器,啟動DMA傳輸,并引發(fā)設(shè)備收發(fā)中斷;
    ◇清除使用過的設(shè)備緩沖區(qū)。

    另據(jù)分析,在設(shè)備驅(qū)動的安裝過程中完成的工作有:
    ◇根據(jù)配置數(shù)據(jù)申請內(nèi)存,構(gòu)建設(shè)備緩沖區(qū)表;
    ◇指定DMA使用的通道與工作方式;
    ◇配置設(shè)備寄存器(工作方式、幀類型、設(shè)備緩沖區(qū)表指針等);
    ◇連接設(shè)備中斷處理例程。

    接收過程中,是在網(wǎng)絡(luò)設(shè)備收到數(shù)據(jù)包后啟動DMA傳輸至內(nèi)存,并引發(fā)中斷,在中斷處理程序中處理緩沖區(qū)指針,然后將一個函數(shù)處理指針寫入一個環(huán)型緩沖區(qū),最后是釋放一個信號量,通知網(wǎng)絡(luò)任務(wù)對收到的數(shù)據(jù)包進行處理。通過對該接收處理函數(shù)的反匯編解讀,發(fā)現(xiàn)它的主要工作是申請MUX層的緩沖區(qū)并復(fù)制,處理設(shè)備緩沖區(qū)的指針,然后調(diào)用各個協(xié)議的處理函數(shù)。

    根據(jù)以上的認識,有了一個更為大膽的設(shè)想:跳過MUX層,直接使用driver的發(fā)函數(shù)進行發(fā)送;在接收過程中,對本協(xié)議棧的數(shù)據(jù)包不再申請MUX層的緩沖區(qū),而是直接拷貝到應(yīng)用層緩沖區(qū),并可將處理接口留給用戶。另外一個想法是,直接在中斷處理例程中進行處理,從而徹底拋棄網(wǎng)絡(luò)任務(wù)。據(jù)此在百兆網(wǎng)絡(luò)設(shè)備上完成了修改,其效率又提高將近l倍,滿足了使用的要求;而且更為可喜的是,系統(tǒng)的穩(wěn)定性大幅提高。

5 結(jié)論與數(shù)據(jù)分析
   
幾種情況下的測試結(jié)果如下:

    通過對上述數(shù)據(jù)的分析看出,使用MUX層的協(xié)議棧組發(fā)環(huán)境下,比使用標準協(xié)議棧發(fā)送的效率提高3倍左右,但是在均勻收發(fā)的情況下提高并不明顯。直接使用中斷方式克服了這一缺陷,比均勻收發(fā)的環(huán)境下又提高1倍。

    但是這個測試結(jié)果只是在短包的情況下完成的,包長在100字節(jié)以下。通過對長包的測試,發(fā)現(xiàn)對512字節(jié)以上的長包的影響要稍微小一些。這是因為在同一速率下,使用長包調(diào)用的次數(shù)要少,改進的效果也就稍差,特別是在CPU主頻更高的環(huán)境下,這一現(xiàn)象更為明顯。

6 對實時操作系統(tǒng)的一點看法
    通過對設(shè)備驅(qū)動的研究發(fā)現(xiàn).在實時操作系統(tǒng)中,中斷處理例程的處理時間都比較短,這也是實現(xiàn)實時性的一個重要思想。在改進中,中斷處理例程中加入了執(zhí)行代碼,會影響系統(tǒng)的實時性,似乎違背了實時操作系統(tǒng)的初衷。但筆者認為,這個問題要在實際的環(huán)境下進行評價,中斷中的通知網(wǎng)絡(luò)任務(wù)與網(wǎng)絡(luò)任務(wù)的執(zhí)行,兩者加起來的時間一定要比只在中斷中處理需要的時間要長。這與IP包處理機的目標也是沒有矛盾的,完全不必拘泥陳規(guī)。實時系統(tǒng)只是追求平均的響應(yīng)時間較短,而在最差情況下則遠低于平均水平。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產(chǎn)品設(shè)計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動的最基本功能。而對于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關(guān)系的思考,同時也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預(yù)告。今年前三季度,公司預(yù)計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預(yù)計為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術(shù)中心"認定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機構(gòu)對在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過140,...

關(guān)鍵字: 中國智造 BSP 手機 CAN

要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...

關(guān)鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國高端家電品牌G50峰會》于浙江寧波落幕,來自兩百余名行業(yè)大咖、專家學(xué)者共同探討了在形勢依然嚴峻的當下,如何以科技創(chuàng)新、高端化轉(zhuǎn)型等手段,幫助...

關(guān)鍵字: LINK AI BSP 智能家電

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉