telnet协议是一种远程登录协议,它允许用户通过网络连接到远程主机并在远程主机上执行命令。
一、telnet协议的基本概念
1、nvt(network virtual terminal)网络虚拟终端
nvt是telnet协议中的一个重要概念,它是一种虚拟终端,用于将不同类型的终端设备转换为标准的ascii码字节流。nvt的作用是使得不同类型的终端设备可以通过telnet协议进行通信,而不需要考虑它们之间的差异
2、telnet连接
telnet连接是指通过telnet协议连接到远程主机的过程。在telnet连接中,客户端通过telnet协议向远程主机发送连接请求,远程主机接收请求后,双方建立起连接。连接建立后,客户端可以在远程主机上执行命令,就像在本地主机上一样。
3、telnet的c/s模式
telnet协议采用c/s(client/server)模式,客户端和服务器之间通过网络进行通信。在telnet连接中,客户端充当telnet客户端,服务器充当telnet服务器。
二、telnet的参数
telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]
-a 企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。
-e 跳过字符来进入 telnet 客户端提示。
-f 客户端登录的文件名
-l 指定远程系统上登录用的用户名。
要求远程系统支持 TELNET ENVIRON 选项。
-t 指定终端类型。
支持的终端类型仅是: vt100, vt52, ansi 和 vtnt。
host 指定要连接的远程计算机的主机名或 IP 地址。
port 指定端口号或服务名。
三、telnet的工作原理
telnet协议的工作原理可以分为以下几个步骤:
1、客户端向服务器发送连接请求
客户端通过telnet协议向服务器发送连接请求,请求连接到远程主机。
2、服务器接受连接请求
服务器接受客户端的连接请求,并建立起连接。
3、客户端和服务器进行握手
客户端和服务器之间进行握手,以确定连接的参数和协议版本等信息
4、客户端向服务器发送命令
连接建立后,客户端可以向服务器发送命令,服务器接收到命令后执行相应的操作。
5、服务器向客户端返回结果
服务器执行完命令后,将结果返回给客户端,客户端接收到结果后进行显示。
6、断开连接
当客户端不再需要连接时,可以通过telnet协议断开连接,服务器接收到断开连接请求后,关闭连接。
四、telnet协议
telnet协议是tcp/ip协议簇中的一员,是internet远程登录服务的标准协议。应用telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务:
1)、telnet定义一个网络虚拟终端为元的系统提供一个标准接口。客户机程序不必详细了解远的系统,他们只需构造使用标准接口的程序。
2)、telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;
3)、telnet对称处理连接的两端,即telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。
五、使用异构
为了使多个操作系统间的telnet交互操作变成可能,就必须详细了解异构计算及和操作系统。比如,一些操作系统需要每行文本用ascii回车控制符cr结束,另一些系统则需要使用ascii换行符(lf),还有一些系统需要用两个字符的序列回车-换行(cr-lf);再比如,大多数操作系统为用户提供了一个中断程序运行的快捷键,但这个快捷键在各个系统中可能不同(一些系统使用ctrl+c,而另一些系统使用escape)如果不考虑系统间的异构性,那么在本地发出的字符或命令,传送到原地并被远地系统解释后很可能会不准确或者出现错误,因此,telnet协议必须解决这个问题。
为了适应异构环境,telnet协议定义了数据和命令在internet上的传输方式,此定义被称作网络虚拟终端nvt(net virtual terminal)。它的应用过程如下:
对于发送的数据:客户机软件把来自用户终端的按键和命令序列转换为nvt格式,并发送到服务器,服务器软件将收到的数据和命令,从nvt格式转换为远地系统需要的格式。
对于返回的数据:远地服务器将数据从远地机器的格式转换为nvt格式,而本地计算机将接收到nvt格式在转换为本地的格式
传送远地命令:
我们知道绝大多数操作系统都提供各种快捷键来实现相应的控制命令,当用户在本地中终端键入这些快捷键的时候,本地系统将执行相应的控制命令,而不吧这些快捷键作为输入。那么对于telnet来说,他是用什么来实现控制命令的远地传送呢?
telnet同样使用nvt来定义如何从客户机将控制功能传送到服务器。我们知道usascii字符集包括95个可打印字符和33个控制码。当用户从本地键入普通字符时,nvnt将按照其原始含义传送;当用户键入快捷键(组合键)时,nvt将把它转换为特殊的ascii字符在网络上传输,并在其到达远地机器后转化为相应的控制命令。将正常的ascii字符集与控制命令区分主要有两个原因:
1、这种区分意味着telnet具有更大的灵活性:它可在客户机与服务器间传送所有可能的ascii字符以及所有控制功能
2、这种区分使得客户机可以无二义性的指定信令,而不会产生控制功能与普通字符的混乱。
数据流向:
上面我们提到将telnet设计为应用级软件有一个缺点,那就是:效率不高。这是为什么呢?下面给出telnet中的数据流向。
数据信息被用户从本地及那盘键入并通过操作系统传到客户机程序,客户机程序将其处理后返回操作系统,并由操作系统经过网络传输到远地机器,远地操作系统将所接收数据传给服务器程序,并经服务器程序再次处理后返回到操作系统的伪终端入口点,最后,远程操作系统将数据传送到用户正在运行的应用程序,这便是一次完成的输入过程;输出将按照同一通路从服务器送到客户机。
因为每一次的输入和输出,计算机将切换进程环境好几次,这个开销是最昂贵的,还好用户的键入速率并不算高,这个缺点我们仍能够接收。
强制命令:
我们应该考虑到这样一种情况:假设本地用户运行了远地机器的一个无休止循环的错误命令或程序,且此命令或程序已经停止读取输入,那么操作系统的缓冲区可能因此而被占满,如果这样,远地服务器也无法再将数据写入伪终端,并且最终导致停止从tcp连接读取数据,tcp连接的缓冲区最终也会被沾满,从而导致组织数据流流入此连接。如果以上事情真的发生了,那么本地用户将失去对远地机器的控制。
为解决此问题,telnet协议必须使用外带信令以便强制服务器读取一个控制命令,我们自导tcp用紧急数据机制实现了外带数据信令,那么telnet只要在福建一个被称为数据表及(data mark)的保留八位组,并通过让tcp发送一设置紧急数据比特的报文段通知服务器便可以了,携带紧急数据的报文将绕过流量控制直接到达服务器。作为对紧急信令的响应,服务器将读取并抛弃所有数据,知道知道到了一个数据标记。服务器在遇到了数据标记后将返回正常的处理过程。
应用层协议--telnet简介
最新推荐文章于 2024-06-29 12:15:27 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)