




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、加密算法des算法模擬于洋洋目錄摘要21緒論22系統(tǒng)分析22.1功能需求22.2數(shù)據(jù)需求32.3性能需求33總體設(shè)計(jì)33.1功能模塊設(shè)計(jì)34詳細(xì)設(shè)計(jì)44成員函數(shù)定義44.2初始化數(shù)據(jù)幀模塊64.3發(fā)送數(shù)據(jù)幀模塊74.4接收數(shù)據(jù)幀模塊95調(diào)試與測(cè)試105.1調(diào)試105.2測(cè)試106結(jié)論11結(jié)束語(yǔ)11參考文獻(xiàn)11附錄1 一用戶手冊(cè)12附錄2源程序14arq協(xié)議實(shí)現(xiàn)摘要自動(dòng)克傳請(qǐng)求(automatic rcpcat-request, arq)是0si模型中數(shù)據(jù)鏈路 層的錯(cuò)誤糾正協(xié)議之一。它包括停止等待arq協(xié)議和連續(xù)arq協(xié)議,錯(cuò)誤偵測(cè) (error detection)、正面確認(rèn)(positive
2、 acknowledgment)、逾時(shí)重傳 (retransmission after timeout)與負(fù)面確認(rèn)繼以重傳(negative acknowledgment and retransmission)等機(jī)制。本系統(tǒng)使用了 c+作為開(kāi)發(fā)語(yǔ)言,實(shí)現(xiàn)了方便快捷,全面等優(yōu)點(diǎn)。實(shí)現(xiàn)了 arq 協(xié)議的模擬。本文分別從需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、測(cè)試等各個(gè)方面詳細(xì)介紹了系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,最后對(duì)系統(tǒng)的完成情況進(jìn)行了總結(jié)。關(guān)鍵詞:arq;c+1緒論如果在協(xié)議中,發(fā)送方在準(zhǔn)備下-個(gè)數(shù)據(jù)項(xiàng)忖之前先等待-個(gè)肯定的確認(rèn), 則這樣的協(xié)議稱為 par (positive acknowledgement wi
3、th retransmission,支 持重傳的肯定確認(rèn)協(xié)議)或者arq (automatic repeat request,自動(dòng)重復(fù)請(qǐng)求 協(xié)議)。口動(dòng)重傳請(qǐng)求(automatic repeat request),通過(guò)接收方請(qǐng)求發(fā)送方 重傳出錯(cuò)的數(shù)據(jù)報(bào)文來(lái)恢復(fù)出錯(cuò)的報(bào)文,是通信屮用于處理信道所帶來(lái)差錯(cuò)的方 法之一,有時(shí)也被稱為后向糾錯(cuò)(backward error correction, bec);另夕卜一 個(gè)方法是信道糾錯(cuò)編碼。根據(jù)課程設(shè)計(jì)任務(wù)書要求,本系統(tǒng)開(kāi)發(fā)主要完成以下功能和性能。(1) 顯示發(fā)送方和接收方的事件;(2) 顯示緩沖區(qū)內(nèi)容;(3) 可以模擬網(wǎng)絡(luò)環(huán)境:2系統(tǒng)分析2.1功能需求
4、停止等待協(xié)議arq比較簡(jiǎn)單,但信道利用率不高。為了克服這一缺點(diǎn),就產(chǎn)生了另外兩種協(xié)議,即連續(xù)arq和選擇重傳arqo連續(xù)arq的要點(diǎn)就是在發(fā)送完一個(gè)數(shù)據(jù)幀厲,不是停下來(lái)等待應(yīng)答幀,而是 可以連續(xù)再發(fā)送若干個(gè)數(shù)據(jù)幀。如果這時(shí)收到了收方發(fā)來(lái)的確認(rèn)幀,那么還可以 接著發(fā)送數(shù)據(jù)幀。由于減少了等待時(shí)間,整個(gè)通信的吞吐量就提高了。但是,收 方只按序接收數(shù)據(jù)幀,如果收到有差錯(cuò)的某幀z后接著乂收到了正確的兒個(gè)數(shù)據(jù) 幀,都必須將它們?nèi)縼G棄;而發(fā)方在垂傳時(shí),又必須把原來(lái)已正確傳送過(guò)的數(shù) 據(jù)幀進(jìn)行重傳(僅因?yàn)檫@些數(shù)據(jù)幀z前有一個(gè)數(shù)據(jù)幀出了錯(cuò))。這種做法乂使傳 送效率降低。由此可見(jiàn),若傳輸信道的傳輸質(zhì)量很差因而誤碼
5、率較大時(shí),連續(xù) arq不一定優(yōu)于停止等待協(xié)議。為了進(jìn)一步提高信道的利用率,可設(shè)法只重傳出現(xiàn)差錯(cuò)的數(shù)據(jù)幀或者是 定時(shí)器超時(shí)的數(shù)據(jù)幀。但這時(shí)必須加大收方的緩沖區(qū),以便先收下發(fā)送序號(hào)不連 續(xù)但仍處在緩沖區(qū)中的那些數(shù)據(jù)幀。等到所缺序號(hào)的數(shù)據(jù)幀收到后再一并送交主 機(jī)。這就是選擇重傳arq協(xié)議。使用選擇重傳arq協(xié)議可以避免重復(fù)傳送那些本 來(lái)已經(jīng)正確到達(dá)收方的數(shù)據(jù)幀。但我們付出的代價(jià)是在接收端要設(shè)置具有相當(dāng)容 量的緩沖空間,這在許多情況下是不夠經(jīng)濟(jì)的。正因?yàn)槿绱耍x擇重傳arq協(xié)議 在口前就遠(yuǎn)沒(méi)有連續(xù)arq協(xié)議使用得那么廣泛。2.2數(shù)據(jù)需求本實(shí)驗(yàn)無(wú)需用戶輸入用戶,實(shí)際數(shù)據(jù)已在代碼屮設(shè)計(jì)好,會(huì)在實(shí)驗(yàn)現(xiàn)彖中體
6、 現(xiàn)岀來(lái)。2.3性能需求系統(tǒng)安全性良好,可靠性良好,穩(wěn)定性良好,反映速度較快,在運(yùn)行程序時(shí) 只耍按照正確的操作方法不會(huì)出現(xiàn)無(wú)法運(yùn)行的情況,系統(tǒng)穩(wěn)沱性好,安全,可靠。3總體設(shè)計(jì)31功能模塊設(shè)計(jì)圖1功能模塊圖(1) 初始化數(shù)據(jù)幀該模塊主耍通過(guò)for循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)幀的初始化。(2) 發(fā)送數(shù)據(jù)幀該模塊是通過(guò)運(yùn)用多重for循環(huán)語(yǔ)句、if語(yǔ)句、while語(yǔ)句等來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù) 幀的發(fā)送、暫停發(fā)送以及重新發(fā)送。(3) 接收數(shù)據(jù)幀該模塊首先判斷發(fā)送來(lái)的數(shù)據(jù)幀是否丟失來(lái)確泄發(fā)送確認(rèn)幀還是否認(rèn)幀,然 后,在判斷數(shù)據(jù)幀的正確性。4詳細(xì)設(shè)計(jì)4.1成員函數(shù)定義struct buffer/數(shù)據(jù)緩沖區(qū)intpre;int
7、nr;intdata;intfcs;inteot;intack nak;buffer buf:struct sframe/發(fā)送方的幀格式intpre;intnr;intdata;intfcs;inteot;;sframe s10;struct rframe/接收方的幀格式intpre;intns;intack_nak;intfcs;inteot;4-2初始化數(shù)據(jù)幀模塊該模塊主要通過(guò)for循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)幀的初始化。y結(jié)束圖2初始化數(shù)據(jù)幀模塊4.3發(fā)送數(shù)據(jù)幀模塊該模塊是通過(guò)運(yùn)用多重for循環(huán)語(yǔ)句、if語(yǔ)句、while語(yǔ)句等來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù) 幀的發(fā)送、暫停發(fā)送以及重新發(fā)送。int i =0; vs
8、 =0; int n .second = 0;int counter =0;i <= 4ready = 1; dir = 1;k2<500counter <2000 | seco nd = 1recive(i)1ready =0 &&dir =0r(i.ack_nak =buf.ack nak圖3發(fā)送數(shù)據(jù)幀模塊4.4接收數(shù)據(jù)幀模塊該模塊首先判斷發(fā)送來(lái)的數(shù)據(jù)幀是否丟失來(lái)確泄發(fā)送確認(rèn)幀還是否認(rèn)幀,然后,在判斷數(shù)據(jù)幀的正確性。vr =0:t=1 check = buf.fcscheck =si|.nr !=vrcout«-消息丟失. 發(fā)送呦認(rèn)慟否認(rèn)幀
9、171;endl: buf.ack_nak = 2; si.nr = vr; ready =0; dir=0;count+:圖4接收數(shù)據(jù)幀模塊5調(diào)試與測(cè)試5.1調(diào)試調(diào)試是軟件開(kāi)發(fā)過(guò)程屮的一個(gè)重要環(huán)節(jié),也是最復(fù)雜,對(duì)軟件開(kāi)發(fā)者來(lái)說(shuō)也 是最艱巨的任務(wù)。調(diào)試的任務(wù)是及時(shí)改正測(cè)試過(guò)程中發(fā)現(xiàn)的軟件錯(cuò)誤。具體地說(shuō), 調(diào)試過(guò)程由兩個(gè)步驟組成,它從表示程序中存在錯(cuò)誤的某跡象開(kāi)始,首先確定錯(cuò) 誤的準(zhǔn)確位置,也就是找出哪個(gè)模塊或哪個(gè)語(yǔ)句引起的錯(cuò)誤。然后仔細(xì)研究推斷 代碼以確定問(wèn)題的原因,并設(shè)法改正。調(diào)試過(guò)程主要是運(yùn)行編制好的程序,然后遇到錯(cuò)誤后根據(jù)系統(tǒng)的提示,找到 相關(guān)的問(wèn)題所在。本系統(tǒng)調(diào)試過(guò)程中遇到問(wèn)題、原因和
10、解決方法如下而介紹:?jiǎn)栴}:本程序在運(yùn)行時(shí)岀現(xiàn)一個(gè)錯(cuò)誤原因:后多次查找原因,發(fā)現(xiàn)是for循環(huán)語(yǔ)句的嵌套方法使用錯(cuò)誤。更改:把對(duì)應(yīng)的括號(hào)填上,多余的去掉。5.2測(cè)試測(cè)試是在完成某一部分功能和全部功能后,根據(jù)功能和性能的需求,看看系 統(tǒng)有沒(méi)有實(shí)現(xiàn)要求屮的功能,是否達(dá)到性能要求。對(duì)于功能,至少需要列出兩組 數(shù)據(jù)一一組正確和一組錯(cuò)誤,跟蹤這兩組數(shù)據(jù)測(cè)試各個(gè)功能的過(guò)程和結(jié)果。如 果給出正確的數(shù)據(jù),系統(tǒng)各功能能夠完全實(shí)現(xiàn),給出錯(cuò)誤或不符合要求的數(shù)據(jù), 系統(tǒng)能夠有出錯(cuò)處理的機(jī)制,則說(shuō)明系統(tǒng)的各個(gè)功能實(shí)現(xiàn)良好,并且有良好的健 壯性,不會(huì)因?yàn)檩斎脲e(cuò)誤數(shù)據(jù)而死機(jī)或退出。對(duì)于一些要求實(shí)時(shí)性,安全性等性 能要求的程序,
11、同樣需要給出測(cè)試的工具、方法、過(guò)程,結(jié)果軟件測(cè)試是軟件生存期中的一個(gè)重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟從用 戶的角度來(lái)看,普遍希望通過(guò)軟件測(cè)試暴露軟件屮隱藏的錯(cuò)誤和缺陷,所以軟件 測(cè)試應(yīng)該是“為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程” o或者說(shuō),軟件測(cè)試應(yīng)該根據(jù)軟 件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù) 據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤或 缺陷。過(guò)度測(cè)試則會(huì)浪費(fèi)許多寶貴的資源。到測(cè)試后期,即使找到了錯(cuò)誤,然而 付出了過(guò)高的代價(jià)。經(jīng)運(yùn)行程序后證實(shí),輸出功能測(cè)試與預(yù)想一樣6結(jié)論經(jīng)過(guò)一段時(shí)間我的arq協(xié)議實(shí)現(xiàn)課程設(shè)計(jì)完成了,但只能說(shuō)是粗略的完成
12、 to雖然說(shuō)還存在一些不足的地方,但基本實(shí)現(xiàn)了任務(wù)書上的所有要求。它顯示 緩沖區(qū)內(nèi)容,不足的是未實(shí)現(xiàn)配置幀的丟失概率,出錯(cuò)概率,傳輸發(fā)送的時(shí)延的 功能,總而言之,本程序完成了 arq協(xié)議實(shí)現(xiàn)設(shè)計(jì)的基本要求,可以正確,獨(dú) 立的運(yùn)行岀來(lái)。結(jié)束語(yǔ)通過(guò)這次的課程設(shè)計(jì)使我們對(duì)所學(xué)知識(shí)有了更好的理解,也增強(qiáng)了大家的動(dòng) 手能力。同時(shí)也發(fā)現(xiàn)了口己的很多不足之處,對(duì)知識(shí)的應(yīng)用能力很是欠缺,應(yīng)用 軟件的能力及編程水平與課程要求更是存在很大的差距。程序的運(yùn)行結(jié)杲與理論推導(dǎo)結(jié)杲完全吻合。該程序的主耍優(yōu)點(diǎn)是簡(jiǎn)單易懂, 不存在理解上的障礙,也很自然地能想到這種解法。主要缺點(diǎn)是程序的變動(dòng)性比 較差。如果能加入用戶登入,手動(dòng)
13、輸入等操作,我想應(yīng)該會(huì)更好很多,但由于時(shí) 間等諸多方面的原因在這就不多做論述了。參考文獻(xiàn)1 廉文姐網(wǎng)絡(luò)操作系統(tǒng)北京郵電大學(xué)出版社,20082 呂鳳翥.c+語(yǔ)言基礎(chǔ)教程.清華大學(xué)出版社,2007附錄1 一用戶手冊(cè)點(diǎn)擊運(yùn)仃。出現(xiàn)界面,如圖5所示。腳般認(rèn)幀菠送成功,準(zhǔn)備發(fā)送下一個(gè)? 鶴薩一waglbbf檢見(jiàn)差錯(cuò),需要重新發(fā)送isi笛但i 送數(shù) 已接幀認(rèn) 幀丄否 ® 幀乍確 制收 翱接 送薯送等待接收數(shù)據(jù)!已接幀2奇 晝g; 會(huì)認(rèn) 幀爛il 簡(jiǎn)收 翱接 送垮功 成 送準(zhǔn)備發(fā)送下一個(gè),辭i呷 廷寸!需要重新發(fā)送!已接挈-30gj.5ij緩沖區(qū)?圖5程序運(yùn)行界面附錄2源程序#include<
14、;iostream>using namespace std;void recive(int i);int ready,dir;/ready =1 就緒信號(hào),dir = 1 方向int vs =0;int vr =0;int count =0;struct buffer/數(shù)據(jù)緩沖區(qū)int pre;int nr;int data;int fcs;int eot;int ack_nak;;buffer buf;struct sframe/發(fā)送方的幀格式int pre;int nr;int data;int fcs;int eot;;sframe s10;stru ct rframe/接收方的幀
15、格式int pre;int ns;int ack_nak;int fcs;int eot;;rframe rlloj;int getdata 10,check;int crc(int i)/檢驗(yàn)函數(shù)switch(i)case 0: return 0;break;case 1: return 6;break;case 2: return 2;break;case 3: return 3;break;case 4: return 4;break;void initiaio/初始化數(shù)據(jù)幀for(int i =0; i<=9; i+)si.pre = 0;sij.eot =00000100 ;s
16、i.data = i;si.fcs= i;for(int j=0; jv=9;j+) 初始化getdatafjl = 0;ready = 0;void send()int i =0; vs =0;int n ,second = 0;int counter =0;while(i <= 4)cout«*-數(shù)據(jù)已發(fā)送到緩沖區(qū)!"«endl;buf.data = si.data;buf.eot = slij.eot;buf.fcs = si.fcs;buf.nr = si.nr;buf.pre = si.pre;si.nr = vs;cout«"
17、等待接收數(shù)據(jù)! h«endl;cout«".*'«endl;for(int k =0; k<1000; k+)for(intkl =0; klvl000;kl+) for(int k2 =0; k2<500; k2+) ready = 1; dir = 1;if( i = 3)n = 2001;elsen = 10;for(int j 二0; jvn;j+)counter+;if(counter <2000 ii second = 1)recive(i);if(ready =0 && dir =0)ri.ack_
18、nak= buf.ack_nak;if(rlij.ack_nak= 1)/發(fā)送成功,發(fā)送下一個(gè)cout« ”等待接收確認(rèn)幀/否認(rèn)幀” vvendl;cout«h."«endl;vs = 1 - vs;cout«h發(fā)送成功,準(zhǔn)備發(fā)送下一個(gè)!"«endl;cout«""«endl;i+;else if(ri.ack_nak = 0 )出現(xiàn)差錯(cuò)重新發(fā)送coutvv”等待接收確認(rèn)幀/否認(rèn)幀"«endl;cout«n.n«endl;coutvv”出現(xiàn)差錯(cuò),需要重新發(fā)送h«endl;cout«nn«endl;else if(ri.ack_nak = 2)coutvv”數(shù)據(jù)丟失,需要重新發(fā)送n«endl;cout«""«endl;else if( counter >= 2000)cout«n超時(shí)!需要重新發(fā)送! n«endl;cout«nn&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 可行性研究報(bào)告合作
- 農(nóng)業(yè)項(xiàng)目可行性研究報(bào)告怎樣寫
- 太陽(yáng)能光伏并網(wǎng)發(fā)電廠家
- 教育行業(yè)學(xué)生評(píng)估與反饋預(yù)案
- 汽車行業(yè)智能汽車研發(fā)與制造流程優(yōu)化方案
- 跨境電商系統(tǒng)建設(shè)
- 物流項(xiàng)目報(bào)告
- 交通卡口監(jiān)控系統(tǒng)維護(hù)方案
- 旅游酒店行業(yè)的智能化客房服務(wù)系統(tǒng)開(kāi)發(fā)方案
- 三農(nóng)特色種植技術(shù)手冊(cè)
- 大客戶銷售培訓(xùn)
- 生物化學(xué)與分子生物學(xué)實(shí)驗(yàn)(終版)
- 細(xì)胞內(nèi)蛋白質(zhì)的分選和運(yùn)輸細(xì)胞生物學(xué)-1
- 高血壓健康宣教-飲食課件
- 八年級(jí)-現(xiàn)在完成時(shí)復(fù)習(xí)(共26張)課件
- 電氣基礎(chǔ)知識(shí)培訓(xùn)要點(diǎn)課件
- 福建省泉州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 基坑工程施工驗(yàn)收記錄表
- GB∕T 37045-2018 信息技術(shù) 生物特征識(shí)別 指紋處理芯片技術(shù)要求
- 瀝青項(xiàng)目運(yùn)營(yíng)方案參考范文
- 商品混凝土項(xiàng)目園區(qū)審批申請(qǐng)報(bào)告(范文參考)
評(píng)論
0/150
提交評(píng)論