Telnet强制命令

Telnet强制命令我们应该考虑到这样一种情况:假设本地用户运行了远地机器的一个无休止循环的错误命令或程序,且此命令或程序已经停止读取输入,那么操作系统的缓冲区可能因此而被占满,如果这样,远程服务器也无法再将数据写入伪终端,并且最终导致停止从TCP连接读取数据,TCP连接的缓冲区最终也会被占满,从而导致阻止数据流流入此连接

如果以上事情真的发生了,那么本地用户将失去对远程机器的控制

为了解决此问题,Telnet协议必须使用外带信令以便强制服务器读取一个控制命令

我们知道TCP用紧急数据机制实现外带数据信令,那么Telnet只要再附加一个被称为数据标记(date mark)的保留八位组,并通过让TCP发送已设置紧急数据比特的报文段通知服务器便可以了,携带紧急数据的报文段将绕过流量控制直接到达服务器

作为对紧急信令的相应,服务器将读取并抛弃所有数据,直到找到了一个数据标记

服务器在遇到了数据标记后将返回正常的处理过程

由于Telnet两端的机器和操作系统的异构性,使得Telnet不可能也不应该严格规定每一个telnet连接的详细配置,否则将大大影响Telnet的适应异构性

因此,Telnet采用选项协商机制来解决这一问题

Telnet选项的范围很广:一些选项扩充了大方向的功能,而一些选项制涉及一些微小细节

例如:有一个选项可以控制Telnet是在半双工还是全双工模式下工作(大方向);还有一个选项允许远地机器上的服务器决定用户终端类型(小细节)

Telnet选项的协商方式也很有意思,它对于每个选项的处理都是对称的,即任何一端都可以发出协商申请;任何一端都可以接受或拒绝这个申请

另外,如果一端试图协商另一端不了解的选项,接受请求的一端可简单的拒绝协商

因此,有可能将更新,更复杂的Telnet客户机服务器版本与较老的,不太复杂的版本进行交互操作

如果客户机和服务器都理解新的选项,可能会对交互有所改善

否则,它们将一起转到效率较低但可工作的方式下运行

所有的这些设计,都是为了增强适应异构性,可见Telnet的适应异构性对其的应用和发展是多么重要

上面讨论了一些原理方面的东西,虽然我们在Telnet的使用过程中很难接触到这一层面,但我认为了解这些是有意义的,它会给我们带来许多启示

下面让我们来看看Win2000的Telnet服务

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关