文件传输协议---TFTP
简介
TFTP协议全称为简单文件传输协议,是以UDP为基础的应用层协议,主要用于不同设备之间的文件传输。具有协议简单,易于实现的特点,常用于嵌入式设备开发中。
传输模式
数据的存储有不同的格式,磁盘中相同的一块数据,通过不同的存储协议解析,得到的内容是完全不同的,如:磁盘中的一个字节0x65,按照ASCII解析就是字母A,按照数据本身解析就是0x65这个数,两种解析的方式显示的内容完全不同。因此文件在传输的过程中也需要指明数据的表示方式,即传输模式。TFTP协议的传输模式如下所示:
| 模式名称 | 模式含义 | 说明 |
| netascii | 文本传输模式,按照一个字节8位解析 | 文本模式 |
| octet | 二进制模式,数据无需解析 | 二进制模式 |
| 已过时,不使用 | 已过时 |
协议格式
TFTP共定义了五种类型的包格式,格式的区分由包数据前两个字节的Opcode字段区分,分别是:
- 读文件请求包:Read request,简写为RRQ,对应Opcode字段值为1
- 写文件请求包:Write requst,简写为WRQ,对应Opcode字段值为2
- 文件数据包:Data,简写为DATA,对应Opcode字段值为3
- 回应包:Acknowledgement,简写为ACK,对应Opcode字段值为4
- 错误信息包:Error,简写为ERROR,对应Opcode字段值为5
读写文件请求包格式
| 2字节 | 字符串 | 1字节 | 字符串 | 1字节 |
| Opcode | Filename | 0 | Mode | 0 |
Opcode 操作码 1 / 2
Filename 文件名
Mode 传输模式
数据包格式
| 2字节 | 2字节 | n字节 |
| Opcode | Block | data |
Opcode 操作码 3
Block 包序号,从1开始,除了最后一包,每一包的长度都是512字节,最后一包的长度小于512字节
data 具体急需要传输的数据
ACK包格式
用于回复对端,确认数据的处理情况
| 2字节 | 2字节 |
| Opcode | Block |
Opcode 操作码 4
Block 收到的包序号
错误包格式
| 2字节 | 2字节 | 字符串 | 1字节 |
| Opcode | ErrorCode | ErrMsg | 0 |
用于在失败的情况下回复对端
Opcode 操作码 5
ErrorCode 错误码,每一种错误码对应一种错误场景
ErrMsg 错误的描述信息
错误码
错误码 表示意思
0 未定义Not defined, see error message (if any).
1 文件找不到File not found.
2 拒绝访问Access violation.
3 磁盘满了或者超出了可分配空间Disk full or allocation exceeded.
4 非法TFTP操作Illegal TFTP operation.
5 传输ID未知Unknown transfer ID.
6 文件不存在File already exists.
7 没有该用户No such user.
TFTP协议的缺陷
- 传输效率低
- 对于超时机制没有明确说明
- 每包长度固定为512字节,不灵活
文件传输协议---TFTP的更多相关文章
- 简单文件传输协议TFTP分析还原
- 协议介绍 TFTP有如下特征: 1.UDP承载,请求端口固定为69: 2.没有列出目录内容功能: 3.无验证和加密机制: 4.仅有读取或写入文件功能: 5.支持三种不同的传输模式:"ne ...
- tftp简单文件传输协议搭建
TFTP 简单文件传输协议 安装 sudo apt-get install tftp tftpd openbsd-inetd 需要tftp tftpd openbsd-ine ...
- TFTP(Trivial File Transfer Protocol,简单文件传输协议)
TFTP(Trivial File Transfer Protocol,简单文件传输协议),是 TCP/IP 协议族中用来在客户机和服务器之间进行简单文件传输的协议,开销很小.这时候有人可能会纳闷,既 ...
- TFTP服务[精简版]:简单文件传输协议
简单文件传输协议(Trivial File Transfer Protocol,TFTP)是一种基于 UDP 协议在客户端 和服务器之间进行简单文件传输的协议.顾名思义,它提供不复杂.开销不大的文件传 ...
- 文件传输协议:FTP、TFTP、SFTP有什么区别?
一个执着于技术的公众号 FTP 提供一种在服务器和客户机之间上传和下载文件的有效方式:是基于TCP的传输,FTP采用双TCP连接方式:支持授权与认证机制,提供目录列表功能. ---控制连接使用TCP端 ...
- Linux文件传输协议2019-7-9
FTP(file transfer Protocol)是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20.21号端口,其中端口20(数据端口)用于数据传输,端口21(命令端口)用 ...
- 【知识强化】第六章 应用层 6.3 文件传输协议FTP
这节课我们来学习一下文件传输协议FTP. 我们知道一个文件的传输过程呢一定需要协议的规定,那在文件传送协议这一块呢有很多个协议.比较主要的两个一个是文件传送协议FTP,一个是简单文件传送协议TFTP. ...
- ftp (文件传输协议)
ftp (文件传输协议) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议” ...
- FTPS (FTP over SSL) vs. SFTP (SSH 文件传输协议): 我们如何做出选择
第一个RFC的FTP协议发布通过网络使用FTP协议(由RFC 959或更高版本)的文件传输始于1980年,FTP提供上传,下载和删除文件,创建和删除目录,读取目录内容的功能.虽然FTP是非常受欢迎的, ...
随机推荐
- JavaWeb网上图书商城完整项目--day02-21.退出功能的实现
1.当用户点击退出的时候,跳转到登陆页面 当用户点击退出的时候,需要将session中保存的登陆的用户销毁掉 当用户点击退出的时候,调用UserServlet的quit方法 退出按钮在top.jsp中 ...
- JavaWeb网上图书商城完整项目--day02-17.登录功能页面实现
1.当在登陆页面点击登陆按钮的时候,会调用UserServlet的login方法,我们要在login.jsp中进行配置 2.要在login.jsp中处理Servlet在后台业务操作之后forward到 ...
- shell编程之系统环境变量2
本课程是<Tony老师聊shell——变量>课程的延续,主要介绍Linux shell编程基础中的运算符.包括declare命令.数值运算方法和变量测试.首先在declare命令中介绍了数 ...
- HTML&CSS面试高频考点(二)
HTML&CSS面试高频考点(一) ♥ 6. W3C盒模型与怪异盒模型 标准盒模型(W3C标准) 怪异盒模型(IE标准) 怪异盒模型下盒子的大小=width(content + bord ...
- JQ三种提示框:提示信息框、确认框、输入文本框
浏览器的三种提示框: alert()提示信息框 confirm()提示确认框 prompt()提示输入文本框 1.alert()提示信息框 效果: 实现代码: <script> alert ...
- Nuxt使用axios跨域问题解决方法
Nuxt 是 Vue 项目服务器端渲染(SSR)解决方案.而在使用时,就会遇到前后端分离情况下的域名或端口不一致导致的跨域问题.本文将介绍如何通过设置代理解决 Nuxt 与 axios 集成的跨域问题 ...
- css3 斜切角/斜边的实现方式来自BAT大神的出品
设计图含有斜切角的效果时,我们一般想到的方法是切出四个角为背景,然后用border连起来,这样就能显示出该效果了,那么直接使用css呢?下面就整理css做斜边的效果. 1.方案一:利用linear-g ...
- Html中a标签用法总结:创建email,电话,描点链接等。以及防止链接被搜索引擎收录
<a>标签可以用来创建一个到其他网页.文件.同一页面内的位置.电子邮件地址或任何其他URL的超链接. 是我们常用的一个标签之一,今天就讲讲如何使用a来创建email,电话,描点链接等.以 ...
- Docker-本地镜像发布到阿里云
1.先生成一个镜像 有两种发法:(1)写DockerFile (2)从容器创建一个新的镜像 docker commit [option] 容器ID 镜像名字:版本号 option 说明 :-a 作者 ...
- TCP Wrappers(简单防火墙)---限制IP登录ssh
1.TCP Wrappers 简介 TCP_ Wrappers是- 一个工作在第四层(传输层)的的安全工具,对有状态连接(TCP)的特定服务进行安全检测并实现访问控制,界定方式是凡是调用libwrap ...