当前位置:首页 >> 信息与通信 >>

TELNET协议原理及其实现


网络工程

TEL NET 协议原理及其实现
武汉华中理工大学电信系 ( 武汉 430074)     丁 夫
       摘 要 文章首先介绍了 TEL N ET 协议的主要内容 ,包括网络虚拟终端 、 选项协商的概念和 对称性问题及其解决办法 ; 然后结合作者在实时操作系统 VxWorks 下的实践 ,提出了 TEL N ET 协 议

的一种具体的实现方法 。    关键词  TELNET 协议   网络虚拟终端   选项协商   对称性   FSM   TEL N ET 协议是当今 Internet 上应用最广泛 的协议之一 , 尤其在使用 Unix 操作系统的计算机 上 ,它已成为不可或缺的一种工具 。更重要的是 , TEL N ET 协议提供了在 Internet 上异质网之间传 递数据和控制信息的重要方法 , 具有很重要的实用 价值和启发意义 。
1. 1   网络虚拟终端

众所周知 , 两个仅仅只懂自己方言的人是不能 够正确地与对方交流的 ; 但是如果这两个人都懂普 通话的话 ,他们就能够利用彼此都懂的普通话顺利 地交流了 。由于网络上使用 TEL N ET 协议进行通 信的两端 ( end) 所用的字符集可能不一样 ,它们的通 信同样存在着类似的问题 。解决这一问题就得定义 一个 网 络 上 的 “普 通 话” 这 就 是 网 络 虚 拟 终 端 , ( NV T ) 。 NV T 包 括 键 盘 ( keyboard ) 和 打 印 机 (printer) , 分别对应于普通终端的键盘和显示器 。 TEL N ET 程序的工作是 : 在发送数据前先把要发送 的字符转换为 NV T 的字符 , 送给 NV T 键盘 ; 把从 网络上来的数据 ( 已是 NV T 字符 ) 送给 NV T 打印 机 ,经过 NV T 打印机过滤的字符交给上层软件处 理 。这样就能实现两端的正确通信 。 NV T 打 印 机 没 有 规 定 回 车 的 宽 度 ( carriage widt h) 和页长 (page lengt h) 。它提供了 U SASCII 的 95 个 图 形 码 ( graphics , 从 32 到 126 ) 。对 于 U S2 ASCII 的 33 个控制码 ( cont rol code , 从 0 到 31 和 127) 和 128 个 U SASCII 所没有覆盖的码 ( 从 128 到 255) ,它只使用了以下部分 ( 剩余部分对打印机的行
( 3) 选择菜单 。菜单以 M PEG 流的形式发送

1  TEL NET 协议
TEL N ET 协 议 提 供 了 双 向 的 、 向 字 符 ( 以 面 8bit 为数据单位 ) 的通信方式 。最初它被用作终端

与面向终端的进程之间通信的标准方法 , 到后来它 也用于终端间的点对点通信以及在分布式环境下进 程间的通信 。RFC854 对 TEL N ET 协议进行了总 体描述 ,RFC855 规定了制定协商选项所应遵循的 标准 ,各种各样的选项的定义则在此后的 RFC 中被 单独分别说明 。 TEL N ET 协议在 TCP/ IP 协议栈中位于应用 层 ( application layer ) , 直 接 工 作 在 TCP 层 之 上 ; TEL N ET 服务器程序工作在 TCP 的 23 号端口上 。 TEL N ET 协议有三个基本概念 : 网络虚拟终端 、 选 项协商和对称性 ,现分述如下 : 频道 。具体说明如下 : ( 1) 解压卡 。在本模块中解压卡将所有 M PEG 信息解压后以 AV 方式送到频道调制器中 , 并最终 在 STB 端接收 。由于送给解压卡的数据源有多种 , 如本地 M PEG 文件 ,本地动态生成的 M PEG 流 , 从 网络接收到的 M PEG 流等 ,因此定义一个统一接口 作为解压卡输入数据 。同时解压模块也作为一个独 立的 DLL 而存在 。 ( 2) 用户命令 。用来解释接入服务器和 Media2 cache Server 间的动作 。
8 ( 136)

到 STB ,这个 M PEG 流是动态生成的 。 ( 4) 客户 。当用户进行异地点播时 ,Mediacache 器处理是类似的 。 5. 2   系统组成

Server 处理 M PEG 数据的方式和电信网视频服务

系统 由 Mediacache Server 软 件 、 务 器 平 台 服 —— — Windows N T ,A TM 网卡 ( 用于访问远程宽带 视频中心) ,管理工具软件 , 数据库平台 —— — Sybase 、 Oracle 、 Informix 、 Microsoft SQL Server 等组成 。 《电子技术》 2000 年第 3 期

上海贝尔有限公司   - 5854 1240           021

为不产生任何作用) :
NULL ( NUL ) Line Feed (L F) Carriage Return ( CR) B ELL (B EL ) Back Space (BS) Horizontal Tab ( HT) Vertical Tab ( V T) Form Feed ( FF) 0 10 13 7 8 9 11 12

