FTP协议原理简析

news2024/12/24 2:10:01

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信。21端口用于建立控制连接,并传输FTP指令。20端口用于建立数据连接,传输数据流。
在这里插入图片描述
一:FTP功能简介

1:FTP服务器能够进行档案的传输与管理功能;

2:可以依据使用者登入的情况分为三种不同的身份,分别是

  • 2.1:实体账户:real user
  • 2.2:访客:guest
  • 2.3:匿名登录者anonymous

3:FTP利用系统的syslog进行数据的记录,包括了用户曾经下达的命令与用户传输数据(传输时间、档案大小)的记录,日志目录/var/log/

4:将使用者的工作范围局限在用户的指定目录中,避免其他多余的操作;

二:FTP服务器概述

1:FTP服务器默认使用TCP协议的20、21端口与客户端进行通信。

  • 21端口用于建立控制连接,并传输FTP指令。
  • 20端口用于建立数据连接,传输数据流。

2:根据FTP服务器在建立数据连接过程中的主、被动关系,FTP数据连接分为主动模式和被动模式。

  • 2.1:主动模式:由服务器主动发起数据连接;
  • 2.2:被动模式:服务器被动等待数据连接;

三:FTP主动模式连接

FTP的传输使用的是TCP封包协议;不过FTP服务器使用了两个连接,分别是命令信道与数据流通道(ftp-data)。

两次联机都需要三次握手;先以FTP预设的主动式联机进行说明:

在这里插入图片描述
1:建立命令通道的联机

如图所示,客户端会随机取一个大于1024以上的端口(port AA)来与FTP服务器端的port21达成联机,这个过程为三次握手,达成联机后用户便可以对FTP下达指令,包括查询文件名、下载、上传等指令;

2:通知FTP服务器端使用Acte且告知连接的端口

FTP服务器的21端口用于命令的下达,但当涉及数据流传输,就需要另外一个联机。当客户在需要数据的情况下,会告知服务器用什么方式联机,如果是主动式(Active),客户端随机启用一个端口(port BB),通过命令通道告知FTP服务器,等待FTP服务器联机;

3:FTP服务器主动向客户端联机:

FTP服务器由命令通道了解客户端的需求后,主动由20端口向客户端的port BB进行三次握手联机。此时FTP与客户端建立两条联机,分别用于命令的下达和数据的传递。

注意:数据流通道是在有数据传输的行为时才会建立的通道,并不是一开始连接到FTP服务器就建立的;

四:FTP被动模式连接
在这里插入图片描述
1:用户与服务器建立命令信道:

与主动联机图第一步相同;

2:客户端发出PASV联机请求:

当有使用数据信道的指令时,客户端可透过命令通道发出PASV的被动联机要求,并等待服务器回应;

3:FTP服务器启动数据端口,通知客户端

如果FTP服务器能够处理被动式联机,此时FTP服务器先启动一个随机或者自定义某一范围的端口监听。然后FTP服务器通过命令通道告知客户端启动的端口(port PASV),等待客户端联机;

4:客户端随机取用大于1024的端口进行联机:

客户端随机取用一个大于1024的端口号来对FTP的port PASV进行三次握手联机。此时FTP与客户端建立两条联机,分别用于命令的下达和数据的传递。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147314.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

招生简章 | 欢迎报考中科院空天院网络信息体系技术重点实验室(七室)

