三种arq协议c语言算法

三种arq协议c语言算法

ID:21330292

大小:39.00 KB

页数:14页

时间:2018-10-21

三种arq协议c语言算法_第1页
三种arq协议c语言算法_第2页
三种arq协议c语言算法_第3页
三种arq协议c语言算法_第4页
三种arq协议c语言算法_第5页
资源描述:

《三种arq协议c语言算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、三种ARQ协议的C语言算法自己收藏的觉得很有用故上传到百度与大家一起分享!三种ARQ协议的C语言算法一、停止等待ARQ(stop-and-waitARQ)文件名p2.c/*Protocol2(stop-and-wait)alsoprovidesforaone-directionalflowofdatafromsendertoreceiver.Thecommunicationchannelisonceagainassumedtobeerrorfree,asinprotocol1.However,thistime,thereceiverhasonlyafinitebuffercapac

2、ityandafiniteprocesingspeed,sotheprotocolmustexplicitlypreventthesenderfromfloodingthereceiverwithdatafasterthanitcanbehandled.*/typedefenum{frame_arrival}event_type;#include"protocol.h"voidsender2(void){frames;/*bufferforanoutboundframe*/packetbuffer;/*bufferforanoutboundpacket*/event_typeeve

3、nt;/*frame_arrivalistheonlypossibility*/while(true){from_network_layer(&buffer);/*gogetsomethingtosend*/s.info=buffer;/*copyitintosfortransmission*/to_physical_layer(&s);/*byebyelittleframe*/wait_for_event(&event);/*donotproceeduntilgiventhegoahead*/}}voidreceiver2(void){framer,s;/*buffersforf

4、rames*/event_typeevent;/*frame_arrivalistheonlypossibility*/while(true){wait_for_event(&event);/*onlypossibilityisframe_arrival*/from_physical_layer(&r);/*gogettheinboundframe*/to_network_layer(&r.info);/*passthedatatothenetworklayer*/to_physical_layer(&s);/*sendadummyframetoawakensender*/}}二、

5、回退N帧ARQ(go-back-nARQ)文件名p5.c/*Protocol5(pipelining)allowsmultipleoutstandingframes.ThesendermaytransmituptoMAX_SEQframeswithoutwaitingforanack.Inaddition,unlikethepreviousprotocols,thenetworklayerisnotassumedtohaveanewpacketallthetime.Instead,thenetworklayercausesanetwork_layer_readyeventwhent

6、hereisapackettosend.*/#defineMAX_SEQ7/*shouldbe2^n-1*/typedefenum{frame_arrival,cksum_err,timeout,network_layer_ready}event_type;#include"protocol.h"staticbooleanbetween(seq_nra,seq_nrb,seq_nrc){/*Returntrueif(a<=b

7、

8、((c

9、

10、((b

11、))return(true);elsereturn(false);}staticvoidsend_data(seq_nrframe_nr,seq_nrframe_expected,packetbuffer[]){/*Constructandsendadataframe.*/frames;/*scratchvariable*/s.info=buffer[frame_nr];/*insertpacketintoframe*/s.seq=frame_nr;/*inserts

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。