Telnet协议(1)
Telnet网络的使用
概述:在internet的初期,远程访问计算机是一个非常麻烦的过程,需要修改提出请求的计算机的操作系统。同样,因为网络可能存在的异构性,不能确保在一台计算机上键入的内容可以不发生改变的在其他的计算机上被翻译出来。例如,在本地计算机上同时按下Ctrl和D键,代表关闭一个会话。但是在远程系统中这一个操作系统就不能结束正在运行的会话。
系统程序员逐步的成功地开发出了一种工具,可以允许用户与远程系统之间进行交互,就好像是在本地系统中一样。这一个工具称为远程通信网络(Telnet)。Telnet替换了击键动作的本地解释。也就是说,Telnet提供服务允许用户登陆远程计算机并执行命令,就像是在使用远程计算机的控制台。
实际上,Telnet作为一个协议的出现早于TCP/IP协议簇的其他的应用层协议。Telnet协议是最初的协议,TCP/IP协议簇随后才逐渐建立起来。Telnet服务是面向连接的,因此是基于TCP协议的。TCP端口23支持Telnet服务。Telnet基于三个原理:网络虚拟终端(NVT).协商原理.终端和进程的对称观。
- 网络虚拟终端(NVT).为了支持异构性(在不同的平台和系统中的互操作性)Telnet使用了NVT。NVT是数据和命令顺序的标准的表示方法。NVT是客户/服务器体系结构中的一种实现,把连接的每一端都作为虚拟终端进行对待(逻辑输入输出设备)。逻辑输入设备(如用户的键盘)产生向外的数据。逻辑输出设备(如监视器)响应接收的数据和远程系统的输出。无论哪个虚拟终端产生指令,都被翻译成相应的物理设备指令。换句话说,客户端的Telnet程序将服务器发出的NVT代码映射为可以被客户端理解的代码。
- 协商原理:一些系统可能提供NVT所包括的服务以外的服务,使用最少数量服务的系统可能无法正确地与另一端进行通信。因而,两台计算机进行Telnet通信时,通信和终端参数是在连接过程中确定的。有任何一方无法处理的服务或进程将被忽略。这就减少了双方操作系统对交换信息的解释需求。例如,用户可能协商回送(echo)选项并指定是在本地还是在远程系统中执行回送。
- 终端和进程的对称观:着意味着协商语法的对称性,既允许用户也允许服务器请求指定的选项。这种终端和进程的对称观优化了由另一端提供的服务。Telnet不仅允许终端与远程应用交互,还允许进程——进程和终端——终端的交互。
用户使用Telnet执行以下操作
- 连接在线数据库,以便访问信息。
- 连接在线知识库,例如图书馆,以便于查找信息。
- 连接远程操作系统,以便于使用应用程序,例如电子邮件等
- 连接交换机。路由器等网络设备以便实现远程配置与维护。
Telnet命令
在客户进程和服务器进程之间流动的信息必须遵从Telnet报文格式,或称之为命令结构。Telnet协议数据单元的格式
第一个字节是“解释或命令”字节(IAC),它是Telnet中的保留编码。该字节也是转义字符,因为它被接收端用来检测进入的流量不是数据而是Telnet命令。
第二个字节是命令编码。该字节的值跟IAC字节结合在一起描述命令的类型。
第三个字节称为选项协商编码,用来定义在会话期间使用的若干选项。
正如表10-5所示,由NVT键盘上概念性的键产生的每一个信号都有对应的命令。例如,要请求服务器中断正在执行的程序,客户进程必须发送由两个八位组构成的序列,即255后随244.其他的一些命令允许客户进程和服务器进程协商它们将要使用的选项和同步通信。
在Telnet中,选项是可以协商的,这就使得客户进程和服务器进程可以重新配置它们的连接。
Telnet选项的范围是广泛的:一些选项主要就是扩展选项功能,另外一些选项就是处理细节问题。例如:早先的Telnet协议是为半双工环境设计的,在对方能够再发送数据之前,必须给它发一个“继续”信号。Telnet的选项之一就是控制Telnet是工作在半双工环境还是工作在全双工环境。另外有一个选项允许在远方机器上的服务器进程确定用户的终端类型。终端类型对于产生光标定位的软件(例如,在远方机器上运行的全屏幕编辑程序)是很重要的。表10—6列出了普遍实现的若干个Telnet选项。
Telnet实用程序
Telnet既是协议也是实用程序。Telnet程序使用Telnet协议为用户提供远程使用远程主机的服务。Telnet实用程序以交互方式工作,它使用户能够在一个终端会话中与远程计算机进行通信。
每当用户建立起跟远程计算机的Telnet连接,并在远程计算机上注册上机的时候,Telnet都以输入方式操作。在输入方式下,键入的所有的字符都被送到远程计算机,并在用户的终端屏幕上显示所有由远程计算机传送的数据。其中的一个例外就是当键入转义字符^),则以命令方式设置Telnet。
与输入方式不同的另外一种方式就是命令方式。在命令方式下键入的数据由Telnet解释以控制Telnet的操作。命令方式在Telnet还没有连接到远程主机时是活动的。
- Telnet的调用方式:一种是带参数(主机名或者IP地址)的直接的输入方式,另一种就是不带参数的命令方式
如果没有连接到远程计算机,计算机处于命令方式;当在输入方式下键入转义字符^)时Telnet也处于命令方式。如果在命令方式下使用 open命令建立起到远程计算机的Telnet连接,则Telnet进入输入方式。
- 使用Telnet命令
如果通过键入转义字符从输入方式转化为命令方式,那么Telnet在处理完由转义字符引入的命令之后仍然回到输入方式。在输入方式下,用户随时可以采用转义字符进入到Telnet命令方式。Telnet等待用户输入命令,并执行命令,然后自动返回原先的输入方式。在命令方式的提示符下用户输入的Telnet命令仅由本地客户机执行,而与服务器无关。