没有合适的资源?快使用搜索试试~ 我知道了~
在TIME-WAIT状态下的TCP连接 收到SYN后会发生什么557-569
需积分: 0 0 下载量 99 浏览量
2023-05-15
09:42:09
上传
评论
收藏 998KB PDF 举报
温馨提示
试读
13页
在TIME-WAIT状态下的TCP连接 收到SYN后会发生什么557-569
资源推荐
资源详情
资源评论
4.11 在 TIME_WAIT 状态的 TCP 连接,收到 SYN 后会发
⽣什么?
⼤家好,我是⼩林。
周末跟朋友讨论了⼀些 TCP 的问题,在查阅《Linux 服务器⾼性能编程》这本书的时候,发
现书上写了这么⼀句话:
书上说,处于 TIME_WAIT 状态的连接,在收到相同四元组的 SYN 后,会回 RST 报⽂,对⽅
收到后就会断开连接。
书中作者只是提了这么⼀句话,没有给予源码或者抓包图的证据。
起初,我看到也觉得这个逻辑也挺符合常理的,但是当我⾃⼰去啃了 TCP 源码后,发现并不
是这样的。
所以,今天就来讨论下这个问题,「在 TCP 正常挥⼿过程中,处于 TIME_WAIT 状态的连
接,收到相同四元组的 SYN 后会发⽣什么?」
问题现象如下图,左边是服务端,右边是客户端:
先说结论
在跟⼤家分析 TCP 源码前,我先跟⼤家直接说下结论。
针对这个问题,关键是要看 SYN 的「序列号和时间戳」是否合法,因为处于 TIME_WAIT 状
态的连接收到 SYN 后,会判断 SYN 的「序列号和时间戳」是否合法,然后根据判断结果的
不同做不同的处理。
先跟⼤家说明下, 什么是「合法」的 SYN?
合法 SYN:客户端的 SYN 的「序列号」⽐服务端「期望下⼀个收到的序列号」要⼤,
并且 SYN 的「时间戳」⽐服务端「最后收到的报⽂的时间戳」要⼤。
⾮法 SYN:客户端的 SYN 的「序列号」⽐服务端「期望下⼀个收到的序列号」要⼩,
或者 SYN 的「时间戳」⽐服务端「最后收到的报⽂的时间戳」要⼩。
上⾯ SYN 合法判断是基于双⽅都开启了 TCP 时间戳机制的场景,如果双⽅都没有开启 TCP
时间戳机制,则 SYN 合法判断如下:
合法 SYN:客户端的 SYN 的「序列号」⽐服务端「期望下⼀个收到的序列号」要⼤。
⾮法 SYN:客户端的 SYN 的「序列号」⽐服务端「期望下⼀个收到的序列号」要⼩。
收到合法 SYN
如果处于 TIME_WAIT 状态的连接收到「合法的 SYN 」后,就会重⽤此四元组连接,跳过
2MSL ⽽转变为 SYN_RECV 状态,接着就能进⾏建⽴连接过程。
⽤下图作为例⼦,双⽅都启⽤了 TCP 时间戳机制,TSval 是发送报⽂时的时间戳:
剩余12页未读,继续阅读
资源评论
Wangzc_1116
- 粉丝: 42
- 资源: 79
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Q1.py
- 企业政府灵智电子政务网站系统-lingzhi.rar
- Thinkphp内核开发Lsky Pro兰空图床网站源码.rar
- 基于FPGA(XC6SLX9)+SDRAM+AD7829多通道数据采集板硬件(原理图+PCB)工程文件.zip
- 阿里巴巴精准测试体系:基于代码链路分析的性能优化方案
- mmexport1714217773503.jpg
- 【图片网盘外链系统5.0】全新前端UI界面设计 支持图片违规检测网站自适应H5源码.rar
- jsp+sql的BBS论坛系统.zip
- 网盘外链PHP开发彩虹网盘外链程序源码.rar
- 2023年最新文件快递柜系统网站源码 保护用户隐私的匿名口令分享和临时文件分享功能.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功