3.4.1 远程终端协议(TELNET)

3.4.1 远程终端协议(TELNET)

TELNET是远程终端协议,它支持远程交互式计算,也就是远程登录。远程登录是最早的Internet应用之一。

1.远程登录

Internet的一项主要任务就是向网络用户提供信息应用服务。网络用户各自使用的计算机即为本地主机,网络中其他机器则为远程主机。有时用户希望能够在一个远程主机上运行应用程序,而产生的结果能够传送到本地的主机。远程登录就能够完成这一功能。它允许用户登录远程机器,然后使用远程计算机提供的服务,就像在本地操作一样。

(1)登录

登录是指经由身份识别或鉴权进入操作系统或应用程序的过程。分时系统允许多个用户同时使用一台计算机,用户是系统的一部分,并具有使用资源的某些权利。为了保证系统的安全和记账方便,系统要求每个授权用户有单独的账号作为登录标识,系统还为每个用户指定了一个口令以防止非授权用户使用资源。用户在使用该系统之前要输入标识和口令,这个过程即是登录。

(2)远程登录

用户登录到远程主机并使本地的计算机暂时成为远程主机的一个仿真终端的过程称为远程登录。

2.远程终端协议

TELNET是一个用于Internet远程登录服务的简单远程终端协议。它下层使用了TCP协议以提供可靠服务。用户通过TELNET就可在其所在地登录到远程的另一个主机上(使用主机名或IP地址),使用远程主机的服务。

TELNET使用的是客户/服务器模式。在本地系统运行TELNET客户进程,而在远程主机则运行TELNET服务器进程。使用TELNET协议进行远程登录时需要满足以下条件:①在本地计算机上必须装有包含TELNET协议的客户程序;②必须知道远程主机的IP地址或域名;③必须知道登录标识与口令。

其基本工作过程如下。首先TELNET建立本地与远程主机之间的连接。该过程实际上是建立一个TCP连接,然后将用户从键盘输入的信息直接传送到远程主机,同时也能将远程主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,用户感觉好像键盘和显示器是直接连在远程主机上的。使用完毕后,本地终端与远程主机之间的TCP连接会被撤销。

下面简要介绍TELNET协议采用的特色技术。

(1)网络虚拟终端

本地与远程的计算机和操作系统可能存在差异。例如,有的操作系统使用ASCII回车控制符(CR)进行换行,有的系统则使用ASCII换行符(LF),还有一些系统使用两个字符的序列回车-换行(CR-LF)。此外,有的操作系统使用CTRL+C作为中断程序运行的快捷键,而有的系统则使用ESCAPE。如果不考虑系统间的异构性,那么在本地发出的字符或命令,传送到远程主机经远程系统解释后很可能会不准确或者出现错误。

为了解决这种异构性,TELNET协议定义了数据和命令在Internet上的传输方式,称作网络虚拟终端(NVT,Network Virtual Terminal)。图3-23说明了它的应用过程:当发送数据时,TELNET客户把来自用户终端的按键和命令序列转换为NVT格式,这些NVT形式的命令或数据通过Internet到达远程主机,TELNET服务器将收到的数据和命令从NVT格式转换为远程主机需要的格式;接收数据时,远程主机上的TELNET服务器将数据从远程主机的格式转换为NVT格式发送给本地主机,而本地的TELNET客户将接收到的NVT格式的数据再转换为本地的格式。

(2)选项协商

由于TELNET两端的机器和操作系统的异构性,使得TELNET不可能也不应该严格规定每一个TELNET连接的详细配置,否则将大大影响TELNET的适应异构性,TELNET采用选项协商(Option Negotiation)机制来解决这一问题。

图3-23 网络虚拟终端

TELNET的选项协商使TELNET客户和TELNET服务器可商定使用更多的终端功能。

TELNET选项包含的内容很多。表3-4显示了部分选项内容。

表3-4 部分选项内容

要使用某个选项,首先需要在客户与服务器之间进行协商,协商的双方是平等的。若有一方愿意激活一个选项,它可以同意请求。如果这一方不能使用这个选项或不愿意使用这个选项,它有权拒绝这个请求。

直到今天,TELNET依然是重要和广泛使用的TCP/IP服务。例如,许多电子公告板系统(BBS,Bulletin Board System)都有TELNET版本,使用TELNET方式访问BBS也更为快捷。