• ()centos6.8安装配置ftp服务器


    ftp传输原理

    客户端通过某软件用某个端口(a端口)向服务端发起tcp连接请求,同时告诉服务端客户端另一个空闲端口号(b端口),服务端用21端口与客户端建立一条控制连接通道。

    接着在默认情况下,服务端使用20端口和b端口建立数据传送通道。这样就用客户端的2个端口和服务端2个端口通道建立了两条通道,之后就可以传送数据了。

    ps:客户端的两个通道是都是随机的,服务端的控制通道用21,服务端的数据传送通道默认是20也可以设置成其他端口号。

    客户端<------------>服务端

    a端口<------------->21端口          控制通道

    b端口<------------->20端口           数据传送通道

    控制连接通道,会在传送一个文件后会关闭通道,然后再开启通道传统另一个文件,每一个文件传输都需要建立和关闭Tcp连接

    所以ftp传送多个小文件要比一个大文件时效率要低。

    ftp协议规范

    1:数据传送格式

    文件类型:ASCII或者二进制

    控制格式:只允许非打印

    数据结构:只允许文件结构

    传输方式:只允许流方式

    2:控制命令种类

    建立控制连接后,服务端保持监听状态,随时根据客户端发送的命令做相应的工作

    3:答应格式

     略

    抓包工具

    yum install -y wireshark

    客户端连接方式

    上面的 a端口<------------->21端口 的连接方式有两种:主动方式(port)和被动方式(pasv)

    主动和被动是相对于服务器而言,数据连接如果是服务器发起的就是主动连接,反之。

    主动方式下,客户端首先通过port命令向服务器发送自己的一个控件端口号,然后服务器通过默认的20端口向客服端提供的端口发起连接请求

    被动方式下,客户端发送pasv命令,服务端回应一个端口号,告诉客户端它将在这个端口监听来自客户端的TCP请求

    在全开放的网络环境下二种方式传输的效率是一样的。

    如果在客户端和服务器端有防火墙存在

  • 相关阅读:
    Python开发——数据类型【字典】
    Python开发——数据类型【元祖】
    Python开发——数据类型【列表】
    Python开发——基础
    Python开发——数据类型【运算符】
    c#中IList<T>与List<T>
    观察者模式(Observer Pattern)
    中介者模式(Mediator Pattern)
    策略模式(Strategy Pattern)
    命令模式
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/7092618.html
Copyright © 2020-2023  润新知