2024年4月12日发(作者:)

文件传输协议的简单设计与实现

摘要:

文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协

议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之

一。本设计是用JAVA语言简单实现文件传输协议,利用SOCKET以及SERVERSOCKE等类方法,

当中实现了上传、下载、获取服务器目录等基本文件传输功能。

关键字:文件传输、FTP。

1 具体设计任务

1.1实验内容

我们的计算机网络实验环境建立在TCP/IP 网络体系结构之上。各计算机除了安装

TCP/IP 软件外,还安装了TCP/IP 开发系统。实验室各计算机具备Windows环境中套接

字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。本实验要求学生利

用这些功能,设计和实现一个简单的文件传送协议。

1.2具体要求

用socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序

(server.c),该程序应能实现下述命令功能:

get:取远方的一个文件

put:传给远方一个文件

pwd:显示远主当前目录

dir:列出远方当前目录

cd :改变远方当前目录 :显示你提供的命令

quit :退出返回

此命令的具体工作方式(指给出结果的形式)可以参照FTP 的相应命令,有余力的

同学可以多实现几个命令。

2 基本思路及所涉及的相关理论

2.1 文件传输协议

网络协议是网络中计算机与终端之间正确传送信息和数据的规范格式,起包括语法、

语义和时序这三部分。文件传输协议(File Transfer Protocol, FTP)是在TCP/IP网

络中传输文件的一种格式规范,其规定在用户和服务器之间开设两个通信端口:控制端

口和数据端口。前者生存周期为从用户登录开始直至用户登出,后者则在进行数据传送

的时候打开,并且在数据传送完毕之后立即结束。控制端口用来监听双方共同规定的控

制字以达到及时提供服务或响应,数据端口则要先将文件拆分成分组再进行传送,这样

做的目的是为了更加好的适应网络中的带宽限制,以及减少传送期间节点的延时,以达

到高速传送。

2.2 基本思路:

2.2.1 模拟FTP的工作模式,在双方工作的时候开设两个端口,作为控制端口(2332)

和数据端口(2326)。

2.2.2 规范控制字如下:

LIST:

LOGIN:

GET:

PUT:

QUIT:

获得服务器目录

登陆

下载

上传

登出

对应服务器响应返回控制字:

555:

444:

000:

666:

888:

发送列表完毕

登录成功

登陆失败

下载结束

服务器关闭

2.2.3 模拟FTP工作机制,确定数据端口传送数据时,进行分组传送。

2.2.4 服务器从打开开始,保持监听控制端口,当用户登陆成功后,主动分配该用

户服务线程。

2.2.5 在传送数据的时候,为了确保不影响原程序的工作,应独立分配线程。

3 方案设计(主要网络设备、网络拓扑结构设计图)

本设计基本设计图如下: