Telnet支持多种命令,这些命令用于控制客户端与服务器的交互过程及相关细节,这些命令作为数据的一部分在两者之间传输。
几乎全部Telnet命令都至少由2B组成,第一个字节0xFF(十进制的255)称为IAC(Interpret As Command,作为命令来解释),它是一个转义字符,表示该字符后面的字节才是命令代码。第二个字节包含了将要执行命令的代码。见表8-7。
表8-7 常用的Telnet命令
说明:(www.xing528.com)
1)Telnet命令格式:IAC<命令代码>。
例如,要删除误输入的字符,用户通常会使用退格键,为表示用户按下退格键,客户端需要发送2B的命令序列“IAC EC”到服务器,其中EC表示删除前一个字符。
2)只有跟在转义字符IAC的后面,表8-7中的命令代码才有意义,否则将视为数据而非命令。如数据中包含取值为255的字节,为避免将其后字节错误地解释为命令,必须接连发送两个取值为255的字节。
3)关于DM(Data Mark,数据标记)。考虑这样一种情况:由于本地用户的误操作,导致远程主机上的程序出现问题,停止读取用户输入的信息,那么接收到的数据最终会填满TCP连接的缓冲区,使服务器通告接收窗口的大小为零,以阻止数据流进此连接,这时客户端不能再发送任何数据分组,当然也无法通过发送IP命令来终止服务器程序,这表明本地用户将失去对远程主机的控制。为解决这个问题,Telnet协议必须使用外带信令以强制服务器读取一个控制命令。TCP采用紧急数据机制(Urgent位)实现外带信令,Telnet只要发送一个包含数据标记的命令,并设置紧急数据位的TCP报文到服务器即可。携带紧急数据的报文段将绕过流量控制直接到达服务器。作为对紧急命令的响应,服务器将对数据流进行扫描,查找IP命令并进行处理,其他数据将被抛弃,这样就可终止崩溃的服务器程序。当服务器发现DM命令后,将返回正常的处理过程。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。