《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于嵌入式的實時通信協議棧研究與設計
基于嵌入式的實時通信協議棧研究與設計
來源:電子技術應用2013年第2期
杜文鳳,王博文
中國礦業大學 信息與電氣工程學院,江蘇 徐州221008
摘要: 傳統的TCP/IP協議重點在于保證數據傳輸的可靠性及流量控制,而在實時性要求相對較高的嵌入式領域, 其實時性方面的性能顯得不足。為此,對基于TCP/IP協議的嵌入式通信協議棧進行了分析,針對通信中的TCP擁塞控制問題進行了改進,有效地提高了TCP/IP協議的實時性。
關鍵詞: TCPIP協議 實時性
中圖分類號: TN915.04
文獻標識碼: A
文章編號: 0258-7998(2013)02-0026-03
Research and design of embedded real-time communication protocol stack
Du Wenfeng,Wang Bowen
School of Information and Electrical Engineering,China University of Mining and Technology,Xuzhou 221008,China
Abstract: Traditional TCP/IP protocol did a lot of effort to ensure the reliability of data transmission and flow control, so that in the field of embedded where real-time requirements are relatively high, TCP/IP protocol revealed a lack of real-time. This paper analyzes the embedded communications protocol stack based on TCP/IP protocol, improves the TCP congestion control problem in communication, and effectively improves the real-time nature of the TCP/IP protocol.
Key words : TCP/IP protocol;real-time

    嵌入式網絡協議棧是指通信網絡中網絡層與其他各層之間的協議。嵌入式通信網絡可看成是一系列功能層,最上面一層代表的是應用程序和網絡軟件之間的接口,最下面一層表示網絡軟件與網絡物理設備之間的接口。為了進行網絡之間的通信,應用程序需要從上到下,通過協議棧來進行數據的傳輸。網絡經過協議棧使信息自下而上傳輸來實現與應用程序之間的通信。

    目前,嵌入式系統廣泛應用于工業控制領域中,把TCP/IP協議應用到嵌入式系統中實現數據傳輸共享的兼容性網絡有著很大的市場前景。本文對基于TCP/IP協議的嵌入式通信協議棧進行了分析,主要針對通信中的TCP擁塞控制問題進行了改進。
1 嵌入式通信協議棧及實時性
    對于嵌入式異構型對等異質網絡的通信和交互問題,一種有效的解決方法是設置層次式通信協議棧。協議棧是獨立的服務程序或系統軟件,應用軟件可以通過協議棧共享不同系統的資源。嵌入式通信協議棧位于嵌入式設備中,向下可以屏蔽不同物理設備和通信協議,向上可以使不同設備實現信息的發送與傳輸。圖1為嵌入式TCP/IP協議棧框架結構圖。

    為了與外部設備或網絡進行通信,通常情況下,嵌入式設備都需要具有以太網口,同時還要有TCP/IP協議軟件的支持。然而,傳統的TCP/IP協議在實時性方面并不完善,大量的精力被用在保證數據傳輸的可靠性及流量控制上。在實時性要求相對較高的嵌入式領域,TCP/IP協議在實時性方面則顯得不足。并且傳統的TCP/IP協議的實現又比較復雜,通常要使用大量的系統資源,而嵌入式系統的資源一般情況下又很有限。此外,由于嵌入式系統的規模可定制、資源有限和實時性等原因,用于支持其聯網的TCP/IP協議,其實時性要求較高,而且要進行一定程度的裁切,代碼也要最大程度地精簡[1]。
    嵌入式實時性主要是指嵌入式系統可以快速響應外界的突發事件,且響應時間是確定的、可預測的。TCP/IP協議是嵌入式系統一個很重要的組成部分,在其管理控制下,嵌入式系統與外界通信的實時性的高低直接影響到整個嵌入式系統的工作性能,甚至可能導致實際運行中的事故發生。因此,高實時性是嵌入式TCP/IP協議棧最主要的特點。由于嵌入式網絡中每個節點是平等的,沒有特定的路由器,可以在傳輸的信息中包含鏈路擁塞的信息,所以對于網絡輔助擁塞控制需要進行相關研究。
    按照實時系統對于實時性要求的特點,實時性可以分為軟實時和硬實時兩類。硬實時系統主要是指系統要能保證在發生最壞情況時的響應時間,即在任何情況下,事件的響應時間的截止期限一定要得到保障。現實中類似的系統比較多,如宇宙飛船配備、戰斗機等應用方面的控制系統。除此之外,其他的有實時特性的系統都叫做軟實時系統。簡單地說,是一種超過截止期限并不會帶來重大的不可挽回損失的系統,如實時多媒體系統就是一種軟實時系統。
