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

  • 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. Struts2--Helloworld

    搭建Struts2环境时,我们一般需要做以下几个步骤的工作: 1.找到开发Struts2应用需要使用到的jar文件. 2.创建Web工程 3.在web.xml中加入Struts2 MVC框架启动配置 ...

  2. Python基础(6)--条件、循环

    本文的主要内容是 Python 的条件和循环语句以及与它们相关的部分. 我们会深入探讨if, while, for以及与他们相搭配的else,elif,break,continue和pass语句. 本 ...

  3. IOS之UI--自定义按钮实现代理监听点击事件

    前言: Objective-C提供的按钮监听事件的方法是 不含参数的监听方法 [button实例对象 addTarget:self action:@selector(func) forControlE ...

  4. Xcode的内存清理

    1.删除Xcode中多余的证书provisioning profile 手动删除: 打开finder,然后在最上面的前往中前往下方的路径,就可以看到你xcode运行到现在使用过的证书provision ...

  5. openstack kilo compute更新后报错IncompatibleObjectVersion: Version 1.2 of PciDeviceList is not supported

    前几天在compute节点更新openstack的包后,发现报错IncompatibleObjectVersion: Version 1.2 of PciDeviceList is not suppo ...

  6. ajax回调中的this.href不执行跳转的解决办法

    1. 问题背景 如下所示代码: $.post("/ems/register",indata, function(data){ if(data != null && ...

  7. PYTHON3 urllib2库

    python 3.x中urllib库和urilib2库合并成了urllib库..其中urllib2.urlopen()变成了urllib.request.urlopen() urllib2.Reque ...

  8. Swing应用开发实战系列之二:设计日期选择面板窗口

    Swing本身没有提供什么华丽丽的日期时间选择控件,所以笔者就在网上搜了个第三方的jar包jdatepicker-1.3.2.jar,基于此设计了个很轻量的日期选择面板,很简单的.效果图如下所示: 代 ...

  9. Core Data数据操作

    1.建立学生实体,插入100条数据 2.按条件查询学生数据 3.统计学生信息 4.修改学生信息 5.删除学生数据 import UIKit import CoreData class ViewCont ...

  10. 第一次wubi安装Ubuntu的经历及所走的弯路

    #安装目标:利用xp存储剩余空间安装ubuntu, 形成双系统. 整理出待安装的磁盘空间 #需要无损磁盘工具, 用了"傲梅分区助手", 偷懒没有选其他高大上的英文软件. XP下硬盘 ...