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

嵌入式Internet中Nagle算法及其應用研究

2014-09-25 03:44:36王寶寶余世明王振宇
中國工程科學 2014年2期
關鍵詞:嵌入式系統

王寶寶,余世明,王振宇

(浙江工業大學信息工程學院,杭州 310023)

嵌入式Internet中Nagle算法及其應用研究

王寶寶,余世明,王振宇

(浙江工業大學信息工程學院,杭州 310023)

嵌入式Internet中使用短幀數據包,使得網絡帶寬的利用率極低,擁塞發生的可能性加大。標準transmission control protocol(TCP)協議中應用Nagle算法減少短幀數量。通過ARM7 32位micro control unit(MCU)和上位機personal computer(PC)構建嵌入式Internet網絡,分析Nagle算法的原理和工作機制。針對嵌入式系統中Nagle算法和上位機延遲確認策略交互產生的暫時性“死鎖”問題,提出了在不修改Nagle算法的基礎上,通過提高采樣頻率或者填充緩沖區的方法來避免暫時性“死鎖”。測試表明,該方案是有效可行的。

Nagle算法;死鎖;延遲確認策略;ARM7;嵌入式Internet

1 前言

隨著計算機網絡技術的迅速發展和嵌入式系統的廣泛應用,越來越多的嵌入式設備需要接入Internet,以實現遠程數據采集、遠程監控、自動報警等功能[1],因此嵌入式Internet技術應運而生。由于其結合了嵌入式技術和Internet技術的優點,具有穩定性好、實時性強、數據傳輸速率高、成本低廉等特點,因此,近年來已取得了飛速發展和廣泛的應用[2]。

嵌入式Internet技術的關鍵是在嵌入式系統中移植transmission control protocol(TCP)/IP協議棧[3]。嵌入式系統一般是基于8位、16位或者32位micro control unit(MCU)來實現,硬件資源無法與personal computer(PC)相比,所以嵌入式系統中移植的TCP/IP協議棧一般是經過簡化處理的。TCP協議作為TCP/IP協議棧中最重要也是最復雜的協議,在移植的過程中,一般只是實現其基本的通信機制,如連接的建立與關閉機制、超時重傳機制、數據包確認機制等[4],而忽略了其豐富的擁塞控制算法。

本文基于ARM7 32位MCU構建嵌入式Internet。在通信測試中筆者等發現網絡中存在大量的短幀數據包,導致帶寬資源的嚴重浪費,甚至引起網絡擁塞。針對短幀泛濫問題,在嵌入式TCP協議中實現Nagle算法。針對Nagle算法和延遲確認策略交互時產生的暫時性“死鎖”問題,通過提高采樣頻率或者填充緩沖區的方式避免暫時性“死鎖”的產生,在提高帶寬利用率的同時確保了數據的實時傳輸。

2 嵌入式Internet技術的實現

本文所設計的嵌入式系統硬件結構如圖1所示。按功能主要分為4部分:微控制器MCU、相關外圍電路、網絡接口和其他接口。微控制器采用NXP(恩智浦半導體)公司生產的ARM7 32位MCU LPC2368。相關外圍電路包括電源電路、復位電路、JTAG電路、時鐘電路、存儲電路等。網絡接口由PHY(物理接口收發器)DM9161AEP、耦合隔離變壓器J00-0065NL組成,負責物理層數據的收發。其他接口部分包括CAN(控制器局域網絡)接口和232接口,主要完成相關傳感器數據的采集和控制信號的轉發功能。在軟件上,根據系統要求,從傳輸層到網路層依次裁剪移植了TCP、ICMP(英特網控制報文協議)、IP、ARP(地址解析協議)協議,并在數據鏈路層實現了802.3標準。筆者等將PC定義為設備A,IP地址設置為10.1.60.2,將嵌入式設備定義為設備B,IP地址設置為10.1.60.168,構建嵌入式Internet系統。本文所涉及的數據統計和分析均基于該系統所獲得。

圖1 系統硬件結構Fig.1 Architecture of system’s hardware

3 短幀泛濫及其解決方法

3.1 短幀問題

當TCP需要傳輸一個字節的數據時,在網絡層就會產生41 Byte的分組,此時額外開銷達到4 000%[5],導致網絡的利用率極低。考慮到數據鏈路層和物理層的額外開銷之后,這種情況下帶寬的利用率更低[6]。嵌入式Internet中存在著大量的長度為1~4字節的數據幀,一方面這些短幀的存在使得網絡帶寬的利用率極低;另一方面,由于大量的短幀數據包的存在,使網絡發生擁塞的可能性增加,容易引起數據傳輸時延不確定甚至網絡崩潰。

3.2 組塊技術(clumping)

20世紀60年代后期,短幀泛濫問題在Tymnet網絡中第一次被提出,當時采取的方法是在TCP發送端對短數據報延遲一段時間(200~500 ms)再傳輸,以期在延遲過程中有若干數據到來并附加在同一數據報中發送出去,最終達到減少網絡中短幀的目的[5]。這就是組塊技術。針對組塊技術,筆者等進行了如下測試:下位機(設備B)連續向上位機(設備A)發送10 000 Byte數據,TCP發送端分別延遲200 ms和500 ms。其中下位機應用層產生數據的速率為1 Byte/ms。表1為通過Wireshark抓包分析工具獲取的數據包統計。

表1 不同延時下數據包統計Table 1 Packets statistics under different delay time

當下位機(設備B)應用層以恒定的速率產生數據時,如表1所示,延遲500 ms產生的數據包數目比延遲200 ms少很多,字節總量也有相應的降低。其根本原因在于組塊技術可以減少報頭開銷,減少TCP發送數據報數量和相應的應答數據報數量。但是通常情況下,應用層產生數據的速率是不固定的,或者說應用層相鄰兩個數據之間的時延是不確定的。所以組塊技術最大的缺陷在于不能給出一個通用的延遲時間[5,7],一個固定的時延不可能適用于所有情況。

3.3 Nagle算法

1984年,John Nagle提出Nagle算法。該算法應用在TCP發送端,其作用是決定TCP發送端何時通過TCP連接發送一個數據報[7]。算法描述為:如果發送端有很小的數據報需要發送,那么只要先前傳送的數據報都已經被TCP接收端確認或者說發送端不存在未被確認的數據報,這時發送端就可以發送數據。前提是這個很小的數據報的長度小于TCP發送端的最大報文段長度(MSS)。其具體的工作流程如圖2所示。

相比于組塊技術,Nagle算法是一種自適應算法[6],其本質是一種自適應的組塊技術,它有兩個觸發條件:本端應用層所組塊的大小和確認到達的時間。這兩個觸發條件決定了這種自適應組塊技術的延遲時間。通過這兩個觸發條件,將組塊技術的固定延遲轉變為動態的延遲,使得帶有Nagle算法的TCP擁有了一個動態的發送緩沖區,因此其具有很好的通用性。表2為嵌入Nagle算法的TCP抓包分析,這里應用層產生數據的速率為1 Byte/ms。

圖2 Nagle算法流程Fig.2 Procedure of the Nagle algorithm

表2 Nagle處理抓包分析Table 2 Analysis of capture of nagle

相比于組塊技術的固定數據長度,采用Nagle算法的TCP發送數據長度是一個略大于200 Byte的波動值。波動的產生是由于Nagle算法將數據在網絡中的傳輸時延這個因素考慮進來,至于為何是一個略大于200 Byte的值,將在下面進行詳細介紹。

4 Nagle算法和延遲確認(delayed ACK)策略的交互

4.1 延遲確認策略

在標準TCP中還包括另外一種用來減少網絡中短幀數量的算法:延遲確認策略。該算法應用在TCP接收端,它使得TCP接收端在接收到數據后并不立即產生確認包,而是延遲一段時間(典型值為200 ms)再進行確認。如果在這段延遲時間內有新的報文段到來,TCP接收端立即發送確認包[8]。延遲確認策略可以有效減少過多的短幀確認包的產生。

4.2 兩種交互方式

不同于組塊技術,Nagle算法是基于確認的到達來決定是否發送報文[6],所以TCP發送端的Nagle算法很容易觸發TCP接收端的延遲確認策略。圖3為Nagle算法和延遲確認策略的兩種交互方式。

圖3 Nagle-delayed ACK交互方式Fig.3 Interactive mode between Nagle-delayed ACK

在Mode 1中,發送端發送data1給接收端,同時對后續產生的數據進行組塊;接收到數據后,接收端設定一個200~500 ms的定時器。定時器超時后,接收端發送確認包,發送端在收到data1的確認之后發送data 2。這樣,Mode 1在每一次數據交互過程中都會產生至少200 ms的時延,也被稱為暫時性“死鎖”(“deadlock”)[9]。暫時性“死鎖”的存在,使得表2中的數據長度為一個略大于200 Byte的值。它給系統帶來兩大危害:a.產生頻繁的定時器超時事件,而處理定時器超時事件在操作系統中是一個很耗資源的行為[8];b.帶來明顯的延遲,影響實時性要求比較高的系統的正常運行[10,11]。

Mode 2與Mode 1的區別在于發送端發送data1之后,在接收端定時器超時之前,發送端生成了一個達到MSS的報文data 2并立即發送,接收端在連續收到兩條未確認的報文之后立即發送確認包,同時刪除定時器。Mode 2避免了暫時性“死鎖”。

4.3 暫時性“死鎖”的避免

針對暫時性“死鎖”問題,一些網絡實施者采取禁用Nagle算法的做法,但是也只是某一類應用中,更多的是對Nagle算法進行改進。文獻[8~11]分別介紹了幾種Nagle算法的改進算法,但都是基于協議的修改,在資源有限的嵌入式系統中實現起來并不容易。

在這里,可以根據嵌入式系統中的數據信號類型,采取不同的處理方式,避免暫時性“死鎖”。

針對隨機信號,可以采用填充緩沖區的方式。具體實施如下:針對應用層發送緩沖區中的數據,如果是隨機信號,則在該數據信號尾部添加無用的數據段,直至總的報文長度達到最大報文段長度,然后將填充后的數據交Nagle處理。前提是該隨機信號不能容忍200 ms的時延。

筆者等模擬測試了該方案,設定應用層產生數據的速率為1 Byte/ms,MSS值為1 460 Byte。測試結果如表3所示。序號為3的包為隨機信號,數據長度為2 Byte。在該數據尾部填充1 458 Byte的0xFF,然后將填充后的數據交由Nagle處理。由于此時數據長度達到MSS值,Nagle算法立即啟動數據發送。在表3中可以看到,3號包從產生到發送只用了4.096 ms的時間,遠遠低于其他包的200 ms以上的延遲時間。

表3 填充緩沖區抓包分析Table 3 Analysis of capture of buffer filling

針對周期性信號,可以采用提高采樣頻率的方式。具體實施如下:針對需要周期性進行采樣的數據,提高其采樣頻率,以期在200 ms時間內采樣的總的數據長度達到或者超過MSS值。前提是這個周期信號不能容忍200 ms的時延。

表4為模擬測試結果,此時將應用層產生數據的速率提高到10 Byte/ms,MSS值設定為1 460 Byte。由于應用層每隔146 ms產生一個長度為1 460 Byte的報文段,這樣在200 ms時間內就會兩次觸發Nagle算法的發送條件。一次是由于報文段數據長度達到MSS值,另一次是由于接收到發送端發來的確認,立即發送數據。從表4中可以看出,數據包數據長度和時間間隔基本吻合,沒有產生額外的延遲。

通過上述兩種處理方式,可以很好地避免Mode 1的交互方式,即避免暫時性“死鎖”的產生,使得數據按照Mode 2的方式進行交互。

表4 提高采樣頻率抓包分析Table 4 Analysis of capture of sampling frequency improving

5 結語

本文針對嵌入式Internet中產生的大量小數據包所導致的網絡帶寬利用率低,容易產生擁塞等問題,在深入研究組塊技術的基礎上,詳細分析了Nagle算法的工作機制以及其與延遲確認策略的交互方式。針對“死鎖”問題,在嵌入式系統中可以采用提高采樣頻率或者填充緩沖區的方式,在不修改Nagle算法的基礎上,避免暫時性“死鎖”的產生,提高帶寬利用率的同時保證數據傳輸的實時性。目前,基于Nagle算法和填充緩沖區、提高采樣頻率數據處理方式的嵌入式Internet系統已在計量泵遠程監控系統中取得了很好的應用。

[1]陳蓉芳,王海濱,胡振華,等.基于嵌入式Internet技術的電網遠程監測系統[J].微計算機信息,2003,24(7-2):78-80.

[2]周志洪.基于嵌入式網絡技術的網絡化自動抄表系統的研究[D].杭州:浙江大學,2005.

[3]鐘建國.嵌入式Internet系統中TCP/IP協議的實現[J].陜西師范大學學報:自然科學版,2008,36(4):16-19.

[4]吳顯偉.嵌入式協議棧結構優化的研究與實現[D].哈爾濱:哈爾濱理工大學,2009.

[5]IETF RFC896-Jan.Congestion control in IP/TCP internetworks[S].1984.

[6]Minshall G,Saito Y,Mogu J C,et al.Application performance pitfalls and TCP’s Nagle algorithm[J].ACM Performance Evalvation Review,2000,27(4):36-44.

