TELNET
时间:2005-11-08 来源:rickyweiwei
Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算),那么就让我们来认识一下远程登录。
1 远程登陆的基本概念
登录:分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为'登录'。
远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。
2远程登录的工作过程
使用Telnet协议进行远程登陆时需要满足以下条件:在本的计算机上必须装有包含Telnet协议的客户程序;必须知道远程主机的Ip地址或域名;必须知道登录标识与口令。Telnet远程登录服务分为以下4个过程:
1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的Ip地址或域名;
2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据报;
3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;
4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。
二、Telnet协议
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务:
1)Telnet定义一个网络虚拟终端为远端系统提供一个标准接口。客户机程序不必详细了解远的系统,他们只需构造使用标准接口的程序;
2)Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;
3)Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。
三、数据流向
Telnet有一个缺点:效率不高。这是为什么呢?下面给出Telnet中的数据流向:
数据信息被用户从本地键盘键入并通过操作系统传到客户机程序,客户机程序将其处理后返回操作系统,并由操作系统经过网络传送到远地机器,远地操作系统将所接收数据传给服务器程序,并经服务器程序再次处理后返回到操作系统上的伪终端入口点,最后,远地操作系统将数据传送到用户正在运行的应用程序,这便是一次完整的输入过程;输出将按照同一通路从服务器传送到客户机。
因为每一次的输入和输出,计算机将切换进程环境好几次,这个开销是很昂贵的。
The following are the defined TELNET commands. Note that these codes and code sequences have the indicated meaning only when immediately preceded by an IAC.
NAME CODE MEANING SE 240 End of subnegotiation parameters.
NOP 241 No operation.
Data Mark 242 The data stream portion of a Synch.This should always be accompanied by a TCP Urgent notification.
Break 243 NVT character BRK.
Interrupt Process 244 The function IP.
Abort output 245 The function AO.
Are You There 246 The function AYT.
Erase character 247 The function EC.
Erase Line 248 The function EL.
Go ahead 249 The GA signal.
SB 250 Indicates that what follows is subnegotiation of the indicated option.
WILL (option code) 251 Indicates the desire to begin performing, or confirmation that you are now performing, the indicated option.
WON'T (option code) 252 Indicates the refusal to perform,or continue performing, the indicated option.
DO (option code) 253 Indicates the request that the other party perform, or confirmation that you are expecting the other party to perform, the indicated option.
DON'T (option code) 254 Indicates the demand that the other party stop performing,or confirmation that you are no longer expecting the other party to perform, the indicated option.
IAC 255 Data Byte 255.
你conect上server之后,server会送过来一串字符,实际上 server传过来的255(IAC)开头的三元协商序列,后面是251(WILL), 252(WON'T),: 253(DO), 254(DONT)四者之一,第三个字符就是协商选项,具体什么协商选项 : 代表什么意思有很多相关的rfc,比如24代表终端类型,18代表断开连接。 : 三者合起来的意思就是表明“我要(不要)怎么做”,“我同意(不同意): 这么做”,另外还有子协商序列,255 250打头,255 240结尾,具体查看相关 : rfc。比如server传过来255 253 24说我要你送的终端类型,client想通知终端 : 类型就送255 251 24(不想就送255 252 24),之后server传255 250 24 1 : 255 240说我现在要你的终端类型,client此时传255 250 0 VT100 255 240说 : 我的终端类型是VT100。只有当client回答了所有server提出的协商之后, : server才会提示client开始输入用户名和口令登陆。
如下:
->255 253 24 255 253 31 255 253 35 255 253 39 255 253 36
<-255 252 24 255 252 31 255 252 35 255 252 39 255 252 36
->255 254 24 255 254 31 255 254 35 255 254 39 255 254 36
UNIX(r) System V Release 4.0 (gnet-smc)
->255 251 1 255 251 3 255 253 1 108 111 103 105 110 58 32
后面几个字符就是”login:“
然后你就可以输入用户名,然后等待server传password:,你再传口令就可以
登陆进去了。
http://www.itzero.com/Article/Hardware_Area/Doc_hw_3com/200411/3273.html