文件传输协议: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协议的更多相关文章

  1. [计算机网络-应用层] HTTP协议

    1.HTTP概况 Web的应用层协议是超文本传输协议(HTTP),它是Web的核心. HTTP由两部分程序实现:一个客户机程序和一个服务器程序,它们运行在不同的端系统中,通过交换HTTP报文进行对话. ...

  2. 深入理解FTP协议

    文件传输协议FTP(File Transfer Protocol)是因特网中使用最广泛的文件传输协议.FTP使用交互式的访问,允许客户指定文件的类型和格式(如指明是否使用ASCII码),并允许文件具有 ...

  3. 计算机网络-应用层(2)FTP协议

    文件传输协议(FTP,File Transfer Protocol)是Internet上使用最广泛的文件传送协议.FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限.它屏蔽了 ...

  4. 实验八 应用层协议Ⅱ-FTP协议分析

    实验八 应用层协议Ⅱ-FTP协议分析 一.实验目的 1.掌握FTP协议的实现原理. 2.了解控制通道和数据通道. 二.实验内容 用WareShark追踪ftp连接. 1.三次握手 2.ftp服务器回发 ...

  5. 计算机网络七层协议模型 “开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)

    计算机网络七层协议模型 作者:Ryan    时间:2013年10月7日 一.物理层(Physical Layer) OSI模型的最低层或第一层,规定了激活.维持.关闭通信端点之间的机械特性.电气特性 ...

  6. 计算机网络——TCP/IP协议族详解

    一.OSI七层协议体系结构域TCP/IP四层体系结构对比 ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是 ...

  7. ftp协议及vsftpd的基本应用

    1.ftp协议及vsftpd的基本应用 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系 ...

  8. 常见协议基础知识总结--FTP协议

    FTP协议是一种基于客户端和服务器的文件传输协议,属于应用层协议,基于传输层的TCP协议: FTP主要分成主动模式和被动模式两种传输方式, 方式是相对服务器而言的,服务器主动发起数据连接即主动方式,使 ...

  9. 网络协议之FTP协议

    FTP(File Transfer Protocol) 协议文档:RFC 959 1.1 FTP协议介绍 FTP协议基于TCP/IP协议实现,处于应用层. FTP协议为C/S架构,每一次FTP连接,命 ...

随机推荐

  1. Scala学习笔记(三)—— 方法和函数

    1. 方法 方法使用 def 定义: def 方法名(参数名:参数列表,…) :返回值类型 = { 方法结构体 } scala> def add(x : Int ,y : Int):Int = ...

  2. 利用cross-entropy cost代替quadratic cost来获得更好的收敛

    1.从方差代价函数说起(Quadratic cost) 代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为: 其中y是我们期望 ...

  3. 成都Uber优步司机奖励政策(1月25日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  4. Nodejs中的流

    Nodejs中的很多地方都用到了流,流是一个很常见的概念,一个http请求,控制台输入输出的形式都是流.流可以分为三种: 可读流 可写流 既能读又能写 其中第三种流又可以分为全双工流Duplex和转换 ...

  5. Emmet 技巧

    1. Lorem 产生一段 dummy text 2. $ 变量的使用 3. 插入img的长度和宽度 使用快捷键ctrl+u插入图片的长度和宽度 注意光标要停留在图片文件名上. 其他在Sublime中 ...

  6. 「日常训练」Case of Matryoshkas(Codeforces Round #310 Div. 2 C)

    题意与分析(CodeForces 556C) 为了将所有\(n\)个娃娃编号递增地串在一起(原先是若干个串,每个串是递增的), 我们有两种操作: 拆出当前串中最大编号的娃娃(且一定是最右边的娃娃). ...

  7. cf#512 C. Vasya and Golden Ticket

    题目链接 http://codeforces.com/contest/1058/problem/C 这题还是暴力最方便,和的情况最多有n*a[i]  900种把每种都试一遍 #include<b ...

  8. 移动性能测试之gemebench安装

    越来越多的人从事各种移动端性能测试,但工具和文档的资料却相对较少,这两天需要测试一款APP的性能,就来先简单介绍下gamebench的安装吧! 作为国人来说,使用gamebench还是有相当多的坑点: ...

  9. Jenkis 无法下载插件问题解决

    在新机器上安装jenkins后,安装插件报如下错误 sun.security.provider.certpath.SunCertPathBuilderException: unable to find ...

  10. python操作符及其循环语句(非常全)

    //2018.10.14 1. Windows + R可以直接进行运行cmd 2. Random.randint(a,b):产生a-b的任意一个整数,在IDLE里面运行时需要注意在前面写好调用impo ...