社区
Linux/Unix社区
帖子详情
linux下客户端与服务器建立连接时,发送SYN报文并收到对方SYN,ACK报文后,客户端发送RST报文,这是是什么原因导致的啊?
LGuitars
2014-04-16 09:16:44
如题,抓包信息如下:
...全文
3105
3
打赏
收藏
linux下客户端与服务器建立连接时,发送SYN报文并收到对方SYN,ACK报文后,客户端发送RST报文,这是是什么原因导致的啊?
如题,抓包信息如下:
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hw7be
2014-04-17
打赏
举报
回复
如果客户端socket设置为非阻塞模式(O_NONBLOCK),且超时时间小于收到服务器SYN-ACK的时延,客户端可能判断连接超时而重启连接。
inurlcn
2014-04-17
打赏
举报
回复
客户端主动发的RST , 不知道那块出了问题
qq120848369
2014-04-16
打赏
举报
回复
没听懂,是服务端返RST吧,服务端负载重会有策略返RST的。
关于ubuntu系统作为TCP
客户端
建立
三次握手
时
,
收到
服务器
发送
的
SYN
/
ACK
报文
时
,自动回复
RST
报文
中断握手问题。
关于ubuntu系统作为TCP
客户端
建立
三次握手
时
,
收到
服务器
发送
的
SYN
/
ACK
报文
时
,自动回复
RST
报文
中断握手问题。
为什么在 TCP 三次握手过程中,如果
客户端
收到
的
SYN
-
ACK
报文
的确认号不符合预期的话,为什么是回
RST
,而不是丢弃呢?
当处于
SYN
_SENT 状态
连接
的
客户端
,在
收到
不符合期望的
SYN
-
ACK
报文
时
,就直接
RST
给服务端,干掉服务端的旧
连接
,这样
客户端
的新
连接
才能快速
建立
。
发送
RST
报文
的几种可能的情况
(1)TCP在建链过程中
收到
异常
报文
时
,会
发送
RST
报文
: 如在Listen状态
时
收到
的
SYN
报文
中有
ACK
标记,
SYN
_SEND状态
时
收到
SYN
|
ACK
报文
中
ACK
序号不对,etc (2)TCP在建链
时
,发出
SYN
报文
之后,60秒之内都没有
收到
对端的相应
报文
,会
发送
RST
报文
。 (3)TCP
报文
在连续重传12次之后,都没有
收到
对端相应
报文
时
,会
发送
RST
报文
。 (4)KeepAlive
报文
在连续
发送
5次之后,都没有
收到
对端的KeeAliveReply
报文
时
,会
发送
RST
报文
。 (5)当socket设置了L
RST
报文
以及产生场景
RST
:(Resetthe connection)用于复位因某种
原因
引起出现的错误
连接
,也用来拒绝非法数据和请求。如果接
收到
RST
位
时
候,通常发生了某些错误; 目的地为某端口的
SYN
到达,然而该端口上没有正在监听的
服务器
;
客户端
发起三次握手,
发送
完第一个
SYN
分节之后,
收到
来自
服务器
的
RST
分节(个人理解,分节就是
报文
段?)。
RST
分节的内容:如果
收到
的是
ACK
报文
,
RST
取
ACK
报文
的
ACK
序列号为
RST
报文
的SEQ;如果
报文
不是
ACK
报文
,
RST
的SEQ为0且
ACK
字段为
收到
的
报文
SEQ+
报文
.
已
建立
连接
的TCP,
收到
SYN
会发生什么?
大家好,我是小林。 昨晚有位读者问了我这么个问题: 大概意思是,一个已经
建立
的 TCP
连接
,
客户端
中途宕机了,而服务端此
时
也没有数据要
发送
,一直处于 establish 状态,
客户端
恢复后,向服务端
建立
连接
,此
时
服务端会怎么处理? 看过我的图解网络的读者都知道,TCP
连接
是由「四元组」唯一确认的。 然后这个场景中,
客户端
的IP、服务端IP、目的端口并没有变化,所以这个问题关键要看
客户端
发送
的
SYN
报文
中的源端口是否和上一次
连接
的源端口相同。 1.
客户端
的
SYN
报文
里的端口号与历史
连接
不相同
Linux/Unix社区
23,120
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章