电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> 网管专栏
Linux架设FTP服务器之一-网管专栏,FTP服务
作者:网友供稿 点击:14
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 

一、什么是ftp:文件传输协议原理

互联网文件传输协议(file transfer protocol ,ftp) 标准是在rfc959说明的。该协议定义了一个从远程计算机系统和本地计算机系统之间传输文件的一个标准。一般来说,传输文件的用户需要先经过认证以后才能登录网站,然后方能访问在远程服务器的文件。而大多数的ftp服务器往往提供一个guest的公共帐户来允许没有远程服务器的用户可以访问该ftp服务器。

一个ftp会话通常包括五个软件元素的交互。

用户接口 提供了一个用户接口并使用客户端协议解释器的服务
客户 pi 客户协议解释器,其项远程服务器协议机发送命令并且驱动客户数据传输过程
服务器pi 服务器协议解释器,响应客户协议机发出的命令并驱动服务器端数据传输过程
客户 dtp 客户数据传输过程,其负责完成和服务器数据传输过程及客户端本地文件系统的通信
服务dtp 服务器数据传输过程,其负责完成和客户数据传输过程及服务器端文件系统的通信

在rfc 959中,一般使用用户这个名词来指代客户。rfc 959定义了客户pi和服务器pi交互的方式和规范。用户接口与pi和dtp交互的机理都并不是协议标准的一部分。pi和dtp往往通常是在同一个程序模块中实现的。

在ftp会话中,一共会存在有两个独立的网络连接,一个是由两端的pi使用的,另一个是由两端的dtp使用的。pi之间的连接一般被称作控制连接(control connection),dtp之间的连接被称做数据连接(data connection)

使用tcp服务的控制和数据连接

通常情况下,fto服务器监听端口号21来等待控制连接建立请求。而数据连接端口号的选择依赖于控制连接上命令。通常是客户发送一个控制消息来指定客户监听并等待服务器端发送数据连接建立请求的端口号。

对数据传输和控制命令传输来使用不同的独立连接有如下优点:两个连接可以选择不同的合适服务质量,如:对控制连接来说高需要更小的延迟时间,对数据连接来说需要更大的数据吞吐量;而且可以避免实现数据流中的命令的通明性及逃逸。

当传输建立时,总是由客户端首先发起。然而客户和服务器都可能是数据发送者。除了传输用户请求下载文件,数据传输过程同样在客户端请求列服务器端目录结构时建立。

1.命令选择

当一个传输建立时,一般通常需要指定四个方面的属性:

文件类型
该属性指定如何将文件的数据匹配成适于传输的格式,一共有四种可能的选择:

ascii文件类型
在发送端,文件从本地文本文件格式转换为 nvt ascii格式,每行结束有一个cr/lf对来标识。 在接收端,再被转换为本地的文本格式。

这说明了为什么unix主机之间传输文本文件为何传输的数据量要大于文件的实际大小。若传输一段端或传输两端都不使用ascii文本编码,则是应该由数据传输过程来实现本地编码和nvt ascii 编码之间的转换。

ebcdic文件类型
类似于ascii,区别仅仅上使用ebcdic字符编码

图象 (或二进制)文件类型
文件以本地传输内容传输,在远端以同本地完全相同的内容存储。

本地文件系统
用在字节大小不是8位的环境下。没字节位数由发送者指定。

在实际应用中,只有ascii和图象格式使用的较多。

格式控制
该属性是和将文本文件最后传送到打印设备相关的,其中有多种方式来实现将垂直格式信息编码到文件中,包括指示一个新页开始的方式。有如下方式可供选择:

无须打印格式控制,这是缺省值
telnet打印控制,在telnet协议中定义的控制字符包含在数据流中。.
fortran打印控制,
该属性在实际中很少使用。

结构
文件可以拥有内部结构,在传输中该结构被保留。由数据传输过程来负责在传输中的结构及本地结构之间相互匹配,有三种可能性:

文件结构
这实际上意味着文件被看作没有内部结构的连续的字节流。

记录结构
文件是有一系列记录组成的结构。这只适用于文本文件。

页面结构
也可以称做块结构。每一页都伴随一个页号来传输,从而以顺序的方式来完成传输。

页面结构很少在实际中遇到。记录结构也不是很常见。对于文本文件使用ascii文件类型可以获得相同的效果。

传输模式
该属性可以取三个不同的值:

流模式
文件的以字节流的方式传输。

块模式
文件以一个块连接一个块的方式传输,每个块的开头都有一个头。

压缩模式
一个简单的运程长度压缩编码被应用,来压缩连续的相同的字节。

实际中,一般只有流模式被使用。而压缩一般通过使用各种其他的工具程序来获得。

当一次传输被建立,客户端一般指定一个或多个前面说明的属性。若服务器端不能支持某个选项,服务器将用一个错误信息来响应客户端,并不具有协商机制。

