第二个 TCP数据包 , 它是一个来自虚拟机的应答 , 按照三次握手的原则 , 这个数据包中 TCP报文确认序号应该等于上一个请求包中的同步序号 +1
Pack1. Seq = 0xa1 21 e2 42 Ack = 0x00 00 00 00
Pack2. Seq = 0x97 0f 37 11 Ack = 0xa1 21 e2 43
显然如 TCP规定的那样工作 . Flags 字段中也显示出两个包的标志位 . 第一个是SYN,第二个是 SYN,ACK.
那么显然第三个包应该这样工作 :
Pack1. Seq = 0xa1 21 e2 42 [Ack = 0x00 00 00 00]
Pack2. Seq = 0x97 0f 37 11 Ack = 0xa1 21 e2 43
Pack3. [Seq = 0xa1 21 e2 43] Ack = 0x97 0f 37 12
主机收到 Pack2, 取出其中 Seq+1赋给 Ack, 然后给虚拟机做出应答 .
总之,建立连接的步骤如下:
1.TCP连接的建立通过三次握手完成 .
2.TCP连接建立从传输层出发 ,TCP报文包装一个 IP 报头后形成一个 IPv4 报文经过网络层 , 然后再包装一个以太网帧头形成一个 Ethernet 帧通过数据链路层 .
3. 传输层的 TCP报文含有 Port 端口地址 ; 网络层的 IP 报文中含有 IP 地址 ; 数据链路层中 Ethernet 帧含有 MAC地址 . 可见层层地址的不同之处 , 以及服务对象的不同之处 .
4. 三次握手规则 .
2、身份确认
TCP连接建立后 , 主机和虚拟机相互交换一些信息 , 包括服务端的配置信息 , 主机的应答 , 是否需要登录等等 , 并且间断使用 TCP包保持连接 .
当双方信息得到确认后 , 虚拟机发送欢迎信息 (Welcome to Microsoft Telnet Service rn), 主机做出应答 , 随后又发送 (nrlogin:), 主机做出应答 , 然后同步一次 , 主机在 CMD发生中断 , 接收用户输入 , 虚拟机等待用户输入 .
文章插图
主机输入一个字符就发送一个 Telnet 报文 , 然后远程返回一个应答 , 之后主机发送一个 TCP报文 .
三个一组 :Telnet Telnet TCP
文章插图
当然最后还有一个回车符 rn 也要产生三个数据包 . 回车符发送之后 , 远端立即回送一个 nrpassword: 要求输入密码 .
文章插图
密码输入过程略有不同 , 一个字符产生两个包 , 一个是 Telnet, 一个是 TCP.密码明文传输 .
文章插图
3、命令执行和响应
完成密码输入后 , 服务端验证成功后发送一个 Telnet 报文询问是否Do Terminal Type 开始执行命令行 , 主机客户端回应 Will Terminal Type, 将要执行 , 然后双方发送 Suboption End 消息 , 之后服务端放送欢迎消息 , 如图 :
文章插图
那么之后就可以开始输入命令了 , 我输入的是 net userrn
文章插图
和之前输入用户名的传输方法基本一样 . 两个 Telnet 一个 TCP同步 .
完成输入后回车 , 服务端执行命令并作出回应 :
文章插图
可以看到 Administrator Guest HelpAssistant 等字样 , 说明正确返回了执行结果 。关闭CMD窗口时 , 产生了4个TCP包 , 第一个 TCP包设置标志位 FIN告知本次通信结束 , 服务端回应一个TCP,表示做好准备关闭连接 , 随后又发送一个TCP包设置 FIN 告知客户端要准备断开连接并断开 , 客户端应答一个表示已断开 . 通信结束 .
文章插图
这是关闭 TCP连接的过程 .
总结
Telnet 服务是建立在 TCP基础之上的 , 保证数据的准确性 。
文章插图
从概念系列全球业务的最佳互联网概念 。
- 分析其PS会员平均价值
- WiDi是什么 WI是哪里
- 【游戏世界】S组晋级形势分析:狼队大概率躺进胜者组,WE、TTG只剩理论可能!
- 【游戏迷】《炉石传说》新版本巨型随从出场率分析
- 魂玉使用分析 魂玉怎么用
- 女生左脚底有痣位置图解分析
- 【游戏世界】KPL|2022年春季赛|4.15赛讯及S组积分分析
- 饥荒怪物分析之蜜蜂 饥荒海难蜜蜂
- 生肖鼠女命2018年性格分析,不同年份出生的属鼠人女命性格解析
- 苹果销量全球第一 苹果重夺销量全球第一