2 擁塞控制算法的改進及性能分析
    本文對嵌入式通信系統擁塞控制算法做了基于數據包大小和緊迫度的優先級調度機制以及以動態形式對緩沖區的大小進行調節等兩方面的改進。其算法的主要思路是:若TCP連接的緩沖區大小固定,則一旦緩沖區數量變多,將引起系統性能下降,最后消耗完系統資源,引起系統崩潰。而如果系統中緩沖區比較小的TCP連接特別多,系統將對緩沖區進行重新分配,從而使系統的數據傳輸能力得到提高;如果比較少,則剩下的資源會被分配給緩沖區中比較大的TCP連接,使TCP流量也可以得到提升[2]。改進措施:采取以動態形式對緩沖區窗口大小進行調節的方式,并改進其中的數據包調度機制,按照數據包的大小和緊迫度予以調度。先調度緊迫度高、體積小的數據包,即使此連接的緩沖區變小時仍然可以確保緊迫度高的信息能夠及時被發送出去。經實驗證明,通過這兩個方面的改進,能夠明顯提升嵌入式系統的實時通信能力。具體方法介紹如下。
2.1 TCP緩沖區動態調節模塊
    每一個TCP連接的收發端各有一個Buffer,緩沖區當中存有準備發送或接收的信息,所以其又可以分為發送緩沖區與接收緩沖區。接收端廣播窗口的大小由接收緩沖區的最大可用內存大小決定,同時允許發送端發送超過之前確認的信息量也是由接收緩沖區當中的最大可用內存大小決定。若發送端的擁塞窗口內存空間大于接收端接收窗口的內存空間大小,則此連接的窗口內存空間就會被接收端窗口空間所限制;若接收窗口空間較大,則允許大批量數據由發送端不間斷發送,發送端應用程序傳輸給TCP層的信息在沒有被接收端確認之前,暫由發送緩沖區存放。如果發送緩沖區內存空間比傳輸鏈路上的帶寬大,則會出現一部分信息始終將緩沖區占據的情況,從而出現浪費內存和鏈路傳輸受限的現象;如果發送緩沖區內存空間太小,當出現傳輸信息量較大時,則會引起傳輸流量變小,影響通信速率和通信系統的實時性。
    對于單個的TCP連接,可以通過增大緩沖區內存空間的方法提高傳輸速率。但當發生同一時間多個連接存在的情況時,此方法不但會在網絡發生擁塞時有內存資源被浪費的現象出現,而且即使當網絡沒有出現擁塞的情況下,每個連接的發送端由于擁塞窗口無限變大的原因,會將內存資源最后消耗完,甚至引起系統死鎖。對于此問題,本文以緩沖區動態調節為出發點的擁塞控制算法進行了研究,得出該算法不但能夠滿足自動調節網絡擁塞的要求,還可以實現優化利用緩沖區。只需對緩沖區進行合理公平與高效率的利用,就是緩沖區調節算法的最終目的。
    TCP傳輸信息的具體過程由一個數據結構來實現維護和管理,所有應用程序進程都可以共享這個數據結構,該數據結構稱作傳輸控制塊(TCB)。每個TCP連接都有一個傳輸控制塊,其含有相關TCP連接的一切信息,包含連接端點的地址與端口號、發送與接收的數據、平均往返時間以及對是否需要確認或者是重發進行判斷等。
2.2 基于數據包大小和緊迫度的調度模塊
    每一個TCP連接均有一個接收緩沖區與一個發送緩沖區,每個緩沖區中都含有許多隊列。TCP以報文段為單位進行傳輸,報文段的大小不固定。而以太網數據傳輸中,數據包大小不一,且相差很大。在這種情況下公平排隊算法就不適用,使信息傳輸受影響[3]。因為公平排隊算法只是將數據包依據先進先出原則按次序向數據包輪詢調度器進行提交,結果導致下列情況的發生:(1)數據包處于隊列當中的等待時間不夠合理;(2)在輪詢調度器輪詢于各隊列時,會造成數據包大的傳輸分配到很大的帶寬資源,出現帶寬分配不合理的情況。
    為了使該問題得到有效解決,以提高系統實時性,可以采用優先傳輸緊迫度要求比較高而本身又較小的數據包的方法。如何根據數據包的大小與緊迫度這兩個因素來對數據包的優先級別進行界定,這里采用數據包體積和緊迫度形成的二維優先級表來對數據包的優先級別進行界定的方法[4]。
    數據包的優先級別主要決定于包的體積與緊迫度,為此構建二維優先級表:橫坐標是數據包的體積,縱坐標是其緊迫度,則優先級別計算如下:
 
