【网络协议详解】——FTP系统协议(学习笔记)

这篇具有很好参考价值的文章主要介绍了【网络协议详解】——FTP系统协议(学习笔记)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🕒 1. 概述

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

FTP的常见用途:

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

【网络协议详解】——FTP系统协议(学习笔记)

🕒 2. 工作原理

【网络协议详解】——FTP系统协议(学习笔记)

🕘 2.1 两个连接

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

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

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

【网络协议详解】——FTP系统协议(学习笔记)

🕒 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 数据格式化命令

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

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

🕘 3.4 端口定义命令

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

命令 参数 说明
PORT 6个数字的标识符 客户选择端口
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 命令OK
211 系统状态或求助回答
212 目录状态
213 文件状态
214 求助报文
215 命名系统类型(操作系统)
220 服务就绪
221 服务关闭
225 数据连接打开
226 关闭数据连接
227 进入被动方式,服务器发送IP地址和端口号
230 用户登录OK
250 请求文件动作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 服务器 (详细)

【网络协议详解】——FTP系统协议(学习笔记)
【网络协议详解】——FTP系统协议(学习笔记)

【网络协议详解】——FTP系统协议(学习笔记)
【网络协议详解】——FTP系统协议(学习笔记)
【网络协议详解】——FTP系统协议(学习笔记)

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


❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页文章来源地址https://www.toymoban.com/news/detail-466878.html

到了这里,关于【网络协议详解】——FTP系统协议(学习笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络协议详解】——IPv6协议(学习笔记)

    更大的地址空间 :IPv6将IPv4的 32 比特地址空间增大到了 128 比特,在采用合理编址方法的情况下,在可预见的未来是不会用完的。 扩展的地址层次结构 :可划分为更多的层次,这样可以更好地反映出因特网的拓扑结构,使得对寻址和路由层次的 设计更具有灵活性 。 灵活的

    2024年02月07日
    浏览(27)
  • 【网络协议详解】——VLAN技术(学习笔记)

    VLAN技术把用户划分成多组逻辑的网络,组内可以通信,组间不允许通信。 二层转发的单播、组播、广播报文只能在组内转发。 为了实现转发控制,在待转发的以太网帧中添加 VLAN标签 ,然后 设定交换机端口 对该标签和帧的处理方式。 方式包括丢弃帧、转发帧、添加标签、

    2024年02月05日
    浏览(46)
  • 【网络协议详解】——GNS3的使用(学习笔记)

    📖 前言:在IT领域,网络协议的理解和掌握是至关重要的。GNS3和Wireshark是非常实用的工具,它们可以帮助你深入了解TCP/IP协议和网络的运作情况。 GNS3 是一款图形化的网络模拟软件。 模拟器的核心是 Dynamips 程序,通过构建一个虚拟的环境来运行真实的路由器网际操作系统(

    2024年02月02日
    浏览(43)
  • 【Linux命令详解 | wget命令】 wget命令用于从网络下载文件,支持HTTP、HTTPS和FTP协议

    在编程世界中,处理网络资源是一项关键任务,而 wget 命令就是一位可靠的助手。 wget (全名为“Web Get”)是一种用于从网络下载文件的工具,它能够处理多种协议,包括HTTP、HTTPS和FTP。作为一个博主,我们可以利用 wget 命令来获取文件、备份网站内容、自动下载资源等。

    2024年02月12日
    浏览(34)
  • 计算机网络 应用层上 | 域名解析系统DNS 文件传输协议FTP,NFS 万维网URL HTTP HTML

    之前我们讲运输层的时候已经讲了运输层可以给不同进程之间通信,但我们还需要应用层原因是,许多 应用需要多个进程之间相互配合完成,所以应用层进程用来约束这些配合! 每个应用层协议用来解决一个问题 应用层的许多协议都是基于客户服务器方式 客户是请求方,服

    2024年01月24日
    浏览(48)
  • FTP文件传输协议详解

    简介:FTP是基于TCP协议之上的具有C/S架构的文件服务器。 需要通过控制连接20端口来控制双方的通信 需要通过数据连接21端口来进行双方的通信 主动模式:最大的特点是数据连接由服务器的20端口主动发起连接,这种情况可能会被客户端的防火墙拒绝 被动模式,是由客户端向

    2024年02月06日
    浏览(33)
  • FTP协议详解

    链接: C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 FTP 为 File Transfer Protocol 的缩写,即文件传输协议,是 TCP/IP 协议族中的协议之一。 FTP 是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议。 RFC 959 定义了 FTP 协议规范。 同大

    2024年02月02日
    浏览(34)
  • TCP/IP详解——FTP 协议,Telnet协议

    FTP 数据传输协议,属于是 成块数据流 。 FTP是用来传送文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。 TCP连接 使用FTP进行文件传输时,会使用两个TCP连接。 第一个连接是FTP客户端和FTP服务器间的 控制连接 。FTP服务器开启21号端口,

    2024年01月20日
    浏览(36)
  • TCP/IP协议、HTTP协议和FTP协议等网络协议简介

    常见的网络协议主要包括TCP/IP协议、HTTP协议、FTP协议等。 TCP/IP协议(Transmission Control Protocol/Internet Protocol)是互联网最基础的协议,由网络层的IP协议和传输层的TCP协议组成。 TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准,是Internet国际互联网络

    2024年04月10日
    浏览(72)
  • 网络协议——FTP(文件传输协议)与TFTP(简单文件传输协议)原理及搭建使用

    1. FTP基本概念           FTP采用典型的C/S架构(即服务器端与客户端模型),端口号为20/21,客户端与服务器端建立TCP连接之后即可实现文件的上传、下载。20端口用来传输数据流,21端口用来传输控制流。 2. FTP传输文件的模式 针对传输的文件类型不同,FTP可以采用不同的

    2024年04月26日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包