网络通信协议之TCP
Acknowledgement number 为4是因为,服务端接接收了客户端的2个字节的数据,在之前的客户端的Sequence number的基础上加了2。 服务端到客户端收到消息响应 从源端口20000,目的端口53262可以看出,下图表示服务端向客户端发送消息,发送的数据为'AB','AB'的ASCII码为0x4142。 服务端给客户端发送消息 从源端口53262,目的端口20000可以看出下图表示客户端向服务端反馈收到了消息。Acknowledgement number 为4是因为,客户端接收了服务端的2个字节的数据,在之前的服务端的Sequence number的基础上加了2。 客户端收到服务端消息后的响应 TCP断开连接四次挥手 TCP断开连接示意图如下: TCP断开连接示意图 对应的Python的客户端代码s.shutdown(2),客户端主动断开连接的。
响应的Wireshark抓包分析如下: TCP断开连接第一次挥手,从源端口53262到目的端口20000,可以看出是客户端主动断开连接的。Flags中的Fin是设置为1的,Sequence number为7。 TCP断开连接第一次挥手 TCP断开连接第二次挥手,从源端口20000到目的端口53262,可以看出是服务端给予客户端断开连接的响应。并且Acknowledge number对之前的客户端的Sequence number做了加1操作。 TCP断开连接第二次挥手 TCP断开连接第三次挥手,从源端口20000到目的端口53262,Flags中的Fin是设置为1的,可以看出是服务端向客户端发送断开连接的。Sequence number为7。 TCP断开连接第三次挥手 TCP断开连接第四次挥手,从源端口53262到目的端口20000,可以看出是客户端给予服务端断开连接的响应。并且Acknowledge number对之前的服务端的Sequence number做了加1操作。 TCP断开连接第四次挥手 下边,笔者贴出了IP和TCP首部及Wireshark捕获TCP请求过程的的图。有兴趣的读者可自行做简单分析。 TCP数据在IP数据报中的封装及TCP包首部 后来和昆哥一起交流,经过昆哥指正,上图的TCP首部已经更新过了,较新的TCP首部格式如下: TCP首部 下图为TCP首部中的控制位部分: 控制位 Control Flag TCP TCP (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |