[内附完整源码和文档] 基于udp实现tcp功能进行大文件传输

本文档详细介绍了如何使用Python3.6通过UDP实现类似TCP的可靠大文件传输,包括100%可靠性的实现、流控制和阻塞控制。项目要求客户端能上传和下载大文件,服务器支持多用户并发。通过特定的数据包结构、ACK反馈、丢包处理、序列号检查以及多线程处理,实现了UDP文件传输的三方握手和四次挥手过程。
摘要由CSDN通过智能技术生成

一.项目要求
Please choose one of following programing languages: C, C++, Java, Python;
本项目采用的是python3.6
LFTP should use a client-server service model;
本项目使用客户端-服务器的模式
LFTP must include a client side program and a server side program; Client side program can not only send a large file to the server but also download a file from the server.
Sending file should use the following format:
LFTP lsend myserver mylargefile
Getting file should use the following format
LFTP lget myserver mylargefile
The parameter myserver can be a url address or an IP address.
本项目,客户端不仅可以向服务器上传大文件,也可以从服务器下载大文件
LFTP should use UDP as the transport layer protocol.
本项目利用UDP来作为传输层协议
LFTP must realize 100% reliability as TCP;
本项目实现类似TCP的100%可靠性,处理了丢包,超时,数据包顺序不一致等问题
LFTP must implement flow control function similar as TCP;
本项目实现了类似TCP的流控制,在接收方维护一个rwnd接收窗口
LFTP must implement congestion control function similar as TCP;
本项目实现了类似TCP的阻塞控制,在发送方维护一个cwnd阻塞窗口
LFTP server side must be able to support multiple clients at the same time;
本项目支持多个用户同时向服务器收发文件,使用了多线程的机制
LFTP should provide meaningful debug information when programs are
executed.
本项目提供了有意义的debug消息来显示发送情况,包括丢包,阻塞等事件的处理
二. 设计思路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值