
文章插图
在这里插入图片描述
客户端发送的第一次挥手的序列号和确认号分别设置为:
- 序列号设置为 client_isn + 11 。客户端上一次发送的报文是 [PSH, ACK],该报文的 seq = client_isn + 1, len = 10,根据公式 1(_序列号 = 上一次发送的序列号 + len_),可以得出当前的序列号为 client_isn + 11 。
- 确认号设置为 server_isn + 1 。客户端上一次收到的报文是服务端发来的 ACK 报文,该报文的 seq = server_isn + 1,是单纯的 ACK 报文,不携带用户数据,所以 len 为 0 。那么根据公式 2(确认号 = 上一次收到的序列号 + len),可以得出当前的确认号为 server_isn + 1 + 0 (len = 0),也就是 server_isn + 1 。
- 序列号设置为 server_isn + 1 。服务端上一次发送的报文是 ACK 报文,该报文的 seq = server_isn + 1,而该报文是单纯的 ACK 报文,不携带用户数据,所以 len 为 0,根据公式 1(_序列号 = 上一次发送的序列号 + len_),可以得出当前的序列号为 server_isn + 1 + 0 (len = 0),也就是 server_isn + 1 。
- 确认号设置为 client_isn + 12 。服务端上一次收到的报文是客户端发来的 FIN 报文,该报文的 seq = client_isn + 11,根据公式 2(_确认号= _上一次_收到的序列号 + len,特殊情况,如果收到报文是 SYN 报文或者 FIN 报文,则改为 + 1_),可以得出当前的确认号为 client_isn + 11 + 1,也就是 client_isn + 12 。
- 序列号设置为 server_isn + 1 。
- 确认号设置为 client_isn + 12 。
- 序列号设置为 client_isn + 12 。客户端上一次发送的报文是 FIN 报文,该报文的 seq = client_isn + 11,根据公式 1(_序列号 = 上一次发送的序列号 + len 。特殊情况,如果收到报文是 SYN 报文或者 FIN 报文,则改为 + 1_),可以得出当前的序列号为 client_isn + 11 + 1,也就是 client_isn + 12 。
- 确认号设置为 server_isn + 2 。客户端上一次收到的报文是服务端发来的 FIN 报文,该报文的 seq = server_isn + 1,根据公式 2(_确认号 = _上一次_收到的序列号 + len,特殊情况,如果收到报文是 SYN 报文或者 FIN 报文,则改为 + 1_),可以得出当前的确认号为 server_isn + 1 + 1,也就是 server_isn + 2 。

文章插图
在这里插入图片描述
套入我的万能公式,发送的 TCP 报文:
- 公式一:序列号 = 上一次发送的序列号 + len(数据长度) 。特殊情况,如果上一次发送的报文是 SYN 报文或者 FIN 报文,则改为 上一次发送的序列号 + 1 。
- 公式二:确认号 = 上一次收到的报文中的序列号 + len(数据长度) 。特殊情况,如果收到的是 SYN 报文或者 FIN 报文,则改为上一次收到的报文中的序列号 + 1 。
怎么样,学废了吗,溜啦溜啦!
更多网络文章网络基础篇
- TCP/IP 网络模型有哪几层?
- 键入网址到网页显示,期间发生了什么?
- Linux 系统是如何收发网络包的?
- HTTP 常见面试题
- HTTP/1.1如何优化?
- HTTPS RSA 握手解析
- HTTPS ECDHE 握手解析
- HTTPS 如何优化?
经验总结扩展阅读
- 二 SpringCloud - Eureka注册中心,feign远程调用,hystrix降级和熔断
- 其三 Gitea 1.18 功能前瞻:增强文本预览效果、继续扩展软件包注册中心、增强工单实用功能、完善了用户邀请机制和SEO
- 92猴男和96鼠女哪年结婚最好
- 自然共和国芦荟胶成分有什么?
- 自然乐园和自然共和国是一个牌子吗?
- 华为watch3pro尊享版和时尚版区别_哪款更值得入买
- 雅萌ace和max的区别_雅萌ace和max的参数
- 真我q3和q3s有什么区别_真我q3和q3s参数对比
- 属兔2023年有什么讲究和禁忌
- 和哪些星座恋爱注定虐心虐神虐身