收藏 分享(赏)

ftp架设论文 佟令武.doc

上传人:cjc2202537 文档编号:1136839 上传时间:2018-06-14 格式:DOC 页数:19 大小:244KB
下载 相关 举报
ftp架设论文   佟令武.doc_第1页
第1页 / 共19页
ftp架设论文   佟令武.doc_第2页
第2页 / 共19页
ftp架设论文   佟令武.doc_第3页
第3页 / 共19页
ftp架设论文   佟令武.doc_第4页
第4页 / 共19页
ftp架设论文   佟令武.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、哈尔滨科学技术职业学院FTP架设论文论文题目: 个人 FTP架设 指导老师: 尹顺鹏 作者姓名: 佟令武 学 号: 18 理工系电子商务三班2015年 6月 22日绪论FTP(File Transfer Protocol, FTP)是 TCP/IP网络上两台计算机传送文件的协议,FTP 是在 TCP/IP网络和 INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP 客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录等功能。虽然这是一个小型的 ftp程序,但它基本上实现了 ftp所具有的功能。它是在任何 linux系列的系统上运行,用 linux gcc

2、编译工具。为了测试,ftp 服务器端和客户端都要实现。FTP 协议是一款基于 TCP/IP的协议 TCP是面向连接的可靠地一个协议。为什么会有 ftp呢?由于网络的带宽及各种服务的限制,单纯从页面上下载显得又慢又不可靠,所以就有许多 FTP工具提供出来。从根本上说,FTP 就是在网络中各种不同的计算机之间按照 TCP/IP协议来传输文件。FTP 采用的是现在流行的Client/Server模式,由 FTP客户端和 FTP服务器端程序组成。通常服务器端是远程端点,用户可以通过 Internet网络连接到远程的 FTP服务器站点。服务器的功能是主要的。只有当 FTP服务器支持各种协议和指令时,才能

3、够开发相应的客户端程序。下面就是整个 ftp项目的设置思路。目录摘 要 2Abstract 2目录 3第一章 FTP 协议与原理 31.1FTP 协议 41.2FTP 工作原理 51.3FTP 权限管理 61.4FTP的传输有两种方式 71.5FTP的工作方式 71.6该程序服务器端实现的的命令 8第二章开发环境及工具介绍 92.1 C 语言和 socket机制 92.2如 何 开 发 一 个 Server-Client 模 型 的 程 序 112.3 项 目 用 到 的 socket 函 数 和 编 译 环 境 15第三章 FTP 服务器与客户端需求分析 16第四章 系统设计与实现 194.

4、1.软件总体分析与设计 194.2.各模块具体设计 19第五章 系统测试 285.1系统可能出现的问题与不足 285.2采用的测试类型 295.3测试的过程与结果分析 29结论 29第一章 FTP 协议与原理1.1FTP 协议FTP(File Transfer Protocol) ,是文件传输协议的简称。用于 Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application) 。用户可以通过它把自己的 PC机与世界各地所有运行 FTP协议的服务器相连,访问服务器上的大量程序和信息。正如其名所示:FTP 的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着 FT

5、P服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。FTP 是 TCP/IP 协议组中的协议之一,是英文 File Transfer Protocol的缩写。该协议是 Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP 就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download) ”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload) ”文件。在

6、TCP/IP协议中,FTP 标准命令 TCP端口号为21,Port 方式数据端口为 20。从根本上说,FTP 协议就是在网络中各种不同的计算机之间按照 TCP/IP协议来传输文件。FTP 协议采用客户机/服务器 (Client/Sever)模式,由 FTP客户端程序和 FTP服务器端程序组成。使用时,先启动 FTP客户端程序与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。但是 FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名 FTP服务器除外,它能够使用户与远程主机建立

7、连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将 Emai1地址作为口令,以便更好地对访问者进行跟踪。出于安全的目的,大部分匿名 FTP主机一般只允许远程用户下载(download)文件,而不允许上载(upload)文件。也就是说,用户只能从匿名 FTP主机拷贝其需要的文件而不能把文件拷贝到匿名 FTP主机。另外,匿名 FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。匿名 FTP一直是 Internet上获取

