重庆大学计算机网络课程设计4.pdfVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

《计算机网络》课程设计报告

学院:计算机学院

专业:计算机科学与技术6班

指导老师:***

学生姓名:李皓楠、王博韬、魏征、杨俊铸

计算机网络项目书

一,设计目标

Project2:滑动窗口协议模拟

编写一个简单的滑动窗口协议模拟程序,实现两台主机间基于滑动窗口的流控机制。拓扑结

构如下图所示:

主机A传输模主机B

拟器器

(1)主机A、主机B及传输模拟器可分别用线程模拟;

(2)传输模拟器用于实现网络传输过程中的丢包、错包和延迟;

(3)定义主机间传输的PDU的结构,包括发送方标识、接收方标识、帧序号、确认号等、

窗口大小等,以用于实现Go-Back-N的滑动窗口协议;

(4)在两个主机间传送需要切分成多个帧的大数据块(可直接传输文件进行模拟);

(5)一开始的时候,可以让网络仿真网关不丢弃任何帧,也不产生差错帧,检查程序是

否能够正常完成传输,为了验证程序是否按照协议工作,让两个程序都显示收发包

信息

(6)开启网络仿真网关的丢包功吧一定的丢包率进行丢包,重新运行两个应用程序,检

查是否能正常完成文件的传输

(7)开启网络仿真网关的错包功能,使其按照一定的错包率产生错包,重新运行两个应

用程序,检查是否能正常完成文件的传输

(1)开启网络仿真网关的延时功能,使其按照一定的概率产生延时,重新运行两个应用

程序,检查是否能正常完成文件的传。

(2)能直观体现出收发双方窗口的滑动过程或Go-Back过程。

二,任务分配

1.组内分工

代码编写:王博韬、魏征

资料查找、程序测试、报告编写:李皓楠、杨俊铸

三,系统设计

1,基本原理

滑动口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,

称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发

送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协

议窗口大小一般不同。发送方窗口内的序号代表了那些已经被发送,但是还没有被确认的帧,

或者是那些可以被发送的帧。接受方为其窗口内的每一个序号保留了一个缓冲区。与每个缓

冲区相关联的还有一位,用来指明该缓冲区是满的还是空的。若从滑动窗口的观点来统一看

待1比特滑动窗口、后退n及选择重传三种协议,它们的差别仅在于各自窗口尺寸的大小不

同而已。1比特滑动窗口协议:发送窗口=1,接收窗口=1;后退N协议:发送窗口1,接收

窗口=1;选择重传协议:发送窗口1,接收窗口1。

四,系统实现

考虑设计采用进程模拟,主要算法写在check.h中,编写发送窗口与接收窗口调用实现。

发送帧格式为第一位表示接发者,(0表示数据帧,1表示确认帧)。第二至第四位表示帧

序号(确认号),数据帧由第5位开始到最后为数据与末3位的校验码,确认帧无校验码。

窗口大小为7,采用CRC校验(生成多项式为1010)

1,发送窗口主要函数实现

函数名:send_data2

功能:检测是否需要产生错误,检测是否需要丢包(只丢一次),将string类型

转为字符数组,发送缓冲区所有数据,

函数名:send_data

功能:发送数据块。

确认帧类型+帧序号+数据部分,加CRC校验码,加入缓冲池

函数名:accept_inf

功能:接受监测

2,接受窗口主要函数实现

函数名:send_ack

功能:确认并请求帧

函数名:data_handling

功能:数据处理

函数名:accept_inf

功能:接受线程信息,进行CRT校验,主要数据处理

3,数据处理部分主要函数实现

函数名:bin_division

功能:二进制除法(被除数与除数位数一致),返回余数(字符串形式)

函数名:bin_division_2

功能:二进制除法(被除数位数不定),返回字符串型余数

函数名:check

功能:校验帧是否发生错误,返回bool值

函数名:add_CRC

功能:为字符串型加上CRC校验码,返回字符串类型

函数名:cut_CRC

您可能关注的文档

文档评论(0)

133****0172 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档