官方公众号链接:招生简章 | 欢迎报考中科院空天院网络信息体系技术重点实验室(七室) 招生简章 | 欢迎报考中科院空天院网络信息体系技术重点实验室(七室) 中国科学院空天信息创新研究院(简称空天院&#x…

【实战篇】38 # 如何使用数据驱动框架 D3.js 绘制常用数据图表?

说明 【跟月影学可视化】学习笔记。 图表库 vs 数据驱动框架 图表库只要调用 API 就能展现内容,灵活性不高,对数据格式要求也很严格,但方便数据驱动框架需要手动去完成内容的呈现,灵活,不受图表类型对应 API 的制约…

Smart Finance成为火必投票竞选项目,参与投票获海量奖励

最近,Huobi推出了新一期的“投票上币”活动,即用户可以通过HT为候选项目投票,在投票截止后,符合条件的优质项目将直接上线Huobi。而Smart Finance成为了新一期投票上币活动的竞选项目之一,并备受行业关注,与…

C++ 命令模式

什么是命令模式? 将请求转换为一个包含与请求相关的所有信息的独立对象。从而使你可以用不同的请求方法进行参数化,并且能够对请求进行排队、记录请求日志以及撤销请求操作。命令模式属于行为设计模式 如何理解命令模式 命令模式很像我们订外卖&#…

Hudi(10):Hudi集成Spark之并发控制

目录 0. 相关文章链接 1. Hudi支持的并发控制 1.1. MVCC 1.2. OPTIMISTIC CONCURRENCY 2. 使用并发写方式 3. 使用Spark DataFrame并发写入 4. 使用Delta Streamer并发写入 0. 相关文章链接 Hudi文章汇总 1. Hudi支持的并发控制 1.1. MVCC Hudi的表操作,如…

阿里云 EDAS Java服务日志中打印调用链TraceId

最近要搭建阿里云的日志服务SLS,收集服务日志,进行统一的搜索查询。但遇到一个问题如何在日志中打印链路的TraceId,本文章记录一下对EDAS免费的解决方法。 先看一下阿里官方文档 业务日志关联调用链的TraceId信息 从文档上看,想要…

基于SSM的资源发布系统

项目介绍: 该系统基于SSM技术,数据层为MyBatis,数据库使用mysql,MVC模式,B/S架构,具有完整的业务逻辑。系统共分为管理员,用户两种角色,主要功能:登陆注册,用…

数据结构:跳表

文章目录跳表跳表的由来单链表的查找效率太低提高单链表的查找效率跳表的时间复杂度分析跳表的空间复杂度分析跳表的插入操作跳表的删除操作跳表索引动态更新跳表 对链表进行改造,在链表上加多级索引的结构就是跳表,使其可以支持类似“二分”的查找算法。…

Redis查询之RediSearch和RedisJSON讲解

文章目录1 Redis查询1.1 RedisMod介绍1.2 安装Redis1.3 RediSearchRedisJSON安装1.3.1 下载安装1.3.2 修改配置1.4 RedisJSON操作1.4.1 基本操作1.4.1.1 保存操作JSON.SET1.4.1.2 读取操作JSON.GET1.4.1.3 批量读取操作JSON.MGET1.4.1.4 删除操作JSON.DEL1.4.1.5 其他命令1.4.1…

鲲鹏Bigdata pro之Hive的基本操作(创建表、查询表)

1 介绍 本文主要依据《鲲鹏Bigdata pro之Hive集群部署》实验教程上的Hive操作例子讲解,方便大数据学员重用相应的操作语句。同时对实验过程中出现的问题给以解决方法,重现问题解决的过程。以让大家认识到,出现问题很正常;同时&am…

Java设计模式中接口隔离原则是什么?迪米特原则又是什么,啥又是合成复用原则,这些又怎么运用

继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 3.5 接口隔离原则 3.5.1 特点 使用的类不应该被迫依赖于不想使用的方法,应该依赖接口方法 3.5.2 案例(安全门) 防火功能代码 public interface Fi…

第一章:统计学习方法概论

大纲1.1统计学习的特点1.2统计学习方法步骤1.3 统计学习的分类基本分类:1.4 监督学习方法的三要素模型:条件概率分布P(Y∣X)P(Y|X)P(Y∣X)或决策分布Yf(X)Yf(X)Yf(X)策略:在所有假设空间中选择一个最优模型注意事项:算法&#xff…

Java设计模式中适配器模式是什么/适配器模式可以干什么/又如何实现

继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 5.3 适配器模式 5.3.1 概述 将一个类的接口转换为客户希望的另一种接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作分为类适配器模式和…

一套采用ASP.NET开发的工作通OA协同办公系统源码 流程审批 公文流转 文档管理

分享一套采用ASP.NET基于C#开发,使用桌面式的OA协同办公系统,超好用户体验效果的后台管理界面,集成 资讯、邮件、日程、文档(在线文件档案管理)、流程审批、公文流转、沟通与分享(在线聊天和内部论坛&#…

基于LLVM的C编译器--lcc——以CLion用SSH连接WSL Ubuntu22.04为例

Windows 10 22H2CLion 2022.3.1Ubuntu 20.04 (Microsoft Store内的WSL发行版) 一、下载WSL,换源,切换到WSL2 1.1 保证windows版本 在设置->系统->关于中查看 必须是win10及以上对于x64系统:版本1903或更高版…

ArcGIS基础实验操作100例--实验63由图片创建点符号

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验63 由图片创建点符号 目录 一、实验背景 二、实验数据 三、实验步骤 (1&…

Java设计模式中代理模式是什么/JDK动态代理分为哪些,静态代理又怎么实现,又适合哪些场景

继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 5.结构型模式 5.1 概述 根据如何将类或对象按某种布局组成更大的结构,分为类结构模式和对象结构模式,前者采用继承机制来组织接口和类&am…

视频序列对比学习

前言 视频embedding化也即表征有很多实际的应用场景,比如文本-视频 pair的检索等等。由于视频一般来说较长,所以对于给定的一段话,其中的某些sentence句子一般对应着视频中某几个clip片段,之前常规的做法都是去匹配所有的sentence…

人工服务、人工智能和分析是联络中心的主要趋势

数字联络中心提供商 IPI 宣布了其对 2023 年的预测。IPI 非常重视提供卓越的客户联系,认为未来一年将由以下趋势定义:专注于人工服务;增加对人工智能和自动化的采用;以及更多地使用数据和分析。 关注人性化服务 据 IPI 称&#…

实现QTreeView、QTableView子项中的复选框勾选/取消勾选功能

1.前言本博文所说的技术点适用于同时满足下面条件的所有视图类:模型类从 QAbstractItemModel派生。代理类从QStyledItemDelegate派生。故本博文所说的技术点也适用于QTableView。2.需求提出基于Qt的model/view framework技术,利用QTreeView树视图实现业务…