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请求

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

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

()centos6.8安装配置ftp服务器的更多相关文章

  1. vps建站教程 CentOS6如何安装配置FTP服务器

    通过之前的几篇文章,我们都知道了如何配置PHP环境,也知道如何保护我们的vps以及如何绑定多个域名建设多个网站.有时候我们为了让我们的朋友也能用我们的vps建站又不想给他们太多权限,有时候我们想要当个 ...

  2. centos6.4安装配置vpn服务器步骤详解

      centos6.4安装配置vpn服务器步骤详解,从安装VPN到配置VPN服务器.配置VPN服务器的路由转发功能,每一步都很详细   一.VPN服务器环境说明 操作系统:CentOS release ...

  3. win7下安装配置ftp服务器

    1. win7操作系统自带了ftp组件,所以不需要另外下载.只需要在控制面板中,添加或删除组件中启用即可. 2. 在管理上,ftp和iis是属于同一个目录的.ftp也可以算是internet info ...

  4. CentOS8.0-1905安装配置ftp服务器

    关键词:CentOS8/RHEL8;安装配置FTP/安装配置VSFTPD;被动模式/PASV##CentOS8.0-1905发布后,尝试将FTP服务器迁移至新版本的CentOS中,但是测试过程中,在防 ...

  5. CentOS 7安装配置FTP服务器

    CentOS 7下FTP服务器的安装配置. 假设我们有以下要求 路径 权限 备注 /ftp/open 公司所有人员包括来宾均可以访问 只读 /ftp/private 仅允许Alice.Jack.Tom ...

  6. 安装配置ftp服务器

    1.安装ftp服务 检查是否安装vsftpd rpm -qa|grep vsftpd 安装 vsftpd yum -y install vsftpd 2.配置 编辑 文件 /etc/vsftpd/vs ...

  7. sh 自动化安装配置FTP服务器

    #!/bin/bash # FPATH=/etc/vsftpd/ FILE=/etc/vsftpd/vsftpd.conf USERB=ftp01 CON() { sed -i "s#ano ...

  8. CentOS7安装配置FTP服务器

    假设我们有以下要求 路径 权限 备注 /ftp/open 公司所有人员包括来宾均可以访问 只读 /ftp/private 仅允许Alice.Jack.Tom三个人访问 Alice.Jack只允许下载, ...

  9. (7)centos7安装配置ftp服务器

    1.安装vsftpd yum install vsftpd -y 2.设置开机启动vsftpd ftp服务 systemctl enable vsftpd.service 3.启动vsftpd服务 s ...

随机推荐

  1. 线段树[To be continued]

    目录 数据结构--线段树 一.定义 二.性质 三.基本操作 0.结构体 1.建树 2.单点查询 3.单点修改 4.区间修改 5.区间查询 四.题目 单点修改.区域查询模板 五.鸣谢 学姐的Blog 百 ...

  2. 怎么使用瓦特平台下面的“代码工厂”快速生成BS程序代码

    这里说一下怎么使用瓦特平台下面的“代码工厂”快速生成程序代码 使用平台:windows+"visual studio 2010"+"SqlServer2000+" ...

  3. 设计模式之第10章-桥接模式(Java实现)

    设计模式之第10章-桥接模式(Java实现) “一入软件深似海,从此早睡是路人.黑夜给了我黑色的眼睛,我却用他去寻找八阿哥.”“怎么了,又来那么多的感慨啊.”“还能有什么啊,老板是说让换个APP做,这 ...

  4. IOS开发---菜鸟学习之路--(五)-MacBook购买前后感想

    前几天刚入手了一台MACBOOK AIR 13寸 13版的 这几天使用过来个人感觉还是非常不错的. 这几天每天晚上都抱着她玩到十一.二点. 今天晚上突然想起来好久没续写博客了.就连忙开始码字了. 此章 ...

  5. [DM8168]Linux下控制GPIO实现LED流水灯

    首先加载驱动模块,应用程序通过调用API实现GPIO控制功能. 驱动程序: /* * fileName: led_gpio.c * just for LED GPIO test * GP1_14 -& ...

  6. poj3748 位运算 bitset

    位操作 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9064   Accepted: 3626 Description 假 ...

  7. Python脚本获取Linux系统信息

    # -*- coding:utf-8 -*- import os import subprocess import re import hashlib #对字典取子集 def sub_dict(for ...

  8. 【Luogu】P3750分手是祝愿(期望DP)

    题目链接 这题好喵啊…… 设f[i]是最少用i次才能全关上转移到最少用i-1次才能全关上灯的期望值,那么n个灯里有i个是正确的,剩下的都是不正确的 因此期望是$f[i]=frac{n}{i}+frac ...

  9. HexEdit Linux下命令集

    HexEdit Linux下命令集 HexEdit是一款十六进制的编辑器. 移动(Moving) , 移动到文件首部/尾部(go to start/end of the file) → 下一个字符(n ...

  10. MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。

    MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一. 但是,如<InnoDB,5项最佳实践>所述,如果查询没有命中索引,也将退化为表锁. InnoDB的细粒度锁,是实现在索引记录 ...