Telnet帮助我们进行远程连接,在很多平台都有所使用。例如图书馆等大型的客户平台。那么Telnet服务的结构如何呢?这个也是帮助我们来理解这个协议的使用的基础。所以今天我们就来介绍一下。我们知道Telnet服务器软件是我们最常用的远程登录服务器软件,是一种典型的客户机/服务器模型的服务,它应用Telnet协议来工作.那么,什么是Telnet协议?它都具备哪些特点呢?
1 基本内容
Telnet服务是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议.应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端.它提供了三种基本服务:
1)Telnet定义一个网络虚拟终端为远的系统提供一个标准接口.客户机程序不必详细了解远的系统,他们只需构造使用标准接口的程序;
2)Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;
3)Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出.
2 适应异构
为了使多个操作系统间的Telnet交互操作成为可能,就必须详细了解异构计算机和操作系统.比如,一些操作系统需要每行文本用ASCII回车控制符(CR)结束,另一些系统则需要使用ASCII换行符(LF),还有一些系统需要用两个字符的序列回车-换行(CR-LF);再比如,大多数操作系统为用户提供了一个中断程序运行的快捷键,但这个快捷键在各个系统中有可能不同(一些系统使用CTRL+C,而另一些系统使用ESCAPE).如果不考虑系统间的异构性,那么在本地发出的字符或命令,传送到远地并被远地系统解释后很可能会不准确或者出现错误.因此,Telnet协议必须解决这个问题.
为了适应异构环境,Telnet服务定义了数据和命令在Internet上的传输方式,此定义被称作网络虚拟终端NVT(Net Virtual Terminal).它的应用过程如下:
对于发送的数据:客户机软件把来自用户终端的按键和命令序列转换为NVT格式,并发送到服务器,服务器软件将收到的数据和命令,从NVT格式转换为远地系统需要的格式;
对于返回的数据:远地服务器将数据从远地机器的格式转换为NVT格式,而本地客户机将将接收到的NVT格式数据再转换为本地的格式.
对于NVT格式的详细定义,有兴趣的朋友可以去查找相关资料.
3 传送远地命令
我们知道绝大多数操作系统都提供各种快捷键来实现相应的控制命令,当用户在本地终端键入这些快捷键的时候,本地系统将执行相应的控制命令,而不把这些快捷键作为输入.那么对于Telnet来说,它是用什么来实现控制命令的远地传送呢?
Telnet同样使用NVT来定义如何从客户机将控制功能传送到服务器.我们知道USASCII字符集包括95个可打印字符和33个控制码.当用户从本地键入普通字符时,NVT将按照其原始含义传送;当用户键入快捷键(组合键)时,NVT将把它转化为特殊的ASCII字符在网络上传送,并在其到达远地机器后转化为相应的控制命令.将正常ASCII字符集与控制命令区分主要有两个原因:
1)这种区分意味着Telnet服务具有更大的灵活性:它可在客户机与服务器间传送所有可能的ASCII字符以及所有控制功能;
2)这种区分使得客户机可以无二义性的指定信令,而不会产生控制功能与普通字符的混乱.