Telnet协议分析

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

最近要写一个专门针对华为交换机的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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值