<noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"><delect id="ixm7d"></delect></rt><noframes id="ixm7d"><rt id="ixm7d"><rt id="ixm7d"></rt></rt><rt id="ixm7d"></rt> <noframes id="ixm7d"><rt id="ixm7d"><delect id="ixm7d"></delect></rt><delect id="ixm7d"></delect><bdo id="ixm7d"></bdo><rt id="ixm7d"></rt><bdo id="ixm7d"></bdo><noframes id="ixm7d"><rt id="ixm7d"><rt id="ixm7d"></rt></rt><rt id="ixm7d"><rt id="ixm7d"></rt></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt> <noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d">

udp協議范文

2023-04-24

udp協議范文第1篇

由于各種原因所引起的數據在網絡傳輸中出現的延時、抖動、丟失是制約以太網在工業控制中應用的瓶頸。如何解決這三大問題也就成了人們研究的熱點。而在帶寬一定的情況下,速度和可靠性之間存在著一定的矛盾,即高速簡單的傳輸協議往往可靠性較差;可靠性高的協議傳輸速度通常不高。對于數據量大的工業控制現場,例如關于圖像或音頻的控制網絡,單純的采用TCP協議是不合適的,用TCP傳輸控制信息和一些參數信息,而用UDP協議傳輸圖像或音頻信息比較合適[1]。但是由于UDP協議采用非連接的傳輸策略,盡管速度快、效率高,支持海量并發連接,但是存在著可靠性差的缺點,如何改進UDP協議的可靠性已經成為了當前熱點問題。

文獻[2]設計了一種可靠的UDP協議RUDP(Reliable UDP),設置一個時間閾值,發送端為發送的每一條數據報文計時T,收到接收端回復的確認信息對T清零,當T>τ則認為該報文丟失,進行重發處理。該過程與TCP的重傳機制非常相似,過多的確認信息和等待時間依然浪費帶寬和增加延時,不適于大數據的快速傳輸。文獻[3]和文獻[4]提出了批量確認或定時確認的概念。批量確認即接收端在收到一定數量的數據包后統一向發送端發送一條確認消息(或者發送端在發送一定數量的數據包后要求接收端回復一條確認消息);將批量確認中的一定數量的數據包相應改為一定的時間間隔就成為定時確認。這種算法較之RUDP已經節省了很多時間和資源,但它仍然存在著不足:發送端的發送指針只有一個,即發送端每次收到確認后,若有需要重傳的數據包,發送指針都得暫時停止發送操作,查找相應需要重發的數據包進行重發操作,重發操作完成后再繼續后面的發送。這個過程仍然是一個停止等待的過程,耗費相當多的時間。文獻[5]針對文獻[3]和[4]的不足,提出了具有補發機制的ERUDP(Enhanced Reliable UDP)協議。即發送端的發送指針不斷的向接收端發送數據包而不需要接收端的確認;同時,發送端維護的補發指針在接收到接收端的補發包請求后向接收端補發丟失或錯誤的包。這個過程中,發送指針不必停下當前的發送操作,即補發指針和發送指針同時工作。這樣減少了等待的時間,減少了延時。本文認為文獻[4]的重發加補發機制和文獻[2]和[3]的差別就是維護了一個補發指針,沒有等待狀態,當發送端收到重發申請報文后,由補發指針進行重發,發送隊列指針無需移動。其實就是重發,而沒有所謂的補發。而且根據接收端接收到的包號大于需要的數據包號來判斷是否丟包,從而決定是否需要重發是不合理的。因為UDP是基于非連接的,不保證數據按序到達,出現報文亂序到達的情況不能說明有丟包發生。而在某些系統中,一定的丟包率和一定的延時是允許的,例如在基于圖像的監控系統中。所以怎么確認丟包,何時需要重傳是增強UDP協議可靠性而又不影響其高效性的關鍵所在。

本文在已有文獻基礎上,針對工業控制網絡的特點,提出了容丟包和容亂序的可靠UDP協議。下文簡稱為TERUDP(Tolerate Error Reliable UDP)。在沒有改變UDP高效性和快捷性的特點的同時,又增強了UDP協議的質量保證,減少了丟失率和延時,從而降低了抖動,使之能滿足工業控制實時性和抖動的要求。

1 TERUDP實現方法

工業控制網絡中存在著多種類型的數據,例如在基于圖像的遠程測量和控制系統中,即存在著大量的圖像數據,又有實時性和準確率要求相對較高的控制數據和控制參數。對于圖像或音頻信息,對個別數據包的丟失不敏感,也容許一定的時延,例如對于音頻數據,用戶可接受200 ms的時延和5%以內的丟包率。TERUDP就是基于這種技術背景進行設計的。

1.1 相關定義

1.1.1 丟包率

接收端根據本周期內(Tn和Tn-1時段內)收到的數據包的最大編號,和上個周期收到的數據包的最大編號,可以計算出該周期應該收到多少數據包,并且根據統計出來的實際收到的包數量,計算出丟包率。設第n個周期內收到數據包的最大編號為Fn,第n個周期內實際收到的數據包個數為Sn,那么第n個周期的丟包率Ln的計算方法如式(1)所示。

1.1.2 確認周期

即接收端給發送端一個確認信息或重傳請求的時間。對于實時性要求高的鏈接可以根據時間定確認周期,對于丟包敏感的鏈接根據包的數量確定確認周期較為合適。確認周期的取值直接影響網絡的服務質量:周期太長,會導致丟失的數據不能及時重傳,當重傳之后已成為失效數據,即失去了重傳的意義;周期太短,其極限情況為TCP確認機制,進行包確認,接收端即每接收一包進行一次確認,發送端每發送一包等待接收端的確認信息,這樣增加了網絡負擔,UDP也失去了自身的優勢。

1.1.3 虛接收VR(Virtual Receive)

是相對于實際接收速率而言的。即把鏈路丟包不認為是丟包而是認為正常被傳送。只把擁塞丟包認為是丟包。

