首页 > 学院 > 网络通信 > 正文

TELNET协议选项协商

2019-11-04 11:44:50
字体:
来源:转载
供稿:网友

虽然我们可以认为Telnet连接的双方都是NVT,但是实际上Telnet连接双方首先进行交互的信息是选项协商数据。选项协商是对称的,也就是说任何一方都可以主动发送选项协商请求给对方。

  对于任何给定的选项,连接的任何一方都可以发送下面4种请求的任意一个请求。

1)WILL:发送方本身将激活(enable)选项。

2)DO:发送方想叫接收端激活选项。

3)WONT:发送方本身想禁止选项。

4)DON’T:发送方想让接收端去禁止选项

由于Telnet规则规定,对于激活选项请求(如1和2),有权同意或者不同意。而对于使选项失效请求(如3和4),必须同意。这样,4种请求就会组合出6种情况,如图26-9所示。选项协商需要3个字节:一个IAC字节,接着一个字节是WILL,DO,WONT和DONT这四者之一,最后一个ID字节指明激活或禁止选项。

选项标识(十进制)名称

发送方接收方              描述
1.WILL→←DO  发送方想激活选项接收方说同意
2.WILL→←DONT  发送方想激活选项接收方说不同意
3.DO→←WILL  发送方想让接收方激活选项接收方说同意
4.DO→  发送方想让接收方激活选项
WONT←  接收方说不同意
5.WONT→←DONT  发送方想禁止选项接收方必须说同意
6.DONT→←WONT  发送方想让接收方禁止选项接收方必须说同意

RFC

现在,有40多个选项是可以协商的。Assigned

1

回显

857

NumberRFC文档中指明选项字节的值,并且

3

抑制继续进行

858

一些相关的RFC文档描述了这些选项。图26

5

状态

859

6

定时标记

86024

10显示了在本章中会出现的选项代码。

终端类型

1091

Telnet的选项协商机制和Telnet协议的大部

31

窗口大小

1073

分内容一样,是对称的。连接的双方都可以发

32

终端速率

1079

起选项协商请求。但我们知道,远程登录不是

33

远程流量控制

137234

行方式

1184

对称的应用。客户进程完成某些任务,而服务

36

环境变量

1408


  有些选项不是仅仅用“激活”或“禁止”就能够表达的。指定终端类型就是一个例子,客户进程必须发送用一个A S C I I字符串来表示终端类型。为了处理这种选项,我们必须定义子选项协商机制。

  在R F C 1 0 9 1 [ VanBokkelen 1989] 中定义了如何表示终端类型这样的子选项协商机制。首先连接的某一方(通常是客户进程)发送3个字节的字符序列来请求激活该选项。 这里的2 4(十进制)是终端类型选项的I D号。假如收端(通常是服务器进程)同意,那么响应数据是:

然后服务器进程再发送如下的字符串:

  该字符串询问客户进程的终端类型。其中S B是子选项协商的起始命令标志。下一个字节的“2 4”代表这是终端类型选项的子选项(通常S B后面的选项值就是子选项所要提交的内容)。下一个字节的“1”表示“发送你的终端类型”。子选项协商的结束命令标志也是I A C,就像S B是起始命令标志一样。假如终端类型是i b m p c,客户进程的响应命令将是:

<IAC, SB, 24, 0‘I’, ‘B’, ‘M’, ‘P’, ‘C’, IAC, SE>

  第4个字节“0”代表“我的终端类型是”(在Assigned Numbers RFC文档中有正式的关于终端类型的数值定义,但是最起码在U n i x系统之间,终端类型可以用任何对方可理解的数据进行表示。只要这些数据在t e r m c a p或t e r m i n f o数据库中有定义)。在Te l n e t 子选项协商过程中,终端类型用大写表示,当服务器收到该字符串后会自动转换为小写字符。



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表