前言
这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 关注下面作者名回复 领取学习资料 可领取python,java,计算机基础和算法资料。 作者:神的孩子都在歌唱
在日常的网络操作中,我们经常需要传输文件,比如从服务器上传下载。 FTP(文件传输协议)和 TFTP(简易文件传输协议)是我们常用的两种协议。
FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行文件传输的协议,它允许用户在客户端和服务器之间上传或下载文件。FTP 是在 TCP/IP 协议族 中的应用层协议,它采用客户端-服务器模式工作,并使用两个连接来传输数据:
FTP 工作时,客户端和服务器首先会在**控制连接(通常是端口 21)上建立通信,客户端向服务器发送命令,如登录、上传、下载、删除文件等。文件的实际传输则通过数据连接(端口 20)**进行。
FTP协议有两种工作方式:主动式(PORT) 和 被动式(PASV) 。主动与被动是对于服务器是否首先发去数据连接而言的。
(1) 主动式
神的孩子都在歌唱
(2) 被动式
命令连接和数据连接都是由客户端发起的
神的孩子都在歌唱
主动模式 vs 被动模式对比
特性 | 主动模式 | 被动模式 |
---|---|---|
控制连接 | 客户端 -> 服务器(端口 21) | 客户端 -> 服务器(端口 21) |
数据连接 | 服务器 -> 客户端(端口 20) | 客户端 -> 服务器(随机端口) |
客户端防火墙 | 可能被防火墙阻止 | 更易通过防火墙 |
服务器防火墙 | 需要开放端口 20 | 需要开放多个端口(随即端口) |
适用场景 | 在没有 NAT 或防火墙的情况下 | 在 NAT 或防火墙环境下更适用 |
TFTP(Trivial File Transfer Protocol,简易文件传输协议)是一个轻量级的文件传输协议,它是比 FTP 更简单的协议。与 FTP 相比,TFTP 没有复杂的身份验证和目录管理功能,适用于只需要最简单文件传输的场合。TFTP 工作在 UDP 协议 上,默认端口是 69。
TFTP 的功能与FTP类似,工作过程相对简单,它通过 UDP 进行文件传输。客户端发送请求(读取或写入文件)到服务器,服务器响应并开始传输文件。TFTP 的一个特点是它是 无状态的,这意味着它不需要建立连接,也不需要进行认证或确认。
特性 | FTP | TFTP |
---|---|---|
协议类型 | 基于 TCP | 基于 UDP |
连接方式 | 客户端-服务器模式,使用两个连接 | 无连接模式 |
安全性 | 支持用户名和密码验证,但默认不加密 | 无安全机制,不支持身份验证 |
文件传输功能 | 支持文件的上传、下载、删除等操作 | 只支持简单的文件读取和写入 |
使用场景 | 网站文件管理、数据备份、文件共享等 | 嵌入式系统、固件更新、设备配置等 |
传输可靠性 | 高可靠性,数据传输使用 TCP 确保完整 | 低可靠性,使用 UDP 没有确认机制 |
作者:神的孩子都在歌唱 本人博客:https://blog.csdn.net/weixin_46654114 转载说明:务必注明来源,附带本人博客连接