国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于無連接網(wǎng)絡(luò)的文件可靠傳輸算法

2016-06-22 09:18:06謝慧劉釗中國電子科技集團(tuán)公司第二十研究所西安710068
現(xiàn)代計算機(jī) 2016年14期
關(guān)鍵詞:緩沖區(qū)隊列報文

謝慧,劉釗(中國電子科技集團(tuán)公司第二十研究所,西安 710068)

?

基于無連接網(wǎng)絡(luò)的文件可靠傳輸算法

謝慧,劉釗
(中國電子科技集團(tuán)公司第二十研究所,西安710068)

摘要:

關(guān)鍵詞:

0 引言

目前我們所應(yīng)用的無連接傳輸層協(xié)議[2]在數(shù)據(jù)傳輸之前數(shù)據(jù)發(fā)送端與接收端無握手和協(xié)商等行為,在數(shù)據(jù)傳輸過程中亦無傳輸控制和確認(rèn)行為,對傳輸?shù)臄?shù)據(jù)沒有可靠性的保障。本文提出了一種基于不可靠無連接網(wǎng)絡(luò)的文件可靠傳輸方法,可提供高可靠性的文件傳輸服務(wù)。

1 基于無連接網(wǎng)絡(luò)可靠傳輸方式

基于無連接網(wǎng)絡(luò)的應(yīng)用層大文件可靠傳輸方式是在無連接網(wǎng)絡(luò)現(xiàn)有協(xié)議棧的基礎(chǔ)之上,通過在應(yīng)用層對文件發(fā)送的發(fā)送端和接收端進(jìn)行處理,實現(xiàn)可靠傳輸文件的功能。接收端與發(fā)送端同時連接在同一個無連接網(wǎng)絡(luò)中;且任意一個發(fā)送端可以向無連接網(wǎng)絡(luò)中出自身外的任一接收端節(jié)點發(fā)送文件。

在發(fā)送端,從文件頭開始讀取未被處理過的數(shù)據(jù),并在讀取出的數(shù)據(jù)開頭位置通過增加時間、報文索引、報文標(biāo)識位和報文長度封裝為數(shù)據(jù)分組,以保證數(shù)據(jù)分組的唯一性[1]。分裝完成的數(shù)據(jù)分組將被傳輸。在接收端,每接收到一個數(shù)據(jù)分組將會生成一個應(yīng)答報文[3],該應(yīng)答報文包含時間、報文索引、報文標(biāo)識位和報文長度。數(shù)據(jù)分組將被按照報文索引值的升序加入緩沖區(qū)內(nèi)。當(dāng)緩沖區(qū)數(shù)據(jù)分組滿足寫入條件就會寫入文件。在發(fā)送端,處理接收到的應(yīng)答報文,并且計算被應(yīng)答的報文從發(fā)出時刻到接收到應(yīng)答時刻的時間差,該時間差將作為流量控制算法計算發(fā)送分組數(shù)量的依據(jù),流量控制算法會控制數(shù)據(jù)包的發(fā)送速率。在傳輸過程中,如果有數(shù)據(jù)分組未及時接收到應(yīng)答,將會被重傳?;跓o連接網(wǎng)絡(luò)可靠傳輸示意圖見圖1。

2 文件可靠傳輸方法

文件發(fā)送端將文件中的數(shù)據(jù)讀取并封裝為數(shù)據(jù)分組,傳輸過程中發(fā)送文件采用雙隊列的方法,一個發(fā)送隊列,一個傳輸隊列。兩個隊列分別表示的含義為:發(fā)送隊列中存放了網(wǎng)絡(luò)中已經(jīng)發(fā)送,但是尚未得到反饋信息確認(rèn)的數(shù)據(jù)包;傳輸隊列中存放了需要發(fā)送的數(shù)據(jù)包。

文件傳輸時發(fā)送端與接收端首先進(jìn)行握手,確保傳輸信道的連通建立連接,將需要發(fā)送的原始文件進(jìn)行分段處理,每段數(shù)據(jù)添加數(shù)據(jù)頭并生成唯一的校驗合法性文件,將這些數(shù)據(jù)包按照順序放入發(fā)送隊列,正確傳輸?shù)綄Χ说臄?shù)據(jù)包需要反饋信息到發(fā)送端,對于丟失的數(shù)據(jù)包或者因合法性檢驗錯誤而被丟棄的數(shù)據(jù)包接收端均無需反饋信息。反饋的信息中包含了正確接受數(shù)據(jù)包的序號,數(shù)據(jù)包接收時間。每當(dāng)發(fā)送端接收到反饋信息后,會將發(fā)送隊列中相應(yīng)的數(shù)據(jù)包取出隊列。傳輸?shù)却〞r器超時后,發(fā)送隊列中的數(shù)據(jù)包就是接收端沒有正確接收的數(shù)據(jù)包,對剩余的數(shù)據(jù)包進(jìn)行再次傳輸。

圖1 基于無連接網(wǎng)絡(luò)可靠傳輸示意圖

2.1文件發(fā)送算法

首先將文件中的數(shù)據(jù)讀取并封裝為數(shù)據(jù)分組,并且發(fā)送;數(shù)據(jù)分組發(fā)送完成后,啟動定時器。定時器的等待時間twait與底層網(wǎng)絡(luò)延時tdelay和應(yīng)用層處理時間tprocess密切相關(guān),其關(guān)系由下述公式描述:

底層網(wǎng)絡(luò)延時tdelay是網(wǎng)絡(luò)特性;應(yīng)用層處理時間tprocess是指處理一段數(shù)據(jù),從封裝到發(fā)送的時延。若在定時器等待的時間內(nèi)收到所有應(yīng)答,且發(fā)送隊列已經(jīng)為空,定時器關(guān)閉;若未收到應(yīng)答,則再次發(fā)送數(shù)據(jù)。發(fā)送處理流程見圖2。

在文件不斷的發(fā)送過程中會收到相應(yīng)的應(yīng)答,通過從應(yīng)答報文頭中獲取時間信息為Tp,并且獲取當(dāng)前時刻系統(tǒng)信息為Tc,那么往返時延計算公式為:

RTTarv是平均往返時延,其初始值為0,將公式(2)計算得到的往返時延RTT將帶入下式(3),由公式(3)迭代計算得到RTTarv:

圖2 發(fā)送處理流程

根據(jù)計算出的時延對文件發(fā)送進(jìn)行流量控制,在網(wǎng)絡(luò)負(fù)載較大的時候,減小數(shù)據(jù)包的發(fā)送速率,減輕網(wǎng)絡(luò)的負(fù)載盡量不讓網(wǎng)絡(luò)出現(xiàn)擁塞而導(dǎo)致丟包;在網(wǎng)絡(luò)負(fù)載較輕時,加快數(shù)據(jù)包的發(fā)送速率,盡可能地利用帶寬。

同時獲取應(yīng)答報文頭中的索引值信息,并且用該索引值遍歷發(fā)送隊列。如果發(fā)送隊列中有數(shù)據(jù)分組的和應(yīng)答報文的索引值相同,那么將該分組從發(fā)送隊列中刪除;否則,不對發(fā)送隊列中的數(shù)據(jù)做處理。應(yīng)答處理流程見圖3。

2.2文件接收算法

當(dāng)接收到數(shù)據(jù)分組時,首先根據(jù)數(shù)據(jù)分組產(chǎn)生對應(yīng)的應(yīng)答報文,并將應(yīng)答包文封裝,封裝的信息包含:時間、報文索引、報文標(biāo)識位和報文長度。上述若干項信息中時間和報文索引來自于接收到的數(shù)據(jù)分組,報文標(biāo)識位和報文長度設(shè)置為應(yīng)答報文默認(rèn)值。封裝完成后,將該應(yīng)答報文發(fā)送。

同時處理收到的數(shù)據(jù)分組,獲取數(shù)據(jù)分組頭中的報文索引獲得索引值IN。首先判斷該索引值IN是否小于已寫入文件的最大分組索引值。如果索引值IN小于已寫入文件的最大分組索引值,繼續(xù)接收分組數(shù)據(jù);否則,將繼續(xù)判斷該索引值IN是否已經(jīng)在緩沖區(qū)內(nèi),如果該索引值IN已經(jīng)在緩沖區(qū)內(nèi),丟棄該數(shù)據(jù);否則,依據(jù)獲取數(shù)據(jù)分組頭中的索引值IN,遍歷緩沖區(qū)內(nèi)所有數(shù)據(jù)分組。當(dāng)滿足條件:Sx,Sx+1是緩沖區(qū)內(nèi)連續(xù)的兩個分組,滿足Sx.IN<IN<Sx+1.IN(x∈R),那么將接收到的數(shù)據(jù)分組將插入到Sx后;或者滿足條件Srear.IN<IN(Srear.IN是緩沖區(qū)中最后一個分組),那么將接收到的數(shù)據(jù)分組將插入到Srear后。接收處理流程見圖4。

圖3 應(yīng)答處理流程

判斷緩沖區(qū)內(nèi)的數(shù)據(jù)分組個數(shù)是否達(dá)到寫文件的門限,或加入緩沖區(qū)的分組是否為“最后一個分組”。如若上述兩個條件都不滿足,那么繼續(xù)接收數(shù)據(jù);否則將計算在緩沖區(qū)內(nèi),以第一個數(shù)據(jù)分組為開頭,將數(shù)據(jù)分組索引值按自然數(shù)升序計數(shù)且連續(xù)的數(shù)據(jù)分組個數(shù),將連續(xù)的分組個數(shù)記為CIN。

判斷如果在緩沖區(qū)內(nèi)的第一個數(shù)據(jù)分組的索引值S1.IN是否滿足條件:S1.IN==(已寫入文件的最大分組索引值)+1。繼續(xù)判斷緩沖區(qū)的最后一個數(shù)據(jù)分組是否為“最后一個分組”:

