什么时候使用 TFTP?

网络工程 路由器 管理 UDP
2021-07-16 05:49:58

使用无连接协议传输文件似乎是一个奇怪的想法 - 那么在什么情况下您不会关心整个文件是否已交付?我在某处读到 TFTP 用于升级路由器的固件,但您为什么要使用 TFTP 这样做?这是否意味着您无法确定所有数据(整个更新)都已到达目的地?

2个回答

使用无连接协议传输文件似乎是一个奇怪的想法 - 那么在什么情况下您不会关心整个文件是否已交付?

我将在 YLearn 的出色答案中添加一些内容......您总是希望交付整个文件。声称一个不希望整个文件传输,因为TFTP是一个错误的认识TFTP

我在某处读到 TFTP 用于升级路由器的固件,但您为什么要使用 TFTP 这样做?

这是一个非常简单但仍然可靠的协议。有时您可能会卡在 Cisco IOS rommon提示符处(出于调试或错误)。Rommon 本身就是一个微小的环境;rommon图像通常在 500KB 左右。有时您会从rommon内部传输文件因此,如果您希望该协议适合rommon ,需要一个像TFTP这样的小文件传输协议通过使用 tftp,rommon可以使用更小的 IP 堆栈(UDP 和 IP,没有 TCP)。

我在某处读到 TFTP 用于升级路由器的固件,但您为什么要使用 TFTP 这样做?

没有身份验证是我这样做的主要原因;它减少了打字次数,并且是一种非常简单的图像传输方式。您当然可以使用 scp 或 ftp。没有理由为此烦恼……那么如果有人嗅探我的 IOS 图像怎么办?

这是否意味着您无法确定所有数据(整个更新)都已到达目的地?

这是对TFTP的错误理解TFTP是一种可靠的传输协议,默认情况下每个 tftp 数据包都必须得到确认,这意味着它更慢,尤其是在 WAN 上(因为没有 TCP 窗口动态)。

一旦图像出现在路由器上,您应该始终对照 Cisco 网站上发布的那些验证 IOS 校验和...

S01#verify /md5 flash:c3560-ipservicesk9-mz.122-58.SE2.bin
........................................................................................
........................................................................................
...........................................................
verify /md5 (flash:c3560-ipservicesk9-mz.122-58.SE2.bin) = bbddf83e7ee1023619630110b6b3a998

S01#

TFTP 使用 UDP 进行传输,正如您所指出的,它是一种无连接协议。FTP、SCP、HTTP 或其他传输方法通常使用 TCP。

UDP 需要较少的开销并且通常比 TCP 快。在传输过程中没有 TCP 确认或 TCP 窗口需要考虑。

一旦数据到达,通常还有其他方法来验证数据,通常是通过将计算出的哈希值与已知值进行比较。由于传输通常在您的控制下通过您自己的网络进行,这希望是可靠的,因此它们通常会很好。

此外,许多设备将允许您设置一个主映像和一个备份映像来启动,因此如果由于某种原因无法加载主映像,您可以将设备配置为从备份启动。

如果您使用的是不可靠的网络,通常可以使用另一个选项,例如 FTP。但是,您可能仍然希望使用任何可用的验证方法来确保数据完整性。