用户计算机与远程服务器所使用的计算机和操作系统各不相同,如不考虑系统间的差异,那么在本地发出的字符及命令,传送到远程主机并被远程系统解释后可能会不准确或出现错误。如一些操作系统需要每行文本用ASCII回车控制符(CR)结束,而另一些系统则需要使用ASCII换行符(LF),还有的系统需要用两个字符的回车换行(CR-LF)序列。再比如,多数操作系统为用户提供中止程序运行的快捷键,不同系统中该快捷键不相同,一些系统使用快捷键<Ctrl+C>,而另一些系统使用<Escape>。
为支持异构性,Telnet协议定义了网络虚拟终端NVT,即数据和命令序列在互联网上传输的标准表示方式。
NVT是客户端—服务器模式的一种实现,把连接的每一端都作为虚拟终端(逻辑I/O设备)对待,逻辑输入设备(或用户键盘)产生待发送的数据,逻辑输出设备(或显示器)响应接收的数据和远程系统的输出。任一虚拟终端产生指令,都被翻译成相应物理设备指令。
简单说,为使远程主机能正确识别用户输入的信息,而用户屏幕上也能正确显示远程主机输出信息,NVT格式充当桥梁作用。对于发送的数据,客户端软件把用户输入的字符和控制命令序列转换为NVT格式,并发送到服务器,服务器软件将收到的数据和命令从NVT格式转换为远程系统所需的格式;对于返回的数据,服务器软件将输出结果从远程系统的格式转换为NVT格式,本地客户端软件则将接收到的NVT格式数据再转换为本地格式。引入网络虚拟终端之后,客户端和服务器可使用各自的数据格式,只是数据通过TCP连接在互联网上传送时,需要转换为统一的NVT格式。
NVT使用7位标准ASCII码来表示数据,每个7位的字符都以8位(1B)的格式发送,最高位固定为1。7位标准ASCII字符集包括95个可打印字符(编码32~126)和33个控制码(编码0~31和127),当用户从本地键入普通字符时,NVT将按其原始含义传送,当用户键入组合键时,NVT将它转化为特殊的ASCII字符在网上传送。表8-6列出控制字符。(www.xing528.com)
表8-6 NVT中的ASCII控制字符
除表中所列控制字符外,NVT把两个字符的序列CR-LF定义为标准行结束符。当用户按下相当于行结束的键时,Telnet客户端必须把它映射为CR-LF才能传输,而Telnet服务端则要把CR-LF翻译为远程计算机上相应的行结束符。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。