Are You There

246 247 248 249 250 251 252 253 254 255

A YT 函数 EC 函数 EL 函数 GA 信号

空操作 换行 回车 响铃 退格 光标移至下一水平制表符处 光标移至下一垂直制表符处 换页

Erase Character Erase Line Go ahead SB WILL (option code) WON T (option code) DO (option code) DON T (option code) IAC

 

子协商开始
( 协商码) 本方将响应 ( 协商码) 本方将不响应 ( 协商码) 对方应答 ( 协商码) 对方不应答

   T 键盘可以通过键 、 NV 键组合和键序列产生所 有 128 个 U SASCII 码 。除此之外 ,键盘还应该能够 产生这些键值 :
Synch Break (BR K) Interrupt Process ( IP) Abort Output ( AO) Erase Line ( EL ) Erase Character ( EC)

数据 255

1. 3   对称性

由于进行选项协商的两端是完全对称的 , 任意 一端都有可能将对方的确认命令当成是请求命令而 再次发出响应命令 , 这样就会造成协商过程的无限 循环 (loop ) 。因此为了避免循环的发生 , 协商过程 应遵循下面三个规则 : ( 1) 只为选项的变化发出请求 ;
( 2) 接收到的请求如果要求自己进入已经具有

同步
( 为某些系统提供) BREA K 键

挂起或中断与 NV T 相连的进程 清除输出 删除一行 删除字符

Are You There ( A YT) “你还在吗”

1. 2   选项协商

并不是说有了 “普通话” 交流就万事大吉了 。一 个认识汉字的英国人来到中国 , 仍然会对很多汉语 现象难以理解 , 交流仍然存在很大的问题 。这中间 存在着一个说话习惯和认识观念的不同 。同样 , NV T 并不能解决通信中所有的问题 。当用户需要 使用 NV T 所不能提供的额外服务时 , 必须有个机 制使通信双方对通信中的 “语法” 进行预先商定 , 这 一过程就是选项的协商 。目前 RFC 已经定义了很 多的选项 ,最常用的如 RFC856 定义了二进制传输 ( binary t ransmission ) 的选项 、 RFC857 定义了回显 (echo ) 的选项 、 RFC858 定义了抑制 GA 信号 ( sup2 press go ahead signal) 的选项等等 。协商的方法是一 端发出使某一选项生效的请求 ( request ) 命令给另一 端 ,而另一端则可以通过发送响应 ( acknowledge ) 命 令来接受 ( accept ) 或拒绝 ( reject ) 这一请求 。该选项 若被接受 , 在连接的两端立即同时生效 ; 如若被拒 绝 ,两端仍都保持原来的约定 。 TEL N ET 的命令是至少包括两个字符的字节 序列 : IAC ( interpreter as command ) 转义符和命令 码 。选项协商的命令则有三个字节 , 第三个字节指 示协商的选项 。以下是 TEL EN T 的所有命令码 :
SE 240 241 242 243 245

的状态 ,那么此请求将不被响应 ; ( 3) 当一端向另一端发送一个协商命令时 ( 不 管这个命令是请求还是响应命令) ,如果该选项的使 用 ( 接受) 将影响到对方对接收数据的处理 , 那么这 个命令应该被插入到该选项开始起作用的数据流的 首部 。建立这一规则是因为从请求命令的发出到接 收到响应命令将会有一定的延时 。

2  TEL NET 协议的实现方法
笔者在实际工作中需要在 VxWorks 实时操作 系统下编写一个 TEL N ET 的服务器程序 。 TEL 2
N ET 服务器运行起来后 , 监听 TCP 的 23 号端口 ,

