26.5 Telnet 实例解析
本章节将深入探讨 Telnet 选项协商在三种不同模式下的具体表现,包括:字符模式、行模式和准行模式。此外,还会分析用户在服务器端按下中断键终止正在运行的进程后系统的行为。
26.5.1 字符模式
首先,我们以基础的字符模式为例进行说明,该模式与 Rlogin 类似。用户在终端输入的每个字符都会被直接传输到服务器进程,而服务器进程的响应也会以字符的形式回显到终端上。
示例中,我们使用一个运行 BSD/386 的新型客户端进程,该进程尝试激活多个新的 Telnet 选项。而服务器进程仍然运行旧版的 SVR4,因此许多选项会被服务器拒绝。
为了清晰地观察服务器和客户端之间的选项协商过程,我们将激活客户端进程的一个选项,用于显示所有选项协商的内容。同时,我们运行 tcpdump 工具来捕获数据包交换的时间顺序。
图 26-12 展示了此次交互会话。在图中,我们对以“SENT”或“RCVD”开头的每个选项协商步骤进行了标记。以下是每个步骤的详细解释:
-
客户端发起 SUPPRESS GO AHEAD 选项协商。 由于 GO AHEAD 命令通常由服务器发送给客户端,而客户端希望服务器激活该选项,因此该选项的请求方式为“DO”(需要注意的是,激活此选项将禁止发送 GO AHEAD 命令,这可能会造成一定的混淆)。在第 10 行可以观察到服务器进程同意了该选项。
-
客户端进程尝试按照 RFC 1091 [VanBokkelen 1989] 中的定义发送终端类型。 这种行为在 Unix 类型的客户端进程中非常普遍。由于客户端进程要激活本地选项,因此该选项的请求方式为“WILL”。
...(此处省略剩余内容,可根据原文内容进行补充)
暂无评论