TFTP协议介绍

简介: TFTP协议介绍 TFTP(Trivial File Transfer Protocol)即简单文件传输协议,它是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。

TFTP协议介绍



TFTP(Trivial File Transfer Protocol)即简单文件传输协议,它是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。

TFTP协议是一种非常简单的文件传输协议,只具有FTP的基本功能。它运行在 UDP(用户数据报协议)上,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达。与FTP相比,TFTP的大小要小的多。因此,它缺乏标准 FTP 协议的许多特征。TFTP协议为小文件传输而设计。TFTP 只能从远程服务器上读、写文件(邮件)或者读、写文件传送给远程服务器。它不能列出目录并且当前不提供用户认证。

当前 TFTP 有 3 种传输模式:NetASCII 模式即 8 位 ASCII;Octet八位组模式(替代了以前版本的二进制模式),如原始八位字节;邮件模式,在这种模式中,传输给用户的不是文件而是字符。mail模式已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。主机双方可以自己定义其它模式。

TFTP协议于1980年定义,它可以在非常小的内存下实现。因此TFTP在引导计算机(如路由器)方面非常有用,还用于在主机间传输少量文件,比如IP电话固件或操作系统映像。在初期,一些基于网络的安装系统(例如:Solaris Jumpstart,Red Hat Kickstart以及Suse AutoYAST)就使用了TFTP来载入基本的内核,该内核执行实际的安装。

在 TFTP 协议中,任何一个传输进程都以请求读写文件开始,同时建立一个连接。如果服务器同意请求,则连接成功,文件就以固定的 512 字节块的长度进行传送。每个数据包都包含一个数据块,在发送下一个包之前,数据块必须得到确认响应包的确认。少于 512 字节的数据包说明了传输的结束。如果包在网络中丢失,接收端就会超时并重新发送其最后的包(可能是数据也可能是确认响应),这就导致丢失包的发送者重新发送丢失包。发送者需要保留一个包在手头用于重新发送,因为 LOCK 确认响应保证所有过去的包都已经收到。注意传输的双方都可以看作发送者和接收者。一方发送数据并接收确认响应,另一方发送确认响应并接受数据。

TFTP 的当前版本为 v2 。

协议结构
基本 TFTP 协议头结构:
----------------------
16 bits  String    16 bits   String   16 bits
Opcode   Filename   0        Mode     0
----------------------

Opcode:操作代码或命令。以下为 TFTP 命令:
-----------------------------
Opcode           Command             Description
-----------------------------
1        Read Request          Request to read a file
2        Write Request         Request to write to a file
3        File Data             Transfer of file data
4        Data Acknowledge      Acknowledgement of file data
5        Error                 Error indication
-----------------------------


Filename:传送的字段名称。

Mode:数据模式。协议传输的文件数据格式。可以是 NetASCII,也可以是标准 ASCII,八位二进制数据或邮件标准 ASCII。

在Windows系统的TFTP命令:
TFTP [-i] host [GET | PUT] source [destination]
参数:
-i 指定二进制映像传输模式(也即Octet),此模式下,文件逐字节的传输。
host 指定本地或远程主机。
GET 从远程主机取回文件到本地主机。
PUT 从本地主机发送文件到远程主机。
source 指定要传输的文件。
destination 指定传输文件的目的地。

例子:
user@host:~$ tftp 192.168.1.1
tftp> get file.txt
目录
相关文章
|
存储 缓存 测试技术
CMake String函数:如何巧妙地在cmake中操作字符串
CMake String函数:如何巧妙地在cmake中操作字符串
1412 0
|
移动开发 小程序 Linux
【Linux】Linux和Window下\r与\n的区别、git命令行的使用
目录 1. 回车换行符在Window下和在Linux下的区别: 1.1回车换行符: 1. 2.行缓冲区打印: 1.3进度条小程序 :
455 0
|
11月前
|
Unix Linux 虚拟化
VMware Workstation 17.6.2 发布下载,现在完全免费无论个人还是商业用途
VMware Workstation 17.6.2 发布下载,现在完全免费无论个人还是商业用途
50181 16
VMware Workstation 17.6.2 发布下载,现在完全免费无论个人还是商业用途
|
存储 安全 数据库
对称加密的日常实践应用:以AES为例的加密解密指南
**摘要:** 本文介绍了对称加密算法AES在数据安全中的应用,强调了其在文件、通信和数据库加密中的重要性。通过Python示例展示了如何使用`cryptography`库实现AES-256的加密和解密,涉及密钥生成、CBC模式及PKCS7填充。同时,提醒注意密钥管理、模式选择和填充方式的选择对加密安全性的影响。
1567 1
|
Linux 数据处理
探索Linux下的readelf命令:深入了解ELF文件
`readelf`是Linux下分析ELF文件的命令行工具,用于查看文件头、节区、符号表等信息。支持可执行文件、共享库等多种类型。常用选项有`-h`(文件头)、`-l`(程序头)、`-S`(节区)、`-s`(符号表)、`-r`(重定位)和`-d`(动态节区)。结合其他工具如`objdump`,能深入理解二进制文件,助力开发和调试。
|
Python
科学计算中的NumPy应用案例分享
【4月更文挑战第17天】本文介绍了NumPy在科学计算中的应用,包括使用NumPy的线性代数函数求解线性方程组、利用`trapz`函数进行数值积分以及结合`scipy.signal`进行信号滤波。这些案例展示了NumPy在处理实际问题时的实用性和灵活性,突显了其在Python科学计算领域的重要地位。
|
存储 网络协议 算法
TFTP 协议(修订版 2)
TFTP 是一种用于传输文件的非常简单的协议。它的名字就是由此而来的,Trivial File Transfer Protocol 或 TFTP。每个非终端数据包都被单独确认。本文档描述了协议及其数据包类型。该文件还解释了一些设计决策背后的原因。
765 0
TFTP 协议(修订版 2)
|
机器学习/深度学习 人工智能 自然语言处理
【JAVA】AI医疗导诊系统源码
智慧导诊 患者可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
335 1
|
Windows
windows 下编译openssl libssh2
windows 下编译openssl libssh2
562 0
|
安全 数据安全/隐私保护 虚拟化
不使用VMTools,宿主机与虚拟机交换文件的方法(接上章)(上)
VMTool虽然方便,但毕竟是专用于虚拟机的软件,将要封装的系统不安装VMTools,易导致一些琐碎问题。下面我给大家介绍一个最常用的宿主机与虚拟机交换文件的方法,当然,比VMTools繁琐,但绝不影响系统封装。
771 0
不使用VMTools,宿主机与虚拟机交换文件的方法(接上章)(上)