最近要写一个专门针对华为交换机的Telnet客户端,所以得对Telnet协议有所理解和分析。
前言
传输单位:字节(8bit)。
为了解决异构环境,比如不同OS的通信,采用了NVT(Net Virtural Terminal)的机制。客户端把传输的数据转换成NVT格式在网络上传输,服务器接收到NVT格式的数据转换成可以识别的数据。
Telnet主要传输两部分内容:数据和命令。
数据部分每个字节以0开头的ASCII码。
命令部分以IAC(编码255 0xff interpret as command)开始,最高位是1
协商选项举例:
客户端 发送<IAC DO ECHO>
服务端 回应<IAC WILL ECHO>
包括三个部分,第一部分IAC表示命令行,第二部分协商选项DO(WILL WONT DONT),第三部分操作选项。
附录
1 telnet传输数据的状态
enum _state
{
state_data, //下一个状态为数据
state_code, //下一个状态为命令字
state_option //下一个状态为协商选项
};
2 telnet的命令字
#define NUL 0
#define BEL 7
#define BS 8
#define HT 9
#define LF 10
#define VT 11
#define FF 12
#define CR 13
#define SE 240
#define NOP 241
#define DM 242
#define BRK 243
#define IP 244
#define AO 245
#define AYT 246

本文介绍了Telnet协议的基础知识,包括传输单位、NVT机制、数据和命令的传输方式,以及选项协商的详细过程。通过具体的状态机和命令字定义,帮助读者理解协议的工作原理。此外,还给出了选项协商和终端类型子选项的示例。
最低0.47元/天 解锁文章
2922

被折叠的 条评论
为什么被折叠?



