表1TELNET命令
其中常用的TELNET选项协商如下:
WILL(optioncode)251指示希望开始执行,或者确认现在正在操作指示的选项。
WON'T(optioncode)252指出拒绝执行或继续招待所指示的选项。
DO(optioncode)253指出要求对方执行,或者确认希望对方执行指示的选项。
DON'T(optioncode)254指出要求对方停止执行,或者确诊要求对方停止执行指示的选项。
那么对于接收方和发送方有以下几种组合:
表2TELNET选项协商的六种情况
选项协商需要3个字节:IAC,然后是WILL、DO、WONT或DONT;最后一个标识字节用来指明操作的选项。常用的选项代码如下:
表3TELNET选项代码
通常情况下,客户机向服务器发送字符而服务器将其回显到用户的终端上,但是,如果网络的时延回引起回显速度太慢,用户可能更愿意让本地系统回显字符。在客户机允许本地系统回显前,它要向服务器发送以下序列:
IACDONTECHO
服务器收到请求后,发出3个字符的响应:
IACWONTECHO
表示服务器已经按请求同意关闭回显。
除了“打开”或“关闭”以外,有些选项还需要更多的信息,例如对于指明终端类型来说,客户必须发送一个字符串来标识终端类型,所以要定义子选项协商。telnet 命令详解
RFC1091定义了终端类型的子选项协商。举个例子:
客户发送字节序列来请求打开选项:
<IAC,WILL,24>
24是终端类型的选项标识符。如果服务器同意该请求,响应为:
<IAC,DO,24>
接着服务器发送
<IAC,SB,24,1,IAC,SE>请求客户给出其终端类型。
SB是子选项开始命令,下一个字节24表示该子选项为终端类型选项。下一个字节1表示:发送你的终端类型。客户的响应为:
<IAC,SB,24,0,'I','B','M','P','C',IAC,SE>
第四个字节0的含义是“我的终端类型为”。
整个协议软件分为三个模块,各模块的功能如下:
1.与本地用户的输入/输出模块:处理用户输入/输出;
2.与远地系统的输入/输出模块:处理与远程系统输入/输出;
3.TELNET协议模块:实现TELNET协议,维护协议状态机。
telnet客户机要做两件事:
读取用户在键盘上键入的字符,并通过tcp连接把他们发送到远程服务器上
读取从tcp连接上收到的字符,并显示在用户的终端上
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-44808-3.html
滚动复利