一、前言说明
tftp(Trivial File Transfer Protocol,文件传输协议),是tcp/ip簇中用于客户端和服务端之间进行简单文件交互传输的协议。
下面就tftp的几个知识点进行列举说明:
- 1、 tftp协议的端口号定为69;
- 2、只支持从服务器上获得或写入文件,不能列出目录,也不能进行认证;
- 3、传输时以8位数据为最小单位,每个包定长512个字节,如果不足512字节则表示数据已经传至最后一个包;
- 4、tftp的3种传输模式:netascii(8位的ASCII码形式),octet(8位源数据类型),mail(已不支持)。
!!!本文以octet模式为例进行说明。 - 5、tftp代码中使用UDP。
接下来依次介绍tftp的通讯流程以及代码实现进行tftp的认识和了解。
二、tftp的通讯流程
那么tftp又与UDP有什么改进?服务端和客户端之间又是怎么一个通信流程呢?
2.1、tftp对udp协议的改进
2.1.1、说明
简单来说,TFTP就是在UDP的基础上增加了一个通信协议,该通信协议严格遵守一方发另一方必须答的原则。也就是说WRQ和DATA包由ACK或ERROR数据包确认,而RRQ数据包由DATA或ERROR数据包确认。
同时需要注意的是,TFTP发送端使用的端口号固定为69。
那么什么是WRQ包&