TFTP协议介绍-阿里云开发者社区

开发者社区> chszs> 正文

TFTP协议介绍

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/3644663 TFTP协议介绍 TFTP(Trivial File Transfer Protocol)即简单文件传输协议,它是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
+关注继续查看
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/3644663

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


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
tftp协议的实现
一、tftp协议介绍   TFTP是一个传输文件的简单协议,它其于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的 时候是进行小文件传输的。
685 0
SOFAMesh中的多协议通用解决方案x-protocol介绍系列(1) : DNS通用寻址方案
2018年上半年,蚂蚁金服决定基于 Istio 订制自己的 ServiceMesh 解决方案,并在6月底正式对外公布了 SOFAMesh 。 在 SOFAMesh 的开发过程中,针对遇到的实际问题,我们给出了一套名为 x-protocol 的解决方案,本文将会对这个解决方案进行详细的讲解,后面会有更多内容,欢迎持续关注本系列文章。
935 0
FTP协议的命令的使用(转)
  FTP 协议命令 如果想自己编写一个FTP客户端程序,首先得搞清楚FTP协议中的这些命令和用法。 FTP COMMANDS          The following are the FTP commands:             USER ...
826 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
7432 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4617 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
8268 0
SMB小传 —— SMB网络文件系统协议介绍
SMB网络文件系统协议, 全名服务器消息块(Server Message Block),曾用名CIFS(通用互联网文件系统 Common Internet File System), 公元1983年诞生于IBM[1],幼年得到英特尔和微软的照料,最终在微软的培养下成长为当今世上网络文件系统协议两极之一的存在。
9637 0
+关注
685
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载