2.3 實例驗證
    本文主要研究了對嵌入式通信協議棧的設計和對TCP擁塞控制算法進行進一步改進的問題。考慮到所測試數據要有足夠的準確性,將10次實驗結果都求均值后才得到測試中的所有數據。ICMP和IP都是網絡層協議,在這里只對ICMP模塊進行測試。
    (1)試驗方法
    Ping是一個通信協議,是IP協議的一部分,可以用于檢查網絡是否能夠連通。在命令提示符下輸入:PING(IP地址),就會返回相應的測試結果。根據測試結果,就可以判斷本機與遠程主機之間的連通性。其原理是:利用網絡上機器IP地址的唯一性,給目標IP地址發送一個數據包,再要求對方返回一個同樣大小的數據包來確定兩臺網絡機器是否連接相通以及時延是多少。
    當PC機通過Ping向開發板發送ICMP請求數據包時,主機觀察返回ICMP請求數據包的響應時間、大小、以及丟失率等信息,若這些信息正確,則說明目的站點收到ICMP請求報文。
    (2)實驗結果
    實驗結果如圖3、圖4所示。由圖中可以看到,數據包較小時,協議棧的移植對系統的通信性能影響不大;一旦數據包超過800 B,移植協議棧之后系統通信時,ICMP報文的包丟失率就開始下降,同時系統響應時間也更快,即實時性得到了提高。這表明對實時通信協議棧和擁塞算法改進之后,明顯地改善了嵌入式系統的通信性能。

 

 

    本文主要對嵌入式實時通信協議棧和擁塞控制算法進行了分析與改進,提出動態調節緩沖區大小的方法實現了緩沖區的優化;基于數據包大小和緊迫度的優先級調度機制,提高了TCP傳輸流量。對移植改進后的嵌入式實時通信協議棧和擁塞控制算法的數據傳輸進行了測試,通過PC機利用Ping命令向開發板發送數據,測試了ICMP模塊。結果顯示,當傳輸數據超過800 B時,數據包響應時間更短,包丟失率也有所下降,通信實時性得到明顯提高。
參考文獻
[1] 陳麗蓉.嵌入式軟件系統的實時性設計[J].單片機和嵌入式系統應用,2001(3):18.
[2] 趙國鋒,邱作雨,張毅.基于單片機的嵌入式TCP/IP協議棧的設計與實現[J].計算機技術與發展,2009,19(3):137-140.
[3] STALLINGS W,謝希仁.數據與計算機通信[M].王海,張娟,譯.北京:電子工業出版社,2004.
[4] 廖日坤.CPLD/FPGA嵌入式應用開發技術白金手冊[M].北京:中國電力出版社,2005.
[5] 王志平,熊光澤.實時調度算法研究[J].電子科技大學學報,2000,29(2):205-208.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 小明成人免费永久性看看 | 日韩免费高清一级毛片久久 | 中国一级全黄的免费观看 | 国产欧美一区二区三区精品 | 欧美a一级片 | 国产成人精品男人免费 | 日韩新片在线观看网 | 欧美一级片a| 亚洲第成色999久久网站 | 一级成人毛片免费观看 | 深夜国产| 久久综合草 | 手机看片精品高清国产日韩 | 国产三级网站在线观看 | 日韩免费不卡 | 动漫成年美女黄漫网站国产 | www色婷婷 | 免费高清欧美一区二区视频 | 印度一级毛片免费的 | 国产成人一区二区在线不卡 | japanese55老妇成熟乱 | 色天天综合色天天看 | 日日日日人人人夜夜夜2017 | 久久夜夜视频 | 小明日韩在线看看永久区域 | 无遮挡1000部拍拍拍免费观看 | 小明永久免费看看 | 国产精品久久久久久永久牛牛 | 日韩精品一区二区三区四区 | 国产无套在线观看视频 | 黄色小视频在线观看 | 青草视频在线播放 | vktk视频| 国产xxxx做受性欧美88 | 老司机成人免费精品视频 | 成人羞羞视频在线 | 亚洲天天操 | 手机在线观看毛片 | 天天曰天天射 | 色护士精品影院www 色狠狠色综合久久8狠狠色 | 一级毛片在线直接观看 |