8、信息资源的最主要方式,在 Internet成千上万的匿名 FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名 FTP登录。1.2FTP 工作原理拿下载文件为例,当你启动 FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的 FTP客户程序:它向 FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的 FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP 采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装 FTP客户程序。与大多数 Internet服务一样,FTP 也是

9、一个客户机/服务器系统。用户通过一个支持 FTP协议的客户机程序,连接到在远程主机上的 FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。使用 FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户 ID和口令,否则便无法传送文件。这种情况违背了

10、Internet的开放性,Internet 上的 FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名 FTP就是为解决这个问题而产生的。匿名 FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户 ID,名为 anonymous, Internet上的任何人在任何地方都可使用该用户 ID。值得注意的是,匿名 FTP不适用于所有 Internet主机,它只适用于那些提供了这项服务的主机。FTP支持两种模式,一种方式叫做 Standard(也就是 PORT 方式,主动方式),一种是 Passive(也就是 PASV

11、,被动方式)。Standard 模式 FTP的客户端发送 PORT命令到 FTP服务器。Passive 模式 FTP的客户端发送 PASV命令到 FTP Server。主动方式的 FTP工作过程:Port 模式 FTP客户端首先和 FTP服务器的 TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送 PORT命令。PORT 命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的 TCP20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。针对 FTP服务器前面的防火墙来说,必须允许以下通讯才能

12、支持主动方式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服务器软件中,默认提供了三类用户。不同的用户对应着不同的权限与操作方式。一类是

13、Real帐户。这类用户是指在 FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。第二类帐户实 Guest用户。在 FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障 FTP服务上其他文件的安全性。这类帐户,在 Vsftpd软件中就叫做 Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。第三类帐户是 Anonymous(匿名)用户,这也是我们通常所说的匿名访问。这

14、类用户是指在 FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。在组建 FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd 服务器会把建立的所有帐户都归属为 Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间 带来一定的安全隐患。所以,企业要根据实际情况,修改用户所在的类别。TCP/IP 协议中,FTP 标准命令 TCP端口号为 21,Port 方式数据端口为20。FTP 协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置

15、、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过 ftp协议对话,并且能访问 Internet, 你可以用 ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。1.4FTP的传输有两种方式ASCII传输模式和二进制数据传输模式。 1) ASCII 传输方式:假定用户正在拷贝的文件包含的简单 ASCII码文本,如果在远程机器上运行的不是 UNIX,当文件传输时 ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。 2) 二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使

16、目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到 Windows系统,在对方系统上,此文件不能执行。 如果你在 ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。 (在大多数计算机上,ASCII 方式一般假设每一字符的第一有效位无意义,因为 ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。 )如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。 1.5FTP的工作方式FTP支持两种模式,一种方式叫做 Standard (也就是 PORT 方式,主动方

17、式),一种是 Passive (也就是 PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到 FTP服务器。Passive 模式 FTP的客户端发送 PASV命令到 FTP Server。 Port模式 FTP 客户端首先和 FTP服务器的 TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送 PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的 TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。 Passive 模式在建立

18、控制通道的时候和 Standard模式类似,但建立连接后发送的不是 Port命令,而是 Pasv命令。FTP 服务器收到 Pasv命令后,随机打开一个高端端口(端口号大于 1024)并且通知客户端在这个端口上传送数据的请求,客户端连接 FTP服务器此端口,然后 FTP服务器将通过这个端口进行数据的传送,这个时候 FTP server不再需要建立一个新的和客户端之间的连接。 很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的 FTP服务器不支持 PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用 PORT模式登陆 FTP服务

19、器,因为从服务器的 TCP 20 无法和内部网络的客户端建立一个新的连接,造成无法工作。1.6该程序服务器端实现的的命令1).USER:指用户名,它带一个参数。格式为:USER username 在登录 ftp服务器的时候先用此命令告诉服务器那个用户要登录此服务器。如:USER root 此命令是以 root用户登录服务器。2).PASS:指明与用户名对应的密码,带一个参数。格式为:PASS password 当服务器收到来自客户端的 USER命令后,检查其合法后就像客户端发提示信息要求输入密码,客户端这是就可以向服务器发送PASS命令加上 root用户的密码。服务器检查密码的正确后,客户端就

