首页 > 编程笔记 > TCP/IP笔记 阅读:114

行模式下的Telnet协议包

在使用 Telnet 服务时,Telnet 提供了选项的交互和协商功能。由于交互方式不同,Telnet 有两种工作模式,分别为透明模式和行模式。

下面首先讲解行模式下的协议包。

行模式是指每输入一行信息并按回车键换行时,再将这行信息发送给服务器。在该模式下,服务器不会进行回显。

【实例】仍然以 Telnet 服务(192.168.59.135),用户名为 sm,密码为 123 为例。

1) 客户端连接服务器的 Telnet 协议包,如图所示。


2) 客户端向服务器发送的选项协商数据包,如图所示。

其中,第 9 个数据包为客户端向服务器发送的选项协商数据包。在 Telnet 部分中,Don't 为命令,Echo 为子命令,表示客户端要求服务器禁止回显。第 10 个数据包为服务段的确认数据包。

3) 客户端再次发送的选项协商数据包,如图所示。

在第 11 个数据包的 Telnet 部分中,Don't 为命令,Suppress Go Ahead 为子命令,表示要服务器抑制 Go Ahead 选项,禁止回显。

4) 服务器向客户端发送的选项协商数据包,如图所示。

其中,第 12 个数据包为服务器向客户端发送的选项协商数据包。在 Telnet 部分中,Will 为命令,Echo 为子命令,表示服务器希望客户端进行回显。第 13 个数据包为客户端的确认数据包。

5) 服务器再次发送的选项协商数据包,如图所示。

在第 14 个数据包的 Telnet 部分中可以看到,服务器希望客户端进行回显,并激活 Suppress Go Ahead 选项。第 15 个数据包为客户端的确认数据包。

6) 选项协商完成以后,服务器向客户端显示欢迎和要求用户名登录的信息,如图所示。

其中,第 23 个数据包的 Telnet 部分中可以看到,数据是服务器的欢迎信息,并希望客户端输入登录的用户名。第 24 个数据包为客户端的确认数据包。

7) 客户端输入登录的用户名数据包,如图所示。

在该数据包的 Telnet 部分中可以看到,数据信息为 sm\r\n,表示客户端已经输入了全部的用户名,并按了回车键和换行。这里 sm 为用户名。和透明模式不同的是,行模式不是每输入一个字符就发送给服务器,而是将每行的信息一次性发送给服务器。

8) 客户端完成输入用户名以后,服务器不会进行回显,而是向客户端发送要求输入密码的信息,如图所示。

其中,第 27 个数据包的 Telnet 部分数据信息表示服务器要求客户端输入登录的密码。第 28 个数据包为客户端的确认数据包。

9) 客户端输入密码,对应的数据包如图所示。

从该数据包的 Telnet 部分可以看到,数据信息为 123\r\n,表示客户端已经输入了全部的密码,密码为 123,将整个信息一次性发送给服务器。

10) 成功输入用户名和密码后,客户端将登录服务器。服务器首先向客户端显示说明信息,如图所示。

第 33 个数据包 Telnet 部分显示了大量的说明信息。例如,客户端可以输入一个命令,并给出命令实例。第 34 个数据包为客户端的确认数据包。

11) 服务器向客户端发送完说明信息后,将为客户端提供会话模式。客户端就可以在该模式下输入要执行的命令,如图所示。

其中,第 35 个数据包 Telnet 部分的数据信息为 $,表示客户端可以在此处输入要执行的命令。第 36 个数据包为客户端的确认数据包。

12) 客户端输入要执行的命令,这里输入查询服务器网络配置信息的命令,如图所示。

第 47 个数据包 Telnet 部分的数据信息为 /sbin/ifconfig\r\n,表示客户端已经输入了全部的命令。该命令被一次性发送给服务器。

13) 客户端完成输入的命令后,服务器向客户端返回命令的执行结果,如图所示。

其中,第 48 个数据包 Telnet 部分显示了服务器的网络配置信息。第 49 个数据包为客户端的确认数据包。

14) 服务器成功向客户端返回命令的执行结果后,再次进入会话模式,等待客户端下一个命令,如图所示。

其中,第 50 个数据包的 Telnet 部分的数据信息为 $,表示服务器再次回到会话模式。第 51 个数据包为客户端的确认数据包。

15) 如果客户端将不再执行命令,将向服务器请求断开连接。对应的数据包如图所示。

其中,第 53 个数据包是客户端向服务器发送的请求断开连接的 TCP[FIN,ACK] 数据包;第 54 个数据包为服务器进行断开连接的 TCP[FIN,ACK] 数据包;第 55 个数据包为客户端的确认。

编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注

所有教程

优秀文章