首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>服务器技术>FTP服务器>正文

新手入门:了解FTP服务与FTP协议(图)

http://www.oklinux.cn  2005-11-02  来源: oklinux收集   会员收藏  游客收藏  【 】 

  上次我们主要介绍了HTTP协议,在这篇文章里,我们介绍一个同样有名的网络协议FTP(文件传送协议)。
  
  FTP文件传送协议(File Transfer Protocol,简称FTP),是一个用于从一台主机到另送文件的协议。该协议的历史可追溯到1971年(当时因特网尚处于实验之中),不过至今仍然极为流行。FTP在RFC 959中具体说明。下图是它提供的服务的概貌。
  
 
  图1 FTP在本地和远程文件系统之间传输文件
  

  在一个典型的FTP会话中,用户坐在本地主机前,想把文件传送到一台远程主机或把它们从一台远程主机传送来。该用户必须提供一个用户名—口令对才能访问远程账号。给出这些身份认证信息后,它就可以在本地文件系统和远程文件系统之间传送文件了。如图中所示,用户通过一个FTP用户代理与FTP交互。他首先提供一个远程主机的主机名,这使得本地主机中的FTP客户进程建立一个与远程主机中的FTP服务器进程之间的连接。用户接着提供用户名和口令,这些信息将作为FTP命令参数经由TCP连接传送到服务器。服务器批准之后,该用户就在本地文件系统和远程文件系统之间拷贝文件。
  
  HTTP和FTP都是文件传送协议,它们有许多共同的特征,譬如说都运行在TCP之上。不过这两个应用层协议之间存在重要的差别。最重要的差别是FTP使用两个并行的TCP连接来传送文下一节件,一个是控制连接,一个是数据连接。控制连接用于在客户主机和服务器主机之间发送控制信息,例如用户名和口令、改变远程目录的命令、取来或放回文件的命令。数据连接用于真正发送文件。既然TCP使用一个独立的控制连接,我们说FTP在带外(out-of-band)发送控制信息的。另外,用于控制音频和视频等持续媒体数据之传送的RTSP协议也是在带外发送控制信息的。HTTP中,同一个TCP连接既用于承载请求和响应头部,也用于承裁所传送的文件,因此我们说HTTP在带内(in-band)发送控制信息。下一篇文章将讨论的用于电子邮件的主要协议SMTP也在带内发送控制信息。图2展示了FTP的控制连接和数据连接。
  
 
  图2

  
  当用户启动与远程主机间的一个FTP会话时,FTP客户首先发起建立一个与FTP服务器端口号21之间的控制TCP连接,然后经由该控制连接把用户名和口令发送给服务器。客户还经由该控制连接把本地临时分配的数据端口告知服务器,以便服务器发起建立一个从服务器端口号20到客户指定端口之间的数据TCP连接;为便于绕过防火墙,较新的FTP版本答应客户告知服务器改由客户来发起建立到服务器端口号20的数据TCP连接。用户执行的一些命令也由客户经由控制连接发送给服务器,例如改变远程目录的命令。当用户每次请求传送文件时(不论哪个方向),FTP将在服务器端口号20上打开一个数据TCP连接(其发起端既可能是服务器,也可能是客户)。在数据连接上传送完本次请求需传送的文件之后,有可能关闭数据连接,到再有文件传送请求时重新打开。因此在FTP中,控制连接在整个用户会话期间一直打开着,而数据连接则有可能为每次文件传送请求重新打开一次(即数据连接是非持久的)。
  
  在整个会话期间,FTP服务器必须维护关于用户的状态。具体地说,服务器必须把控制连接与特定的用户关联起来,必须随用户在远程目录树中的游动跟踪其当前目录。为每个活跃的用户会话保持这些状态信息极大地限制了FTP能够同时维护的会话数。无状态的HTTP却不必维护任何用户状态信息。
  
  FTP命令和应答
  
  现在讨论几个较为常用的FTP命令。从客户到服务器的命令和从服务器到客户的应答都是以7位ASCII码格式经由控制连接传送的,因此跟HTTP请求消息一样.FTP命令也是直观可读的。用于分割相继的命令或应答的是一个回车符和一个换行符。每个命令由4个大写的ASCB字符构成,有些命令带有可选的参数。下面给出的是一些较为常见的命令;●USER username:用于向服务器发送用户名。
  
  ●PASS passwod:用于服务器发送口令。
  
  ●LIST:用于请求服务器发回当前远程目录下所有文件的一个清单。该清单是通过数据连接而不是控制连接发送过来的。
  
  ●RETR filename:用于获取远程主机当前目录下的一个文件,与用户代理中的get命令相对应。
  
  ●STOR filename:用于存放远程主机当前目录下的一个文件,与用户代理中的put命令相对应。
  
  从客户经由控制连接发送到服务器的FTP命令和用户向用户代理发出的命令之间一般存在一一对应关系。每个命令之后跟随的是从服务器发送到客户的应答。FTP应答是一个3位数值,可能后跟一个可选的消息。这与HTTP响应消息中的状态码和原因短语在结构上是类似的;HTTP的发明者们有意在HTTP响应消息中引入了这个类似性。下面列出了一些典型的应答以及可能后跟的消息。
  
  ●331 Username OK,password required
  
  ●125 Data connection already open,tranfer starting
  
  ●425 Car't open data connection
  
  ●452 Error writing
  
  有爱好更多地了解FD命令和应答的读者可以阅读RFC 959。
  
  下面是采用LEAPFTP客户端登录一个FTP服务器的对话实录,从中可以看到FTP客户端和服务器端的会话过程。
  
  Connecting to xxx.xxx.xxx.xxx, Port 21 (#1)
  Connected. Waiting for response.
  220 Microsoft FTP Service
  USER username
  331 Password required for username.
  PASS xxxxxx
  230 User 9878cn logged in.
  SYST
  215 Windows_NT
  PWD
  257 "/mydir" is current directory.
  TYPE A
  200 Type set to A.
  PORT 192,168,xxx,xx,9,198
  200 PORT command successful.
  LIST
  150 Opening ASCII mode data connection for /bin/ls.
  226 Transfer complete.
  Transfer done: 125 bytes in 0.016 secs (7.81 k/sec)
  QUIT

上一篇:Exchange 2000 Instant Messaging(组图)   下一篇:Exchange 2003,你真的需要吗?(组图)


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Exchange 2000 Instant Messaging(组图)
·Exchange 2003,你真的需要吗?(组图)
·充分利用 FTP分类账户设置经验谈
·服务器应用:用serv-u建立FTP一(组图)
·打造SSL安全加密的FTP服务器(图)
·服务器应用:用serv-u建立FTP二(组图)
·服务器应用:IIS建FTP服务器一(组图)
·谈谈SERV-U软件在FTP应用中的技巧(图)
·服务器架站务实:零起步学FTP概念篇
·服务器应用:IIS建FTP服务器二(组图)
·服务器应用:IIS建FTP服务器三(组图)
·SERV-U 6002版安全设置全攻略二(图文)
·SERV-U 6002版安全设置全攻略一(图文)
·服务器应用-网管的最爱GENE 6一(组图)
·SOHO族安全建议之保证上传服务器安全二
·服务器应用-网管的最爱GENE 6二(组图)
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·FTP服务器软件Serv-U教程(1)
·用windows2000架设自己的FTP SERVER
·FTP服务器软件Serv-U教程(2)
·FTP服务器软件Server-U教程(3)
·匿名FTP服务器的建立与应用
·如何保证文件传输服务器FTP的安全
·SMTP、POP3、NNTP、FTP、HTTP 的服务器
·win2k下几种ftp server的比较
·Serv-U:快速构建功能强大FTP服务器
·FrontPage 2000网站FTP到NT服务器
·如何配置FTP服务器
·Serv-U的远程管理
  阅读排行
·使用IPsec与组策略隔离服务器和域
·Windows下用sftp巧妙打造安全传输
·实战:全面保障FTP服务器的安全
·注重设置让FTP服务器共享更安全
·轻松架设Windows2003用户隔离FTP服务器
·Exchange 2003,你真的需要吗?(组图)
·SOHO族安全建议之保证上传服务器安全二
·Windows中快速访问分散共享资源的妙招
·企业内部FTP服务器的架设
·教你如何巧妙设定匿名FTP的安全
·SOHO族安全建议之保证上传服务器安全一
·内网IP建ftp服务器教程
·Exchange 2000 Instant Messaging(组图
·内网Serv-U架站:实例解析FTP原理
·SERV-U 6002版安全设置全攻略一(图文)
网摘收藏: