目录
-
-
- 1. 引言
- 2. 协议
-
- 2.1 读请求(RRQ)
- 2.2 写请求(WRQ)
- 2.3 其他
- 3. 安全性
- 4. 小结
-
1. 引言
TFTP使用UDP(区别于TCP的文件传送协议FTP),TFTP的代码都能适合只读存储器。主要用于系统引导进程。
2. 协议
2.1 读请求(RRQ)
- 客户发送一个读请求说明要读的文件名和文件模式
- 若该文件能被该客户读取,TFTP服务器返回一个块编号为1的数据分组
- 客户发送一个块编号为1的ACK
- 服务器发送块编号为2的数据
- 客户发送一个块编号为2的ACK
- 重复发送数据分组和ACK的步骤直到客户收到一个不足512字节的数据分组
2.2 写请求(WRQ)
- 客户发送一个写请求指明文件名和文件模式
- 若该文件能被该客户写,TFTP服务器返回一个块编号为0的ACK包
- 客户将文件的头512字节以块编号为1发出
- 服务器返回块编号为1的ACK
- 重复直到数据发完
2.3 其他
- TFTP数据传输采用的是停止等待协议,实现简单但无法提供高系统吞吐量。
- TFTP使用不可靠的UDP,因此必须处理分组丢失(通过发送方超时重传机制解决)和分组重复。
- TFTP报文中没有检验和,假定任何数据差错都会被UDP的检验和检测到
3. 安全性
TFTP的安全漏洞:分组中不提供用户名和口令(因为TFTP是被设计用来系统引导进程,不可能提供用户名和口令)
4. 小结
- 适合只读存储器,只用于无盘系统进行系统引导
- 属于停止等待协议
- 允许多个客户端同时进行系统引导(为每个客户提供一个新的UDP端口)
- 没有提供安全特性,需要系统管理员来限制客户的访问