20、与服务器连接起来了。3).LIST: pathname参数表示要列文件的目录路径名,若不带参数,刚使用当前目录。此命令会把 pathname 路径下的文件或目录按照一定的格式发送给客户端让客户端显示出来。4).QUIT:由于要求传输文件时有登陆的过程,断开连接到应有相应的注销过程。这个命令就是从服务器上注销的过程,如果服务器收到该命令时,没有文件正在传达室输,刚断开控制,连接如果有文件正在传输,刚控制连接仍然保持,直到收到有关传输结果的应答时,服务器才断开连接。5).LOAD:取得文件这条命令是 FTP事务是用得最多的命令,在请求下载文件时都有会用到。6).UPDATE:存放文件。7).WYW

21、T:请求服务器返回系统类型。8).TYPE:表示文件类型,共有四种,所带参数也有四种,A,E ,I ,L 分别对应 ASCII,EBCDIC,IMAGB 和 LOCAL类型。格式为:TYPE type9).CMD:请求更改服务器的当前目录这各命令带一个参数,参数表示要更改的目录名。10).DELE:请求删除服务器上的文件。11).MKO:请求在服务器上新建一个目录,这条命令带一个参数指明要建立的目录名。 12). PORT:指明数据连接的端口号,带六个参数。格式为:PORT h1,h2,h3,h4,p1,p213).CAT:命令显示某一个文件的内容。使用格式:CAT filename 打印 f

22、ilename文件向终端。14).TOUCH:请求在服务器上新建一个文件,这条命令带一个参数指明要建立的文件名。使用格式:TOUCH filename15).PWD:在服务器上显示当前工作目录。16).MV:请求在服务器上为某一个指定的文件或文件夹重命名。17).CP:请求在服务器上拷贝一个目录或文件。使用格式:CP spathname dpathname 第二章开发环境及工具介绍2.1 C 语言和 socket机制C语言是在 70年代初创建的一种计算机语言,它既有汇编语言可以直接访问机器硬件的功能,又具有高级语言面向用户、可读性好和易于记忆的优点,因此受到广大程序员的欢迎。C 是一种结构化的

23、程序设计语言。它由顺序、选择和循环三种基本结构组成,便于实现由上到下、逐步细化的结构化程序设计。因此,用C编写的程序具有容易理解和便于维护的优点。C 语言的函数结构有利于程序分割为相对独立的功能模块,为大型软件实现模块化的程序设计创造了条件。该程序是在 linux 系列下的 C语言开发,主要利用 linux C下的 API Socket编程。根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。 服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。 客户端请求:是指由客户端的套接字提出

24、连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。 连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。2.2如 何 开 发 一 个 Server-Client 模 型 的 程 序开发原理: 服务器,使用 ServerSocket监听指定的端口,端口可以随意指定(由于

25、1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于 1024的端口) ,等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 客户端,使用 Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭 Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个 1024以上的端口。 Socket接口是 TCP/IP网络的 API,Socket 接口定义了许多函数或例程,程序员可以用它们来开发 TCP/IP网络上的应用程序。要学 Internet上的 TCP/IP网络编程,必须理解 Socket接口。Socket 接口设计者最先是将接口放在 Unix操作系统里面的。如果了解 Unix系统的输入和输出的话,就很容易了解 Socket了。网络的 Socket数据传输是一种特殊的 I/O,Socket 也是一种文件描述符。Socket 也具有一个类似于打开文件的函数调用 Socket() ,该函数返回一个整型的 Socket描述符,随后的连接建立、数据传输等操作都是通过该 Socket实现的。Server-Client 模 型 :

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报