zoukankan      html  css  js  c++  java
  • FTP的两种模式

    FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是 Active,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTPserver。Passive模式FTP的客户端发送 PASV命令到 FTP Server。

    下面介绍一个这两种方式的工作原理:
        Standard模式FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

     

    recv   "220 ProFTPD 1.2.5 Server (ProFTPD Default Installation) [Admin]\r\n"

    send  "USER libh\r\n"

    recv  "331 Password required for libh.\r\n"

    send  "PASS 1111\r\n"

    recv  "230 User libh logged in.\r\n"

    send  "PORT 192,168,0,116,94,141\r\n"

    //port=94*256+141

     

    recv  "200 PORT command successful.\r\n"

    send  "STOR 100k.doc\r\n"

    recv  "150 Opening ASCII mode data connection for 100k.doc.\r\n"

     

    send  ………………………………

    recv  "226 Transfer complete.\r\n"

    send    "QUIT\r\n"

    recv   "221 Goodbye.\r\n"


        Passive模式在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。 

    recv  "220 ProFTPD 1.2.5 Server (ProFTPD Default Installation) [Admin]\r\n"

    send  "USER libh\r\n"

    recv   "331 Password required for libh.\r\n"

    send  "PASS 1111\r\n"

    recv  "230 User libh logged in.\r\n"

    send     "PASV\r\n"

    recv   "227 Entering Passive Mode (192,168,0,254,128,3).\r\n"

    //port=128*256+3

     

    send  "STOR 100k.doc\r\n"

    recv  "150 Opening ASCII mode data connection for 100k.doc.\r\n"

    send  …………………………

    recv  "226 Transfer complete.\r\n"

    send      "QUIT\r\n"

    recv          "221 Goodbye.\r\n"
  • 相关阅读:
    设计模式(6)--Adapter(适配器模式)--结构型
    设计模式原则(1)--Single Responsibility Principle(SRP)--单一职责原则
    设计模式(5)--Builder(建造模式)--创建型
    设计模式(4)--AbstractFactory(抽象工厂模式)--创建型
    设计模式(3)--SimpleFactory( [1] 简单工厂模式)--创建型
    JS 的map和array集合组合返回JSON字符串
    HTML中直接写js 函数
    设计模式(3)--FactoryMethod( [2] 工厂方法模式)--创建型
    图片剪贴工具类
    远程Get,Post请求工具类
  • 原文地址:https://www.cnblogs.com/tester2test/p/413905.html
Copyright © 2011-2022 走看看