Appendix I (附录 I)
Order of Headers (头部顺序)
2 bytes
----------------------------------------------------------
| Local Medium | Internet | Datagram | TFTP Opcode |
----------------------------------------------------------
TFTP Formats (TFTP 格式)
类型 操作码 无头部格式
2 bytes string 1 byte string 1 byte
-----------------------------------------------
RRQ/ | 01/02 | Filename | 0 | Mode | 0 |
WRQ -----------------------------------------------
2 bytes 2 bytes n bytes
---------------------------------
DATA | 03 | Block # | Data |
---------------------------------
2 bytes 2 bytes
-------------------
ACK | 04 | Block # |
--------------------
2 bytes 2 bytes string 1 byte
----------------------------------------
ERROR | 05 | ErrorCode | ErrMsg | 0 |
----------------------------------------
Initial Connection Protocol for reading a file (读取文件的初始连接协议)
- 主机 A 向主机 B 发送"RRQ", 源 = A 的 TID, 目标 = 69.
- 主机 B 向主机 A 发送"DATA" (块号 = 1), 源 = B 的 TID, 目标 = A 的 TID.
Error Codes (错误代码)
| 值 (Value) | 含义 (Meaning) |
|---|---|
| 0 | 未定义, 参见错误消息 (如果有). |
| 1 | 文件未找到. |
| 2 | 访问违规. |
| 3 | 磁盘已满或超出分配. |
| 4 | 非法 TFTP 操作. |
| 5 | 未知传输 ID. |
| 6 | 文件已存在. |
| 7 | 没有此类用户. |
Internet User Datagram Header (互联网用户数据报头部) [2]
(此处仅为方便起见而包含. TFTP 不必在互联网用户数据报协议之上实现.)
Format (格式)
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Values of Fields (字段值)
- Source Port: 由数据包发起者选择.
- Dest. Port: 由目标机器选择 (RRQ 或 WRQ 为 69).
- Length: UDP 数据包中的字节数, 包括 UDP 头部.
- Checksum: 参考文献 2 描述了计算校验和的规则. (实现者应确保此处使用正确的算法.) 如果未使用, 字段包含零.
注意: TFTP 将传输标识符 (TID) 传递给互联网用户数据报协议, 用作源端口和目标端口.