第26章 Telnet和Rlogin:远程登录

26.1 引言

两种远程登录应用:

  • Telnet:标准协议,跨平台
  • Rlogin:起源于Berkeley Unix

客户-服务器模式

  • 客户进程与终端用户交互
  • 服务器进程与伪终端交互
  • 单条TCP连接

26.2 Rlogin协议

初始交换

  1. 客户发送:0字节 + 登录名 + 登录名 + 终端类型/速率
  2. 服务器返回:0字节
  3. 口令提示(可选)
  4. 窗口大小请求

服务器到客户命令(紧急方式)

字节说明
0x02清仓输出
0x10停止流量控制
0x20继续流量控制
0x80发送窗口大小

客户到服务器命令(带内信令)

  • 0xff 0xff ‘s’ + 窗口大小数据

26.3 Rlogin的例子

初始协议交互

  • 4个字符串交换
  • 窗口大小请求

客户中断键

  • 触发TCP紧急方式
  • 清仓输出命令
  • 即使窗口为0也能发送

26.4 Telnet协议

NVT ASCII

  • 7bit ASCII
  • 行结束:CR LF
  • 单独CR:CR NUL

Telnet命令(IAC=0xff)

命令说明
WILL发送方激活选项
WONT发送方禁止选项
DO接收方激活选项
DONT接收方禁止选项
SB子选项开始
SE子选项结束

选项协商

  • 对称机制
  • 6种组合(WILL/DO等)

操作方式

  1. 半双工(默认,少用)
  2. 一次一字符(远程回显)
  3. 一次一行(准行方式)
  4. 行方式(RFC 1184)

26.5 Telnet举例

单字符方式

  • 选项协商序列
  • 终端类型、窗口大小等

行方式

  • 减少报文段数量
  • 本地回显和编辑
  • 口令处理特殊

准行方式

  • 不支持行方式时的备选
  • 使用SUPPRESS GO AHEAD和ECHO选项

客户中断键

  • 使用同步信号(IAC DM)
  • 紧急方式发送

26.6 小结

Rlogin简单高效,适合Unix系统。Telnet功能强大,支持跨平台和多种操作方式。