毕业作品网站

 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>计算机毕业设计 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopinvvp QQ:1015083682   

基于Python的选择性重复ARQ模拟实验 课程论文+代码

文章来源:www.biyezuopin.vip   发布者:毕业作品网站  


摘要
本文为选择性重复 ARQ(Selective Repeat ARQ) 模拟实验的实验报告。src 中包括两个程序, 发送发 S 和接收方 R,二者使用基于 TCP 的 socket 进行通信, 使用随机帧损坏和超时故障来反映出程序的差错控制。S 将用户输入数据组装成帧、缓存、发送、定时、可以接受 ACK 和NAK 应答,删除数据帧,停止计时。R 程序可以接受数据帧,根据是否损坏和帧序号,回应ACK 或者 NAK。
关键词: 选择性重发 ARQ,socket 通信,流量控制与差错控制
目录
摘要 1
1 设计与实现 1
1.1 总体设计 1
1.2 发送方程序实现 2
1.3 接收方程序实现 6
1.4 界面设计 8
2 展示与分析 9
2.1 窗口滑动 9
2.2 差错控制 9
2.3 超时重发 11
1设计与实现
1.1总体设计
实验采用 python 语言进行实现,主要分为三部分:
1.发送方 S:采用 socket 中的客户机模型。
•使用用户输入数据模拟上层数据,将其加入一个队列实现缓冲;
•创建一个连接守护线程,实现与服务器的连接,在此线程中再创建两个守护线程:1    个为处理来自接收者返回帧的线程,另 1 个为检查已发送的帧是否超时的线程;
•连接守护线程:若缓冲区不为空,则取出数据打包成帧、存帧、定时、发送;
•接收守护线程:接收到来自接收着的帧后,首先检查是否破损 (CRC 校验),然后根据帧类型为 ACK 或者 NAK 进行经一步的处理;
•检查超时线程:对滑动窗中已发送的帧进行超时检查,超时则重发。
2.接收方 R:采用 socket 中的服务器模型;
•采用单线程的实现方式,接收到来自发送者的帧后首先检查帧是否破损,然后检查帧  是否在接收窗口中,然后检查帧是否为 Rn,即是否为这一步所期望接收的帧。
•根据以上信息决定向接收者是否发送 NAK 和 ACK 帧。
•最后将接收到的数据输出到终端,表示传送给上层。
3.界面:采用 qt5(pyside2)进行实现。
•对发送方开发了图形界面,方便用户在输入的同时能够观察到滑动窗口的状态,和发  送帧的历史信息,同时图形界面在一定层面上,避免了多线程下需要对输入输出加锁   的繁琐;
•未对接收方开发图形界面,出于以下两个原因:
(a)接收方程序较为简单,没有输入,只有输出信息可展示;
(b)在图形界面中,要动态展示数据的处理,需要大量的延时信号,否则人眼很难观   测到变化。
1.2发送方程序实现
发送方采用多线程,异步的方式实现缓存、成帧、定时、存帧、发送、校验、接受 ACK 和
NAK、超时重发的功能。
实现图形界面展示的同时,终端也会输出详细的收发过程信息,多线程下终端的输出需要加锁。





  全套毕业设计论文现成成品资料请咨询微信号:biyezuopinvvp QQ:1015083682     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
基于MatlabSimulink 35kV输电线路继电保护的设计 分布式风电场低电压穿越故障建模与
大学生内容分享和社交平台的设计与 基于SSM框架的企业人事薪酬管理 基于大模型的代码注释自动生成与维
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopinvvp QQ:1015083682  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!