<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > VxWorks下基于緩沖隊列的網(wǎng)絡(luò )通信

VxWorks下基于緩沖隊列的網(wǎng)絡(luò )通信

作者: 時(shí)間:2010-04-09 來(lái)源:網(wǎng)絡(luò ) 收藏
具體表現為,消息初始為空,數據發(fā)送任務(wù)阻塞在消息上,網(wǎng)絡(luò )正常情況下,每有新的消息單元到達時(shí),數據發(fā)送任務(wù)就將該消息單元指向的數據包立刻發(fā)送出去;如果某個(gè)時(shí)刻網(wǎng)絡(luò )受到外界環(huán)境的影響變地不穩定或發(fā)生短暫阻塞,數據包不能及時(shí)發(fā)出,該數據包就可緩存在 Buffer中,其地址信息緩存在消息中,而不會(huì )丟失,等網(wǎng)絡(luò )正常后再發(fā)送出去。隊列的模式如圖 3所示。根據待傳輸信息的緊急程度,不同的任務(wù)可以選擇 FIFO或優(yōu)先級向緩存隊列中寫(xiě)入消息單元。

本文引用地址:http://dyxdggzs.com/article/157520.htm


實(shí)驗時(shí),以一臺普通 PC機作為上位機服務(wù)器,采樣節點(diǎn)和服務(wù)器之間通過(guò)一個(gè)百兆的機相連。采樣節點(diǎn)的所有采集通道全開(kāi),均設為最大采樣率,服務(wù)器每隔 5秒鐘查詢(xún)一次節點(diǎn)狀態(tài),此時(shí)數據傳輸率約為 65Mbit/s,系統連續運行 8小時(shí)。實(shí)驗結果顯示服務(wù)器收到的數據包數目和采樣節點(diǎn)發(fā)送的數據包數目相同,數據傳輸丟失率為 0.0%。

4網(wǎng)絡(luò )監測原理

當網(wǎng)絡(luò )發(fā)生中斷時(shí),系統軟件應該能夠盡快發(fā)現網(wǎng)絡(luò )故障,并在網(wǎng)絡(luò )恢復后仍可正常運行,因此軟件應該具備網(wǎng)絡(luò )監控功能,實(shí)時(shí)監測網(wǎng)絡(luò )的連通性。監測網(wǎng)絡(luò )連通性的一個(gè)比較簡(jiǎn)單的方法就是通過(guò)服務(wù)器向采樣節點(diǎn)不間斷發(fā)送 ICMP(Internet控制消息協(xié)議 )包,如果能收到回應則證明網(wǎng)絡(luò )連通,反之則表示網(wǎng)絡(luò )中斷。此法雖然簡(jiǎn)單,但是當節點(diǎn)比較多時(shí),大量的 ICMP數據包會(huì )占用 CPU資源,降低服務(wù)器的效率,故此法不可行。圖 4是我們設計的一個(gè)網(wǎng)絡(luò )監控原理圖。




為避免影響到數據的實(shí)時(shí)傳輸,通信雙方各建立兩個(gè) socket端口,一個(gè)作為數據通道專(zhuān)門(mén)用來(lái)傳遞數據信息,另一個(gè)用作監控通道,傳遞應答信號,監測網(wǎng)絡(luò )的連通性;監控通道負責管理和維護數據通道。節點(diǎn)和服務(wù)器端運行的監控任務(wù)都是無(wú)限循環(huán)任務(wù),每若干秒運行一次。在每一個(gè)循環(huán)周期內,采樣節點(diǎn)都會(huì )向服務(wù)器發(fā)起一次連接,服務(wù)器端收到采樣節點(diǎn)的連接請求后,和其建立連接,然后向其發(fā)送信號指令。采樣節點(diǎn)收到信號指令后,向服務(wù)器發(fā)送應答信號,服務(wù)器若能在 T_wait時(shí)間內收到應答信號,則判定網(wǎng)絡(luò )通暢,否則認為網(wǎng)絡(luò )中斷。如果某時(shí)刻網(wǎng)絡(luò )出現斷線(xiàn),那么重新建立連接后,服務(wù)器會(huì )向采樣節點(diǎn)發(fā)送重新連接指令,采樣節點(diǎn)收到重新連接指令后,會(huì )關(guān)閉原有的數據傳輸 socket,重新和服務(wù)器建立數據傳輸通道。


實(shí)驗時(shí),通過(guò)插拔網(wǎng)線(xiàn)模擬網(wǎng)絡(luò )的連通和斷線(xiàn)。結果表明,在系統進(jìn)行數據傳輸時(shí)拔掉網(wǎng)線(xiàn),若在 20秒內再接上,由于采樣節點(diǎn)具有一定的緩存能力,數據不會(huì )丟失,網(wǎng)絡(luò )仍可正常工作;若拔掉網(wǎng)線(xiàn),超過(guò) 20秒之后再接上網(wǎng)線(xiàn),采樣節點(diǎn)和服務(wù)器之間會(huì )重新建立連接,網(wǎng)絡(luò )仍可正常工作,但由于緩存隊列溢出,數據會(huì )發(fā)生丟失;若拔掉網(wǎng)線(xiàn)超過(guò) 30分鐘,采樣節點(diǎn)會(huì )判定網(wǎng)絡(luò )中斷、記錄故障并自動(dòng)關(guān)閉系統,插上網(wǎng)線(xiàn)后,服務(wù)器通過(guò)網(wǎng)絡(luò )遠程啟動(dòng)采樣節點(diǎn),系統繼續正常工作。

5總結

利用 對多任務(wù)和網(wǎng)絡(luò )的良好支持,本文提出了一種隊列的帶網(wǎng)絡(luò )狀態(tài)監測功能的模式,目前已經(jīng)在我們開(kāi)發(fā)的分布式監控系統中得到應用。該模式使系統能夠應付一定的網(wǎng)絡(luò )故障,提高了系統的可靠性。該模式還可以方便地應用到其它嵌入式網(wǎng)絡(luò )開(kāi)發(fā)中,具有廣泛的應用前景。本文作者創(chuàng )新點(diǎn):本文提出的這種基于隊列的帶網(wǎng)絡(luò )狀態(tài)監測功能的網(wǎng)絡(luò )通信模式,充分地利用了 對多任務(wù)和網(wǎng)絡(luò )的良好支持,消息隊列不僅同步任務(wù),還可作為緩存隊列用來(lái)緩存數據,使系統能夠應付一定的網(wǎng)絡(luò )波動(dòng);監控任務(wù)的工作模式使系統能夠快速發(fā)現網(wǎng)絡(luò )故障并做出響應,待網(wǎng)絡(luò )故障排除后仍可正常運行。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>