当开始运行Telnet时,情况如何呢?一个应用系统由两部分组成:“client”――这就是Telnet简介所说的客户机,另一部分是“server”――这是运行于网络计算机上提供服务的系统,称之为服务器。而网络(即使用TCP也使用UDP的服务器)则是提供两者(Clinet与Server)通信的工具。
这里要求客户机必须做到:
(1)建立一个网络与服务器间的TCP连接
(2)以方便的方式接收输入
(3)对某些标准的格式化输入作重新格式化并作重新格式化并传送给服务器。
(4)以某些标准的格式化从服务器中接受输出
(5)重新格式化显示给自己的输出
服务器软件是运行于主机上提供服务的系统,如果没有运行服务系统,也就不能提供相应的服务。
某一类服务被调用,它就可以:
(1)通知网络软件,让它准备连接;
(2)等待一个标准的格式化要求的产生;
(3)服务请求;
(4)传送一个标准格式的结果给客户;
(5)重新等待
一个服务器应该能够处理各种客户,有的是运行在同类的电脑上的,而有的是运行在 IBM / PCs , Macintoshes , Amigas等各种不同的机器上。为了做到这一点,服务器必须具有一套通信规则,这种规则通常叫做协议。由于Telnet协议用于两个应用层之间所以叫做应用层协议。任何人都可以在任何类型的电脑上编制一个客户机。只要这个客户机可以上网通讯并遵守协议,他就可以进入服务器。实际上也就是说,用户的 Macintosh可以使用Telnet和其他的的Internet的工具,从而能让很多不同的系统为其工作。
就使用来说,一个应用层协议通常允许客户机和服务器有不同的数据设定,并通告客户机和服务器使用相互的通信方式。这些经常是有每行在开始的几个字节的文本程序来完成的。如果服务器发送一个以“TXT”字符开头的行命令给客户,那么这行 “TXT” 后边其他的数据就被送入屏幕显示。如果一行的开始是以“CMD”开始,则表明这些信息是从服务软件到客户软件。使用者是看不到这些的,这是因为在信息传送到时这些控制信号已去掉了。
除了在Telnet是如何工作的例子介绍的以外,Telnet还有很多的特点。Telnet可发送除了"escape"的任何字符到远程主机上。因为"escape"字符在Telnet中是客户机的一个特殊的命令模式,它的默认值是"Ctrl-]"。但要注意不要与键盘上的Esc键混淆,我们可以设定"escape"为任意某个字符,只是对Telnet来说以为着该字符不可能再被传送到远程主机上,而Esc键是一非打印字符,Telnet用它来删除远程系统中的命令。而且还应记住,"escape"字符并不总以"Ctrl-]"来表示。
可以仅仅键入Telnet,后面不带机器字句。这种情况下所看到的是Telnet,这是告知Telnet在等待键入命令,比如键入问号"?"那么就得到一个有用的命令表:
telnet: ?
Commands may be abbreviated, Command are:
open connect to a site
close close currect connection
quit exit telnet
display display operating parameters
send transmit special characters ('send ?' for more)
set set operating parameters('set ?' for more)
status print status information
toggle toggle operating parameters('toggle ?' for more)
mode try to enter line-by-line or character-at-a-time mode
? print help information
虽然命令很多,甚至还有子命令,但只有一些是常用的。现在介绍以下的几个:
Close:
该命令用语终止连接。它自动切断与远程系统的连接,也可以用它退出Telnet,在冒失的进入一个网络主机时,想退出的话,就可以用到这个命令。
open:
用它来与一个命名机器连接,要求给出目标机器的名字或IP地址。如果未给出机器名,Telnet就将要你选择一个机器名。必须注意,在使用"Open"命令之前应该先用"close"来关闭任何已经存在的连接。
Set ECHO:
用于本地的响应是On或是Off。作用是是否把输出的内容显示在屏幕上。和DOS的ECHO基本上是一样。如果机器是处于ECHO ON的话,想改变为OFF,那么就可以输入SET ECHO,想再改变回ECHO OFF,那么就再键入SET ECHO就可以了。(这儿说的比较简短,如果有不明白的,可以与我联系)
Set escape char:
建立"escape"字符到某个特殊的符号,若想用某种控制符号来代替,可以用"asis"或者键入符号"^"加字母b(如:^b)。在正常工作时,是不需要用"escape"这个字符的,并且这个被用作"escape"的符号不应该再被使用。这类似于许多程序中对键盘上的每一个键设定其真正的涵义。但如果正在运行一个 daisy-chained 应用系统,那么可以重新议定"escape"字符的特征便是很有用的。例如:用Telnet从系统A到系统B,接着又用Telnet注册进入系统C。如果正在系统C上工作时出了故障,那么当"escape"代表符是相同时,就没法中断系统B到系统C的连接。键入"escape"代表符,将总是处于系统A的命令模式。如果在每个Telnet部分使用不同的"escape"代表符,便可以通过键入适当的符号,来选择其中一个命令模式,这也可以用于其他的应用中(像终端仿真)。
Quit:
用它可顺利地推出Telnet程序。
Z:
用语保留Telnet但暂时回到本地系统执行其他命令。并且在Telnet中的连接以及其他的选择在Telnet恢复时仍被保留。
Carriage Return:
用于不具体的一个命令从命令模式返回到所连接的远程机器上。另外,还有许多其他的命令可以推出命令模式。下面举一个例子,是从注册进入到porky.math.ukans.edu ,然后进入命令模式,然后返回porky::
telnet porky.math.ukans.edu
Trying 129.237.128.11...
Connected to porky.math.ukans.edu.
Escape character is '^]'.
SunOS UNIX(porky)
login:wl
password:
Last Login: Tue Mar 28 05:35 from ns.bta.net.cn
SunOS Release 4.1.3_U1(SLIPPERY1) #3: Sun Nov 20 23:47:23 CST 1999
No match.
if:Expression syntax.
porky/serv/wl%cd/
porky/%CTRL-]
telnet:?
Commands may be abbreviated, Command are:
open connect to a site
close close currect connection
quit exit telnet
display display operating parameters
send transmit special characters ('send ?' for more)
set set operating parameters('set ?' for more)
status print status information
toggle toggle operating parameters('toggle ?' for more)
mode try to enter line-by-line or character-at-a-time mode
? print help information
telnet:set escape ^b
escape character is ’^b’
porky/%logout
ns.bta.net.cn%
注意:set命令也可以退出命令模式。当然,如果不行,可以回车输入一空行,也能回到porky。