等待客户机的连接请求 ; 连接建立起来之后 ,服务器

子协商结束 无操作
Data Mark IP 函数

NOP

 

Data Mark

Break

NV T 字符 BR K.

Interrupt Process 244

Abort Output

AO 函数

《电子技术》 2000 年第 3 期

一行数据时 ,才将数据真正发送到网络上 ; 当然也可 ( 137 ) 9     英特尔技术发展 ( 上海) 有限公司   - 6485 2828 021

和客户机就能够平等的交流了 。虽然实现 TEL 2 N ET 的应用程序有服务器和客户机之分 ,但如前所 述 ,运用 TEL N ET 协议进行通信的双方是完全对称 的 ,就此而言是不分服务器和客户机的 。这里仅描 述其中一方的软件实现 ,另一方的是完全相同的 。
2. 1   概述 NV T 打印机和命令解释执行体 。图 1 是它的原理

TEL N ET 软件可由三大部分组成 : NV T 键盘 、

方框图 。

   图中 ,NV T 键盘处理用户的输出流 ,输出 NV T

键盘所允许的字符和命令 。如果输出的是命令字 符 ,调用命令执行体完成相应功能 ; 如果是普通字 符 ,则可以将之发送到网络上 。另外 ,NV T 键盘还 维护一个字符缓冲区 , 缺省情况下当该缓冲区存满

图 1  TELN ET 原理图

以让 NV T 键盘每收到一个字符时就立即发送到网 络。
NV T 打印机的工作很简单 : 网络上输入的数据

图 2  TELN ET 有限状态机

如果在所支持的 95 个字符内 , 直接交给上层软件 ; 如果输入的数据为前面所述的八个特殊字符 ( NUL 、 F 、 、 EL 、 、 、 T 和 FF) , 则把它们 L CR B BS HT V 转换为本机所使用的相应字符再上传 ; 对于其他字 符 ,一律作抛弃处理 。 命令解释执行体将混杂在输入流中的 TEL 2 N ET 命令分离出来 ,解释之后执行相应的操作 。它
2. 2   命令解释执行体的实现

通过直接写 SOC KET 发送 TEL N ET 命令 。此外 , NV T 键盘和打印机的工作方式 ( 如回显 、 二进制方 式收发等) 都要受到命令解释执行体的选项的协商 结果的影响 ,因此命令解释执行体还要通过选项来 影响它们的工作方式 ( 图中以粗线箭头表示这种控 制信息的流向) 。 命令解释执行体要接收识别 TEL N ET 命令执

行 ,具有较多的状态 ,是实现的难点 。用有限状态机 (finite state machine) 来记录状态间的变化转移 , 并 执行相应的操作 ,可以大为简化程序的设计 、 提高编 程效率 ,更能增强源代码的可读性 ,是实现命令解释

执行体的理想方法 。图 2 所示为命令解释执行体所 使用的 FSM 框图 ( 图中所使用的符号的说明见后) 。    该框图使用 FSM 常规记法 : 圆圈表示状态 , 圆 圈之间的有向线段表示状态间的转移 。每根有向线 α 段上面都有一个或几个αβ 样式的标签 , 表示造 / 成状态转移的输入字符 β 表示转移发生之时应执 , 行的操作 。例如在状态 X 到状态 Y 的转移线段上 的标签αβ表示这样的意义 : 在状态 X 时 ,如有字符 / α来到 ,那么执行操作β并转移状态到 Y。 图 2 所使用的符号说明如下 : S - DA TA 表示处
( 138)

于通常的数据处理的状态 ,S - IAC 表示已收到 IAC
10

上海贝尔有限公司   - 5854 1240           021

字符的状态 , S - WOP T 表示已收到 WON T/ WILL 字符的状态 ,S - DOP T 表示已收到 DON T/ DO 字符 的状态 。 IAC 、 、 DO DON T 、 WILL 、 WON T 、 ECHO 、 NO GA 、 TXB INAR Y、 NOP 、 等为前面所述 TEL 2 DM
N ET 所定义的命令字符 ,AN Y 代表除此以外的其

