网络与信息安全实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与技术学院网络与信息安全课程设计
学号:
专业:计算机科学与技术
学生姓名:
任课教师:***
2017年3月
FTP服务器的设计与实现
***
计算机科学与技术学院,哈尔滨工程大学
摘要:FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载" (Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。本文基于FTP协议搭建了一个FTP服务器,实现简单的上传下载功能。
关键字:FTP,网络协议,服务器
一、FTP协议的工作原理
1. 简介
FTP是因特网网络上历史最悠久的网络协议,凭借其独特的优势一直都是因特网中最重要、最广泛的服务之一。FTP是TCP/IP提供的标准机制,实现从一台主机向另一台主机传送文件的任务。目前FTP客户端软件很多,大致我们可以把它们分为三类:第一类是传统的FTP客户机;第二类是图形化用户界面的FTP软件;第三类是Web浏览器。
从根本上说,FTP就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP 采用的是现在流行的Client/Server模式,由FTP客户端和FTP服务器端程序组成。通常服务器端是远程端点,用户可以通过Internet网络连接到远程的FTP服务器站点。服务器的功能是主要的。只有当FTP服务器支持各种协议和指令时,才能够开发相应的客户端程序。
开发任何基于FTP的客户端软件都必须遵循FTP的工作原理,FTP的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条TCP连接,一条是数据连接,用于数据传送;另一条是控制连接,用于传送控制信息(命令和响应),这种将命令和数据分开传送的思想大大提高了FTP的效率,而其它客户服务器应用程序一般只有一条TCP 连接。图1给出了FTP的基本模型。客户有三个构件:用户接口、客户控制进程和客户数据传送进程。服务器有两个构件:服务器控制进程和服务器数据传送进程。在整个交互的FTP会话中,控制连接始终是处于连接状态的,数据连接则在每一次文件传送时先打开后关闭。
用户接口
控制进程数据传送进程控制进程
数据传送进程
控制连接
命令与应答
数据连接
文件传输
图1 FTP 的基本模型 FTP 是TCP/IP 的一种具体应用,它工作在OSI 模型的第七层,TCP 模型的第四层上,即应用层,使用TCP 传输而不是UDP ,这样FTP 客户在和服务器建立连接前就要经过一个被广为熟知的“三次握手”的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。采用FTP 协议可使 Internet 用户高效地从网上的FTP 服务器下载大信息量的数据文件,将远程主机上的文件拷贝到自己的计算机上。以达到资源共享和传递信息的目的。由于FTP 的使用使得Internet 上出现大量为用户提供的下载服务器。Internet 成为了一个巨型的软件仓库。FTP 在文件传输中还支持断点续传功能,可以大幅度地减小CPU 和网络带宽的开销。
FTP 需要2个端口,一个端口是控制连接端口,也即21端口,用于发送指令给服务器并等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT 模式),用于建立数据传输通道。
FTP 的连接模式有2种:PORT 和PASV 。PORT 模式是一个主动模式,PASV 是被动模式,二者都是相对于服务器而言的。
2. FTP 运行原理
FTP 的工作原理与其他许多网络实用程序一样,也是基于客户/服务器模式。互联网文件传输协议(File Transfer Protocol) 标准是在FTC959说明的。该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准。一般来说,要传输文件的用户需先经过认证以后才能登录ftp 服务器,访问在远程服务器的文件。大多数的FTP 服务器往往提供一个guest 的公共帐户来允许没有FTP 服务器帐户的用户可以访问该FTP 服务器。一个FTP 会话通常包括五个软件元素的交
互。就模型而言,从1973年以来并没有什么变化。如图2所示。
文件系统SDTP UDTP
文件系统SPI USERPI
用户接口用户
图2 FTP 协议模型 在一个FTP 会话中,会存在两个独立的网络连接,一个是由两端的PI 使用的,另一个是由两端的DTP 使用的。PI 之间的连接一般被称作控制连接(control connection),DTP 之间的连接被称作数据连接(data connection)。通常情况下,ftp 服务器监听端口号21来等待控制连接建立请求,当客户连接请求到达,会在客户和ftp 服务器之间建立一个控制连接。而数据连接端口号的选择依赖于控制连接上的命令,通常是客户发送一个控制消息来指定客户需要建立一个数据连接来传输ftp 数据(如下载/上载一个文件,显示当前目录的内容等等,都需要建立数据连接来传输数据),在该消息中,指定了客户监听并等待连接的端口号,而服务器从控制连接收到该命令,向客户端发起一个连接请求到消息中指定的端口号,客户端收到该请求以后就会建立一个数据连接。连接建立以后,服务器或客户就会主动通过该连接发送数据(可能是要传输的文件,也可能是用户在命令行上发出的IS 命令的输出)。
二、 系统设计与实现
1 功能要求
本系统是一个在局域网内实现的小型FTP 文件传输服务器。主要实现的是FTP 服务器端功能,包括:FTP 服务日志,在线用户的管理,统计客户端信息还有客户端上传、下载、选择数据传输模式、改变目录等,并给出相应的提示。
2 主界面