• 
    

    
    

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

      一種高速可靠UDP網(wǎng)絡(luò)傳輸?shù)膬?yōu)化實(shí)現(xiàn)

      2021-01-12 09:56:38
      數(shù)字通信世界 2021年7期
      關(guān)鍵詞:錯(cuò)誤率接收端字節(jié)

      宋 克

      (中國(guó)船舶集團(tuán)公司第七一五研究所,浙江 杭州 310000)

      1 概述

      在數(shù)據(jù)采集與傳輸系統(tǒng)中,數(shù)據(jù)發(fā)送端將傳感器通過(guò)高采樣率采集而來(lái)的數(shù)據(jù)包經(jīng)10Gb/s的網(wǎng)絡(luò)鏈路分發(fā)到各處理系統(tǒng),各處理系統(tǒng)基于通用CPU完成包括原始數(shù)據(jù)接收、校驗(yàn)、聚類(lèi)、編隊(duì)在內(nèi)的初步處理流程。UDP被稱(chēng)為用戶(hù)數(shù)據(jù)報(bào)傳輸協(xié)議,是一種無(wú)需建立連接便可發(fā)送數(shù)據(jù)包的方式,在阻塞、連接和尋址方面相對(duì)于傳輸控制協(xié)議(TCP)來(lái)講,更適合于本系統(tǒng)。雖然UDP報(bào)文存在傳輸過(guò)程中數(shù)據(jù)包可能丟失的問(wèn)題,但在簡(jiǎn)單網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,我們可以通過(guò)優(yōu)化實(shí)現(xiàn)基于UDP的可靠高速網(wǎng)絡(luò)數(shù)據(jù)通信。在系統(tǒng)構(gòu)建過(guò)程中,我們使用標(biāo)準(zhǔn)Linux系統(tǒng),將傳感器高采樣率采集而來(lái)的數(shù)據(jù)包通過(guò)發(fā)送端經(jīng)傳輸鏈路發(fā)送到各接收端,針對(duì)傳輸鏈路中出現(xiàn)丟包現(xiàn)象的問(wèn)題,本文提出了優(yōu)化發(fā)送端和接收端之間數(shù)據(jù)傳輸?shù)姆椒?,從而?shí)現(xiàn)了高速可靠的UDP網(wǎng)絡(luò)傳輸鏈路。

      2 UDP和TCP

      TCP和UDP均旨在提供網(wǎng)絡(luò)連接設(shè)備之間的端到端通信,根據(jù)系統(tǒng)構(gòu)建需求,我們針對(duì)以下幾個(gè)方面對(duì)TCP和UDP進(jìn)行了比較:在擁塞方面,任何網(wǎng)絡(luò)傳輸鏈路,都有可能存在擁塞的可能,并且在無(wú)法處理時(shí)可能會(huì)丟棄數(shù)據(jù)包。TCP檢測(cè)到擁塞時(shí),將降低其傳輸速率,但是在本系統(tǒng)中,發(fā)送端通常會(huì)以一個(gè)比較高的速率進(jìn)行數(shù)據(jù)發(fā)送,如果使用TCP協(xié)議,接收端的擁塞將會(huì)導(dǎo)致發(fā)送端降低數(shù)據(jù)的發(fā)送速率,這首先會(huì)導(dǎo)致數(shù)據(jù)在發(fā)動(dòng)端應(yīng)用程序的發(fā)送緩沖區(qū)進(jìn)行累計(jì)直到緩沖區(qū)滿(mǎn)并且導(dǎo)致最后數(shù)據(jù)包的丟失。在連接方面,TCP是面向連接的,而UDP是無(wú)連接的,這就意味著TCP要求必須先建立連接,然后才能傳輸數(shù)據(jù)。相反,使用UDP進(jìn)行數(shù)據(jù)傳輸不需要考慮連接狀態(tài),接收程序只要準(zhǔn)備好就將在指定的UDP端口上進(jìn)行監(jiān)聽(tīng),并在接收數(shù)據(jù)到達(dá)時(shí)進(jìn)行接收。在尋址方面,UDP數(shù)據(jù)可以通過(guò)IP廣播或IP多播進(jìn)行傳輸,這就意味著一個(gè)發(fā)送程序可以將數(shù)據(jù)傳輸給多個(gè)接收程序而無(wú)需其他的編程工作,而TCP要實(shí)現(xiàn)同樣的功能這將需要處理多個(gè)連接,將增加復(fù)雜性。所以我們首選使用UDP進(jìn)行數(shù)據(jù)傳輸,前提是我們能夠?qū)崿F(xiàn)高速傳輸?shù)目煽啃浴?/p>

      3 優(yōu)化

      3.1 較大包長(zhǎng)度

      到達(dá)接收端的數(shù)據(jù)包必須遵循幾乎恒定的處理流程,這是由中斷處理、數(shù)據(jù)校驗(yàn)、聚類(lèi)、編隊(duì)等操作造成。接收端處理數(shù)據(jù)包的數(shù)量不斷上升時(shí),數(shù)據(jù)包處理將消耗掉絕大多數(shù)的CPU資源,CPU瓶頸問(wèn)題將導(dǎo)致數(shù)據(jù)包的丟失。在當(dāng)前可利用資源下,為了獲得最佳的性能,數(shù)據(jù)包應(yīng)盡可能使用巨型幀,使用較大的以太網(wǎng)幀將明顯降低CPU額外開(kāi)銷(xiāo)。

      系統(tǒng)中的數(shù)據(jù)對(duì)于接收端并非都是有意義的,以太網(wǎng)、IP、UDP報(bào)文頭始終存在并占用網(wǎng)絡(luò)帶寬資源,當(dāng)通過(guò)UDP傳輸18字節(jié)用戶(hù)數(shù)據(jù)時(shí),將占用網(wǎng)絡(luò)帶寬上的84字節(jié)(20字節(jié)幀間距、64字節(jié)以太幀),額外開(kāi)銷(xiāo)占用比超過(guò)78%,當(dāng)發(fā)送8972字節(jié)用戶(hù)數(shù)據(jù)時(shí),將占用網(wǎng)絡(luò)上的9038字節(jié)(20字節(jié)幀間距、9018字節(jié)以太幀),額外開(kāi)銷(xiāo)占用比僅為0.73%。在系統(tǒng)中使用更大的網(wǎng)絡(luò)數(shù)據(jù)包將明顯降低網(wǎng)絡(luò)帶寬資源的額外開(kāi)銷(xiāo)。

      3.2 網(wǎng)絡(luò)緩沖區(qū)和隊(duì)列長(zhǎng)隊(duì)

      一個(gè)UDP數(shù)據(jù)包可能在數(shù)據(jù)傳輸鏈路中的任一過(guò)程中被丟棄掉:發(fā)送方,接收方,或者中間系統(tǒng)。但是對(duì)于簡(jiǎn)單的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)來(lái)說(shuō),數(shù)據(jù)包丟失主要是由以太網(wǎng)接口卡(NIC)傳輸隊(duì)列和套接字接收緩沖區(qū)引起的,通常這兩個(gè)參數(shù)都是可以通過(guò)人工設(shè)置進(jìn)行優(yōu)化的。Linux系統(tǒng)控制套接字緩沖區(qū)的主要參數(shù)是rmem_max和wmem_max,前者是UDP套接字接收緩沖區(qū)的大小,而后者是UDP套接字發(fā)送緩沖區(qū)的大小,修改系統(tǒng)核心參數(shù)外,我們也要在應(yīng)用程序中設(shè)置發(fā)送和接收緩沖區(qū),我們使用 int setsockopt(int sockfd, int level,int optname,const void *optval, socklen_t optlen) 函 數(shù)來(lái)進(jìn)行控制。此外,對(duì)系統(tǒng)層級(jí)netdev_max_backlog和txqueuelen參數(shù)進(jìn)行了修改。以太網(wǎng)適配器的MTU為9000,允許發(fā)送有效包長(zhǎng)度在8972字節(jié)的報(bào)文。

      3.3 核心鎖定

      現(xiàn)代CPU嚴(yán)重依賴(lài)高速緩存來(lái)實(shí)現(xiàn)性能,這些緩存中有些是指令和數(shù)據(jù)之間共享,有些是專(zhuān)用的。為了確保發(fā)送和接收應(yīng)用程序始終使用相同的緩存,我們將“鎖定”應(yīng)用程序到特定的核心。為此,我們使用Linux命令taskset()。這樣可以防止應(yīng)用程序進(jìn)程遷移至其他內(nèi)核,從而導(dǎo)致中斷在數(shù)據(jù)處理中,但這不能夠阻止其他進(jìn)程交換到這一核心上。

      4 過(guò)程與結(jié)論

      試驗(yàn)中,發(fā)送端和接收端使用短單模光纖通過(guò)10Gb/s的以太交換機(jī)進(jìn)行連接,發(fā)送端保持硬件資源允許范圍內(nèi)的最大數(shù)據(jù)包發(fā)送速率進(jìn)行400GB數(shù)據(jù)的UDP傳輸試驗(yàn)。在試驗(yàn)測(cè)試中,數(shù)據(jù)發(fā)送端和接接收端均修改以太網(wǎng)卡的最大傳輸單元(MTU),允許傳輸U(kuò)DP巨型幀;發(fā)送端和接收端應(yīng)用程序都使用setsocketopt()來(lái)調(diào)整發(fā)送和接收緩沖區(qū)大小;數(shù)據(jù)發(fā)送端應(yīng)用程序?qū)?shù)據(jù)包序列號(hào)包含到UDP數(shù)據(jù)報(bào)文中,從而允許接收端檢測(cè)數(shù)據(jù)包丟失計(jì)算丟包率;發(fā)送端和接收端均使用taskset()函數(shù)將應(yīng)用程序鎖定到特定的CPU核心上。

      經(jīng)過(guò)試驗(yàn)測(cè)試,最終的結(jié)果涵蓋了用戶(hù)數(shù)據(jù)速率、數(shù)據(jù)包錯(cuò)誤率和CPU負(fù)載等測(cè)量結(jié)果,我們得到以下結(jié)論:數(shù)據(jù)速率方面:當(dāng)使用較小數(shù)據(jù)包時(shí),因發(fā)送端CPU負(fù)荷瓶頸問(wèn)題,數(shù)據(jù)包率有限,實(shí)際數(shù)據(jù)帶寬小于10Gb/s的理論帶寬,隨著使用較大的數(shù)據(jù)包,數(shù)據(jù)帶寬逐漸接近于理論帶寬并達(dá)到帶寬上限。數(shù)據(jù)包錯(cuò)誤率及CPU負(fù)載方面:當(dāng)使用系統(tǒng)默認(rèn)發(fā)送和接收緩沖區(qū)時(shí),數(shù)據(jù)包的錯(cuò)誤率較高,當(dāng)調(diào)整發(fā)送和接收緩沖區(qū)大小后,數(shù)據(jù)包的錯(cuò)誤率得到明顯降低;使用較小數(shù)據(jù)包時(shí),接收端處理數(shù)據(jù)包的數(shù)量不斷上升,足夠多的數(shù)據(jù)包處理將消耗掉絕大多數(shù)的CPU資源,CPU瓶頸問(wèn)題將導(dǎo)致數(shù)據(jù)包的丟失,隨著使用較大的數(shù)據(jù)包時(shí),接收端CPU負(fù)載降低,數(shù)據(jù)包錯(cuò)誤率下降。

      猜你喜歡
      錯(cuò)誤率接收端字節(jié)
      限制性隨機(jī)試驗(yàn)中選擇偏倚導(dǎo)致的一類(lèi)錯(cuò)誤率膨脹*
      基于擾動(dòng)觀察法的光通信接收端優(yōu)化策略
      No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
      頂管接收端脫殼及混凝土澆筑關(guān)鍵技術(shù)
      一種設(shè)置在密閉結(jié)構(gòu)中的無(wú)線(xiàn)電能傳輸系統(tǒng)
      新能源科技(2021年6期)2021-04-02 22:43:34
      基于多接收線(xiàn)圈的無(wú)線(xiàn)電能傳輸系統(tǒng)優(yōu)化研究
      No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
      簡(jiǎn)談MC7字節(jié)碼
      正視錯(cuò)誤,尋求策略
      教師·中(2017年3期)2017-04-20 21:49:49
      解析小學(xué)高段學(xué)生英語(yǔ)單詞抄寫(xiě)作業(yè)錯(cuò)誤原因
      高陵县| 神木县| 聊城市| 乃东县| 墨脱县| 当涂县| 大悟县| 新泰市| 腾冲县| 吐鲁番市| 云阳县| 永胜县| 云南省| 阿坝县| 永川市| 崇左市| 阿拉尔市| 吉木萨尔县| 临泽县| 田东县| 清水县| 永仁县| 枣阳市| 永川市| 基隆市| 北流市| 嘉黎县| 赤壁市| 章丘市| 运城市| 温宿县| 鹤山市| 上饶市| 奈曼旗| 靖西县| 富宁县| 依兰县| 井研县| 安国市| 丰城市| 石阡县|