ftp提供了充足的命令来使用户和远程建立连接并访问远程文件系统。

2.命令格式

命令以nvt ascii串的格式被传输。每个命令以三个或四个大写的nvt ascii字符开始,后面带有选项参数和一个cr/lf对来标识命令结束

应答由三个nvt ascii数字及一个选项消息组成。

一个长的应答也许会有多个消息组成,第一个消息的三个数字后带有一个破折号,最后的消息不带有破折号。中间的消息无须携带三个数字,但是如果带了三个数字,则也需要破折号。

下面是所有的命令的列表。带有星号的命令一般很少使用,所以往往在具体实现中不支持。

string meaning
abor 放弃传输
*acct 某些系统将帐号和用户与文件系统相关联
*allo 为即将传送的文件分配空间。后面携带的参数来确定字节数
*appe 将文件附加到已经存在的文件后面
cdup 在远程系统上将当前目录切换到上级父目录
cwd 改变远程系统的工作目录
dele 删除远程系统的文件
help 读取服务器的帮助信息,如:支持的命令的列表
list 在一个新建立的数据连接上发送当前工作目录下的文件名列表
mkd 创建目录
mode 指定传输模式,可携带的参数是:s、b或 c.
nlst 在一个新建立的数据连接上发送一个当前目录下的“完全”的目录列表
noop 空操作,防止连接断掉
pass 提供一个用户登录密码,必须立即跟随在user命令后
*pasv 指定服务器数据传输过程监听等待客户端的数据连接连接建立请求
port 指定客户端监听等待服务器端建立的连接的端口号
pwd 显示服务器端的当前工作目录名
quit 退出登录并终止连接
*rein 重新初始化,退出登录但是并不断开连接,后面必须随后发出一个新的user命令
*rest 从服务器的一个标识处重新开始传输
retr 从远程系统取回一个文件
rmd 删除一个目录
*rnfr 指定要被命名的文件的老的路径名,随后必须是一个rnto命令
*rnto 指定要被命名的文件的新的路径名
*site 站点特有的服务器提供的服务
*smnt 结构加载,提供一个文件系统结构的远程系统路径名
*stat 状态信息
stor 上载一个文件到服务器上,若文件已经存在则覆盖
*stou 上载一个文件到服务器上,不覆盖已经存在的文件
stru 指定文件结构,参数可以是f、r或p.
*syst 报告远程系统的操作系统类型
type 指定文件类型,参数可以是a、e、i、l只有type a和type i常用

控制连接命令应答有如下形式:

type description
1yz 主动初步应答,在发送另一个命令以前等待另一个应答
2yz 主动最后应答,最后一个命令成功结束
3yz 主动中间应答,必须再发送一个命令
4yz 暂时被动应答,要求的动作当时不能完成,但可以重试
5yz 永久被动应答,要求的动作不能完成,不应该重试

"y"数字编码进一步的信息

digit meaning
0 语法错误
1 信息
2 连接状态
3 认证和记帐
4 保留
5 file s文件系统状态

下面是一些典型的消息:

number meaning
125 数据连接打开,传输开始
200 命令ok
331 用户名ok 需要输入密码
425 不能打开数据连接
452 错误写文件
500 语法错误-不可识别的命

具体的详细情况可以参见rfc

wu-ftpd的官方权威站点地址是:http://www.wu-ftpd.org


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·如何查看本机打开的端口是被哪个程序使用的-网管专栏,操作系统
·如何在多台电脑上同时安装Windows-网管专栏,操作系统
·网管人员必备的网络命令(转贴)-数据库专栏,SQL Server
·Postfix + Courier-IMAP + Cyrus-SASL + MySQL + IMP完全指南(新版)-网管专栏,邮件服务
·一个IP建多个Web站点--主机头名法-网管专栏,WEB服务
·WinXP/2003网络服务详解-网管专栏,操作系统
·电信网管中的Java客户端(二)-JSP教程,Java技巧及代码
·Resin在Windows系统下的安装-网管专栏,WEB服务
·在Win2k3下配置Apache+php+mysql-网管专栏,WEB服务
·服务器配置SSL-网管专栏,操作系统

最新文章
·如何查看本机打开的端口是被哪个程序使用的-网管专栏,操作系统
·服务器配置SSL-网管专栏,操作系统
·一个IP建多个Web站点--主机头名法-网管专栏,WEB服务
·如何在多台电脑上同时安装Windows-网管专栏,操作系统
·Linux内核技术分析-网管专栏,操作系统
·在Win2k3下配置Apache+php+mysql-网管专栏,WEB服务
·在Redhat Enterprise AS 3 下源码安装配置 MONO-网管专栏,WEB服务
·网管人员必备的网络命令(转贴)-数据库专栏,SQL Server
·WinXP/2003网络服务详解-网管专栏,操作系统
·Apache安装设置-网管专栏,WEB服务




版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号