FTP协议简述

FTP(File Transfer Protocol,文件传输协议)
是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。

其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据21用于传输控制信息

但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,
采用主动模式,那么数据传输端口就是20;
采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

主动模式(PORT FTP)

FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

(登录FTP服务器成功的过程):

  1. 因为FTP使用的是TCP协议,所以客户端在通过ftp 192.168.120.240连接服务器时,首先会经历TCP的三次握手来建立控制通道。客户端使用任意的端口N(N>1024)来连接FTP服务器默认的21端口。
  2. 在TCP三次握手结束后,服务器端正式响应客户端的控制连接请求,控制通道建立。
  3. 客户端向服务器发送含有ACK的数据段来确认控制连接建立。
  4. 客户端向服务器发送用户名。
  5. 服务器向客户端发送含有ACK的数据段来确认用户名。
  6. 服务器向客户端询问密码。
  7. 客户端向服务器发送含有ACK的数据段来确认会发送密码。
  8. 客户端向服务器发送密码,密码为明文。
  9. 服务器向客户端发送含有ACK的数据段来确认密码收到。
  10. 服务器向客户端发送登陆成功的信息。
  11. 客户端向服务器发送含有ACK的数据段来确认收到登陆成功的信息。

被动模式 (Passive FTP)

在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,通过三次握手建立通道,然后FTP服务器将通过这个端口进行数据的传送。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

用户授权登录FTP服务器

要连上 FTP 服务器(即“登陆”),必须要有该 FTP 服务器授权的帐号,也就是说你只有在有了一个用户标识和一个口令后才能登陆FTP服务器,享受FTP服务器提供的服务。
地址格式

FTP地址如下:
ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名

上面的参数除FTP服务器IP或域名为必要项外,其他都不是必须的。如以下地址都是有效FTP地址:
ftp://foolish.6600.org
ftp://list:list@foolish.6600.org
ftp://list:list@foolish.6600.org:2003
ftp://list:list@foolish.6600.org:2003/soft/list.txt

12.FTP协议的简述及FTP的工作过程是什么?相关推荐

  1. 简述java程序的工作过程_简述 Java 程序的开发过程。_学小易找答案

    [填空题]两个啮合齿轮在啮合区内,一个齿轮的轮齿用()绘制,另一个齿轮的轮齿被遮挡的部分用()绘制,被遮挡的部分也可以省略不画. [单选题]只有建立了统一的学校集体,才能在儿童的意识中唤起舆论的强大力 ...

  2. 「协议」Kcp协议介绍、Demo讲解与工作过程浅谈

    Tcp和Udp 传输控制协议(英语:Transmission Control Protocol,缩写:TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,其拥有着相对而言的可靠传输(相对UD ...

  3. 一款支持FTP协议的LTE物联网模块操作实例

    CLM920 AC5 MD支持分级天线 以及FTP协议,本文延时FTP协议操作过程 模块开机,确认模块初始化完成 AT+CFTPPORT 设置FTP服务器端口 ( FTP默认端口21) 示例: AT+ ...

  4. FTP协议 服务器端口,FTP协议介绍

    原标题:FTP协议介绍 一.FTP介绍 FTP (File transfer protocol) 是TCP/IP 协议组中的协议之一.他最主要的功能是在服务器与客户端之间进行文件的传输.FTP就是实现 ...

  5. 网络协议之FTP协议

    1.什么是FTP协议? FTP 是File Transfer Protocol(文件传输协议).用于ftp客户端和ftp服务器之间进行文本.文件传输的协议.与http的短连接不同,FTP协议是一种基于 ...

  6. 基于FTP协议实现文件上传与下载

    目录 一.FTP简介 二.关于FTP服务器 三.文件上传 分步讲解: 完整实现代码: 四.下载文件 分步讲解: 完整实现代码: 小结 一.FTP简介 FTP(File Transfer Protoco ...

  7. CryptoTab 服务器_如何架设FTP服务器,如何架设FTP服务器,具体架设方法

    FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务. FTP的全称是File Transfer Protocol(文件传输协议).顾名思义,就是专门用来传输文件的协议.简单地 ...

  8. linux关闭启动ftp服务器,开启和关闭ftp服务及ftp服务的初步解释

    1.概念解释: ftp服务的提供者称为FTP服务器,它们是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务. FTP的全称是File Transfer Protocol(文件传输协议).专门 ...

  9. day34 异常处理、断言、socket之ftp协议

    Python之路,Day20 = 异常处理.断言.socket之ftp协议 参考博客:http://www.cnblogs.com/metianzing/articles/7148191.html 1 ...

最新文章

  1. 理解MySQL--索引与优化(转载)
  2. VTK:对齐两个 PolyData用法实战
  3. 通过GitHub Pages创建个人主页
  4. Magicodes.IE Excel合并行数据导入教程
  5. Qt下Tcp通信的简单使用三
  6. “宅家十大热销商品”榜单:确认过眼神,都是自己剪头发的人
  7. java使用JMail通过QQ邮件服务器实现自动发送邮件
  8. python星号倒金字塔结构_Python语言应用2020智慧树章节测试答案
  9. 学生网页设计作业源码(HTML+CSS)——海贼王6页代码质量好
  10. 怎么自费出书方法步骤
  11. 【2020春招记录】 吉比特游戏研发笔试
  12. 深入分析JavaWeb技术内幕系列之---DNS域名解析过程
  13. 获取空气质量站点数据 城市数据 日数据 时数据
  14. 一级计算机软件wps,计算机一级WPS
  15. 拼多多蓝海词数据分析工具哪个好?多多情报通怎么样?
  16. 宅家羊毛党是怎么做到月入上万的
  17. Image-Image Translation to Enhance Near Infrared Face Recognition阅读笔记
  18. 手把手教学51单片机第三课 | 复位电路、数码管静态显示
  19. 什么是:产品专员、产品经理、产品总监、产品副总?
  20. Shell学习总结-流编辑器sed

热门文章

  1. U盘中毒(一堆.scr扩展名的文件),文件不见了怎么办,怎么恢复隐藏文件
  2. 转:数据库访问性能优化
  3. Python常用库大全(转)
  4. SVN clean up失败或是lock等问题解决方案
  5. 【一】VVC理论知识之图像块划分
  6. 华为od机考真题-快速人名查找
  7. 20162303 结对编程项目-四则运算 第一周输出阶段总结博客
  8. 外挂技术汇总及书籍推荐
  9. IPv4地址的分配原理
  10. Xcode7.3.1中通过最新的CocoaPod安装pop动画引擎