2023年计算机网络选择重传协议实验报告.docx
《2023年计算机网络选择重传协议实验报告.docx》由会员分享,可在线阅读,更多相关《2023年计算机网络选择重传协议实验报告.docx(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机网络选择重传协议实验报告1.实验内容和实验环境描述实验内容:运用所学数据链路层原理,设计一个滑动窗口协议,在仿真环境下编程实现有噪音信道环境下两站点之间无差错双工通信。信道模型为8000bps 全双工卫星信道,信道传播时延270毫秒,信道误码率为10-5,信道提供字节流传输服务,网络层分组长度固定为256字节。实验环境:Windows764位操作系统PC机VC 6.02.协议设计数据结构:数据帧 +=+=+=+=+=+ | KIND(1) | SEQ(1) | ACK(1) | DATA(240256) | CRC(4) | +=+=+=+=+=+ 确认帧 +=+=+=+ | KIND(
2、1) | ACK(1) | CRC(4) | +=+=+=+ 否认确认帧 +=+=+=+ | KIND(1) | ACK(1) | CRC(4) | +=+=+=+KIND:表达帧的类别ACK:ACK序列号 SEQ:帧序列号 CRC:校验和模块结构:static inc(Uchar* a)作用:使一个字节在0MAX_SEQ的范围内循环自增。参数:a,字节类型。static between(Uchar a,Uchar b,Uchar c)作用:判断当前帧是否落在发送/接受窗口内。参数:a,b,c,均为字节类型,其中两个分别为窗口的上、下界,一个为帧的编号。其中,发送窗口的上界和下界分别为next
3、_to_send和ack_expected,接受窗口的上界和下界分别为too_far和frame_expected,均定义在main函数中。static void put_frame(unsigned char *frame, int len)作用:为一个帧做CRC校验,填充至帧的尾部并将其递交给网络层发送。参数:frame,字节数组,由除padding域之外的帧内容转换而来;len,整型,为帧的当前长度。static send_frame_(Uchar fk,Uchar next_frame,Uchar frame_expected,Packet out_buf)作用:构造一个帧,并将其发送
4、。参数:fk,字节类型,为帧的内容;next_frame,字节类型,为帧的编号;frame_expected,字节类型,为希望收到的帧的编号;out_buf,二维字节数组,为缓冲区。int main(int argc,char *argv)作用:主程式,包含选择重传协议的算法流程。参数:argc,整型,表达命令行参数的个数;argv,二维字符数组,表达参数内容。算法流程:StartSwctihAck timeoutData timeoutData comingNetwork layerreadyPhy-layerreadyMake ack frameReset ack_numCount csc
5、Find frame-endGet packet()Send this frameNext_send=ack_expectedGet_num0Send_data()Csc=0?YPhy ready?breakPhy ready?Send frame NYNS_seq=frameExpect?YYSend framePhy_ready=1Sent frameY NPut_packet()NGet_num=nbufferedbreakBreakDeal with acknumberbreakIn_len=1Nbufferedmax_seqDisablenetworkEnablenetwork(a)
6、物理层:为数据链路层提供的服务为8000bps,270ms传播延时,10-5误码率的字节流传输通道。为了仿真实现上述服务质量的信道,运用在同一台计算机上TCP Socket完毕两个站点之间的通信。由于同一台计算机上TCP通信传播时延短、传播速度快、没有误码,物理层仿真程序在发送端运用“令牌桶”算法限制发送速率以仿真8000bps线路;在接受端误码插入模块运用一个伪随机数“随机地”篡改从TCP收到的数据,使得所接受到的每个比特出现差错的概率为10-5;接受到的数据缓冲后延时270ms才提交给数据链路层程序,以仿真信道的传播时延特性。为了简化程序,省略了成帧功能,数据链路层运用接口函数send_f
7、rame()和recv_frame()发送和接受一帧。(b)数据链路层:发送方和接受方都维持一个窗口,窗口内部为可以接受的序列号。接受到的数据包被缓存起来,当按对的的顺序接受完毕后再提交给网络层。ACK信息通过数据帧捎带确认的方式传递,若碰到长时间无数据帧发送,则产生ACK超时事件(ACK_TIMEOUT),积极发送空的ACK帧。若长时间未收到ACK信息,则产生数据帧超时事件(DATA_TIMEOUT),发送方自动重传未确认帧;当出现帧丢失或校验错误时,接受方会积极发送NAK帧提醒发送方立即重传。数据链路层通过物理层提供的函数来运用物理层提供的服务。通过get_packet()函数从网络层得到
8、一个分组;当数据链路层成功接受到一个分组后,通过put_packet()函数提交给网络层。(c)网络层:运用数据链路层提供的“可靠的分组传输”服务,在站点A与站点B之间互换长度固定为256字节的数据分组。网络层把产生的分组交付数据链路层,并接受数据链路层提交来的数据分组。3.结果分析(1) 描述你所实现的协议软件是否实现了有误码信道环境中无差错传输功能。 我们的协议成功实现了有误码信道环境中无差错传输功能。假如收到一个损坏帧,在尚未发送否认拟定的情况下,则捎带发送否认确认。并打印错误报告。假如已发送否认确认,则只打印错误报告,不反复发送否认确认。(2) 程序的健壮性如何,能否可靠地长时间运营。
9、我们的程序成功连续运营半小时以上,并取得预定效果。具有足够的健壮性。 (3) 协议参数的选取:滑动窗口的大小,重传定期器的时限,ACK 搭载定期器的时限,这些参数是 如何拟定的?根据信道特性数据,分组层分组的大小,以及你的滑动窗口机制,给出定量分析,具体列 举出选择这些参数值的具体因素。 我们物理层提供的是字节流传输服务,使用字节填充技术成帧,分组长度为256字节。为了避免在有犯错帧接受方规定重传时产生二义性,我们定义窗口大小为2n-1,并且双方的窗口大小均为(MAX_SEQ+1)/2),这样的大小足够使用又不会有过于富余的空间浪费。滑动窗口的大小直接涉及到信道运用率和数据拥塞问题,若太大,数
10、据发送过快将产生拥塞导致数据丢失,犯错率增长,若太小则信道运用率减少,通过实验测试合适的窗口大小为16。重传定期器时限涉及到重传的响应时间,太小会导致频繁重传,太大则重传等待时间太久,通过我们的实验测试,选取重传定期器时限定为3000毫秒,ACK 搭载定期器的时限为1000毫秒最合适。(4)理论分析:根据所设计的滑动窗口工作机制(Go-Back-N 或者选择重传),推导出在无差错信道环境下分组层能获得的最大信道运用率;推导出在有误码条件下重传操作及时发生等抱负情况下分组层能 获得的最大信道运用率。给出理论推导过程。理论推导的目的是得到信道运用率的极限数据。为了简化 有误码条件下的最大运用率推导
11、过程,可以对问题模型进行简化,比如:假定超时重传的数据帧的回馈 ACK 帧可以 100%对的传输,但是简化问题分析的这些假设必须不会对整个结论产生较大的误差。由于需要携带帧信息,所以最大信息运用率为,由于数据链路层提供的服务为8000bps,所以每传输一个字节耗时1ms,每帧的附加信息固定为10,耗时10ms,若出现转义字符还将增长时间。简化模型,假设信道上始终有数据需要传输。则在误码率为的信道上,100000个比特可发送个数据包,即每传送48个数据包将有1个犯错。假设在限定期间内可以重传的该帧为对的帧,则每传送48个数据包需传送48+1+1=50次。所以信道运用率为而由于程序设计因素,当一个
12、数据包超时后,经常需要重传多次导致信道浪费。若重传k次,则信道运用率为若重传10次,信道运用率为78.18%。若信道误码率为,则,即大约每5个帧就有一个犯错,此时在ESC/FLAG模式下平均250个字符需要两倍的传输空间即极限值510,若平均每个错帧重传10次信道运用率的极值为(5) 实验结果分析:你的程序运营实际达成了什么样的效率,比对理论推导给出的结论,有没有差 距?给出因素。有没有改善的办法?假如没有时间把这些方法付诸编程实行,介绍你的方案。 由实验结果可以看出,窗口大小是16时信道运用率最高,与理论最大值最接近。与理论窗口最佳值一致。在洪泛模式下,信道运用率与理论值接近。而在其他情况下
13、负载有时较轻,所以信道运用率相比理论值较低。(6) 存在的问题:在“表 3 性能测试登记表”中给出了几种测试方案,在测试中你的程序有没有失 败,或者,虽未失败,但表现出来的性能仍有差距,你的程序中还存在哪些问题?实验顺利进行,每次测试得到的数据都比较接近,但和理论值相比信道运用率较低,这与信道的负载有关。实验结果:测试最佳窗口尺寸:窗口大小为16, DATA_TIMER 3000, ACK_TIMER 1000序号命令说明运营时间(分钟)Selective算法线路运用率(%)AB1datalink audatalink bu无误码信道数据传输3059.396.92datalink adatal
14、ink b站点A分组层平缓方式发出数据,站点B周期性交替发送100秒停发100秒3056.895.03datalink afudatalink bfu无误码信道,站点A和站点B的分组层都洪水式产生分组3096.896.44datalink afdatalink bf站点A/B的分组层都洪水式产生分组3091.393.65datalink af ber 1e-4datalink bf ber 1e-4站点A/B的分组层都洪水式产生分组,线路误码率为10-43073.275.5窗口大小为8, DATA_TIMER 3000, ACK_TIMER 1000序号命令说明运营时间(分钟)Selectiv
15、e算法线路运用率(%)AB1datalink audatalink bu无误码信道数据传输3057.796.92datalink adatalink b站点A分组层平缓方式发出数据,站点B周期性交替发送100秒停发100秒3055.694.83datalink afudatalink bfu无误码信道,站点A和站点B的分组层都洪水式产生分组3096.996.94datalink afdatalink bf站点A/B的分组层都洪水式产生分组3095.595.05datalink af ber 1e-4datalink bf ber 1e-4站点A/B的分组层都洪水式产生分组,线路误码率为10-4
16、3075.073.2窗口大小为32, DATA_TIMER 3000, ACK_TIMER 1000序号命令说明运营时间(分钟)Selective算法线路运用率(%)AB1datalink audatalink bu无误码信道数据传输3096.996.92datalink adatalink b站点A分组层平缓方式发出数据,站点B周期性交替发送100秒停发100秒3054.893.63datalink afudatalink bfu无误码信道,站点A和站点B的分组层都洪水式产生分组3096.997.04datalink afdatalink bf站点A/B的分组层都洪水式产生分组3090.69
17、0.25datalink af ber 1e-4datalink bf ber 1e-4站点A/B的分组层都洪水式产生分组,线路误码率为10-43050.052.3从测试结果比较得出,窗口最佳尺寸为16;ACK搭载定期器的时限定为1000毫秒,窗口大小为16,测试重传定期器时限DATA_TIMER 2800,窗口大小为16, ACK_TIMER 1000测试最佳DATA_TIMER取值序号命令说明运营时间(分钟)Selective算法线路运用率(%)AB1datalink audatalink bu无误码信道数据传输3055.393.92datalink adatalink b站点A分组层平缓
18、方式发出数据,站点B周期性交替发送100秒停发100秒3049.688.73datalink afudatalink bfu无误码信道,站点A和站点B的分组层都洪水式产生分组3096.996.94datalink afdatalink bf站点A/B的分组层都洪水式产生分组3086.188.25datalink af ber 1e-4datalink bf ber 1e-4站点A/B的分组层都洪水式产生分组,线路误码率为10-43069.670.1DATA_TIMER 3000,窗口大小为16, ACK_TIMER 1000序号命令说明运营时间(分钟)Selective算法线路运用率(%)AB
19、1datalink audatalink bu无误码信道数据传输3059.396.92datalink adatalink b站点A分组层平缓方式发出数据,站点B周期性交替发送100秒停发100秒3056.895.03datalink afudatalink bfu无误码信道,站点A和站点B的分组层都洪水式产生分组3096.896.44datalink afdatalink bf站点A/B的分组层都洪水式产生分组3091.393.65datalink af ber 1e-4datalink bf ber 1e-4站点A/B的分组层都洪水式产生分组,线路误码率为10-43073.275.5DAT
20、A_TIMER 3200,窗口大小为16, ACK_TIMER 1000序号命令说明运营时间(分钟)Selective算法线路运用率(%)AB1datalink audatalink bu无误码信道数据传输3058.096.82datalink adatalink b站点A分组层平缓方式发出数据,站点B周期性交替发送100秒停发100秒3055.890.33datalink afudatalink bfu无误码信道,站点A和站点B的分组层都洪水式产生分组3096.996.94datalink afdatalink bf站点A/B的分组层都洪水式产生分组3089.390.65datalink a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 计算机网络 选择 协议 实验 报告
限制150内