當網絡不擁塞的時候,丟失數據包都是被動的鏈路丟包,而沒有根據擁塞控制算法的主動性丟包。鏈路丟包并不會影響后續數據包的到達時間,沒有丟棄的數據包會“按時”到達(這也是判斷主動丟包還是被動丟包的一個關鍵環節)。如果把被動丟失的數據包算入接收數據包中,那么無論網絡中是否有鏈路丟包,只要網絡不擁塞,按照這個方法計算出來的接收速率都是和發送速率趨于一致的,這個速率就是虛接收速率。其計算方法如下:在接收端節點中,設第n個周期的虛接收速率為VRn,第n個周期內收到的最大編號的數據包的到達時刻為T,B為Tn和Tn-1時段內應該收到的數據包的字節數,則第n個周期內的虛接收率VRn為

1.2 實現機制

1.2.1 發送端和接收端的實現要點

接收端:由于在正常的情況下,接收到的數據包肯定大于丟失的數據包,所以我們采用重傳申請,而不進行確認,發送端接收不到重傳申請就認為傳送成功,這樣減少了確認信息的網絡資源占用,提高了傳輸有效率。在接收方收到失序數據包時,為了最大限度地減少重傳,并不是簡單將其丟棄,而是將其存儲在本地的失序緩沖隊列中,并將應達包序號寫入重傳明細表。接收方在丟包率超過閾值或者確認定時器超時后向發送方發送重傳請求。該數據包中攜帶本端已經收到的最大按序包序號和應達包序號信息。

發送端:發送端維護兩個指針,一個重發指針,一個正常發送指針,發送端收到由接收端傳來的重傳請求數據包后,根據最大確認序號和應達包序號,由重發指針來尋找其包信息并完成重新發送,而正常指針繼續原來的發送行為。

1.2.2 數據傳送任務的建立

工業控制網絡與信息網絡不同,一般網絡服務器存儲容量較小,而且實時性均在秒級或分種級,所以當有一方服務不可達時(這種情況在控制現場一般都是由于故障造成的),向其發送數據或申請數據時毫無意義,基于這種情況,模擬TCP的鏈接握手信號設計了一個簡便的呼應信號,一方面減少了不必要數據的傳輸,另一方面可以檢查網絡故障。

服務請求:向服務者發送請求資源申請;

服務應答:資源是否可用;資源屬性,包括大小,類型,占用資源情況,服務費用;

服務確認:繼續服務或拒絕服務,拒絕服務則結束此次請求,繼續服務則申請建立鏈接。

這三次握手信息采用超時重傳,超次放棄的方法:超過設定的時間對方沒有應答繼續發起申請,發起申請次數超過設定的次數放棄申請,認定服務者不可達或不能提供服務。

1.2.3 TERUDP報文結構

任何在Internet上傳輸的協議,必須符合其規范,本文設計的TERUDP協議屬于傳輸層協議,是UDP協議的一個改進,那么它必須符合UDP協議的格式,即ISO模型中的UDP協議已經定義部分不可進行改變,可以改變的是沒有進行的定義部分。所以本協議增加的功能寫入用戶數據部分,而ISO定義的UDP頭格式是不可被用戶更改的。在UDP報文的數據部分填充一些字段與UDP頭一起構成TERUDP的頭部;而UDP剩余的數據部分用來填充TERUDP的用戶數據。其填充的各字段為:

Msg Type(消息類型)用于區別幀類型,包括數據請求包、數據發送包,是否捎帶重傳請求包等,占用1個字節;

TimStamp(時間戳),占用1個字節,用于表明本數據包的生命時間。

Len(包總長度)占用2個字節,用于表示私有消息頭格式及Data(數據)的總長度。

Ser Num(傳輸序號)用于標識當前發送的數據包序號,占用4個字節;

RepTran(重傳申請),占用8個字節,需要重傳的包的序號,則采用無損壓縮RLE(Run Length Encoding)進行壓縮。這個字段配合MsgType字段使用,當MsgType是捎帶重傳請求包類型,則這8個字節為重傳的包的序號,否則為用戶數據。見表1。

2 對網絡擁塞的支持

2.1 網絡狀態檢測

根據虛接收速率檢測網絡是否擁塞。當網絡不擁塞但鏈路丟包率過大時,也同樣會影響控制功能的正常進行。虛接收速率和丟包率兩個指標配合使用,可以判斷出網絡的“正常”、“擁塞”和“鏈路丟包”3種狀態(如表2所示)。其中丟包率閾值選取0~10%,例如對于測量類圖像,其圖像的高頻信息是不允許丟的,而對于非特征類圖像可以容忍10%的丟包率。當發送端發現鏈路丟包率較高,并且網絡不擁塞時,發送端發送故障預警信息,因為鏈路丟包一般是因為環境原因造成的例如電磁干擾,其極限情況是鏈路斷開。當發送端發現網絡擁塞時,則減小發送速率,以減輕網絡負擔,可以像TCP一樣對網絡擁塞具有感知力,并且可以根據網絡的擁塞度對發送速率進行調整。

根據虛接收包數和實際發送包數的差值(diff)可以得知由于擁塞丟棄的包數,值越大證明擁塞越嚴重。所以diff的值是檢測網絡擁塞的一個重要指標,這是一個動態指標,根據不同的應用可以設定不同的值。

其中:TP(Transfer Package)為發送的包數,VR為1.1節介紹的虛接收的包數。

2.2 重傳申請和擁塞控制

不同的應用對丟包率和時延的容忍度是不同的。TERUDP綜合考慮diff、Ln和時延Del這三個值決定何時發送重傳申請和擁塞控制,如表2所示(表中Ena表示設定值)。時延Del包括兩個含義:有效時延和無效時延,有效時延是指延遲到達的數據依然有用,例如對于語音包,在接收端進行亂序整合之前到達的包可以按照順序進行整合,則為有效時延;當延遲到達的包的順序號在已經整合完畢的序列中時則為無效時延,一旦到了無效時延,重傳就失去了意義。其中表2中Del列的Ena等于設定的時延與RTT的差,設根據實時要求延時不超過T0,RTT(Round Transfer Time)為T1,則在(T0-T1)時刻前發送重發申請為有效時延,否則在(T0-T1)時刻后發送重發申請為無效時延。發送重傳申請由接收方執行,擁塞控制主要由發送方進行。

3 性能測量與分析

采用多協議網絡模擬平臺NS2(Network Smiulator 2)進行網絡仿真實驗。其拓撲結構如圖1所示。設定三個用戶,經過兩級交換機到達服務器。

網絡中的數據分別采用TCP、UDP、RUDP、ERUDP、TERUDP進行傳輸。對以下三種情況進行了仿真實驗,并進行了對比分析。1)網絡不擁塞時固定尺寸的文件采用不同協議所用的傳輸時間;2)網絡擁塞后四種協議的發送速率自調整能力;3)網絡擁塞后端到端的延時。

實驗1首先設定主干線路(路由與路由之間和路由與服務器之間)的帶寬為10 M,每個用戶帶寬為1.5 M時,實際流量占設計流量的45%,小于60%,所以不會產生網絡擁塞[5]。由圖2可知,在文件尺寸較小時,四種協議的傳輸時間相差不明顯,例如300 K時,TCP耗時1.9 s,平均速率為157.9 kB/s;UDP耗時1.29 s,平均速率為232.56 k B/s;RUDP耗時1.52 s,平均速率為197.37 k B/s;ERUDP耗時1.43 s,平均速率為209.79kB/s;TERUDP耗時1.39 s,平均速率為215.83 k B/s。而當文件尺寸為1 G時,TERUDP的優勢就出來了,其速度為TCP協議的2.9倍,是UDP的40/47,接近于5/6。當申請服務的文件的尺寸較大時,TERUDP的速度是具有明顯優勢的,已經接近UDP的傳輸速度。

實驗2主干線路帶寬不變,依然為10 M,每個用戶的帶寬均變為3 M,這樣實際流量占到了設計流量的90%,所以網絡出現了嚴重的擁塞。為了更好的對現實網絡進行模擬,服務器80%的文件用類UDP(UDP、RUDP、ERUDP、TERUDP)協議進行傳輸,20%的用TCP進行傳輸[6]。由圖3可以得知:以單個用戶作為考察對象,開機運行后,各協議流量逐步增加,到2 s時達到穩定狀態,其總流量接近3 M,則一級交換機的總流量接近其最大服務能力10 M,網絡出現擁塞。由于TCP具有擁塞控制機制,從第2 s后,逐步減小其流量,很好的對擁塞進行退避;而UDP對擁塞毫無感知,在其他協議退避的過程中,貪婪的運用網絡資源,其流量卻逐步增大,在第16 s,由于網絡擁塞沒有改變,TCP流量幾乎為零,而UDP流量幾乎占了總流量的60%;RUDP由于采取了確認重傳,而沒有采用擁塞控制機制,所以在發生擁塞后,確認信息由于擁塞被丟棄或遲到到達,接收方在沒有收到發送方的應確認信息之前停止發送數據,所以沒有像UDP快速的貪婪占用帶寬,但也沒有對擁塞做出相應;ERUDP采用50包反饋策略,所以在擁塞發生后的第4 s開始退避,對擁塞的感知速度較慢,其退避速度也遠遠不能滿足擁塞避免的要求;TERUDP對網絡擁塞的感知靈敏度和退避速度幾乎和TCP同步,TERUDP的傳輸速度峰值也是出現在第2 s,從第2 s開始減小傳輸的速率,但其減緩的速度與TCP還有一定的差距,不能像TCP一樣很好的實現擁塞避免,在第14 s,TCP的速率幾乎為0(實測速率為0.032 Mbps),而TERUDP的速率卻為0.387 Mbps。

實驗3實驗條件同實驗2,主要考察網絡擁塞時數據的延時情況。在實驗過程中,采取UDP、RUDP、ERUDP傳輸的數據發生了大量的無限延時(數據包丟失)現象,這種問題的發生是因為UDP和RUDP是不可靠協議,沒有采取丟失重傳機制,而ERUDP的重傳機制也沒有起到很好的作用。由圖4(a)可以看出,TERUDP將數據包的延時維持在了一個較好的水平0.06 s到4.9 s之間。在仿真時定義5 s為無效延時,即一個數據包的延時大于(5-RTT)s,即不再對其進行重傳申請,由仿真結果可知系統沒有出現無效延時重傳的情況,即延時超過(5-RTT)=4.9 ms,此處RTT取1 ms。這種情況說明了TERUDP確實實現了超過無效延時即不再重新傳輸,很好的提高了網絡的有效利用率。圖4(b)是圖4(a)將延時超過250ms的數據去除得到的,可以更方便的觀察延時在100 ms以下的情況,通過圖4(b)可以看出,在網絡狀況相同的情況下TERUDP的傳輸延時小于TCP的傳輸延時。因為本文中的延時包括有效延時和無效延時,在沒有引入無效延時的概念時,重發申請和TCP采取的機制大致相同:只要對方沒有收到就會發重傳申請,然后發送方再次發送,這種動作周而復始直至收到為止。而引入無效延時后,超過其值就不在重新發送,則就會產生了丟包,所以延時的穩定性也反映了系統小的丟包率。

綜合實驗結果可以得出:TERUDP在沒有改變UDP本身高效傳輸能力,其速率是TCP的2.9倍,接近UDP的速率;具有對網絡擁塞感知和退避的能力,對擁塞的感知靈敏度和TCP相當,但是其擁塞退避的自適應能力不及TCP;采用了重傳申請機制,減少了丟包的發生,利用無效延時的概念不重新傳輸無效的延時包,提高了網絡的有效利用率。

4 結論

針對工業控制網絡中存在多種類型數據,并且不同類型的數據尺寸大小差別較大,并且對丟包率和延時要求不同的特點,在傳輸層同時采用TCP和UDP兩種協議,而UDP不提供網絡QOS的這一現象,設計了一種容丟失和容亂序的新的可靠UDP協議。針對工業控制數據的特點,對丟包的鑒定和延時的定義均提出了新的概念,例如有效延時和無效延時的概念,很好的掌握了重發請求的有效性和時機,減小了不必要的確認信息和重發請求信息的傳輸,提高了網絡的有效利用率。并通過NS2仿真軟件進行了仿真,結果證明了文中理論的正確性。對于TERUDP,需進一步考慮對網絡擁塞感知的敏感度,退避速度以及退避后的重啟動問題,使之更好的服務于工業控制。

摘要:針對工業以太網中大數據量的信息用UDP協議,而傳統UDP協議是基于非鏈接的協議,對丟包和延時均不做處理的現狀,提出了一種基于傳統UDP的新的協議TERUDP(TolerateErrorReliableUDP),改變了現有文獻中丟包的界定方法,提出了有效時延和無效時延的概念,并根據有效時延和無效時延確定丟失的包是否重傳以及重發申請的發送時間;根據虛接收率和實接收率以及丟包率對網絡擁塞進行感知,并做出響應。仿真結果表明,TERUDP在沒有改變傳統UDP高效性的前提下,提高了可靠性,降低了網絡的丟包率和延時,增加了網絡有效數據傳輸利用率。

關鍵詞:TERUDP,丟包,重發申請,延時,網絡擁塞

參考文獻

[1]Jeong S H,Owen H,Copeland J,et al.QoS support for UDP/TCP based networks[J].Computer Communications(S0140-3664),2001,24(1):64-77.

[2]Doan Thanh Tran,Eunmi Choi.A reliable UDP for ubiquitous communication environments[C]//Proceedings of the2007Annual Conference on International Conference on Computer Engineering and Applications,Alaska,United States,December14,2007.Alaska:CEA,2007:21-31.

[3]王海軍,劉彩霞,程東年.一種基于UDP的可靠傳輸協議分析與研究[J].計算機應用研究,2005,22(11):181-183.WANG Hai-jun,LIU Cai-xia,CHENG Dong-nian.Analysis and re-search of a reliable transmission protocol based on UDP[J].Application Research of Computers,2005,22(11):181-183.

[4]Ben Eckart,HE Xu-bin,WU Qi-shi.Performance adaptive UDP for high-speed bulk data transfer over dedicated links[C]//Proceedings of the2008IEEE International Symposium on Parallel and Distributed Processing,St Louis,USA,June23-25,2008.St Louis:ISPDP,2008:305-312.

[5]靳海力,李俊.具有補發機制的增強型可靠UDP的實現[J].小型微型計算機系統,2010,31(5):904-907.JIN Hai-li,LI Jun.Implementation of Enhanced Reliable UDP with Supplement Mechanism[J].Journal of Chinese Computer Systems,2010,31(5):904-907.

[6]Kyung Chang Lee,Suk Lee,Man Hyung Lee.Worst Case Communication Delay of Real-Time Industrial Switched Ethernet With Multiple Levels[J].IEEE Transactions on Industrial Electronics(S1047-9037),2006,53(5):1669-1676.

udp協議范文第2篇

1 系統構成

如圖1所示, 系統由多個溫度采集模塊、核心處理單元和PC端上位機軟件組成, 實現對多個機房的空間溫度的集中控制。在同一機房內, 溫度采集模塊與核心處理單元之間采用無線信號通訊, 避免了在空間中布線工程。機房之間位置存在墻壁等隔閡, 且存在一定距離, 因此采用網絡連接方式實現核心處理單元和PC端上位機軟件的通訊。

溫度采集模塊由NRF905無線模塊、ATMEGA48單片機和溫度采集模塊DS18B20、供電模塊構成。

2 系統原理

整個系統采用查詢方式進行工作。首先, 核心處理單元對分布在立體空間里的溫度采集模塊逐一發送帶地址碼的查詢命令, 每一條命令發出后, 都有唯一符合地址的對應溫度采集模塊將采集到的溫度信息發送給核心處理單元, 核心處理單元收到信息處理后反饋給PC上位機軟件, 接著繼續發送查詢命令給下一個溫度采集模塊。同一查詢命令, 如果發送后, 核心處理單元未收到正確回復, 會反復發送, 超過3次仍未收到回復則向系統報錯, 及早發現有問題的溫度采集模塊, 然后繼續向下一個地址的溫度采集模塊發送查詢指令。

如圖2所示, ATMEGA48單片機通過單條線通訊協議實現對DS18B20的初始化和溫度讀取, 然后通過NRF905無線模塊發送。如圖3所示, ATMEGA128通過NRF905接收到完整的信號鏈后, 通過RTL8019網絡模塊以UDP協議包形式傳送到PC上位機軟件。

3 無線傳送格式和UDP協議

無線傳送統一采用32字節, 包括前綴、地址ID、傳送內容、校驗、后綴。如圖4所示。

UDP協議, 即用戶數據報協議。UDP協議適用于一次性發送少量數據的場合, 具有高效快速的特點。UDP協議是建立在IP協議基礎上。要實現UDP協議的正確發送, 首先要正確理解UDP/IP協議頭。如圖5所示。

通過正確理解并給協議頭變量正確賦值, 如圖6所示, 實現了UDP/IP協議包的正確發送, 實現核心處理單元和PC上面機軟件的正常通訊。實物圖如圖7所示。

4 結語

通過該套系統, 實現了該單位不同機房室溫和設備溫度的空間全方面采集系統, 將溫度數據在PC端上位機軟件界面上顯示, 使維護人員全面掌握溫度信息, 根據收集到的數據采取措施改善機房通風方式, 并及時排查設備隱患。

參考文獻

[1]李志球.計算機網絡基礎[M].4版.北京:電子工業出版社, 2014.

[2]宋建國, 等.AVR單片機原理及其應用[M].北京:北京航空航天大學出版社, 2000.

udp協議范文第3篇

關鍵詞:GPRS,Socket,通信中心

0 引言

基于GPRS的遠程監控系統是通過GPRS通信網絡提供的IP網絡接入方式, 將數據信息傳遞到互聯網上的數據監控中心, 以實現對遠程終端的數據采集和控制。在實際系統建設中, 為了保證通信質量, 用戶要建設一條專線連接移動網絡, 運行成本比較高, 對于遠程監控點較少的用戶而言非常不經濟。經研究, 我們開發出基于GPRS的遠程數據服務系統, 租用固定通信網絡, 建立以通信服務器為核心的通信中心, 開發專門用于數據收發的通信軟件, 服務于多用戶多監控中心的情況。采用這個系統, 每個用戶只需要建設一個主站監控中心, 實現與通信中心的對接, 就能完成兩者之間的數據交換。這個系統能為多個不同地域的用戶群分別提供通信服務, 大大降低了用戶的建設成本和運行費用, 廣泛應用在如市政設施、城市照明、排水排污等遠程監控領域。

GPRS遠程數據服務系統由遠程終端單元 (RTU) 、GPRS網絡、通信中心、主站監控中心4部分組成如圖1所示。遠程終端單元由GPRS模塊和數據采集設備等硬件組成, 用于采集數據。通信中心是負責數據的收發和數據處理功能, 上位機連接到各用戶群的主站監控中心, 下位機連接遠程終端單元, 扮演數據交換和處理的任務, 能夠接收和處理遠程終端單元通過GPRS網絡上傳的數據, 也可以向遠程終端單元傳送各種控制指令。各主站監控中心主要用戶解析數據, 向用戶顯示各種數據信息。

1 系統設計

1.1 系統結構

遠程終端單元中的GPRS數據通訊模塊, 是一個具有數據交換和GPRS上網功能的模塊, 通過數據線與遠程終端單元數據采集設備連接, 負責數據傳送。

GPRS (通用分組無線業務) 為GSM用戶提供分組形式的數據業務。GPRS數據用戶可以通過GPRS模塊將數據發送到遠端具有因特網IP地址的服務器上, 實現無線數據傳輸。采用GPRS網絡, GPRS通信中心為每一個終端控制單元分配一個或多個端口, 利用固定IP地址, 自動平衡分配網絡負荷。

通信中心包含一臺通信服務器、路由器和中國電信專線接入。通信服務器運行通信軟件, 用于數據的收發, 通過網絡專線連接Internet, 實時監測遠程控制單元和主站監控中心的連接情況和工作狀態, 及時處理雙方的數據交換。通信中心通過GPRS收發完整數據報文, 并根據數據協議解析數據報文。

主站監控中心在局域網中運行, 包括前置處理機、數據庫服務器、工作站及相應的應用管理軟件等, 可以定時或直接控制兩種方式向通信中心發送命令, 通過通信中心轉發給遠程控制單元, 也能夠通過通信中心接收遠程控制單元的命令, 實現數據的遠程讀取, 根據用戶需求對數據進行描述, 以使用戶獲得需要的信息, 并將信息存儲在數據庫服務器。

GPRS遠程數據服務系統就是利用GPRS的優勢, 結合TCP/IP通信協議, 實現對遠程監控終端的數據交換。

1.2 通信過程

遠程終端單元開機后, 通過GPRS數據通訊模塊連接到Internet上, 通過服務器IP地址和端口建立連接。連接建立后, 通信服務器發送確認信息給遠程終端單元, 遠程終端單元接受到確認信息后, 把帶有遠程終端單元連接的信息返回給通信服務器, 服務器接收到此信息后在通信軟件中建立連接信息, 完成遠程終端單元與通信中心之間的通訊連接, 才能實現兩者之間的數據交換。通信軟件接收到來自遠程控制單元的數據后, 如果收到的是已建立連接遠程控制單元信息, 就分析相關數據并發送給主站監控軟件, 否則便丟棄該數據。

同樣的, 通信中心與主站監控中心也依據上述的流程建立連接。

2 程序設計

通信中心軟件關鍵在于根據網絡通信協議實現網絡數據獲取, 在應用過程中我們采用TCP/IP通信傳輸協議和Socket2.0異步多線程通信技術實現。

通信服務器啟動監聽線程, 監聽來自遠程終端單元和主站監控系統的連接。在監聽線程中建立soeket, 接收和處理數據, 根據多用戶的需求建立對應的線程。

數據解析是數據處理的主要過程。解析線程在監聽線程中啟動, 服務器接收到數據后啟動數據解析線程處理數據報, 監聽線程繼續監聽, 解析線程完成解析后結束自身線程。

圖2顯示系統部分程序實現過程。

3 GPRS遠程數據服務系統的管理

鑒于通信服務器的重要性, 而且通信服務器一般租用電信運行商主機或利用固定IP地址建立通信機器, 為了盡可能減少對通信服務器的操作, 我們還增加了GPRS遠程數據服務系統的管理系統, 分為服務端和客戶端, 服務端安裝在通信服務器上, 客戶端安裝主要提供查詢服務, 接收來自服務端的數據, 對于通信服務器通信軟件的運行提供信息和告警功能。

(1) 服務端用Web Service實現, 提供遠程訪問接口, 通過讀取和修改服務器的數據庫和系統參數, 實現傳送遠程數據平臺的機器運行參數等功能。

(2) 客戶端通過定時或手動方式訪問遠程Web Service接口獲得信息進行數據管理, 比如判斷遠程控制單元連接中斷情況是否超過了報警門限, 如果有, 就通過短消息報警發送到相應工作人員手機。

4 結束語

本文提供了無線數據傳輸服務系統的方案, 軟硬件結合, 通過調試驗證, 運行結果良好。系統實現了數據的接收、解析、存儲和發送等功能, 基本滿足用戶的功能需求。系統在實踐中得到了廣泛應用。

參考文獻

[1]Douglas E.Comer.用TCP/IP進行州際互連[M].北京:電子工業出版社, 1998.

[2]王海峰, 奠偉鋒, 李位星.Oracle9i初學者指南[M].北京:機械工業出版社, 2003.

udp協議范文第4篇

以太網在信息網絡中得到了廣泛的應用。將以太網應用到工控領域,首先要求數據傳輸具有更好的實時性,其次還強調在工業環境下數據傳輸的正確性和穩定性。目前在工控嵌入式領域,網絡通信通常采用UDP或TCP協議。UDP與TCP相比,UDP使用非連接的、不可靠的通信方式,因此網絡傳輸速度快,實時性相對較好[1]。實際上,在控制現場級的工業以太網中,只要沒有硬件錯誤,非連接的數據通信通常能夠順利完成,并且與TCP相比具備更好的實時性。當UDP不能通信時,TCP同樣面臨通信中斷[2]。本文采用UDP通信協議編程,通過對丟包率、出錯率和長時間工作下板卡網絡的穩定性來分析判斷嵌入式網絡通信質量的高低。

1 測試的原理方法

選用兩塊相同型號的嵌入式主板作為測試平臺,兩塊主板采用相同的嵌入式操作系統,一塊作為服務器,另一塊作為客戶端;客戶端循環發送指定的報文到服務器,服務器接收到正確的報文后給客戶端以確認報文。通過循環檢測通信的質量判斷網絡通信質量。

實際測試的研華PCM-3343主板是應用在機床數控系統的核心板卡,軟件環境是嵌入式的Windows CE操作系統并且移植了.NET環境。具體的測試方法是取同一型號相同軟件環境的兩塊嵌入式板卡,一塊作為客戶端,一塊作為服務器。網絡負載通過發送數據包的大小來控制,負載越大通信周期越長。通過測試主機和客戶端在一定的網絡負載下,板卡長時間工作下的穩定性、丟包率和出錯率的高低來檢測評估被測板卡網絡通信質量的高低。

2 具體實現

2.1 通信時間和采樣時間的檢測方法

在具體實際測試中,由于嵌入式Windows CE系統和.NET環境已經移植在被測板卡上,因此可以使用C#中ms級的timer控件來測量通信周期時間的長短,但在實際應用中卻無法獲得精確的時間。在實驗測試中,發送1400字節大小的數據包時,時間通常記錄為0或是1ms,不能獲得精確的時間。查閱了相關資料,可以采用以下兩個函數Query Performance Counter()和Query Performance Frequency()來獲得高精度計時。Query Performance Counter()這個函數返回高精確度性能計數器的值,它可以以微妙為單位計時。但是Query Performance Counter()確切的精確計時的最小單位是與系統有關的,所以,必須要查詢系統以得到Query Performance Counter()返回的嘀噠聲的頻率。Query Performance Frequency()提供了這個頻率值,返回每秒嘀噠聲的個數。這樣就能獲得詳細的時間信息,用時間記錄數值來反應嵌入式板卡的通信質量。實際測試中數值處理以ms為單位,取值保留精確到小數點后三位,能夠滿足測試的時間精度要求。

采樣時間可通過Timer控件來實現。長時間工作下,ms級的精度完全可以滿足采樣時間間隔的要求。

應用在嵌入式環境中,測試通信時間的部分程序代碼如下:

2.2 防止客戶端和服務器都處于接收狀態的解決方法

UDP通信協議采用三種通信方式:單播、廣播和組播。因為本實驗只有直連的兩塊板卡,因此采用單播——客戶機/服務器模型。在數據交互通信的過程中,如果發送的數據包丟失或是損壞,導致服務器無法接收到數據包,此時客戶機和服務器均處于等待接收數據包狀態,為了防止出現雙方均等待接收的狀態,采用的超時的思想來處理。當客戶機發出數據包后超過一定的時間沒有收到返回的數據包時,客戶機重新發送數據包,以此來防止出現雙方都等待接收數據包的狀態。在嵌入式的.NET環境中,所能用的API有限,超時的編程不能通過.NET環境的類庫來實現,因此本實驗通過使用調用動態鏈接庫的思想來對底層的超時通信所用的函數做封裝。底層超時編程具體實現是通過select()函數和一些宏定義如FD_ISSET、FD_SET等函數來實現。select()函數用于確定套接口的狀態,超時則返回0;出錯返回SOCKET_ERROR錯誤,可通過WSAGet Last Error獲取相應錯誤代碼;依舊是1的位就是準備好的描述符,可以通過函數FD_ISSET來檢測。動態鏈接庫底層的函數的導出編程如下:

用此方法可以達到防止出現服務器和客戶機都處于接收等待狀態的目的。在實際應用測試中,由于設置的超時時間遠遠比數據包傳輸周期要長的多,因此除了監控界面,從時間數據上也很容易區分當時網絡的狀態。

2.3 監控測試界面的實現和丟包、出錯的處理

由于已經在嵌入式板卡上移植了Windows CE操作系統和.NET類庫,因此監控測試界面可以利用C#來編寫。IP地址是通過編程直接顯示的,為了能夠達到靈活測試的目的,界面除了使用Label控件來命名標簽外,具體參數均使用Text Box控件來顯示和修改。底層程序通過讀取上層界面的參數來配置底層的參數。這樣做的好處的是編寫好程序后,底層程序不需要修改,只要修改界面參數就能完成不同參數環境的測試。

當在通信過程中出現丟包和數據包出錯情形,除了在界面中“網絡狀態”對應的Text Box控件中實時顯示外,均在文檔中記錄發生的時間、次數等信息。

每次通信周期的時間值都會實時的顯示在界面右下角最大的Text Box控件中。當記錄信息超過二十條時,清空控件重新記錄。當到達采樣時間時,記錄文檔的同時,并計算采樣時間間隔內所有通信周期數值的平均時間值,同時顯示在界面“周期時間顯示”欄對應的Text Box控件中。

編寫的監控測試界面在PC機上模擬運行測試中的截圖如圖1所示。

2.4 實驗結果分析

在實際測試中對不同的參數環境下做了測試,以下是其中比較具有代表性的一組測試。采樣時間間隔為1s,傳送的數據包大小為6000字節,測試時間長達二十小時左右。這樣,板卡的網絡負載遠遠大于實際工作時實時傳輸數據包的大小,測試的通信周期次數為八百多萬次,得到八萬多個采樣時間點,能夠從所得數據來分析評估板卡的通信質量和通信穩定性。通過每兩分鐘(約120個采樣數據點)取平均數,每小時采取30個平均時間點,做出的二十張曲線圖,以下摘取的是第一小時和最后一小時的兩張圖。

第1小時數據記錄分析圖如圖2所示。

第20小時左右的數據記錄分析圖,如圖3所示。

通過分析長時間工作下采樣時間值的波動、出錯率和丟包率來判斷網絡通信質量的高低。本次實驗在八百多萬次的測試中,丟包9次,出錯2次,正確的穩定傳送率在99.999%以上,通過圖表分析通信周期時間為12.973ms左右,時間波動在0.148ms左右,通信穩定性較好,通過測試得到的數值分析判斷此板卡的通信質量較高。

3 結束語

本文嘗試使用UDP網絡通信協議,通過軟件編程的方法來檢測在一定的網絡負載下,工控嵌入式板卡網絡通信長時間工作下,通信質量的高低。經過對研華PCM-3343板卡的實驗驗證分析,此方法能夠達到測試嵌入式板卡通信質量的目的。

參考文獻

[1]蕭文龍,林松儒.TCP/IP最佳入門[M].北京:機械工業出版社,2006.

[2]吉順平,陸宇平.基于UDP/IP的工業以太網絡通信協議的設計[J].信息與控制,2008,37(5):562-563.

[3]黃靜,李銘.C#高級編程(第6版)[M].北京:清華大學出版社,2008.

[4]陳健,宋健建.Linux程序設計(第4版)[M].北京:人民郵電出版社,2010.

udp協議范文第5篇

近年來,變電站設備狀態監測技術在國內外逐步開展并取得顯著成效,但其也存在一些問題:比如狀態監測裝置的標準不統一,狀態監測信息難以共享,在線監測裝置本身的可靠性不高,這些問題使傳統狀態監測技術面臨重大挑戰。

數字化變電站是未來變電站發展的必然趨勢,數字化變電站是由智能化一次設備(電子式互感器、智能化開關等)和網絡化二次設備分層(過程層、間隔層、站控層)構建,建立在IEC61850通信規范基礎上,能夠實現變電站內智能電氣設備間信息共享和互操作的現代化變電站。IEC61850標準采用面向對象的建模技術,定義了基于客戶機/服務器結構數據模型,其作為變電站內部通信網絡的技術標準,主要偏重于繼電保護、測量與監視等應用的定義。而變電站設備的狀態監測同樣屬于數字化變電站的重要內容,在此背景下,變電站設備的狀態監測顯然也必須支持IEC 61850技術體系[1,2,3,4,5]。

基于IEC61850標準的變電站設備狀態監測系統的層次結構如圖1所示,現場的各種在線監測裝置采集變電站設備狀態數據,智能監測終端(IED)將采集的數據由過程層傳輸到間隔層,同時將數據終端傳輸的數據規約轉換為IEC61850標準通信規約,匯總到站端監測單元,從而實現變電站中各種IED的管理以及設備間的互聯、互操作,滿足在變電站內實現統一的規約通信機制[6,7] 。

本文根據設備絕緣狀態監測IED要求和UDP協議的特性,設計了變電站設備絕緣狀態監測智能終端。采用基于UDP協議的以太網系統通信方案,監測終端的遠端數據采集單元與上位機采用局域網組網方式,網絡數據傳輸采用UDP協議,同時結合光纖數字化技術,實現監測數據的實時、高速傳輸[8,9]。應用開發的監測終端在實驗室對一支現場替換下來的CT進行了介損測量試驗,并與傳統介損帶電測試儀測量結果進行了對比,結果表明監測終端滿足數字化變電站絕緣狀態監測IED性能要求[10,11,12]。

1UDP協議

目前應用最廣泛的網絡通信方式是基于以太網的TCP/IP網絡體系結構,傳輸控制協議(TCP)和用戶數據報協議(UDP)是模型傳輸層中的兩個并列協議。

TCP是一種面向廣域網的基于連接的可靠傳輸協議,在進行數據傳輸前,必須在源端與終端建立連接,同時傳輸的每一個報文都需接收端確認。確認機制對于保證數據可靠傳輸非常重要,但同時確認機制也降低了數據傳輸的效率。TCP考慮了廣域網上的許多不可知因素,如報文經過的網段數、中間網段類型、中間和對端節點的處理能力、緩沖區大小等,而在局域網上,這些參數和屬性都可以確定,可以容易地獲得承載能力比較準確的數值。因此,采用TCP通信不能適應特定物理屬性的局域網,也不能發揮特定類型局域網的長處[13]。

UDP是一種簡單的無連接協議,傳輸數據之前源端和終端不建立連接,進行網絡傳輸的過程中,UDP僅通過端口號指明發送程序端口和接收程序端口,只負責數據傳輸,不保證數據一定到達目的地,接收方接收到數據后不發送到達確認信息。因此,UDP提供的數據傳輸服務為無連接、不可靠的用戶數據包服務。但在專屬局域網中,使用UDP具有以下優點[14]:

(1)傳輸數據不建立連接,因此也就不需要維護連接狀態,沒有數據接收確認和超時重傳等機制,傳輸速度遠快于TCP,同時可以充分利用硬件上支持廣播和組播的特點。

(2)UDP信息包的標題很短,只有8個字節,相對于TCP的20個字節信息包的額外開銷很小。

(3)吞吐量不受擁擠控制算法的調節,只受應用軟件生成數據的速率、傳輸帶寬、源端和終端主機性能的限制。

(4)在應用程序的編程中,UDP不用進行進程間的連接,編程簡單。

(5)UDP是面向報文的,不存在數據分片和連接管理,系統開銷比較小,通信帶寬有效利用率要高于基于連接的通信方式。

因此,對于變電站設備絕緣狀態監測專屬局域網來說,網絡環境質量優良,可靠性好,比較適合采用UDP協議。

2監測終端硬件系統設計

根據數字化變電站設備絕緣狀態監測系統數據傳輸要求,結合光纖數字化技術,利用UDP協議開發設備絕緣監測智能終端,原理如圖2所示。每套監測終端由本地模塊和遠方模塊兩部分組成,二者之間通過兩根光纖連接,一根為能量光纖,本地模塊中的激光器通過能量光纖為遠方模塊提供能量,并通過發出光脈沖信號觸發遠方模塊進行多路信號的同步采集;另一根為數據光纖,采集的多路信號在遠方模塊就地轉換為光信號后通過數據光纖傳輸回本地模塊。

監測系統內可包含數十套監測終端,通過網線與路由器連接,其中一臺為主控終端,負責執行同步采樣脈沖的控制與轉發,以實現所有監測終端的同步采集。系統還包括一臺PC,通過網線與路由器連接,進而與各監測終端進行通信,并實現對主控終端的控制。PC與各個監測終端均擁有唯一的IP地址。

