文章目录

  • FTP协议是什么
  • FTP协议传输过程
  • FTP命令和回答
  • 参考文献

FTP协议是什么

FTP(File Transfer Protocol,文件传输协议) 是TCP/IP 协议组中的协议之一。 FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。 其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

在典型的FTP的会话中,用户坐在一台主机前面,向一台远程主机上传或下载文件。为使用户能够访问远程主机的账户,用户必须提供一个用户标识和口令。在提供了授权信息后,用户就能从本地文件系统向远程文件系统传送文件。


HTTP协议和FTP协议都是文件传输协议,并且有很多共同的特点。例如,其运输层协议都是TCP。但是,这两个协议也有一些重要的区别:最显著的就是FTP使用并行的两个TCP连接来传输文件,一个是控制连接,一个是数据连接

  • 控制连接用于在两个主机之间传输控制信息,如用户标识、口令,命令等
  • 数据连接用户实际传输一个文件

正因为FTP协议使用一个分离的控制连接,所以我们也称FTP的控制信息是带外传送的。但是,HTTP协议是在传输文件的TCP连接中发送请求和响应首部行的。因此,HTTP协议可以说是带内发送控制信息的

FTP协议传输过程

当用户主机和远程主机开始一个FTP会话前,FTP的客户机首先在21端口上向服务器发起一个用于控制的TCP连接。当FTP的服务器端从该连接上收到一个文件传输的命令后,就发起一个到客户机上的数据连接。FTP在该数据连接上准确地传送一个文件并关闭该连接。如果在同一会话期间,用户还需要传输另一个文件,FTP则会打开另一个数据连接。因为对FTP传输而言,控制连接贯穿了整个用户会话期间,但是针对会话中的每一次文件传输都需要建立一个新的数据连接

因此,FTP服务器必须在整个会话期间保留用户的状态信息!这根HTTP是不同的。

FTP命令和回答

和HTTP的命令一样,FTP的报文也是用7位ASCII码编写的。为了区分连续的命令,每个命令后面都跟回车换行符。每个命令由四个大写字母组成,部分还有可选参数,以下是一些常用命令:

  • USER username:用于向服务器传送用户标识
  • PASS password:用于向服务器传送用户口令
  • LIST:用于请求服务器返回远程主机当前目录的所有文件列表
  • RETR filename:用于从远程主机的当前目录下检索文件
  • STOR filename:用于向远程主机的当前目录下存储文件

在用户发出的命令和FTP协议在控制连接上发送的命令之间,一般有一个一对一关系,每个命令都对应着一个回答。回答是一个三位数字。后面跟着一个可选信息,常用的状态码如下:

状态码 释义
331 Username OK, Password required
125 Data connection already open; transfer starting
425 Can’t open data connection
452 Error writing file

参考文献

[1]计算机网络自顶向下方法.第二章

在互联网上传输文件 —— FTP协议相关推荐

  1. FTP可以建立连接不能传输文件(FTP主被动模式)

    问题现象:客户在云主机安全组上加入了20/21入规则,客户端可以连接FTP服务器,但是无法传输文件等. 原因:默认FTP连接传输使用被动模式未使用主动模式,防火墙(安全组)未设置正确的出入站规则 解决 ...

  2. java项目如何部署到服务器----传输文件ftp

    目录 部署到Linux系列教材 (一)- FTP - 介绍 步骤 1 : ftp做什么用 步骤 2 : 安装服务器相关内容 部署到Linux系列教材 (二)- FTP - 安装 步骤 1 : 介绍vs ...

  3. [ubuntu]用SSH实现ubuntu系统互联并传输文件(无图形界面)

    安装ssh-server: 安装ssh协议:sudo apt-get install openssh-server 安装好后确认 SSH Server 是否启动:sudo ps -e |grep ss ...

  4. 教你写一个ftp协议(文件传输协议)

    一.FTP协议简介 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它 ...

  5. 基于FTP协议的文件传输与下载

    目录 一.FTP协议: 二.文件上传: 1.连接服务器 2.登录操作 3.上传操作 三.文件下载 1.连接服务器 2.登录操作 3.下载操作 四. 总结: 一.FTP协议: ftp是(File Tra ...

  6. 华为eNSP配置文件传输FTP协议

    华为eNSP配置文件传输FTP协议 一.文件传输协议 二.服务端配置 三.客户端登录 (一)通过路由器R1命令登录服务端R3 (二)通过PC主机登录服务端R3 (三)升级操作系统 一.文件传输协议 文 ...

  7. 局域网文件分享协议和方案的探究

    不管是学习还是工作中经常遇见这样一种情况,需要传输一些文件给同学,同事或者其他人,这些文件经常是些软件安装包,素材,文档,游戏安装包,软件安装环境等等.多数情况下都会选择使用u盘,先把文件复制进去,然 ...

  8. FTP协议中的登录 上传 下载 新建目录 删除目录 的wireshark包分析(一文看完TCP包分析,附源文件,ppt,操作视频)

    ​​​​​​​目录 一原理 二.FTP登录 三.FTP下载 四.FTP上传 五.FTP新建目录 六.FTP删除目录 一原理 前言:TCP/IP四层模型和OSI模型对照,以及FTP在模型中的位置. • ...

  9. 计算机一级ftp协议传输,文件传输协议(FTP)必将消亡

    文件传输协议(FTP)在RFC 959中定义,于1985年10月发布.文件传输协议(FTP)被设计成为一个跨平台的.简单且易于实现的协议.文件传输协议(FTP)有一个漫长的演化史,是互联网上最重要的应 ...

最新文章

  1. 【数据蒋堂】第15期:开放的计算能力为数据库瘦身
  2. MATLAB在通信系统仿真中的注意
  3. Ubuntu、Windows双系统为Ubuntu增加磁盘空间
  4. 【机器学习基础】数学推导+纯Python实现机器学习算法15:GBDT
  5. Python3求最后一个单词长度
  6. Mac资讯:macos big sur正式版推送 macOS 11 Big Sur有哪些不兼容的软件?
  7. scratch课程案例——漫天飞雪
  8. 大学计算机课是绩点课吗,选修课是什么意思 选修课成绩算入绩点吗
  9. 带你了解电机驱动板的四大分类
  10. 怎么在python输出图片_python怎么输出图片
  11. PRD | 微信小程序产品需求文档(柚诚小栈用户端)
  12. 挑选适合自己的乒乓球拍【转】
  13. 每日一个小技巧:文字转图片怎么操作?介绍给你三款软件
  14. python怎么绘制饼图_Matplotlib绘制饼图
  15. 临床执业助理医师(综合练习)题库【4】
  16. 有道云笔记 - Markdown模板(文首附markdown源码,即.md文件)
  17. 中年人学C语言Windows程序设计,9 窗口绘图:直线的画法
  18. 基于kubernetes-1.21.5 部署 Rook
  19. LATEX 排版问题记录
  20. 企业征信报告和企业信用评价报告有何不同?

热门文章

  1. 基于海思AI芯片的智能视频分析边缘网关
  2. 如何搭建Grafana
  3. Windows值得推荐的桌面管理软件
  4. 用setTimeout来实现setInterval
  5. Number Sequence/数字序列
  6. 监控摄像头清晰度(分辨率)介绍
  7. 纯css锚点跳转过渡效果 - 神奇的scroll-behavior属性
  8. 上云利器,K8S应用编排设计器之快到极致
  9. Sailfish 浏览器是基于 Gecko 引擎开发
  10. 汇川H5U模拟量输入模拟量转换 FC S_ITR