【发布时间】:2018-06-16 19:24:16
【问题描述】:
#为什么 TFTP 数据包的 Opcode 是 2 个完整字节?
TFTP Standard 的最新版本在第 3 页的底部显示
TFTP 报头由一个 2 字节的操作码字段组成,指示 数据包的类型(例如,DATA、ERROR 等)
它稍后指定操作码是 1-5:
TFTP 支持五种类型的数据包,已经提到过 以上:
操作码操作
1 读取请求 (RRQ)
2 写请求(WRQ)
3 数据 (DATA)
4 确认 (ACK)
5 错误(错误)
这里是一个读请求包的例子:
2 bytes string 1 byte string 1 byte
--------------------------------------------------
| Opcode | Filename | 0 | Mode | 0 |
--------------------------------------------------
为什么操作码是 2 个完整字节?如果我的数学是正确的,这意味着您可以在该插槽中放入从 0 到 65536 65535 (2^16) 的任何数字,但只有 5 个操作码。 1 个字节可以获得 256 个 (2^8) 个插槽。这么多空间有什么意义?是否有更通用的标准来指定他们遵循的标准?
如果我正确阅读了标准,第二个字节将始终为 0?
【问题讨论】:
-
因为他们是这样设计的,它是 0-65535。
-
@EJP 我想知道他们是否符合一些更通用的标准,因为那个字节总是会被清零,所以它看起来没用