网络通信 频道

TELNET的一次一行方式(准行方式)

 如果客户不支持行方式,那么较新的服务器支持行方式选项,它也将转入准行方式(Kludgelinemode)。我们同时指出所有的客户进程和服务器进程都支持准行方式,但它不是默认方式,必须由客户进程或用户特地激活它。让我们来看看如何用Telnet选项激活准行方式。

  首先介绍当客户进程不支持行方式时,BSD/386服务器进程如何协商进入该方式。

1)当客户进程不同意服务器进程激活行方式的请求时,服务器进程发送DOTIMINGMARK选项。RFC860[Postel和Reynolds1983f]定义了这个Telnet选项。它的作用是让收发双方同步,关于这个问题将在本节的后面讲到用户键入中断键时讨论。该选项只是用来判断客户进程是否支持准行方式。

2)客户响应WILLTIMINGMARK,表明支持准行方式。

3)服务器发送WONTSUPPRESSGOAHEAD和WONTECHO选项,告诉客户它希望禁止这两个选项。我们在前面已经强调:单个字符方式下是假定SUPPRESSGOAHEAD和ECHO选项同时有效的,所以禁止两个选项就进入了准行方式。

4)客户响应DONTSUPPRESSGOAHEAD和DONTECHO命令。5)服务器发送login:提示符,然后用户键入用户名。用户名是以整行的方式发送给服务器,回显由客户进程在本地处理。

6)服务器发送Password:提示符和WILLECHO命令。这将使客户进程的回显失效,因为此时客户进程认为服务器进程将处理回显工作,所以用户键入的口令就不回显到屏幕上。客户响应DOECHO命令。

7)我们键入口令。客户以整行方式发送到服务器。

8)服务器发送WONTECHO命令,使得客户重新激活回显功能,客户响应DONTECHO。

  从此以后的普通命令处理过程就和行方式相似了。客户进程负责所有的编辑和回显,并以整行的方式发送给服务器进程。在图26-11中,我们已经强调:所有标注为“char”的记录都支持准行方式,只不过默认是单个字符方式罢了。如果要客户进入行方式,我们就能很容易看到选项协商的过程:客户是sun,服务器是svr4键入Control院Telnet客户进程通信(无回显)检验现在是否在一次一字符方式下注意选项协商过程切换到准行方式客户发送这两个选项服务器把WONT做为上述两个选项协商的响应这将使Telnet会话进入准行方式,此时SUPPRESSGOAHEAD和ECHO选项都是失效的。



  如果在服务器端运行如vi编辑器这样的应用程序,同样会有行方式下遇到的问题。当要运行这样的应用程序时,服务器进程必须告诉客户进程从准行方式切换到单字符方式。当应用程序结束时,必须告诉客户进程返回到准行方式。下面是这个过程需要用到的技术要点。

1)当应用程序改变其伪终端方式并通知服务器进程时,服务器进程将进入单字符方式。服务器进程向客户进程发送WILLSUPPRESSGOAHEAD和WILLECHO,这将使客户进程进入单字符方式。

2)客户进程回送DOSUPPRESSGOAHEAD和WILLECHO。

3)应用程序开始在服务器端运行。

4)当应用程序结束并改变其伪终端方式时,服务器进程发送WONTSUPPRESSGOAHEAD和WONTECHO命令,使得客户进程返回准行方式。

5)客户进程回送DONTSUPPRESSGOAHEAD和DONTECHO命令,告诉服务器进程它已经回到了准行方式。

下图概括了单个字符方式及准行方式中不同的SUPPRESSGOAHEAD和ECHO选项设置。

方式 SUPPRESS GO AHEAD E C H O 举例
一次一字符 准行方式下的v i编辑器
准行方式 × × 正常命令
准行方式 × 键入我们的口令

准行方式下Telnet选项的设置
文章转载地址:http://www.cnpaf.net/Class/Telnet/0532918532570420.html
2
相关文章