• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于數(shù)傳電臺的TCP/IP通信平臺的設(shè)計與實現(xiàn)

      2017-08-14 01:12:00任艷蕾
      現(xiàn)代農(nóng)村科技 2017年8期
      關(guān)鍵詞:鏈路層數(shù)傳網(wǎng)絡(luò)設(shè)備

      任艷蕾

      (涿州市技師學(xué)院 河北 涿州 072750)

      基于數(shù)傳電臺的TCP/IP通信平臺的設(shè)計與實現(xiàn)

      任艷蕾

      (涿州市技師學(xué)院 河北 涿州 072750)

      本文介紹了一種借鑒虛擬網(wǎng)卡技術(shù)設(shè)計實現(xiàn)基于數(shù)傳電臺的TCP/IP通信平臺的方法,該研究成果的應(yīng)用進(jìn)一步拓展了數(shù)傳電臺的應(yīng)用價值與范圍。

      數(shù)傳電臺;虛擬網(wǎng)絡(luò);TCP/IP

      1 引言

      通信網(wǎng)絡(luò)是制約野外物探作業(yè)信息化發(fā)展的關(guān)鍵與瓶頸。面對公共運(yùn)營商網(wǎng)絡(luò)的不穩(wěn)定及衛(wèi)星通信的高昂費(fèi)用,在現(xiàn)有通信手段的基礎(chǔ)上,自主研發(fā)實現(xiàn)一套通用的、支持公網(wǎng)通信協(xié)議(TCP/IP)的網(wǎng)絡(luò)通信系統(tǒng)顯得尤為重要。

      鑒于數(shù)傳電臺在石油等行業(yè)野外作業(yè)中被廣泛使用,本文以無序的數(shù)傳電臺間的通信為基礎(chǔ),在充分借鑒網(wǎng)卡虛擬化的思想和成果的基礎(chǔ)上,設(shè)計實現(xiàn)了一個以虛擬網(wǎng)卡為載體的通信網(wǎng)絡(luò)平臺系統(tǒng)。該系統(tǒng)一方面通過對底層網(wǎng)絡(luò)協(xié)議棧的封裝將多個電臺組一個穩(wěn)定的、可靠地通信網(wǎng)絡(luò),另一方面為上層應(yīng)用程序提供統(tǒng)一的網(wǎng)絡(luò)編程接口,極大地增強(qiáng)系統(tǒng)的通用性,從而減少不必要的重復(fù)開發(fā)。

      2 虛擬網(wǎng)卡概述

      虛擬網(wǎng)卡目前多用于網(wǎng)絡(luò)安全和構(gòu)建虛擬網(wǎng)絡(luò)等應(yīng)用領(lǐng)域,在Linux平臺上,虛擬網(wǎng)卡實際上就是一個網(wǎng)卡驅(qū)動程序。

      2.1 虛擬網(wǎng)卡工作原理。虛擬網(wǎng)卡并不與真實的物理設(shè)備進(jìn)行數(shù)據(jù)交互,而是提供了一種數(shù)據(jù)在操作系統(tǒng)內(nèi)核態(tài)和用戶態(tài)之間交互的機(jī)制。通常情況下虛擬網(wǎng)卡驅(qū)動并不是單純的網(wǎng)卡驅(qū)動程序,其中還實現(xiàn)了部分字符設(shè)備驅(qū)動的功能。在此基礎(chǔ)上,通過訪問用戶態(tài)字符設(shè)備文件,即可實現(xiàn)數(shù)據(jù)在Linux操作系統(tǒng)兩種運(yùn)行狀態(tài)下的交互。

      圖1 虛擬網(wǎng)卡原理

      圖2 網(wǎng)絡(luò)驅(qū)動體系結(jié)構(gòu)

      2.2 虛擬網(wǎng)卡體系結(jié)構(gòu)。通用虛擬網(wǎng)卡程序的體系結(jié)構(gòu)如圖2所示,可分為網(wǎng)絡(luò)協(xié)議接口層、網(wǎng)絡(luò)設(shè)備接口層、設(shè)備驅(qū)動功能層及網(wǎng)絡(luò)設(shè)備與媒介層。

      網(wǎng)絡(luò)協(xié)議接口層為虛擬網(wǎng)卡與內(nèi)核TCP/IP協(xié)議棧之間的接口,通過調(diào)用該層提供的dev_queue_xmit函數(shù)和netif_rx函數(shù),虛擬網(wǎng)卡主邏輯功能可分別實現(xiàn)IP包的接收與發(fā)送。網(wǎng)絡(luò)設(shè)備接口層提供了統(tǒng)一的用于描述具體網(wǎng)絡(luò)設(shè)備屬性和操作的結(jié)構(gòu)體net_device。設(shè)備驅(qū)動功能層是網(wǎng)絡(luò)設(shè)備接口層net_device結(jié)構(gòu)中各成員函數(shù)的實現(xiàn),是網(wǎng)絡(luò)設(shè)備屬性和操作功能的體現(xiàn)。網(wǎng)絡(luò)設(shè)備與媒介層是完成數(shù)據(jù)包在物理設(shè)備上的發(fā)送和接收的物理設(shè)備接口。虛擬網(wǎng)卡驅(qū)動程序最主要的設(shè)計工作集中在設(shè)備驅(qū)動功能層。

      3 虛擬網(wǎng)卡設(shè)計

      本文設(shè)計的虛擬網(wǎng)卡由協(xié)議預(yù)處理層、數(shù)據(jù)鏈路層及物理接口層組成,系統(tǒng)架構(gòu)設(shè)計如圖3所示。虛擬網(wǎng)卡的設(shè)計核心是數(shù)據(jù)鏈路層,該層在定義了數(shù)據(jù)幀格式的基礎(chǔ)上,實現(xiàn)了數(shù)傳電臺組網(wǎng)、通信鏈路控制等功能。協(xié)議預(yù)處理層介于內(nèi)核協(xié)議棧與數(shù)據(jù)鏈路層之間,實現(xiàn)了網(wǎng)絡(luò)層數(shù)據(jù)格式與自定義數(shù)據(jù)鏈路層間的轉(zhuǎn)換及數(shù)據(jù)的雙向傳輸。物理接口層介于數(shù)據(jù)鏈路層與物理設(shè)備(數(shù)傳電臺)之間,通過串口讀寫操作,實現(xiàn)了數(shù)據(jù)幀的收發(fā)。

      圖3 虛擬網(wǎng)卡架構(gòu)設(shè)計

      圖4 數(shù)據(jù)幀格式定義

      3.1 數(shù)據(jù)鏈路層設(shè)計

      3.1.1 數(shù)據(jù)幀格式定義。數(shù)據(jù)幀保障了數(shù)據(jù)在鏈路層上傳輸?shù)耐暾院陀行蛐?,其格式定義如圖4所示。其中,Type字段占一個字節(jié),其中bit0表示該數(shù)據(jù)幀的類型,“0”代表普通數(shù)據(jù)幀,“1”代表網(wǎng)絡(luò)管理數(shù)據(jù)幀;bit1用于區(qū)分原幀與應(yīng)答幀,“0”代表原幀,“1”代表應(yīng)答幀;bit2用于標(biāo)識該數(shù)據(jù)幀的本次傳輸是否由主節(jié)點發(fā)起,“0”代表由從節(jié)點發(fā)起,“1”代表由主節(jié)點發(fā)起;bit3-7暫未定義。To字段占一個字節(jié),標(biāo)識該數(shù)據(jù)幀的目的地址;From字段占一個字節(jié),標(biāo)識該數(shù)據(jù)幀的源地址;Seq.字段占一個字節(jié),用于標(biāo)識該原幀在發(fā)送隊列中的序號,接收方正確接收數(shù)據(jù)后,在應(yīng)答幀中沿用原幀Seq.值。Data字段占0~64個字節(jié),為實際發(fā)送的數(shù)據(jù)。Resd.字段為保留字段,占一個字節(jié),用于今后協(xié)議的擴(kuò)展。Checksum字段占一個字節(jié),為該數(shù)據(jù)幀的校驗和。

      3.1.2 自組網(wǎng)協(xié)議設(shè)計。自組網(wǎng)協(xié)議由組網(wǎng)策略、入網(wǎng)策略、出網(wǎng)策略組成。該協(xié)議通過組網(wǎng)策略將多個網(wǎng)絡(luò)設(shè)備(數(shù)傳電臺)以主從模式組成穩(wěn)定、有序的數(shù)據(jù)通信網(wǎng)絡(luò),對網(wǎng)絡(luò)成員進(jìn)行統(tǒng)一管理。具體有以下三個功能:

      組網(wǎng)策略:利用最小ID分簇算法(LID),選出中心節(jié)點,中心節(jié)點負(fù)責(zé)維護(hù)網(wǎng)絡(luò)成員列表。

      圖5 入網(wǎng)流程

      圖6 鏈路控制流程

      圖7 數(shù)據(jù)發(fā)送流程

      入網(wǎng)策略:中心節(jié)點收到子節(jié)點入網(wǎng)請求后,中心節(jié)點將該節(jié)點加入網(wǎng)絡(luò)成員列表并告知該節(jié)點(子節(jié)點入網(wǎng)過程如圖5所示)。

      出網(wǎng)策略:中心節(jié)點對網(wǎng)絡(luò)成員進(jìn)行超時監(jiān)控,發(fā)現(xiàn)節(jié)點處于覆蓋范圍外(通信超時),則從成員列表中刪除該成員。

      3.1.3 數(shù)據(jù)鏈路控制模塊設(shè)計。數(shù)據(jù)鏈路控制模塊負(fù)責(zé)解析網(wǎng)絡(luò)管理幀緩存區(qū)中的管理命令,并通過改變功能模塊標(biāo)志位來通知對應(yīng)功能模塊進(jìn)行工作。以信道使用權(quán)為例,當(dāng)數(shù)據(jù)接收模塊將帶有信道使用權(quán)的管理幀放入網(wǎng)絡(luò)管理幀緩沖區(qū)。數(shù)據(jù)鏈路模塊開始遍歷該緩沖區(qū),解析到獲取信道使用權(quán)的命令后,將數(shù)據(jù)發(fā)送模塊的標(biāo)志位置1,通知數(shù)據(jù)發(fā)送模塊開始工作。圖6所示為數(shù)據(jù)鏈路控制流程。

      3.1.4 數(shù)據(jù)發(fā)送模塊設(shè)計。數(shù)據(jù)發(fā)送模塊負(fù)責(zé)將虛擬網(wǎng)卡產(chǎn)生的數(shù)據(jù)幀發(fā)送到網(wǎng)絡(luò)中。有數(shù)據(jù)要發(fā)送時,數(shù)據(jù)發(fā)送模塊先判斷是否具有信道使用權(quán)限,如果當(dāng)前節(jié)點具有信道使用權(quán),數(shù)據(jù)發(fā)送模塊將緩存區(qū)的數(shù)據(jù)幀取出,調(diào)用串口操作接口將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)中。然后向主節(jié)點發(fā)送釋放信道使用權(quán)的控制幀。數(shù)據(jù)發(fā)送流程如圖7所示。

      3.1.5 數(shù)據(jù)接收模塊設(shè)計。數(shù)據(jù)接收模塊負(fù)責(zé)接收網(wǎng)絡(luò)數(shù)據(jù),首先判斷數(shù)據(jù)目的地是否為自己,如果是將接收的數(shù)據(jù)按數(shù)據(jù)幀和控制幀分別存到接收數(shù)據(jù)緩存區(qū)和接收控制命令緩沖區(qū)。反之不做任何操作。

      3.2 IP包預(yù)處理模塊設(shè)計。IP包預(yù)處理模塊主要有兩個功能:一是將協(xié)議棧下發(fā)的IP數(shù)據(jù)包按數(shù)據(jù)傳輸幀格式進(jìn)行分割和組幀如圖8所示,然后存入發(fā)送緩沖區(qū);二是接收緩存區(qū)的傳輸幀按IP包的幀格式解包和組幀,然后傳入內(nèi)核協(xié)議棧中。通過IP包預(yù)處理模塊實現(xiàn)了IP數(shù)據(jù)與傳輸幀的轉(zhuǎn)換,完成內(nèi)核協(xié)議棧和數(shù)據(jù)鏈路層數(shù)據(jù)的交換。

      3.3 串口讀寫模塊設(shè)計。物理接口層兼容網(wǎng)絡(luò)設(shè)備基本操作,為數(shù)據(jù)鏈路層的數(shù)據(jù)收發(fā)模塊提供操作接口,使數(shù)據(jù)鏈路層無需關(guān)系底層網(wǎng)絡(luò)設(shè)備,實現(xiàn)數(shù)據(jù)鏈路層的數(shù)據(jù)在物理網(wǎng)絡(luò)設(shè)備上的傳輸。

      圖8 數(shù)據(jù)幀封包流程

      4 虛擬網(wǎng)卡

      4.1 測試環(huán)境。本測試?yán)脙膳_計算機(jī)通過數(shù)傳電臺進(jìn)行網(wǎng)絡(luò)通信,來驗證虛擬網(wǎng)卡的工作情況。

      主機(jī)A:虛擬網(wǎng)卡IP為192.168.0.1,操作系統(tǒng)是Linux(內(nèi)核版本 2.6.32);主機(jī)B:虛擬網(wǎng)卡 IP為192.168.0.2,操作系統(tǒng)是Linux(內(nèi)核版本2.6.32)。

      4.2 數(shù)傳電臺PING命令測試。①insmod vnic.ko加載驅(qū)動程序。②ifconfig vnic 192.168.0.1 up啟動A主機(jī)虛擬網(wǎng)卡;ifconfig vnic 192.168.0.2 up啟動B主機(jī)虛擬網(wǎng)卡;③A主機(jī)向B主機(jī)發(fā)送ping命令。

      4.3 測試結(jié)果。主機(jī)B接收到A的ping包后經(jīng)過差錯控制,寫入虛擬網(wǎng)卡,并讀出虛擬網(wǎng)卡的恢復(fù)包。然后發(fā)向主機(jī)A,B接收到84字節(jié)的ping包,并以16進(jìn)制的形式打印出來,其中“c0 a8 00 02和c0 a8 00 01”分別表示源地址和目的地址。第21個字節(jié)“08”表示此ping的請求包。Ping包的回復(fù)內(nèi)容也類似,第21個字節(jié)“00”表示數(shù)據(jù)包時ping的回復(fù)包。

      [1]韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊 [M].北京:人民郵電出版社,2008.

      [2]JONATHANCORBET,ALESSANDRORUBINI& GREG KROAH-HARTMAN.Linux設(shè)備驅(qū)動程序 (第三版) [M].北京:中國電力出版社,2006.

      [3]Douglas E.Comer,David L.Stevens著,張衛(wèi)、王能譯.TCP/IP網(wǎng)絡(luò)互聯(lián)技術(shù)卷3客戶-服務(wù)器編程與應(yīng)用windows套接字版 [M].北京:清華大學(xué)出版社,2004.

      [4]Klaus Wehrle Frank Pahlke,Hartmut Ritter著,汪青青,盧祖英譯.Linux網(wǎng)絡(luò)體系結(jié)構(gòu) [M].北京:清華學(xué)出版社,2006.

      猜你喜歡
      鏈路層數(shù)傳網(wǎng)絡(luò)設(shè)備
      網(wǎng)絡(luò)傳輸融合及網(wǎng)絡(luò)安全防控技術(shù)研究
      基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡(luò)包捕獲方法
      基于數(shù)傳電臺的靶彈測控系統(tǒng)設(shè)計
      一種基于C# 的網(wǎng)絡(luò)設(shè)備自動化登錄工具的研制
      嫦娥衛(wèi)星數(shù)傳副瓣信號的干涉測量研究與精度驗證
      載人航天(2019年1期)2019-03-07 01:41:02
      數(shù)據(jù)中心唯“快”不破
      高速數(shù)傳電纜散射參數(shù)的測試及半實物仿真的分析與研究
      電子器件(2015年5期)2015-12-29 08:43:30
      數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進(jìn)
      IEEE 1394事務(wù)層接口的設(shè)計與實現(xiàn)
      頻率偏置對Ka頻段圓極化頻率復(fù)用數(shù)傳鏈路的影響
      航天器工程(2014年5期)2014-03-11 16:35:56
      裕民县| 冷水江市| 浦东新区| 大名县| 茌平县| 乐业县| 托里县| 绥阳县| 安塞县| 宜良县| 印江| 麟游县| 哈巴河县| 犍为县| 汶川县| 宜良县| 台东市| 社旗县| 莆田市| 灵璧县| 宜兰县| 巴楚县| 洪雅县| 诏安县| 洛隆县| 芜湖县| 抚顺市| 夹江县| 宁河县| 西丰县| 遂平县| 新安县| 翁源县| 曲水县| 盈江县| 大足县| 东兴市| 凤阳县| 鸡东县| 金昌市| 章丘市|