文件传输协议

文章目录

  • 一、FTP
    • 1. 定义
    • 2. 端口
    • 3. 数据传输方式
      • 主动方式
      • 被动方式
  • 二、TFTP
  • 三、常用命令

首先可以看下思维导图,以便更好的理解接下来的内容。
在这里插入图片描述

一、FTP

1. 定义

文件传输协议(FTP)是一种用于在客户端和服务器之间进行文件传输的标准网络协议。它采用客户端/服务器模型,并且具备身份验证功能,确保数据传输的安全性。FTP在传输过程中使用双重TCP连接,分为控制连接和数据连接两部分。

2. 端口

  • 控制连接:21端口
    用于传输FTP命令和执行信息,负责控制用户的认证、授权以及命令的传输。
  • 数据连接:20端口
    用于实际的数据上传和下载操作。在传输文件时,数据连接负责传递文件的实际内容。

在这里插入图片描述

3. 数据传输方式

主动方式

在主动方式下,数据连接是由服务器主动发起的。具体流程如下:

客户端连接到服务器的21端口,建立控制连接。
客户端向服务器发送PORT命令,指定客户端用于数据连接的IP地址和端口。
服务器使用20端口主动连接到客户端指定的数据端口,开始数据传输。

在这里插入图片描述

在这里插入图片描述

被动方式

在被动方式下,数据连接是由客户端主动发起的。具体流程如下:

客户端连接到服务器的21端口,建立控制连接。
客户端发送PASV命令给服务器,请求进入被动模式。
服务器收到PASV命令后,随机选择一个端口并通知客户端。
客户端使用被动模式的数据端口连接到服务器进行数据传输。

在这里插入图片描述

在这里插入图片描述

二、TFTP

TFTP(简单文件传输协议)是一种基于UDP的简化文件传输协议,通常使用69号端口。与FTP不同,TFTP只提供基本的数据传输功能,不支持身份验证和目录列表等高级功能。

在这里插入图片描述
传输过程:
在这里插入图片描述

三、常用命令

[h3c]ftp server enable                            # 开启FTP服务
<h3c>ftp 'ip address'                             # 连接FTP服务器
ftp>ls                                            # 列出当前目录
ftp>get 'fliename'                                # 下载文件
ftp>put 'filename'                                # 上传文件
ftp>bye                                           # 断开FTP连接

如有不详或错误,敬请指出。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【NLP】手把手使用PyTorch实现Transformer以及Transformer-XL

手把手使用PyTorch实现Transformer以及Transformer-XL Abstract of Attention is all you need使用PyTorch实现Transformer1. 构建Encoder-Decoder模型1.1 导入依赖库1.2 创建Encoder-Decoder类1.3 创建Generator类 2. 构建Encoder2.1 定义复制模块的函数2.2 创建Encoder2.3 构…

快手Java一面,全是基础

现在已经到了面试招聘比较火热的时候&#xff0c;准备面试的过程中&#xff0c;一定要多看面经&#xff0c;多自测&#xff01; 今天分享的是一位贵州大学的同学分享的快手一面面经。 快手一面主要会问一些基础问题&#xff0c;也就是比较简单且容易准备的常规八股&#xff0…

阿里云部署开源MQTT平台mosquitto的docker操作

MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的消息传输协议&#xff0c;广泛用于物联网和传感器网络中。Mosquitto是一个流行的开源MQTT代理&#xff0c;可以在Docker中进行配置和部署。本文将详细介绍如何在Docker中配置Mosquitto MQTT代理…

Qt+C++桌面计算器源码

程序示例精选 QtC桌面计算器源码 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC桌面计算器源码>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与…

Ansible-palybook学习

目录 一.playbook介绍二.playbook格式1.书写格式2.notify介绍 一.playbook介绍 playbook 是 ansible 用于配置&#xff0c;部署&#xff0c;和管理被控节点的剧本。通过 playbook 的详细描述&#xff0c;执行其中的一系列 tasks &#xff0c;可以让远端主机达到预期的状态。pl…

如何利用人工智能实现软件测试的左移

在本文中&#xff0c;我们&#xff08;作者&#xff09;探讨了如何利用人工智能的力量&#xff0c;在软件测试领域实现左移。 用AI驱动的创新变革测试领域 测试在确保应用程序质量和可靠性方面发挥着至关重要的作用。然而&#xff0c;随着测试要求变得越来越复杂&#xff0c;人…

gcc/linux下的c++异常实现

概述 本文不一定具有很好的说教性&#xff0c;仅作为自我学习的笔记。不妨可参阅国外大神博文C exceptions under the hood链接中包含了大量的例子。 偶有在对ELF做分析的时候看到如下图一些注释&#xff0c;部分关键字看不懂&#xff0c;比如什么FDE, unwind , __gxx_perso…

three.js(十):线性几何体

线性几何体 WireframeGeometry 网格几何体EdgesGeometry 边缘几何体 WireframeGeometry 网格几何体 WireframeGeometry( geometry : BufferGeometry ) geometry — 任意几何体对象。 const geometry new SphereGeometry(); const wireframe new WireframeGeometry(geometr…

mac清理磁盘空间软件有哪些 mac清理磁盘空间怎么清理

随着时间的推移&#xff0c;Mac电脑上的文件会越来越多&#xff0c;很快就会占满磁盘空间。这时候&#xff0c;我们需要一个好的Mac清理磁盘空间软件来释放空间&#xff0c;保持电脑的良好性能。那么&#xff0c;mac清理磁盘空间软件有哪些呢&#xff1f;接下来&#xff0c;我将…

物联网闸道器开发整合嵌入式套件加速物联网创新

物联网闸道器开发整合套件&#xff0c;以可靠的物联网软体平台与开放式闸道器整合技术&#xff0c;协助加速物联网创新。整组套件包括软硬件整合的系统(Intel Celeron J1900平台与Windows 7 Embedded)、物联网软体平台服务(WISE-PaaS)、软体开发套件和技术支援服务以及Microsof…

【Centos8_配置单节点伪分布式Spark环境】

安装centos8 jdk部署伪分布式spark环境 安装Centos8 环境下的JDK 下载jdk linux版本 下载链接&#xff1a; jdk-8u381-linux-x64.tar.gz 将该文件上传到Centos8 主机 部署配置jdk&#xff08;java8&#xff09; # 解压到指定路径 [lhangtigerkeen Downloads]$ sudo tar …

vant2 van-calendar组件增加清除按钮和确定按钮

利用自定义插槽增加一个清除按钮 <van-calendar ref"fTime1" select"selectTimePicker" confirm"changeTimePicker" :default-date"null" :show-confirm"false" v-model"timePickerShow" type"range&quo…