【网络协议详解】

您所在的位置:网站首页 ftp文件传输协议解码 【网络协议详解】

【网络协议详解】

2023-10-20 00:58| 来源: 网络整理| 查看: 265

目录 🕒 1. 概述🕒 2. 工作原理🕘 2.1 两个连接 🕒 3. 相关命令与处理🕘 3.1 接入命令🕘 3.2 文件管理命令🕘 3.3 数据格式化命令🕘 3.4 端口定义命令🕘 3.5 文件传输命令🕘 3.6 杂项命令🕘 3.7 命令处理——响应 🕒 4. 文件传输🕘 4.1 例子

🕒 1. 概述 将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机中,是一项基本的网络应用,即文件传送。文件传送协议FTP (File Transfer Protocol)是因特网上使用得最广泛的文件传送协议。 FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。RFC 959 很早就成为了因特网的正式标准。 在因特网发展的早期阶段,用FTP传送文件约占整个因特网的通信量的三分之一,而由电子邮件和域名系统所产生的通信量还要小于FTP所产生的通信量。只是到了1995年,万维网WWW的通信量才首次超过了FTP。

FTP的常见用途:

FTP的常见用途是在计算机之间传输文件,尤其是用于批量传输文件。FTP的另一个常见用途是让网站设计者将构成网站内容的大量文件批量上传到他们的Web服务器。

在这里插入图片描述

🕒 2. 工作原理

在这里插入图片描述

🕘 2.1 两个连接

FTP客户和服务器之间要建立以下两个并行的TCP连接:

控制连接,在整个会话期间一直保持打开,用于传送FTP相关控制命令。数据连接,用于文件传输,在每次文件传输时才建立,传输结束就关闭。

默认情况下,FTP使用TCP 21端口进行控制连接,TCP 20端口进行数据连接。但是,是否使用TCP 20端口建立数据连接与传输模式有关,主动方式使用TCP 20端口,被动方式由服务器和客户端自行协商决定。

在这里插入图片描述

🕒 3. 相关命令与处理

FTP的命令分为6组:

🕘 3.1 接入命令

接入命令使用户能够访问远程系统。

命令参数说明USER用户标识符用户信息PASS用户口令口令ACCT应付费的服务财务信息REIN重新初始化QUIT从系统注销ABOR命令异常终止 🕘 3.2 文件管理命令

文件管理命令使用户能访问到远程计算机的文件系统。

命令参数说明CWD目录名改变到另一个目录CDUP改变到父目录DELE文件名删除文件LIST目录名列出子目录或文件NLIST目录名列出子目录或无其它属性的文件MKD目录名创建新目录PWD显示当前目录RMD目录名删除目录RNFR文件名(旧文件名)标志要重新命名的文件RNTO文件名(新文件名)重新命名文件SWNT文件系统名安装文件系统 🕘 3.3 数据格式化命令

数据格式化命令让用户定义数据结构、文件类型以及传输方式。

命令参数说明TYPEA(ASCII),E(EBCDIC),I(图像),N(非打印),或T(TELNET)定义文件类型STRUF(文件),R(记录),P(页面)定义数据的组织MODES(流),B(块),C(压缩)定义传输方式RMD目录名删除目录RNFR文件名(旧文件名)标志要重新命名的文件RNTO文件名(新文件名)重新命名文件SWNT文件系统名安装文件系统 🕘 3.4 端口定义命令

端口定义命令定义客户端的数据连接使用的端口号。

命令参数说明PORT6个数字的标识符客户选择端口PASV服务器选择端口 🕘 3.5 文件传输命令

文件传输命令用于控制传输文件。

命令参数说明RETR文件名读取文件:文件从服务器传送到客户STOR文件名存储文件:文件从客户传送到服务器APPE文件名与STOR类似,但是若文件存在,将数据添加到文件尾部STOU文件名与STOR相同,但是文件名在目录中必须唯一ALLO文件名在服务器为文件分配存储空间REST文件名在指明的数据点给文件标记确定位置STAT文件名返回文件的状态 🕘 3.6 杂项命令

杂项命令用于将用户要求的信息返回客户端。

命令参数说明HELP询问关于服务器的信息NOOP检查服务器是否工作SITE文件名指明特定场所的命令SYST询问服务器使用的操作系统 🕘 3.7 命令处理——响应

响应分为两个部分:

3位数字的代码:定义代码跟随在代码后的文本:定义所需的参数或额外的解释说明

将3位数字记为xyz,下面展示每一个数字的意义。

第一个数字定义命令的状态。该位置上可以使用下列5个数字:

1yz(正面初步回答) 表示动作已经开始。服务器在接受命令之前将发送回答。2yz(正面完成回答) 表示动作己经完成。服务器将接受命令。3yz(正面中间回答) 表示命令已经接受,但需要进一步的信息。4yz(过渡负面完成回答) 表示动作没有发生,但差错是暂时的。同样的命令其后可继续发送。5yz(永久负面完成回答) 表示命令没有接受,不能再次发送。

第二个数字定义命令的状态。该位置上可以使用下列6个数字:

x0z(语法)x1z(信息)x2z(连接)x3z(鉴别和账号)x4z(未指明)x5z(文件系统)

第三个数字提供附加信息,下表给出了可能出现的响应简短列表:

代码说明——正面初步回答120服务不久即将就绪125数据连接打开;数据传输不久即将开始150文件状态是OK——正面完成回答200命令OK211系统状态或求助回答212目录状态213文件状态214求助报文215命名系统类型(操作系统)220服务就绪221服务关闭225数据连接打开226关闭数据连接227进入被动方式,服务器发送IP地址和端口号230用户登录OK250请求文件动作OK——正面中间回答331用户名OK:需要口令332需要登录账号350文件动作在进行中:需要更多的信息——过渡负面完成回答425不能打开数据连接426连接关闭:不能识别的命令450未采取文件动作:文件不可用451动作异常终止:本地差错452动作异常终止:存储器不足——永久负面完成回答500语法差错:不能识别的命令501参数或变量的语法差错502命令未实现503不良命令序列504命令参数未实现530用户未登录532存储文件需要账号550动作未完成:文件不可用552请求的动作异常终止:超过分配的存储器空间553未采取请求动作:文件名不允许 🕒 4. 文件传输

FTP的文件传输仅表示下列三件事件之一:

从服务器把文件复制到客户(下载),称为读取文件。在RETR命令的监督下完成。从客户把文件复制到服务器(上传),称为存储文件。在STOR命令的监督下完成。从服务器向客户发送目录列表或文件名。在LIST命令的监督下完成。应注意,FTP把目录或文件名列表当作文件,在数据连接上发送。 🕘 4.1 例子

🔎 在 VMware 虚拟机中搭建 FTP 服务器 (详细)

在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

注:PORT 192,168,26,1,36,123,该命令是客户端告知服务器,客户端的数据连接端口号为36*256+123=9339

❗ 转载请注明出处 作者:HinsCoder 博客链接:🔎 作者博客主页



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3