我的问题有两个部分。
首先,为什么 SSH 服务器必须具有至少 32678 位的最大数据包大小?对于 SSH 的大多数用途(不包括文件传输)来说,这似乎有点过分。这种大小的 SSH 数据包很常见,还是专门用于文件传输?
其次,忽略标准并支持较小的最大数据包大小是否不明智?我正在开发一个 RAM 使用率非常低的 SSH 堆栈,我根本无法支持如此大的数据包大小。例如,我能否支持最高 4096 的数据包,并确保某些服务(例如文件传输)从未使用过?
谢谢
我的问题有两个部分。
首先,为什么 SSH 服务器必须具有至少 32678 位的最大数据包大小?对于 SSH 的大多数用途(不包括文件传输)来说,这似乎有点过分。这种大小的 SSH 数据包很常见,还是专门用于文件传输?
其次,忽略标准并支持较小的最大数据包大小是否不明智?我正在开发一个 RAM 使用率非常低的 SSH 堆栈,我根本无法支持如此大的数据包大小。例如,我能否支持最高 4096 的数据包,并确保某些服务(例如文件传输)从未使用过?
谢谢
首先,为什么 SSH 服务器必须具有至少 32678 位的最大数据包大小?
因为它是IETF 标准 (RFC 4253),如果您希望与使用此标准的其他应用程序保持互操作性,您应该遵循它。如果你选择不同的情人值,迟早你可能会遇到意想不到的错误。
说其他工具不支持这么大的数据包是不正确的。OpenSSH 我们使用256 K的最大数据包大小。
其次,忽略标准并支持较小的最大数据包大小是否不明智?
嗯……你可以试试。如果实现的方式是有一个您可以稍后更改的常量,您将实现它并查看您的客户和您的用例会发生什么。它始终取决于您的目标是什么兼容性。如果您想支持您经营的少数客户,那可能还可以,但如果您的目标是为未知客户提供公共服务,那可能是个坏主意。