什么是TFTP?


TFTP 代表**简单文件传输协议**。一些应用程序不需要 TCP 的全部功能,也无法承受其复杂性。TFTP 支持一种廉价的结构,不需要客户端和服务器之间进行复杂的交互。TFTP 将操作限制在简单文件传输,并且不支持身份验证。

使用 TFTP 的好处是,它使引导代码能够使用与操作系统框架启动执行后使用的相同的基础 TCP/IP 协议。因此,设备有可能从另一个物理网络上的服务器进行引导。

TFTP 没有可靠的流传输服务。它运行在 UDP 或任何其他不可靠的数据包传递系统之上,使用超时和重传来确保数据到达。发送方以固定大小的块传输文件,并在发送文本之前等待每个块的确认。

TFTP 的特点

TFTP 的主要特点如下:

TFTP 基于客户端-服务器原理,并使用众所周知的 UDP 端口号 69 用于 TFTP 服务器。

TFTP 是一种不安全的协议,不支持身份验证。

TFTP 集成了空闲-RQ(停止等待)错误恢复机制。

  • 每个 TFTP 数据单元都带有序列号。
  • 每个数据单元都单独确认。在收到确认后,传输下一个数据单元。
  • 错误恢复通过超时后重传来实现。TFTP 使用自适应超时和指数退避算法。

TFTP 消息格式

TFTP 消息有四种类型,如下所示:

读取请求 - 客户端使用此命令从服务器获取文件的 0 副本

读取请求 (1)文件名0模式0

        2 个字节                      可变                     1 个字节                                  可变                      1 个字节

写入请求 - 客户端使用此命令将文件写入服务器

读取请求 (1)文件名0模式0

        2 个字节                       可变                   1 个字节                               可变                           1 个字节

数据 - 此 TFTP 消息包含数据块。

数据 (3)序列号数据

                         2 个字节                                   2 个字节                                                                   最多 512 个字节

确认 - 客户端和服务器使用此确认收到的数据单元。

确认 (4)序列号

                    2 个字节                                                                              2 个字节

在此图中,前两个字节指示消息类型。模式字段定义数据类型(ASCII 或二进制)。文件名和模式字段使用全零字节分隔。

类型 3 消息包含大小为 512 个字节的固定大小的数据块。如果数据消息出现的数据字节小于 512 个字节,则会话将被删除。最后一条数据消息可以包含一个数据块(带 EOF)大小小于 512 个字节。类型 4 消息用于确认。

更新于:2021 年 5 月 4 日

5K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告