如果判斷結(jié)果為“真”,繼續(xù)判斷是否滿足條件Slast.IN-Shead.IN+1==CIN。如果結(jié)果為“真”那么以二進(jìn)制方式打開記錄文件,將緩沖區(qū)內(nèi)的數(shù)據(jù)分組以二進(jìn)制方式寫入記錄文件,待寫文件執(zhí)行完成后關(guān)閉記錄文件,然后更新已寫入文件最大分組索引值。

圖4 接收處理流程

如果判斷結(jié)果為“假”,繼續(xù)判斷是否滿足條件CIN≥緩沖區(qū)寫入文件門限。如果結(jié)果為“真”那么進(jìn)行寫文件操作。

判斷已寫入文件最大分組索引值是否等于標(biāo)記為“最后一個分組”的索引值,如果不相等表示文件沒有寫完,將緩沖區(qū)內(nèi)已寫入文件的數(shù)據(jù)分組刪除;否則表示文件以及寫完,將緩沖區(qū)內(nèi)所有數(shù)據(jù)分組刪除,然后結(jié)束。

3 結(jié)語

本文設(shè)計的基于無連接網(wǎng)絡(luò)的文件可靠傳輸方法,通過一次發(fā)送多個數(shù)據(jù)分組可以提高傳輸?shù)男?;對?shù)據(jù)分組求解往返時延可以感知底層網(wǎng)絡(luò)的擁塞狀況;流量控制算法可以自使用底層網(wǎng)絡(luò)并調(diào)整一次發(fā)送的數(shù)據(jù)分組的個數(shù),盡量避免網(wǎng)絡(luò)出現(xiàn)擁塞;對發(fā)送的數(shù)據(jù)分組必須受到應(yīng)答報文才能被認(rèn)為發(fā)送成功,可以提高傳輸過程的魯棒性。在接收端采用二進(jìn)制批量寫入文件的方式,可以減少打開和關(guān)閉文件的次數(shù),

參考文獻(xiàn):

[1]王穎.基于流的無連接網(wǎng)絡(luò)管理信息建模方法.北京郵電大學(xué)學(xué)報,2006(6).

[2]白正.基于UDP的報文可靠傳輸技術(shù)研究.網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2013(5).

[3]丁浩.一種基于C/S數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)可靠傳輸算法.計算機(jī)工程,2005,29(8)

The Algorithms of File Reliable Transmission Based on the Connectionless Network

XIE Hui,LIU Zhao
(China Electronic Technology Company No.20,Xi'an 710068)

Abstract:

Proposes an algorithm of file reliable transmission based on connectionless network,this algorithm is used on application layer of connectionless network.In order to improve the transmission efficiency,file send port will send several groups of data at one time.Across the time delay that sending form file receive port to realize the situation of network and file transmission.The floor controlling algorithms adjust the number of data group,that avoid the congestion of network and improve the reliable of file transmission.

Keywords:

提出一種基于無連接網(wǎng)絡(luò)的文件可靠傳輸算法,該算法應(yīng)用于無連接網(wǎng)絡(luò)的應(yīng)用層,文件發(fā)送端通過一次發(fā)送多個數(shù)據(jù)分組可以提高傳輸?shù)男?,并通過對文件接收端返回的數(shù)據(jù)時延感知底層網(wǎng)絡(luò)的擁塞狀況及文件傳輸情況,通過流量控制算法調(diào)整數(shù)據(jù)分組的個數(shù),避免網(wǎng)絡(luò)擁塞,提高文件傳輸?shù)目煽啃浴?/p>

可靠傳輸;流量控制;重傳

文章編號:1007-1423(2016)14-0060-04

DOI:10.3969/j.issn.1007-1423.2016.14.013

作者簡介:

謝慧(1984-),女,陜西西安人,碩士研究生,工程師,研究方向為通信技術(shù)

劉釗(1989-),男,江蘇南京人,碩士研究生,助理工程師,研究方向為軟件架構(gòu)

收稿日期:2016-03-25修稿日期:2016-05-10

Reliable Transmission;Flux Control;Retransmission

猜你喜歡
緩沖區(qū)隊列報文
嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計與實現(xiàn)
基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
汽車電器(2022年9期)2022-11-07 02:16:24
CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
隊列里的小秘密
基于多隊列切換的SDN擁塞控制*
軟件(2020年3期)2020-04-20 00:58:44
淺析反駁類報文要點
中國外匯(2019年11期)2019-08-27 02:06:30
在隊列里
豐田加速駛?cè)胱詣玉{駛隊列
ATS與列車通信報文分析
關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
南岸区| 大埔区| 山西省| 南投市| 珠海市| 宣化县| 罗江县| 大埔区| 拜泉县| 民县| 万盛区| 曲麻莱县| 虹口区| 姜堰市| 上虞市| 太仓市| 中阳县| 英超| 施秉县| 马龙县| 盐源县| 贵州省| 武义县| 历史| 长沙市| 巴林右旗| 花莲市| 百色市| 新河县| 南宁市| 元氏县| 界首市| 文昌市| 咸阳市| 双辽市| 南康市| 崇阳县| 湘阴县| 章丘市| 岳西县| 句容市|