他所有字符 。大写字符 A~ K 代表了状态转移时执 行的操作 ,具体说明如下 : A  响应 IAC - WILL/ WON T2ECHO 请求 , 发 送 IAC2DO/ DON T2ECHO 命令 ; 送 IAC2DO/ DON T2NO GA 命令 ; C  收到不认识的 WILL/ WON T 请求 , 禁止对 方使用该选项 ; D  响 应 IAC2WILL/ WON T2 TXB INAR Y 请
H  完成 NV T 打印机的任务 ; K  响应 IAC2DO/ DON T2 TXB INAR Y 请求 ,发 B  响应 IAC - WILL/ WON T2NO GA 请求 , 发

求 ,发送 IAC2WILL/ WON T2 TXB INAR Y 命令 ; E  空操作 ; F  记 录 协 商 的 动 作 ( DON T 、 、 DO WON T 、 WILL ) ,以备后用 ; G  处理 DM 命令 ;
I  收到不认识的 DO/ DON T 请求 , 不使用该 选项 ; J  响 应 IAC2DO/ DON T2ECHO 请 求 , 发 送 IAC2WILL/ WON T2ECHO ;

送 IAC2WILL/ WON T2 TXB INAR Y 命令 。 为了突出重点 , 这里所示的 FSM 只支持 TEL 2 N ET 协议中回显 、 二进制发送和抑制 GA 等基本选 项 ,并且没有支持子协商选项 ( sub2negotiation) 。根 据这里所使用的原理 , 其他的选项协商和子协商的 内容都可以很容易加入 。 这样就可以实现 TEL N ET 协议了 。 《电子技术》 2000 年第 3 期


相关文章:
基于Telnet协议开发一个BBS客户端
4 月 1 日——4 月 26 日:根据 BBS 客户端的工作原理,给出设计方案,及...基于 Windows Sockets 网络编程接口和 Telnet 远程登录标准协议实现 BBS 客户端,...
实验八 Telnet协议
客户端,另外一台主机作为 Telnet 服务器 四 实验流程 五 实验原理 Telnet 是 传输 控制 协议/ 因特 网协 议 (TCP / IP)网络 ( 例如 Internet)的登录和仿真...
TCP IP实验五 Telnet与FTP协议
湖北文理学院《 TCP/IP 协议原理与应用 》 实验报告 专业班级: 姓学名: 号: 任课教师: 2014-12-17 实验五 Telnet 与 FTP 协议一:实验原理: TELNET 简介 ...
Telnet详解
Telnet 详解 Telnet 的应用不仅方便了我们进行远程登录,也给 hacker 们提供了 ...但它更大的意义 在于实现了基于 Telnet 协议的远程登录(远程交互式计算),那么...
Telnet协议简介
Telnet协议简介_信息与通信_工程科技_专业资料。telnet协议的详细内容,网络通信必须...Telnet协议的使用 3页 4下载券 TELNET协议原理及其实现 3页 免费 第14章 远程...
telnet协议规范
TELNET 协议规范 (RFC874——TELNET PROTOCOL SPECIFICATION) 本 RFC 指定了一个...TELNET协议原理及其实现 3页 免费 第08章 远程登录协议 21页 免费 实验八 Telne...
TELNET协议规范
TELNET 协议规范 ARPA Internet 上的主机被要求采用并实现此标准。 介绍 TELNET ...2. 规定选项的原理将以下事实考虑在内, 许多机器希望在现在的 NVT 上提供另外...
实验九 TELNET报文格式及协议分析
实验九 TELNET报文格式及协议分析_调查/报告_表格/模板_应用文书。实验九 TELNET 报文格式及协议分析 【实验目的】 1、 理解 TELNET 的基本工作原理和工作过程; 2...
远程登录协议(Telnet)_图文
远程登录协议(Telnet)_计算机软件及应用_IT/计算机_专业资料。实验报告 ...(3)使用 Telnet 的 NVT 字符集实现选项协商。 在发送数据(十六进制)窗口编辑...
telnet协议
Telnet协议的使用 3页 10财富值 TELNET协议原理及其实现 3页 免费 Telnet协议简介...用Sniffer Pro 捕捉 telnet 数据包——获取自己的密码: 首先我在定义过滤器中...
更多相关标签:
telnet原理及其实现 | telnet 协议实现 | http协议实现原理机制 | telnet协议 | telnet协议详解 | telnet是什么协议 | telnet 原理 | java实现telnet客户端 |