1. telnet是标准的提供远程登录功能的应用,一个简单的telnat示意图如下:
注意:
1)Telnet客户进程同时和终端用户和TCP/IP协议模块进行交互。通常我们所键入的任何信息的传输是通过TCP连接,连接的任何返回信息都输出到终端上。
2)Telnet服务器进程经常要和一种叫做“伪终端设备”(pseudo-terminaldevice)打交道,至少在Unix系统下是这样的。这就使得对于登录外壳(shell)进程来讲,它是被Telnet服务器进程直接调用的,而且任何运行在登录外壳进程处的程序都感觉是直接和一个终端进行交互。对于像满屏编辑器这样的应用来讲,就像直接在和终端打交道一样。实际上,如何对服务器进程的登录外壳进程进行处理,使得它好像在直接和终端交互,往往是编写远程登录服务器进程程序中最困难的方面之一。
3)仅仅使用了一条TCP连接。由于客户进程必须多次和服务器进程进行通信(反之亦然),这就必然需要某些方法,来描绘在连接上传输的命令和用户数据。
4)注意在上图中,我们用虚线框把终端驱动进程和伪终端驱动进程框了起来。在TCP/IP实现中,虚线框的内容一般是操作系统内核的一部分。Telnet客户进程和服务器进程一般只是属于用户应用程序。
5)把服务器进程的登录外壳进程画出来的目的是为了说明:当我们想登录到系统的时候,必须要有一个帐号,Telnet和Rlogin都是如此。
2. telnet协议定义一种通用字符终端,即网络虚拟终端NVT。telnet通信的双方不论客户进程终端是什么类型,都要转换为NVT格式。
3. telnet连接双方首先会进行选项协商,如果客户端和服务器都支持这些选项,则可以增强一些功能。
4. telnet 3种数据传输方式:单字符方式、准行方式、实行方式。准行方式可以减少网络上的数据量,同时为交互用户提供较好的行编辑和回显的响应。