TFTP(Trivial File Transfer Protocal)简单文件传输协议,最初打算用于引导无盘系统。为了保持简单和短小,TFTP使用UDP。由于UDP不可靠,TFTP必须处理分组丢失和重复。分组丢失可以通过发送方超时重传机制解决。TFTP报文没有检验和,默认错误和被UDP检验出来。TFTP使用了停等式协议(数据发送方在发送下一个数据块之前需要等待接收对已发送数据的确认)。
由于TFTP是为了用于系统引导进程,所以不需要也不能提供用户名和口令,这是存在的一个安全性问题,解决方法时服务器限制只能访问与系统引导相关特定的文件。
报文格式
操作码:1(RRQ)读请求;2(WRQ)写请求;3(data)数据分组;4(ACK)确认;5(error)差错报文,用于服务器不能处理读或写请求和文件传输过程中的错误。
文件名:客户要在服务器上读或者写的文件名,以0标记结束。
模式:一个ASCII码串netstat(将数据看作成行的ASCII码字符组成,以回车后跟换行为行结束符,CR/LF)或者octet(将数据看成8bit一组的字节流),以0标记结束。
块编号:每个数据分组块编号在发送和确认时是对应的。
数据:512字节为一组,除了最后一个分组不足512。
差错码:给出的标识差错的一个数字。
差错信息:差错说明信息。
TFTP vs. FTP
TFTP使用UDP,FTP使用TCP。
参考
TCP/IP详解卷1