一、简介
TFTP(Trivial File Transfer Protocol)简单文件传输协议,最初打算用于引导无盘系统(通常是工作站或X终端)。为保持简单和短小,TFTP将使用UDP,其代码能适合只读存储器。
二、协议
TFTP客户端通过指定需要读的文件名及文件模式来获取数据,收到每个数据分组后,会送ACK进行认证,每个数据分组除了最后一个数据分组外均包含512字节的数据。而在写模式下(客户必须具有写权限),过程与读相反,服务器会送ACK,客户则发送数据文件。这种类型的数据传输称为停止等待协议。TFTP的报文格式如下:
既然TFTP使用不可靠的UDP,它就必须处理分组丢失和重复。分组丢失可通过发送方的超时与重传机制解决,TFTP中没有校验和,它假定任何数据差错都将被UDP的校验和检测到。TFTP熟知的UDP端口是69。
服务器接到客户端通过69请求端口的请求后,会申请一个尚未使用的端口来与客户进程通信,这是为了保留这个熟知的端口以便处理其他的TFTP客户进程发送给它的请求。
三、安全性
TFTP分组中并不提供用户名和口令,这是TFTP的一个安全漏洞,由于TFTP设计用于系统引导进程,它不可能提供用户名和口令。TFTP服务器通常提供一个选项来限制用户只能访问特定目录。