[7]周志洪,王 勇,陳抗生.基于Nagle算法的嵌入式TCP協議[J].浙江大學學報:工學版,2006,40(1):41-44.

[8]IETF RFC813-July.Window and acknowledgement strategy in TCP[S].1982.

[9]Mogul J C,Minshall G.Rethinking the TCP Nagle algorithm[J].Computer Communication Review(ACM SIGCOMM),2001,31(1):6-20.

[10]梅小華.提高51單片機TCP通信效率的軟件方法[J].華僑大學學報:自然科學版,2011,32(2):235-237.

[11]陳 立.對Nagle算法的進一步研究[D].上海:復旦大學,2002.

Nagle algorithm and its application research in embedded Internet

Wang Baobao,Yu Shiming,Wang Zhenyu
(College of Information Engineering,Zhejiang University of Technology,Hangzhou 310023,China)

The existence of small packets in embedded Internet lead to low bandwidth efficiency and even congestion.The Nagle algorithm was applied by standard transmission control protoco(lTCP)protocol to reduce the number of small packets.The paper builds embedded Internet network based on ARM7 32 bits micro control uni(tMCU)and personal computer(PC),analyses the principle and working mechanism of Nagle,and suggests an approach to resolve the temporary“deadlock”created by the interaction between the Nagle algorithm and the delayed ACK policy without modifying the Nagle algorithm through improving sampling frequency or filling the buffer in embedded system.The experimental results indicate that this approach is effective and reliable.

Nagle algorithm;deadlock;delayed ACK policy;ARM7;embedded Internet

TP393

A

1009-1742(2014)02-0101-05

2012-11-06

浙江省重大科技專項(2011C11089)

余世明,1962年出生,男,甘肅天水市人,教授,博士,主要研究領域為模型預測控制與系統辨識、嵌入式系統在自動化裝置的應用;E-mail:ysm@zjut.edu.cn

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 大陆精大陆国产国语精品1024| 亚洲 成人国产| 亚洲第一极品精品无码| 亚洲欧美日韩成人高清在线一区| 欧美色伊人| 波多野结衣二区| 亚洲第一成年免费网站| 久久国产毛片| 伊人久久婷婷| 久久青草视频| 国产成人夜色91| 国内毛片视频| 丁香五月婷婷激情基地| 国产手机在线小视频免费观看| 欧美激情第一区| 日韩成人在线一区二区| 国产高清免费午夜在线视频| 成AV人片一区二区三区久久| 91久久精品日日躁夜夜躁欧美| 91综合色区亚洲熟妇p| 无套av在线| 国产成人综合亚洲网址| 尤物视频一区| 亚洲精品不卡午夜精品| 亚洲人成亚洲精品| 欧美午夜理伦三级在线观看| 午夜毛片福利| 久久久久国产精品熟女影院| 美女毛片在线| 日本高清在线看免费观看| 亚洲成a人在线观看| 欧美日一级片| 在线看免费无码av天堂的| 美女高潮全身流白浆福利区| 青青青视频蜜桃一区二区| 99精品国产自在现线观看| 日韩精品久久无码中文字幕色欲| 国产第一色| 国产精品2| 国产高清精品在线91| 国产福利拍拍拍| 亚洲女同欧美在线| 无码精油按摩潮喷在线播放| 热九九精品| 精品视频在线观看你懂的一区| 中文字幕日韩丝袜一区| 日韩大片免费观看视频播放| 欧美精品三级在线| 91国内视频在线观看| 国产一区亚洲一区| 国产欧美一区二区三区视频在线观看| 自拍偷拍欧美| 午夜人性色福利无码视频在线观看| 尤物午夜福利视频| 成人久久18免费网站| 国产91导航| 亚洲欧美一区在线| 亚洲swag精品自拍一区| 日韩 欧美 小说 综合网 另类| 欧美日韩国产在线播放| 欧美亚洲欧美区| 亚洲成年网站在线观看| 97视频精品全国在线观看| 中字无码av在线电影| 亚洲欧美一区二区三区蜜芽| 日韩精品高清自在线| 一本视频精品中文字幕| 被公侵犯人妻少妇一区二区三区| 伊人大杳蕉中文无码| 一区二区三区成人| 国产精品亚洲va在线观看| 久久人妻xunleige无码| 毛片视频网址| 香蕉伊思人视频| 666精品国产精品亚洲| 91福利国产成人精品导航| 国产成人精品18| 日韩小视频网站hq| 国产成人精品第一区二区| 91口爆吞精国产对白第三集| 国产乱子伦精品视频| 无码专区国产精品一区|