当前位置: 首页 > article >正文

[软件工程]—TFTP协议简要解析

TFTP协议简要解析

1.TFTP基本概念

TFTP(Trivial File Transfer Protocol):是一个很小且易于实现的文件传送协议:

  • TFTP使用客户服务器方式和使用UDP数据包,因此TFTP需要有自己的差错改正机制。
  • TFTP只支持文件传输而不支持交互。
  • TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户身份进行鉴别。

2.TFTP特点

  • 每次传送的数据PDU中有512字节的数据,但最后一次可以不足512字节。
  • 数据PDU也被称为文件块(block),每个块按序编号,从1开始。
  • 支持ASCII码或者二进制传送。
  • 可对文件进行读和写。
  • 使用很简单的首部。

3.停止等待协议

  • 发送完一个文件块就等待对方确认,确认时应指明所确认的块编号。
  • 发完数据后在规定时间收不到确认数据就要重发数据PDU。
  • 发送确认PDU的一方若在规定时间内收不到下一个文件块,也要重发确认PDU。
  • 开始工作时,TFTP客户进程发送一个读请求PDU或者写请求PDU给TFTP服务器进程,其熟知端口号码69.
  • TFTP服务器进程要选择一个新的端口和TFTP客户进程进行通信。
  • 若文件长度恰好为512字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只包含首部而无数据的数据PDU。
  • 若晚间长度不是512字节的整数倍,则最后传送数据PDU的数据字段一定不满512字节,这恰好可作为文件结束的标志。

4.TFTP报文格式

TFTP共有5中报文格式,分别为读请求、写请求、数据、响应、错误:

  • 读写请求

组成如下所示,读写操作根据操作码来区分。

在这里插入图片描述

模式:模式共用两种,

  • netascii:表示数据是以成行的ascii码字符组成,以两个字节\r\n作为行结束符。
  • octet:将数据看做8bit一组的字节流而不作任何解释。
  • 数据

数据报文格式如下,此时在传输文件数据:

在这里插入图片描述

  • 响应

在接收到数据后发送响应,格式如下:

在这里插入图片描述

  • 错误

当数据传输发生错误后发送,格式如下:

在这里插入图片描述

错误码及对应含义如下:

在这里插入图片描述

5.工作流程

  • 初始化连接阶段,客户发送RRQ或WRQ,服务器端口69.
  • 余下的阶段,TFTP将传输标记TID传送给UDP作为源和目标端口。

在这里插入图片描述

6.抓包分析

抓包数据如下:

在这里插入图片描述

行1:客户端写请求

行2:服务器端响应,Block0

行3:客户端发送文件,Block1

行4:服务器端响应,Block1

行5:客户端发送文件,Block2

行6:服务器端响应,Block2

行7:客户端发送文件,不足512Byte,为末尾,Block3

行8:服务器端响应,Block3

行9:客户端读取不存在文件

行10:服务器端响应错误码,显示文件未找到


http://www.kler.cn/news/342236.html

相关文章:

  • wasm在云原生领域的运用
  • 【进阶OpenCV】 (6)--指纹识别
  • 每天一个数据分析题(四百九十九)- 数据集
  • 跨界的胜利:机器学习与神经网络的物理之光
  • Spring Boot中使用RabbitMQ 生产消息和消费消息
  • linux线程 | 线程的概念
  • npm依赖版本锁定详解
  • python 实现寻找无向图的关节点Articulation Points算法
  • 开源全文搜索(搜索引擎)
  • 【项目配置文件】TypeScript 编译器的配置文件
  • Spring Boot大学生就业招聘系统的开发与部署
  • 如何确保微服务架构的高并发
  • 使用Go语言的gorm框架查询数据库并分页导出到Excel实例(包含源代码,可以直接运行)
  • C++ 观察者模式
  • 架构与思维:漫谈高并发业务的CAS及ABA
  • 第十届MathorCup高校数学建模挑战赛-A题:基于 logistic 回归和 DEA 模型对无车承运平台线路定价问题的优化和评价
  • 需求10——通过改一个小bug来学习如何定位问题
  • 系统移植二和网卡移植实验和私有驱动LED的移植
  • Codeforces Round 977 (Div. 2)E1 Digital Village (Easy Version)(Floyd,贪心)
  • 力扣 前缀和