[软件工程]—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:服务器端响应错误码,显示文件未找到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值