版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)鏈路層滑動(dòng)窗口協(xié)議設(shè)計(jì)與實(shí)現(xiàn)試驗(yàn)匯報(bào)一、試驗(yàn)任務(wù)及內(nèi)容利用所學(xué)數(shù)據(jù)鏈路層原理,設(shè)計(jì)一個(gè)滑動(dòng)窗口協(xié)議并在仿真環(huán)境下編程實(shí)現(xiàn)有噪音信道環(huán)境下可靠雙工通信。信道模型為8000bps全雙工衛(wèi)星信道,信道傳輸時(shí)延270毫秒,信道誤碼率為10-5,信道提供字節(jié)流傳輸服務(wù),網(wǎng)絡(luò)層分組長(zhǎng)度在240~256字節(jié)范圍。實(shí)現(xiàn)有噪音信道環(huán)境下無(wú)差錯(cuò)傳輸。運(yùn)行程序并檢驗(yàn)在信道沒有誤碼和存在誤碼兩種情況下信道利用率。提升滑動(dòng)窗口協(xié)議信道利用率,依據(jù)信道實(shí)際情況合理地為協(xié)議配置工作參數(shù),包含滑動(dòng)窗口大小和重傳定時(shí)器時(shí)限以及ACK搭載定時(shí)器時(shí)限。試驗(yàn)環(huán)境Windows7環(huán)境PC機(jī),MicrosoftVisualC++6.0集成化開發(fā)環(huán)境二、協(xié)議設(shè)計(jì)協(xié)議分層結(jié)構(gòu)及層服務(wù):包含物理層,數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層三層。該試驗(yàn)關(guān)鍵設(shè)計(jì)數(shù)據(jù)鏈路層協(xié)議,為實(shí)現(xiàn)有噪聲環(huán)境下高信道利用率傳輸,我們采取回退n幀(gobackn)技術(shù)協(xié)議。發(fā)送方窗口大小為31;經(jīng)過捎帶確定來完成可靠數(shù)據(jù)通信;出現(xiàn)信道誤碼造成收幀犯錯(cuò)時(shí),接收方丟棄全部后續(xù)幀,待定時(shí)器超時(shí)后發(fā)送方重發(fā)。該層提供服務(wù):從網(wǎng)絡(luò)層接收要發(fā)送數(shù)據(jù)包,將之分拆成數(shù)據(jù)幀;按一定成幀方案完成份幀,加校驗(yàn)碼,加ack等操作;進(jìn)行合適流量判定和擁塞控制;開啟定時(shí)器將之傳輸給物理層。數(shù)據(jù)幀經(jīng)信道傳送給接收方,接收方數(shù)據(jù)鏈路層實(shí)施與成幀相逆操作;處理ack信息,終止定時(shí)器(或開啟ack定時(shí)器,ack成幀傳送);判定是否為欲接收數(shù)據(jù),數(shù)據(jù)是否犯錯(cuò),提交給網(wǎng)絡(luò)層。退回N步工作原理示意圖:試驗(yàn)所形成幀(成幀方案):DATAFramen+=========+========+========+===============+========+|KIND(1)|ACK(1)|SEQ(1)|DATA(240~256)|CRC(4)|+=========+========+========+===============+========+ACKFrame+=========+========+========+|KIND(1)|ACK(1)|CRC(4)|+=========+========+========+NAKFrame+=========+========+========+|KIND(1)|ACK(1)|CRC(4)|+=========+========+========+CRC校驗(yàn)和多項(xiàng)式定義:此次試驗(yàn)采取CRC校驗(yàn)方案為CRC-32,與IEEE802.3以太網(wǎng)校驗(yàn)和生成多項(xiàng)式相同。生成多項(xiàng)式為:x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1校驗(yàn)和附加在數(shù)據(jù)幀尾部,接收方用帶校驗(yàn)和數(shù)據(jù)來邏輯除以生成多項(xiàng)式,余數(shù)為零則數(shù)據(jù)無(wú)誤碼,反之有誤碼等候發(fā)送方重傳??煽客ㄐ藕驼`碼控制方案:經(jīng)過捎帶確定來完成可靠數(shù)據(jù)通信;出現(xiàn)信道誤碼造成收幀犯錯(cuò)時(shí),接收方丟棄全部后續(xù)幀,此時(shí)發(fā)送方長(zhǎng)久接收不到確定信息,引發(fā)定時(shí)器超時(shí)后發(fā)送方重發(fā);接收方無(wú)數(shù)據(jù)傳送造成發(fā)送方無(wú)法收到捎帶確定時(shí),接收方確定定時(shí)器超時(shí),結(jié)構(gòu)一確定幀單獨(dú)傳送。三、軟件設(shè)計(jì)給出程序數(shù)據(jù)結(jié)構(gòu),模塊之間調(diào)用關(guān)系和功效,程序步驟。此次試驗(yàn)我們對(duì)go-back-N協(xié)議進(jìn)行了編寫,描述以下:數(shù)據(jù)結(jié)構(gòu):typedefenum{false,true}boolean;//blooleantypetypedefunsignedcharseq_nr;//sequenceoracknumberstypedefunsignedcharpacket[PKT_LEN];//用數(shù)組存放數(shù)據(jù)/*FRAMEkind*/#defineData1#defineAck2#defineNak3staticintphl_ready://物理層狀態(tài)next_frame_to_send;//MAX_SEQ>1;usedforoutboundstream,andinitianizenextframegoingoutack_expected;//oldestframeasyetunacknowledged,andinitianizenextackexpectedinboundframe_expected;//nextframeexpectedoninboundstream,andinitializenumberofframeexpectedinboundbuffer[MAX_SEQ+1];//buffersfortheoutboundstreamnbuffered;//outputbufferscurrentlyinuse,andinitiallynopacketsarebufferedbufferLen[MAX_SEQ+1]//bufferLen存放每個(gè)buffer中數(shù)據(jù)有效長(zhǎng)度typedefstruct{//幀結(jié)構(gòu) unsignedcharkind;seq_nrack;seq_nrseq;packetinfo;unsignedcharcrc[4];}frame;模塊結(jié)構(gòu):給出程序中所設(shè)計(jì)子程序完成功效,子程序每個(gè)參數(shù)意義。A)staticbooleanbetween(seq_nra,seq_nrb,seq_nrc)//判定b是否是在a、c之間幀B)staticvoidput_frame(unsignedchar*frame,intlen)//crc編碼并向物理層發(fā)送C)send_data(unsignedcharkind,seq_nrframe_nr,seq_nrframe_expected,packetbuffer[],intdlen[])//生成幀D)intmain()//主函數(shù),分為五個(gè)事件(1)NETWORK_LAYER_READY,事件發(fā)生后從網(wǎng)絡(luò)層讀數(shù)據(jù),成幀;若目前物理層可用,發(fā)送。(2)PHYSICAL_LAYER_READY,事件發(fā)生后,若有未發(fā)送幀,發(fā)送,不然置物理層狀態(tài)為可用。(3)DATA_INCOMING,事件發(fā)生后,來了arg個(gè)字節(jié)數(shù)據(jù),每接收一個(gè)數(shù)據(jù),判定是否為幀尾;若為幀尾,提取一幀,去掉填充,進(jìn)行校驗(yàn);若校驗(yàn)結(jié)果正確,處理ack,然后處理數(shù)據(jù)。接收完arg個(gè)字節(jié),跳出。(4)ACK_TIMEOUT,事件發(fā)生后,產(chǎn)生一個(gè)不含數(shù)據(jù)ack幀,等候直到物理層有效,發(fā)送。(5)DATA_TIMEOUT,事件發(fā)生后,重發(fā)ack_expected和next_frame_to_send之間幀。算法步驟:畫出步驟圖,描述算法關(guān)鍵步驟。結(jié)束發(fā)送完成否數(shù)據(jù)幀是否丟失A生成幀并發(fā)送,B接收幀,并返回信息是是回退重傳否連接是否成功新建A、B兩站自動(dòng)連接開始結(jié)束發(fā)送完成否數(shù)據(jù)幀是否丟失A生成幀并發(fā)送,B接收幀,并返回信息是是回退重傳否連接是否成功新建A、B兩站自動(dòng)連接開始四、試驗(yàn)結(jié)果分析(1)描述你所實(shí)現(xiàn)協(xié)議軟件是否實(shí)現(xiàn)了誤碼信道環(huán)境中無(wú)差錯(cuò)傳輸功效此協(xié)議軟件實(shí)現(xiàn)了誤碼信道環(huán)境中無(wú)差錯(cuò)傳輸功效(2)程序健壯性在較低誤碼率信道條件下,該程序運(yùn)行平穩(wěn),未出現(xiàn)任何差錯(cuò),健壯性良好,在高誤碼率信道條件下,程序運(yùn)行有時(shí)會(huì)出現(xiàn)中止,但大多數(shù)時(shí)候均運(yùn)行超出二十分鐘以上,故本程序健壯性良好,但仍有值得改善之處。(3)協(xié)議參數(shù)選擇:滑動(dòng)窗口大小為7,重傳定時(shí)器時(shí)限,ACK搭載定時(shí)器時(shí)限為300。在go_back_n協(xié)議中(假設(shè)接收方一直有數(shù)據(jù)發(fā)送,即無(wú)ack定時(shí)器超時(shí)現(xiàn)象),滑動(dòng)窗口大小M,信道傳輸時(shí)延a,發(fā)送速率c,幀大小f在滿足以下關(guān)系時(shí)信道利用率(M*(f/c)/[2a+2(f/c)])靠近100%:M>=[2a+2*(f/c)]/(f/c);因?yàn)閷?shí)際數(shù)據(jù)傳送很可能在某段時(shí)間類接收方無(wú)數(shù)據(jù)反送,包含ack幀單獨(dú)傳送問題,故通常信道利用率不可能達(dá)成100%,但M選擇最少要滿足公式。至于預(yù)防M過大問題,可經(jīng)過實(shí)際測(cè)試結(jié)果分析來得到適宜M值?;瑒?dòng)窗口大小選擇直接包含到信道利用率和數(shù)據(jù)擁塞問題;若太小,會(huì)造成信道空閑,利用率很低;若太大,數(shù)據(jù)發(fā)送過快,會(huì)造成接收方數(shù)據(jù)鏈路層來不及處理,數(shù)據(jù)物理層及信道發(fā)生擁塞現(xiàn)象造成數(shù)據(jù)丟失,犯錯(cuò)率增大,重傳率高。8000kbps信道發(fā)送256字節(jié)幀需要256*8/8000=256ms(256+270*2)/256=3.X,最大窗口應(yīng)該7就行了.重傳定時(shí)器大小由發(fā)送速率、信道時(shí)延及接收方發(fā)送頻率等確定,太小會(huì)頻繁重發(fā),太大也會(huì)降低信道利用率。結(jié)合多項(xiàng)測(cè)試最終定為ms。ack搭載定時(shí)器時(shí)限由本站發(fā)送頻率決定,首先,為了節(jié)省帶寬應(yīng)該盡可能搭載使用。其次當(dāng)本站長(zhǎng)時(shí)間無(wú)數(shù)據(jù)發(fā)送時(shí)應(yīng)該盡可能早點(diǎn)發(fā)送ack幀。經(jīng)過數(shù)項(xiàng)測(cè)試,定位300ms。(4)理論分析:無(wú)差錯(cuò)條件下分組層能取得最大信道利用率應(yīng)該是256/262*100%=97.7,而在誤碼率為1e-5情況下應(yīng)為256/262(1+262*8*0.00001)=95.5。(5)試驗(yàn)結(jié)果分析:你程序運(yùn)行實(shí)際達(dá)成了什么樣效率,比對(duì)理論推導(dǎo)給出結(jié)論,有沒有差距?給出原因。有沒有改善措施?假如沒有時(shí)間把這些方法付諸編程實(shí)施,介紹你方案。序號(hào)命令說明運(yùn)行時(shí)間(秒)效率(%)備注AB1datalinkaudatalinkbu無(wú)誤碼信道數(shù)據(jù)傳輸1957.41352.5896.972datalinkadatalinkb站點(diǎn)A分組層平緩方法發(fā)出數(shù)據(jù),站點(diǎn)B周期性交替“發(fā)送100秒,停發(fā)100秒”1525.15648.5787.693datalinkafudatalinkbfu無(wú)誤碼信道,站點(diǎn)A和B分組層都洪水式產(chǎn)生分組1586.40996.9796.974datalinkafdatalinkbf站點(diǎn)A/B分組層都洪水式產(chǎn)生分組1899.68885.7985.805datalinkaf–ber1e-4datalinkbf–ber1e-4站點(diǎn)A/B分組層都洪水式產(chǎn)生分組,線路誤碼率設(shè)為10-41028.14938.0838.60試驗(yàn)結(jié)果離預(yù)期效果存在差距,尤其在有誤碼條件下,信道利用率與理論之相比相差很大。原因有多個(gè)方面:填充字節(jié)和發(fā)送時(shí)候延遲,這首先無(wú)法縮短;信道空閑,只是因?yàn)榇翱诖笮?、重傳定時(shí)器時(shí)限和ACK搭載定時(shí)器時(shí)限選擇不是很合適,這方面,需要多做測(cè)試來確定發(fā)送端、接收端延時(shí),再確定具體數(shù)值;另外,ack發(fā)送可能有些滯后,沒有一個(gè)非常合剪發(fā)送機(jī)制。還有一點(diǎn),從網(wǎng)絡(luò)層受到數(shù)據(jù)后,我是把數(shù)據(jù)成幀后存起來,現(xiàn)在看來,考慮到ack更新,在發(fā)送時(shí)再成幀更有效率些。(6)存在問題:在“表3性能測(cè)試統(tǒng)計(jì)表”中給出了7種測(cè)試方案,在測(cè)試中你程序有沒有失敗,或者,雖未失敗,但表現(xiàn)出來性能仍有差距,你程序中還存在哪些問題?測(cè)試中沒有失敗,不過性能差距挺大。關(guān)鍵是超時(shí)時(shí)限和窗口大小問題。五、研究和探索問題1.start_timer()不是在開啟時(shí)就計(jì)時(shí),而是在物理層發(fā)送了才開始計(jì)時(shí);相對(duì),start_ack_timer()是以開啟就開始計(jì)時(shí)。前者要考慮發(fā)送緩沖區(qū)等候時(shí)間,以后者考慮是ack是否被裝到了幀上。2.重傳時(shí)限設(shè)定得比較長(zhǎng),大部分情況下都不會(huì)超時(shí)。實(shí)踐證實(shí),這種情況下效率相對(duì)更高一點(diǎn)。3.流量控制方面,首先窗口大小能夠控制。然后發(fā)送和接收緩存區(qū)大小也限制了流量。六、試驗(yàn)總結(jié)和心得體會(huì)(1)完成此次試驗(yàn)實(shí)際上機(jī)調(diào)試時(shí)間是多少?三天,第一天花了大約7小時(shí)討論程序結(jié)構(gòu)以及函數(shù)調(diào)用,第二天完成編程并調(diào)試,第三天寫文檔和性能測(cè)試,(2)編程工具方面碰到了哪些問題?包含Windows環(huán)境和VC軟件安裝問題。該試驗(yàn)要用vc++6.0,而且要在doc系統(tǒng)運(yùn)行生成exe文件。(3)編程語(yǔ)言方面碰到了哪些問題?包含C語(yǔ)言使用和對(duì)C語(yǔ)言操控能力上問題。大約沒碰到什么問題。。碰到只是部分函數(shù)調(diào)用上。(4)協(xié)議方面碰到了哪些問題?包含協(xié)議機(jī)制設(shè)計(jì)錯(cuò)誤,發(fā)覺協(xié)議死鎖,或者不能正確工作,協(xié)議參數(shù)調(diào)整等問題。成幀時(shí),開始我們幀結(jié)構(gòu)是(ack幀序號(hào)數(shù)據(jù)長(zhǎng)度數(shù)據(jù)內(nèi)容校驗(yàn)和),長(zhǎng)度在256時(shí)成了0,以后在成幀時(shí)去掉了數(shù)據(jù)長(zhǎng)度這項(xiàng)。(5)開發(fā)庫(kù)方面碰到了哪些問題?包含庫(kù)程序中BUG,庫(kù)函數(shù)文檔不夠清楚造成誤解,庫(kù)函數(shù)設(shè)計(jì)在所提供功效結(jié)構(gòu)上缺憾造成編程效率低下。這些問題或提
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學(xué)年譯林版英語(yǔ)八年級(jí)第二學(xué)期期中質(zhì)量測(cè)試卷(含答案含聽力原文無(wú)音頻)
- 文科卷一文綜試卷及答案
- 初中學(xué)生安全教育課件
- 五年級(jí)第一單元測(cè)試題-冀教版五年級(jí)上冊(cè)語(yǔ)文第一單元提升測(cè)試題及答案
- 電氣接地系統(tǒng)技術(shù)要領(lǐng)
- 2022年湖北省安全員C證考試試題含答案參考34
- 雅安石棉撒拉池110kV輸變電重建工程建設(shè)項(xiàng)目環(huán)境影響報(bào)告表
- 數(shù)控操作考試題目及答案
- 腎病科護(hù)理考試題及答案
- 腎性貧血護(hù)理試題及答案
- 高校區(qū)域技術(shù)轉(zhuǎn)移轉(zhuǎn)化中心(福建)光電顯示、海洋氫能分中心主任招聘2人備考題庫(kù)及答案詳解(考點(diǎn)梳理)
- 2026四川成都錦江投資發(fā)展集團(tuán)有限責(zé)任公司招聘18人備考題庫(kù)有答案詳解
- 2025年全國(guó)職業(yè)院校技能大賽中職組(母嬰照護(hù)賽項(xiàng))考試題庫(kù)(含答案)
- 2026江蘇鹽城市阜寧縣科技成果轉(zhuǎn)化服務(wù)中心選調(diào)10人考試參考題庫(kù)及答案解析
- 托管機(jī)構(gòu)客戶投訴處理流程規(guī)范
- 2026年及未來5年中國(guó)建筑用腳手架行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 銀行客戶信息安全課件
- (2025)70周歲以上老年人換長(zhǎng)久駕照三力測(cè)試題庫(kù)(附答案)
- 2026元旦主題班會(huì):馬年猜猜樂馬年成語(yǔ)教學(xué)課件
- 云南省楚雄州2023-2024學(xué)年上學(xué)期期末教育學(xué)業(yè)質(zhì)量監(jiān)測(cè)九年級(jí)歷史試卷(含答案)
- 凝血功能檢測(cè)方法與臨床意義
評(píng)論
0/150
提交評(píng)論