第26章 Telnet和Rlogin:远程登录
26.1 引言
两种远程登录应用:
- Telnet:标准协议,跨平台
- Rlogin:起源于Berkeley Unix
客户-服务器模式
- 客户进程与终端用户交互
- 服务器进程与伪终端交互
- 单条TCP连接
26.2 Rlogin协议
初始交换
- 客户发送:0字节 + 登录名 + 登录名 + 终端类型/速率
- 服务器返回:0字节
- 口令提示(可选)
- 窗口大小请求
服务器到客户命令(紧急方式)
| 字节 | 说明 |
|---|---|
| 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等)
操作方式
- 半双工(默认,少用)
- 一次一字符(远程回显)
- 一次一行(准行方式)
- 行方式(RFC 1184)
26.5 Telnet举例
单字符方式
- 选项协商序列
- 终端类型、窗口大小等
行方式
- 减少报文段数量
- 本地回显和编辑
- 口令处理特殊
准行方式
- 不支持行方式时的备选
- 使用SUPPRESS GO AHEAD和ECHO选项
客户中断键
- 使用同步信号(IAC DM)
- 紧急方式发送
26.6 小结
Rlogin简单高效,适合Unix系统。Telnet功能强大,支持跨平台和多种操作方式。