• 
    

    
    

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

      ?

      仿真系統(tǒng)中的網(wǎng)絡(luò)傳輸接口研究

      2015-03-26 21:21:21姜春強(qiáng)
      河南科技 2015年21期
      關(guān)鍵詞:網(wǎng)絡(luò)接口端口號(hào)發(fā)送數(shù)據(jù)

      姜春強(qiáng)

      (海裝重慶局,四川 成都 610000)

      仿真系統(tǒng)中的網(wǎng)絡(luò)傳輸接口研究

      姜春強(qiáng)

      (海裝重慶局,四川 成都 610000)

      比較大型的仿真系統(tǒng)需要通過(guò)多線路適配器和多協(xié)議路由器來(lái)與其他的專用網(wǎng)絡(luò)連接獲取數(shù)據(jù)。系統(tǒng)所需的外部數(shù)據(jù)經(jīng)外部通信接口進(jìn)入前端處理子系統(tǒng),在對(duì)輸入數(shù)據(jù)進(jìn)行基本的有效性檢查后,根據(jù)接入數(shù)據(jù)的不同類型,分別傳送到不同的功能子系統(tǒng)進(jìn)行處理,各個(gè)子系統(tǒng)處理后再送回?cái)?shù)據(jù)庫(kù),或者直接與其他子系統(tǒng)發(fā)生數(shù)據(jù)交換。系統(tǒng)中,圖象顯示系統(tǒng)和其他的功能子系統(tǒng)都分別處于不同的主機(jī)上,整個(gè)系統(tǒng)處于一個(gè)局域網(wǎng)中,各個(gè)子系統(tǒng)的數(shù)據(jù)交換通過(guò)一個(gè)通用的網(wǎng)絡(luò)接口來(lái)實(shí)現(xiàn)。

      仿真系統(tǒng);網(wǎng)絡(luò)傳輸接口

      1 網(wǎng)絡(luò)接口的設(shè)計(jì)

      TCP/IP協(xié)議簇中,傳輸層的協(xié)議為在不同主機(jī)上運(yùn)行的進(jìn)程提供通信機(jī)制,傳輸層協(xié)議主要包括TCP協(xié)議和UDP協(xié)議,其中TCP提供可靠的數(shù)據(jù)傳輸服務(wù),在一個(gè)應(yīng)用進(jìn)程向另一個(gè)應(yīng)用進(jìn)程發(fā)送數(shù)據(jù)之前,兩個(gè)進(jìn)程必須為后來(lái)的數(shù)據(jù)傳輸參數(shù)的建立發(fā)送一些預(yù)備數(shù)據(jù)段,通常稱之為TCP的“三次握手連接”;而UDP協(xié)議由于不需要在數(shù)據(jù)發(fā)送之前建立連接,采用盡力服務(wù)的方式,不用對(duì)發(fā)送速率進(jìn)行管理,小量的數(shù)據(jù)報(bào)頭部開銷,因此它的發(fā)送效率高于TCP協(xié)議。在仿真系統(tǒng)中,由于對(duì)實(shí)時(shí)性要求比較高,如何使得數(shù)據(jù)發(fā)送地更快速就顯得非常重要了,因此主要使用UDP來(lái)進(jìn)行數(shù)據(jù)傳送,只有特別重要的數(shù)據(jù)才使用TCP來(lái)傳送。UDP傳送效率雖然高,但提供的是不可靠的數(shù)據(jù)傳送服務(wù),傳送過(guò)程中就存在掉包、數(shù)據(jù)在傳送中發(fā)生錯(cuò)誤、先發(fā)的包后到而后發(fā)的包先到、分屬不同的進(jìn)程的包無(wú)法區(qū)分等問(wèn)題。另外在發(fā)送過(guò)程中還必須解決端口號(hào)的使用的問(wèn)題,下面針對(duì)以上問(wèn)題給出具體的解決方案。

      1.1 提高TCP連接建立效率

      在利用TCP協(xié)議進(jìn)行通信時(shí),需要事先建立好連接,這樣數(shù)據(jù)發(fā)送時(shí)就不再建立連接。但是由于網(wǎng)絡(luò)連接可能會(huì)發(fā)生意外,如果連接已經(jīng)斷開,則在發(fā)送時(shí)就需要重新建立連接,這樣非常耗時(shí),效率比較低。為保持連接,當(dāng)網(wǎng)絡(luò)斷開時(shí)需要向發(fā)送進(jìn)程和接收進(jìn)程報(bào)告,然后重新建立TCP連接,這樣就避免了發(fā)送數(shù)據(jù)時(shí)才進(jìn)行連接,可以大大提高發(fā)送效率。在網(wǎng)絡(luò)接口設(shè)計(jì)中可以使用一種稱為“心跳”的技術(shù),規(guī)定一個(gè)時(shí)間周期(一般是2秒),定時(shí)發(fā)送一個(gè)“心跳”包,測(cè)試連接是否斷開,如果斷開,則進(jìn)行重新連接。

      1.2 端口號(hào)的分配

      在網(wǎng)絡(luò)中,不同的主機(jī)使用主機(jī)地址來(lái)唯一確定,而進(jìn)程則使用端口號(hào)來(lái)確定。一般說(shuō)來(lái),在進(jìn)行數(shù)據(jù)發(fā)送時(shí),使用一個(gè)四元組(源IP地址,源端口號(hào),目標(biāo)IP地址目標(biāo)端口號(hào))就可以唯一確定一個(gè)發(fā)送進(jìn)程和其目標(biāo)進(jìn)程。

      1.3 數(shù)據(jù)包錯(cuò)誤檢測(cè)

      在網(wǎng)絡(luò)接口中,先將用戶數(shù)據(jù)按自定義的緩沖區(qū)大小進(jìn)行分包(稱為大包),然后每個(gè)包再按照UDP包大小進(jìn)行分割(稱為小包),發(fā)送的時(shí)候使用自定義的包頭。

      整個(gè)小包長(zhǎng)1472個(gè)字節(jié),其中自定義的包頭占22個(gè)字節(jié),有效數(shù)據(jù)占1450個(gè)字節(jié)。發(fā)送方在發(fā)送數(shù)據(jù)時(shí),將用戶數(shù)據(jù)拷貝到發(fā)送緩沖區(qū)中,先進(jìn)行大包劃分,再對(duì)每個(gè)大包進(jìn)行小包劃分,最后在每個(gè)自定義的包頭中填入各個(gè)字段信息。

      其中校驗(yàn)和的計(jì)算采用將各個(gè)字符的ASCII碼值累加起來(lái),這樣在接收方就可以再次計(jì)算這個(gè)值,和包頭中的校驗(yàn)和相比較判斷出數(shù)據(jù)在傳送過(guò)程中是否發(fā)生了錯(cuò)誤。這種方法非常簡(jiǎn)單,效率也比較高,但是只能判斷錯(cuò)誤是否發(fā)生,不能糾正錯(cuò)誤。

      1.4 對(duì)收到的包的分類、排序和丟包的檢查

      在進(jìn)程通信過(guò)程中,接收方需要區(qū)分分屬不同進(jìn)程的包、進(jìn)行包的排序和丟包檢查。本文采用的方法是采用數(shù)據(jù)鏈表方式組織接收數(shù)據(jù)包,建立一個(gè)進(jìn)程數(shù)組,并為每一個(gè)不同的進(jìn)程建立一個(gè)鏈表。還需要定義一個(gè)結(jié)構(gòu)體ID,用來(lái)唯一標(biāo)識(shí)某個(gè)發(fā)送進(jìn)程,其字段信息包括源進(jìn)程、源主機(jī)號(hào)、目的進(jìn)程和目的主機(jī)號(hào)。

      由于接收緩沖區(qū)和發(fā)送緩沖區(qū)都是循環(huán)使用,在對(duì)它們進(jìn)行操作的時(shí)候,需要采取互斥訪問(wèn)的方式進(jìn)行,以免發(fā)生讀取時(shí)寫入等問(wèn)題。

      1.5 套接字I/O模型的選擇

      比較常用的套接字I/O模型包括:blocking(阻塞)、select(選擇)和completion port(完成端口)等。其中,select模型是一個(gè)應(yīng)用得比較廣泛的I/O模型,利用select函數(shù)實(shí)現(xiàn)對(duì)I/O的管理。使用select的優(yōu)勢(shì)是能夠從單個(gè)線程的多個(gè)套接字上進(jìn)行多重連接及I/O,將一個(gè)套接字分別加入到讀集(readfds)、寫集(writefds)和異常集(exceptfds)中,調(diào)用select函數(shù)就可以判斷出這個(gè)套接字的狀態(tài),然后根據(jù)套接字的狀態(tài)進(jìn)行數(shù)據(jù)接收、接收連接請(qǐng)求等操作。而且select模型在Windows平臺(tái)和UNIX平臺(tái)下都能夠使用。

      2 網(wǎng)絡(luò)接口的實(shí)現(xiàn)

      網(wǎng)絡(luò)接口實(shí)現(xiàn)采用C++語(yǔ)言來(lái)實(shí)現(xiàn),其功能都封裝在一個(gè)網(wǎng)絡(luò)接口類(net_interface)中

      (1)SDW ORD initNet(int Local_Proc_Type , int Group_Num =0, int BufferSize = 512000),該函數(shù)函數(shù)實(shí)現(xiàn)網(wǎng)絡(luò)初始化,建立網(wǎng)絡(luò)連接;

      (2)SDWORD sendData(BYTE dest_host ,B Y TE d e s t_ proc_type, char *pdata , unsigned short datalen, unsigned short type,CHAR vip_type),實(shí)現(xiàn)數(shù)據(jù)發(fā)送;

      (3)SDWORD readData (int BufSize, char *Buf),該函數(shù)接收數(shù)據(jù),將收到的數(shù)據(jù)保存在一個(gè)緩沖區(qū)中;

      3 網(wǎng)絡(luò)接口的運(yùn)用

      網(wǎng)絡(luò)接口非常簡(jiǎn)單,在準(zhǔn)備進(jìn)行數(shù)據(jù)傳送之前,實(shí)例化一個(gè)網(wǎng)絡(luò)接口類的對(duì)象,根據(jù)進(jìn)程類型和其組號(hào)調(diào)用initNet函數(shù),如果沒(méi)有錯(cuò)誤發(fā)生,就可以調(diào)用sendData和readData進(jìn)行數(shù)據(jù)發(fā)送和接收了。

      姜春強(qiáng)(1977.4-),男,漢,山東威海人,工程碩士,工程師,主要研究方向:電子技術(shù)和軟件技術(shù)。

      TP391.9

      A

      1003-5168(2015)11-001-01

      猜你喜歡
      網(wǎng)絡(luò)接口端口號(hào)發(fā)送數(shù)據(jù)
      移動(dòng)自組網(wǎng)中MAC層協(xié)議研究
      變電站網(wǎng)絡(luò)接口物理防護(hù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      在Docker容器中安裝應(yīng)用程序
      基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點(diǎn)性能分析
      帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
      淺談以java為基礎(chǔ)的Socket通信簡(jiǎn)介及實(shí)現(xiàn)
      青春歲月(2017年5期)2017-04-20 18:34:23
      使用IPSec安全傳輸數(shù)據(jù)
      淺析CTC與GSM-R系統(tǒng)網(wǎng)絡(luò)接口及路由配置改進(jìn)措施
      網(wǎng)絡(luò)設(shè)置管理
      Winsock編程在《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》教學(xué)中的應(yīng)用
      商水县| 邢台市| 临西县| 郓城县| 伊川县| 澄江县| 永善县| 桦川县| 日喀则市| 温州市| 普格县| 百色市| 织金县| 辽宁省| 乡宁县| 卓资县| 府谷县| 包头市| 辽中县| 阜平县| 上思县| 泸溪县| 尉氏县| 闽清县| 新巴尔虎左旗| 广宗县| 荥阳市| 汉阴县| 德令哈市| 武夷山市| 长春市| 大丰市| 环江| 花莲县| 尉犁县| 潜山县| 岫岩| 青川县| 文登市| 北川| 乐业县|