项目简介
本项目基于Python语言实现,采用LFTP协议构建大文件可靠传输系统。该协议基于UDP,将系统分为TCP和LFTP两个板块,实现可靠传输、流控制、拥塞控制、文件分片与重组等功能,支持多客户端交互,可完成文件的上传与下载操作。
项目的主要特性和功能
- 可靠传输模拟:TCP板块运用UDP模拟实现可靠传输、流控制和拥塞控制,提供可靠传输接口供LFTP调用。
- 文件传输处理:LFTP板块调用TCP接口,负责文件的分片与重组,支持多客户端同时操作及用户交互。
- 多线程与队列机制:采用多线程和队列进行通信,分别处理控制连接和数据连接,提升处理效率与系统并发性。
- 拥塞控制算法:使用慢启动、拥塞避免和快速恢复算法,维护拥塞窗口和慢启动阈值,保障传输性能。
- 流控机制:通过发送方和接收方的rwnd属性交互,控制数据包发送,避免接收方缓存溢出。
安装使用步骤
- 确保网络连通:保证Server和Client能相互ping通,若有防火墙需关闭。
- 安装依赖库:客户端需安装
progressbar
库显示进度条,使用pip install progressbar
命令安装。 - 修改配置文件
- Server:修改
FTP_server.py
中的HOST
为实际IP地址(可设为localhost
),默认连接端口FTPPORT
为3154,可更改;修改PATH
指定存放文件的路径。 - Client:修改
FTP_client.py
中的DOWNLOADPATH
,指定下载后文件的存放路径。
- Server:修改
- 启动服务端:运行
FTP_server.py
启动服务端程序。 - 启动客户端:运行
FTP_client.py
启动客户端程序。 - 进行文件传输
- 上传文件:在客户端输入上传命令,指定上传文件的绝对路径。服务端接收命令后返回可用端口,客户端连接该端口并开始上传,实时显示上传进度。
- 下载文件:在客户端输入下载命令,指定服务端中
Server
目录下已存在的文件。服务端接收命令后返回可用端口,客户端连接该端口并开始下载,实时显示下载进度。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】