一个基于linux 的FTP系统毕业论文.doc
《一个基于linux 的FTP系统毕业论文.doc》由会员分享,可在线阅读,更多相关《一个基于linux 的FTP系统毕业论文.doc(30页珍藏版)》请在三一办公上搜索。
1、 毕 业 论 文论文题目: 一个基于linux 的FTP系统 专 业: 嵌入式 指导老师: 作者姓名: 学 号: 信息工程系2011年 12 月 25 日摘 要FTP(File Transfer Protocol, FTP)是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录等功能。虽然这是一个小型的ftp程序,但它基本上实现了ftp所具有的功能。它是在任何linux系列的系统上运行,用linux gcc 编译工具。为了测试,ftp
2、 服务器端和客户端都要实现。FTP协议是一款基于TCP/IP的协议TCP是面向连接的可靠地一个协议。为什么会有ftp呢?由于网络的带宽及各种服务的限制,单纯从页面上下载显得又慢又不可靠,所以就有许多FTP工具提供出来。从根本上说,FTP就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP采用的是现在流行的Client/Server模式,由FTP客户端和FTP服务器端程序组成。通常服务器端是远程端点,用户可以通过Internet网络连接到远程的FTP服务器站点。服务器的功能是主要的。只有当FTP服务器支持各种协议和指令时,才能够开发相应的客户端程序。下面就是整个ftp项目的设置
3、思路。AbstractFTP (File Transfer Protocol, FTP), the two computers to transfer files in the TCP / IP network protocol, FTP is one of the earliest protocol used in TCP / IP network and INTERNET, it belongs to the application layer of the network protocol suite. FTP client can issue commands to the serve
4、r to download files, upload files, create or change directories on the server. Although this is a small ftp program, but it basically has ftp. It is running on any linux Series system, use the linux the gcc compiler tool. In order to test the ftp server and client to be realized. The FTP protocol is
5、 a TCP / IP-based protocol TCP is connection-oriented reliable to an agreement. Why is there a ftp? Network bandwidth and service limitations, a simple download from the page is slow and unreliable, so there are many FTP tools. Fundamentally speaking, the FTP is a variety of network between computer
6、s in accordance with the TCP / IP protocol to transfer files. FTP is a popular Client / Server model, consisting of an FTP client and FTP server-side programs. Usually server-side remote endpoint, users can connect through the Internet network to a remote FTP server site. The servers main function i
7、s. Only when the FTP server supports various protocols and instructions to be able to develop appropriate client program. Here is the entire set of ftp projects ideas.目录摘 要2Abstract2目录3第一章FTP 协议与原理31.1FTP 协议41.2FTP 工作原理51.3FTP 权限管理61.4FTP的传输有两种方式71.5FTP的工作方式71.6该程序服务器端实现的的命令8第二章开发环境及工具介绍92.1 C 语言和so
8、cket机制92.2如何开发一个Server-Client模型的程序112.3常用的Socket类型122.4项目用到的socket函数和编译环境15第三章 FTP 服务器与客户端需求分析16第四章 系统设计与实现194.1.软件总体分析与设计194.2.各模块具体设计19第五章 系统测试285.1系统可能出现的问题与不足285.2采用的测试类型295.3测试的过程与结果分析29结论29参考文献30致谢31第一章 FTP 协议与原理1.1FTP 协议FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序
9、(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单
10、的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP协议采用客户机/服务器 (Client/Sever)模式,由FTP客户端程序和FTP服务器端程序组成。使用时,先启动FTP客户端程序与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的
11、命令。但是FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问者进行跟踪。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载(download)文件,而不允许上载(upload)文件。也就是说,用户只能从匿名FTP主机拷贝其需要的文件而不能把文件拷贝
12、到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登录。1.2FTP 工作原理拿下载文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送
13、到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就
14、是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。FTP支持两种
15、模式,一种方式叫做Standard(也就是 PORT方式,主动方式),一种是Passive(也就是PASV,被动方式)。Standard模式FTP的客户端发送PORT命令到FTP服务器。Passive模式FTP的客户端发送PASV命令到FTP Server。主动方式的FTP工作过程:Port模式FTP客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的
16、连接用来传送数据。针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:1).任何端口到FTP服务器的21端口(客户端初始化的连接SC)。2).FTP服务器的21端口到大于1023的端口(服务器响应客户端的控制端口SC)。3)FTP服务器的20端口到大于1023的端口(服务器端初始化数据连接到客户端的数据端口SC)。4).大于1023端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口SC)。1.3FTP 权限管理在考虑FTP服务器安全性工作的时候,第一步要考虑的就是谁可以访问FTP服务器。在Vsftpd服务器软件中,默认提供了三类用户。不同的用户对应着不同
17、的权限与操作方式。一类是Real帐户。这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。第二类帐户实Guest用户。在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。第三类帐户是Anonymous(匿名)用户,这也是我们通常所说的匿
18、名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间 带来一定的安全隐患。所以,企业要根据实际情况,修改用户所在的类别。TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方
19、式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet, 你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。1.4FTP的传输有两种方式ASCII传输模式和二进制数据传输模式。 1)ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。 2)二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件
20、是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。 如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。 1.5FTP的工作方式FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PAS
21、V,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。 Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。 Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是
22、Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。 很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。 1.
23、6该程序服务器端实现的的命令1).USER:指用户名,它带一个参数。格式为:USER username在登录ftp服务器的时候先用此命令告诉服务器那个用户要登录此服务器。如:USER root 此命令是以root用户登录服务器。2).PASS:指明与用户名对应的密码,带一个参数。格式为:PASS password当服务器收到来自客户端的USER命令后,检查其合法后就像客户端发提示信息要求输入密码,客户端这是就可以向服务器发送PASS命令加上root用户的密码。服务器检查密码的正确后,客户端就与服务器连接起来了。3).LIST: pathname参数表示要列文件的目录路径名,若不带参数,刚使用当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一个基于linux 的FTP系统 毕业论文 一个 基于 linux FTP 系统
链接地址:https://www.31ppt.com/p-2388140.html