[计算机网络-应用层] FTP协议
文件传输协议:FTP
如下图所示:用户通过一个FTP用户代理与FTP交互。该用户首先提供远程主机的主机名,使本地主机的FTP客户机进程建立一个到远程主机FTP服务器进程的TCP连接。然后,该用户提供用户标识和口令,作为FTP命令的一部分在该TCP连接上传送。一旦该服务器向该用户授权,用户就可以向远程文件系统拷贝存放在本地文件系统中的一个或多个文件(反之亦然)。
HTTP和FTP都是文件传输协议,并且有很多共同点。例如,他们都运行在TCP上。然而它们也有一些重要区别,其中最显著的一点就是:
FTP使用两个并行的TCP连接来传输文件,一个是控制连接(用于在两主机之间传递控制信息),一个是数据连接(用于实际传输一个文件)。因为FTP协议使用一个分离的控制连接,所以我们也称FTP的控制信息是带外传送的。
而HTTP协议是在传输文件的TCP连接中发送请求和响应首部行的。因此HTTP是带内传送控制信息的。
FTP协议的控制连接和数据连接如下图所示:
·FTP客户机联系FTP服务器的21号端口,指定TCP为运输协议
·客户机通过控制连接获得授权
·客户机经控制连接通过发送命令浏览远程目录
·当服务器接收到一个文件传输命令时,该服务器打开到客户机的一个数据连接
·在传输一个文件后,服务器关闭数据连接
·服务器打开第二个TCP数据连接,以传输另一个文件
总结:对FTP传输而言,控制连接贯穿了整个用户会话期间,但是针对会话中的每一次文件传输都需要建立起一个新的数据连接(即数据连接是非持久的)。
注:FTP服务器必须在整个会话期间保留用户的状态信息。而HTTP是无状态的,即它不需要对任何用户状态进行追踪。
FTP命令和回答
下面是一些常用命令,它们经控制信道以ASCII 文本发送:
USER username:用于向服务器传送用户标识。
PASS password:用于向服务器传送用户口令。
LIST:返回当前目录中的文件列表,文件列表是在(新建的非持久连接)数据连接上传送的。
RETR filename:获取(get) 文件,该命令触发远程主机发起一个数据连接,并在该数据连接上发送所请求文件。
STOR filename:存储 (put)文件到远程主机。
下面是一些常见的状态码及相应短语(如在HTTP中的那样):
331 Username OK, password required
125 data connection already open; transfer starting
425 Can’t open data connection
452 Error writing file
[计算机网络-应用层] FTP协议的更多相关文章
- [计算机网络-应用层] HTTP协议
1.HTTP概况 Web的应用层协议是超文本传输协议(HTTP),它是Web的核心. HTTP由两部分程序实现:一个客户机程序和一个服务器程序,它们运行在不同的端系统中,通过交换HTTP报文进行对话. ...
- 深入理解FTP协议
文件传输协议FTP(File Transfer Protocol)是因特网中使用最广泛的文件传输协议.FTP使用交互式的访问,允许客户指定文件的类型和格式(如指明是否使用ASCII码),并允许文件具有 ...
- 计算机网络-应用层(2)FTP协议
文件传输协议(FTP,File Transfer Protocol)是Internet上使用最广泛的文件传送协议.FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限.它屏蔽了 ...
- 实验八 应用层协议Ⅱ-FTP协议分析
实验八 应用层协议Ⅱ-FTP协议分析 一.实验目的 1.掌握FTP协议的实现原理. 2.了解控制通道和数据通道. 二.实验内容 用WareShark追踪ftp连接. 1.三次握手 2.ftp服务器回发 ...
- 计算机网络七层协议模型 “开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)
计算机网络七层协议模型 作者:Ryan 时间:2013年10月7日 一.物理层(Physical Layer) OSI模型的最低层或第一层,规定了激活.维持.关闭通信端点之间的机械特性.电气特性 ...
- 计算机网络——TCP/IP协议族详解
一.OSI七层协议体系结构域TCP/IP四层体系结构对比 ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是 ...
- ftp协议及vsftpd的基本应用
1.ftp协议及vsftpd的基本应用 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系 ...
- 常见协议基础知识总结--FTP协议
FTP协议是一种基于客户端和服务器的文件传输协议,属于应用层协议,基于传输层的TCP协议: FTP主要分成主动模式和被动模式两种传输方式, 方式是相对服务器而言的,服务器主动发起数据连接即主动方式,使 ...
- 网络协议之FTP协议
FTP(File Transfer Protocol) 协议文档:RFC 959 1.1 FTP协议介绍 FTP协议基于TCP/IP协议实现,处于应用层. FTP协议为C/S架构,每一次FTP连接,命 ...
随机推荐
- C语言实现冒泡排序算法
新人新气象,又一个学习C的新人来了. 冒泡排序,基础中的基础,原理不啰嗦了. 代码中display()为数组展示函数,sort_bubble()为直接实现排序,details()为带动画展示. #in ...
- 关于verilog中的signed类型
在数字电路中,出于应用的需要,我们可以使用无符号数,即包括0及整数的集合:也可以使用有符号数,即包括0和正负数的集合.在更加复杂的系统中,也许这两种类型的数,我们都会用到. 有符号数通常以2的补码形式 ...
- sas的使用
1.建表 /*************************************/ /* create the second input data set */ /*************** ...
- DSP5509开发之FPGA接口
1. DSP5509和FPGA或者CPLD之间是什么接口,DSP相对普通MCU,具有专门的硬件乘法器,程序和数据分开的哈弗结构,特殊的DSP指令,快速的实现各种数字信号处理算法.在一个周期内可以完成一 ...
- RabbitMQ基础教程之Spring&JavaConfig使用篇
RabbitMQ基础教程之Spring使用篇 相关博文,推荐查看: RabbitMq基础教程之安装与测试 RabbitMq基础教程之基本概念 RabbitMQ基础教程之基本使用篇 RabbitMQ基础 ...
- 利用JSON Schema校验JSON数据格式
最近笔者在工作中需要监控一批http接口,并对返回的JSON数据进行校验.正好之前在某前端大神的分享中得知这个神器的存在,调研一番之后应用在该项目中,并取得了不错的效果,特地在此分享给各位读者. 什么 ...
- 题解 CF682C 【Alyona and the Tree】
简单搜索题,我们每找到一组不满足题目给出条件的点和边就将其整个子树删除,然后最终答案加上该子树的大小即可.注意,搜索的时候如果当前的边权和sum已经为负了,应该将其改为0(可以想想为什么) 注:题目翻 ...
- [JSON].value( keyPath )
语法:[JSON].value( keyPath ) 返回:[String | Null] 说明:获取指定键名路径值的字符串格式 示例: Set jsonObj = toJson("{bod ...
- [2018 ACL Long] 对话系统
[NLG - E2E - knowledge guide generation] 1. Knowledge Diffusion for Neural Dialogue Generation ( Ci ...
- svn服务器 备份,迁移,部署方案
这次做业务迁移,要从一个云厂商迁移到某云厂商,之前每天到全备svn排到用场了,需要搭建一个全新到svn服务并要做迁移,并实现我们开发机到时时代码同步 一.svn备份有很多种,优劣都不同,百度可查,我采 ...