【资源介绍】 Python基于UDP实现可靠传输RUDP源码+项目说明.tarPython基于UDP实现可靠传输RUDP源码+项目说明.tarPython基于UDP实现可靠传输RUDP源码+项目说明.tar 推荐在linux虚拟机下测试,windows下或许会出现未知错误 ## 发送端说明 发送端主要实现以下几点功能: - 读取一个文件并将该文件通过UDP套接字发给指定的接收端 - 如果文件过大,需将文件划分为大小合适的段后再装入RUDP报文 - 通过start消息指定初始序号 - 在每个报文后附加校验和字段(生成和验证校验和的函数已经在Checksum.py中提供) - 对于收到的校验和无效的ack消息,直接丢掉 - 通过Go Back N算法实现可靠传输(记得接收端窗口大小为5) 发送端应当在以下几种情况下仍然保证可靠传输: - 丢包:任意等级的丢包,包括100%的丢包率,也包括数据包或确认包的丢失 - 失序:数据包到达接收端的顺序是任意的 - 重复:数据包可能会重复发送给接收端 发送端通过以下命令调用: ```bash Python Sender.py -f <input file> ``` 关于发送端的其他注意事项: - 发送端设置了一个500ms的重传计时器,对于超过500ms但是仍未收到确认消息的数据包,应当进行重传 - 发送端设置了一个大小为5的发送窗口 - 发送端可以支持任意类型的文件(即可以发送图片(pic_test.jpeg)/视频文件(turn-on-off.mp4)等等) 在此原代码基础上实现Go-Back-N算法和Selective Acknowledgements(选择重传)。 ## 测试 TestHarness.py提供了一个测试框架(通过python TestHarness.py -s YourSender.py -r Receiver.py调用),tests目录下是具体的测试用例。 编写完测试用例后,需要在TestHarness.py中的tests_to_run函数中加入该测试用例,然后才能通过调用TestHarness运行该用例。 目前的测试用例包含了模拟丢包、失序和重复以及以上复合并传输多媒体格式的测试用例。 每种测试条件(丢包、失序、重复、混合)写了两个测试类,分别用来测Go-Back-N和选择重传。 测试执行 ```bash python TestHarness.py -s Sender.py -r Receiver.py ``` 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载,沟通交流,互相学习,共同进步!
- 粉丝: 2222
- 资源: 1823
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助