PC通過配置IEC61850規約轉換模型,可實現監測終端數據格式的映射和轉換功能,將數據終端傳輸的數據規約轉換為IEC61850標準通信規約,從而實現變電站中各種IED的管理以及設備間的互聯、互操作,滿足在變電站內實現統一的規約通信機制。

3UDP通信方案設計

系統的設計目標是以局域網方式實現服務器(PC)與客戶端(監測終端)的通信模式,主要實現以下功能:

(1)PC端能控制各監測終端激光器的打開和關閉;

(2)PC端能控制各監測終端的同步采集;

(3)監測終端能準確地將數據發送到PC端,PC端能準確實時地接收。

圖3為監測系統組成框圖。在S/C模式基礎上,系統由PC、路由器、監測終端組成,采用星型網絡連接。

3.1監測終端工作流程

使用兩個端口,例如分別為5007、5008。其中,5007為通信端口,實現PC控制命令發送與監測終端狀態返回,使用非連接UDP建立客戶/服務器通信模式,其中監測終端為服務器端,PC為客戶端;5008為數據端口,使用UDP協議向默認PC IP地址發送采集數據。監測終端5007端口工作流程如圖4所示。

數據端口5008接收到一包數據即向PC機發送,PC機根據UDP數據包中解包得到的IP來區別不同的監測終端數據。

3.2PC工作流程

PC通過5007通信端口對監測終端進行控制,基本流程如圖5所示。

3.3控制命令、監測終端狀態與采集數據包制定

根據UDP通信協議,實現本系統通信需定義三種UDP數據包分別為:控制命令包、監測終端狀態包與采集數據包。編程環境采用基于以控制和測試為主圖形化編程語言LabVIEW[15]。

3.3.1 控制命令數據包

控制命令數據包制定數據包大小為四個字節,發送的命令包括:讀取狀態、開啟激光器、開啟采集、關閉采集、關閉激光器、清空緩存以及控制激光器DAC值。采用輪詢機制,實現控制命令準確無誤地發送到監測終端。程序框圖如圖6所示。

3.3.2 監測終端狀態數據包

監測終端狀態數據包定義為16個字節。狀態包中的信息包括:激光器狀態、采集狀態、待發包數、目前控制激光器的DAC值以及遠端模塊光電池瞬時電壓電流。監測終端每隔20 ms向PC返回一個狀態包,實現PC控制程序實時掌握監測終端的工作狀況。程序框圖如圖7所示。

3.3.3 采集數據包

采集數據包定義為1040個字節。數據包中包含遠端模塊四個通道采集到的數據。采集組成一個數據包后,通過5008端口自動向PC機發送,PC機通過輪詢機制分別存儲各個模塊發送過來的采集數據。程序框圖如圖8所示。

4通信可靠性的處理機制

應用UDP協議,首先硬件上要有一個可靠的通信環境,同時對局域網進行合理規劃,比如采用高性能網卡和路由器,提高通信控制器對緩沖的響應和處理能力;合理規劃局域網內的信息傳輸量,使得信道寬度遠大于數據量規模,避免可能的擁塞,這些對于變電站設備狀態監測專屬局域網一般都能滿足。其次在程序設計上也可以對通信可靠性進行加強,在本系統中主要采用了如下兩個措施:

(1)數據包丟失檢查:對采集數據包的格式進行定義,對源端發出的包進行計數。接收端根據解包得到的計數值可判斷出數據包的連續性。若出現丟包情況,則將此段數據丟棄。對于本文的應用來說,設備絕緣狀態量均為緩慢變化量,系統有足夠的時間來對丟包情況進行處理,丟包后系統立即召測新的數據,對在線監測不會產生影響。

(2)軟件過濾:當出現丟包情況時,系統同樣需要對當時的監測結果進行顯示,此時采用軟件對該監測終端相鄰歷史數據插值或外推來估計該缺失時刻的數據。由于設備絕緣狀態量均為緩慢變化量,因此在數據缺失時間不長的情況下,采用臨近數據對缺失數據進行補償,對于電氣設備絕緣監測來說,是可以接受的。

5監測終端測試試驗

對所開發的變電站設備絕緣狀態監測智能終端在實驗室進行了測試,試品為現場替換下來的一臺110kV CT,采用RCB-1型容性設備帶電測試儀作為對比。采用數字化測量方式,通過有源穿心式電流傳感器提取CT末屏電流信號和參考電壓信號后采用數字化處理,計算得出介損值,電流傳感器精度優于0.1級。試驗接線圖如圖9所示,監測數據測試界面如圖10所示。試驗結果顯示兩系統誤差小于0.1%,證明監測終端同步性好,精度高,滿足實際測量要求。

6結語

本文設計了一種基于UDP協議的數字化變電站設備絕緣狀態監測智能終端,結合光纖數字化技術,通過UDP協議實現過程層監測數據實時高速傳輸到間隔層,其具有消耗資源少,處理速度快等優點,同時其組網簡單,同步性能好,精度高。隨著智能電網和數字化變電站等技術的發展和變電站設備智能化程度的提高,絕緣監測IED將廣泛應用于變電站設備的絕緣監測,成為數字化變電站可靠、安全運行不可或缺的組成部分。

摘要:數字化變電站要求智能電子設備(IED)具有網絡通信功能。采用傳輸層用戶數據包協議(UDP)作為設備絕緣狀態監測系統的通信協議,可實現過程層監測數據實時高速傳輸到間隔層。根據設備絕緣狀態監測IED要求和UDP協議的特性,結合光纖數字化技術,設計了變電站設備絕緣狀態監測智能終端硬件及系統通信方案。采用以控制和測試為主的圖形化編程語言LabVIEW開發了系統軟件。應用開發的監測終端在實驗室對一支現場替換下來的CT進行介損測量試驗。試驗結果表明監測終端滿足數字化變電站絕緣狀態監測IED性能要求。

上一篇:安全協議下一篇:協議離婚需要什么手續

熱門文章

udp協議

精品范文

91尤物免费视频-97这里有精品视频-99久久婷婷国产综合亚洲-国产91精品老熟女泄火