经常忘记这个东西.于是总结下这东西感受下这个协议.

  • FTP连接方式
    • 控制连接:标准端口为21,用于发送FTP命令信息
    • 数据连接:标准端口为20,用于上传、下载数据
    • 数据连接的建立类型:
      • 主动模式:服务端从20端口主动向客户端发起连接
      • 被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接
  • FTP传输模式
    • 文本模式:ASCII模式,以文本序列传输数据
    • 二进制模式:Binary模式,以二进制序列传输数据

总结:

两个阶段:控制连接  tcp 21(client发起,三次握手过程)

​                 数据连接 tcp 20(选)

ftp建立连接过程:

1,控制连接:---先建立控制连接: clinet主动去和server三次握手.

2,数据连接:

数据层面:

端口为源端去连ftp client。---------适用防火墙

端口,你来连我吧。---------不适用防火墙

注意:主动模式和被动模式以第二阶段来讨论的.

注意:防火墙环境适用ftp主动模式。​

数据连接的建立有两种方式:

,你来连接我吧。

主动模式解决防火墙问题。

去连接A 我以我的1090去连接B。

xftp默认是以被动模式去连接的。一般我们用的都是被动模式。但是遇到防火墙的话,就需要使用主动模式了。

[服务]ftp主动模式和被动模式的更多相关文章

  1. FTP主动模式和被动模式

    FTP主动模式和被动模式 FTP是仅基于TCP的服务,不支持UDP.与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口).通常来说这两个端口是21(命令端口)和20(数据端口 ...

  2. Ftp主动模式和被动模式以及java连接ftp模式设置

    Ftp主动模式和被动模式以及java连接ftp模式设置 https://www.cnblogs.com/huhaoshida/p/5412615.html (1) PORT(主动模式) PORT中文称 ...

  3. FTP 主动模式 与被动模式

    今天在被电信运营商给的没有内网ip被nat后的内网ip访问我的ftp服务器时出现了,连接被关闭的错误,经过多番查询发现问题原因是因为NAT内网ip没有被有效地转换为外网ip,也即是说NAT对ftp协议 ...

  4. [转] FTP主动模式和被动模式的区别

    转自原文FTP主动模式和被动模式的区别 基础知识: FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口).通常2 ...

  5. FTP主动模式与被动模式,及java FTPClient模式设置

    FTP的主动模式与被动模式 FTP服务器使用20和21两个网络端口与FTP客户端进行通信. FTP服务器的21端口用于传输FTP的控制命令,20端口用于传输文件数据. FTP主动模式: FTP客户端向 ...

  6. ftp主动模式与被动模式交互过程分析

    1.相关介绍 1.1主动模式和被动模式 主动模式:服务端通过指定的数据传输端口(默认20),主动连接客户端提交的端口,向客户端发送数据. 被动模式:服务端采用客户端建议使用被动模式,开启数据传输端口的 ...

  7. java ftp主动模式与被动模式

    首先介绍一下主动模式与被动模式: 1.PORT(主动模式) ftpClient.enterLocalActiveMode(); PORT中文为主动模式,工作的原理:FTP客户端连接到FTP服务器的21 ...

  8. FTP主动模式和被动模式的区别

    基础知识: FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口).通常21端口是命令端口,20端口是数据端口.当 ...

  9. 【转】FTP主动模式和被动模式的比较

    总是记不住FTP主动和被动模式的区别.放在这里,以备日后查阅.   FTP是仅基于TCP的服务,不支持UDP.与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口).通常来说这 ...

随机推荐

  1. block中出现此种报错: Incompatible block pointer types initializing 'float (^__strong)(float, float)' with an expression of type 'int (^)(float, float)'

    当block(代码块)的返回值是float时,应注意的地方:定义的返回值类型一定要与return的返回值类型一样 我们以两个数的四则运算来举例 在main.m文件中的四则运算中,我采用两种返回值类型( ...

  2. NSString、NSArray、NSDictionary和NSData的数据存储

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  3. Java从零开始学四十四(多线程)

    一.进程与线程 1.1.进程 进程是应用程序的执行实例. 进程是程序的一次动态执行过程,它经历了从代码加载.执行到执行完毕的一个完整过程,这个过程也是进程本身从产生.发展到最终消亡的过程 特征: 动态 ...

  4. Mongodb在Windows上的配置

    1.打开mongodb的官网:https://www.mongodb.org/进行下载相应平台的安装包 2.我们选择最新版的3.2版本来下载,选择对应的操作系统版本来下载,这里选择windows Mo ...

  5. IDO分享 | 如何在centos下安装OpenCMS

    本次的opencms环境是在两台机器上搭建的. 一台服务器安装mySQL, 一台服务器安装jdk.tomcat.opencms.也可以将jdk.mySQL.tomcat.opencms安装在同一个机器 ...

  6. win7 64位安装oracle10g出现未知错误,程序异常终止解决方法

    修改Oracle 10G\database\stage\prereq\db\refhost.xml 在 </SYSTEM> <CERTIFIED_SYSTEMS>后面添加 &l ...

  7. JavaScript Patterns 4.1 Functions Background

    Functions are first-class objects and they provide scope. • Can be created dynamically at runtime, d ...

  8. Oracle 数据库二 基本查询

    查询当前用户:show user 查看当前用户下的表:select *from tab; 设置行宽: show linesize;(查看行宽)     set linesize 120;(设置行宽) ...

  9. Java小方法

    /** * 计算百分比. * @param dividend 被除数 * @param divisor 除数 * @return 结果 */ private String getPercent(lon ...

  10. 版本控制工具VSS使用介绍

    什么是版本控制? 1.怎样对研发项目进行整体管理 2.项目开发小组的成员之间如何以一种有效的机制进行协调 3.如何进行对小组成员各自承担的子项目的统一管理 4.如何对研发小组各成员所作的修改进行统一汇 ...