社区
网络及通讯开发
帖子详情
客户端断开链接之后,再主动连接服务端,但是三次握手之后接着就是四次挥手,导致客户端无法发送数据,这是怎么回事?
fywindy
2013-12-27 10:56:21
客户端断开链接之后,再主动连接服务端,但是三次握手之后接着就是四次挥手,导致客户端无法发送数据,这是怎么回事?
...全文
178
2
打赏
收藏
客户端断开链接之后,再主动连接服务端,但是三次握手之后接着就是四次挥手,导致客户端无法发送数据,这是怎么回事?
客户端断开链接之后,再主动连接服务端,但是三次握手之后接着就是四次挥手,导致客户端无法发送数据,这是怎么回事?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fywindy
2014-01-16
打赏
举报
回复
引用 1 楼 Yans 的回复:
用控件可以实现
太对了
「已注销」
2014-01-16
打赏
举报
回复
用控件可以实现
前端大厂最新面试题-handshakes_waves.docx
前端大厂最新面试题-handshakes_waves.docx
tcpip4次握手形象版
tcpip4次握手 形象说明了4次握手协议
TCP的
三次握手
和四次
断开
第四次
断开
时,
客户端
会向
服务端
发送包并进入超时等待状态经过超时时间后会关闭
连接
,而
服务端
会立即关闭。Tcp的四次
断开
是
客户端
与
服务端
断开
连接
。TCP的
三次握手
是为了确认
客户端
与
服务端
进入
连接
状态,
客户端
与
服务端
建立
连接
(请求三次)。第二次握手时,
服务端
在收到
客户端
发送来的syn包后,发送syn ack包表示确认请求;第二次
断开
时
服务端
会向
客户端
发送ack包,表示自己进入关闭等待状态。第一次
断开
时
客户端
会向
服务端
发送一个fin包并进入等待状态。第三次
断开
时
服务端
会向
客户端
发送fin包进入最后确认状态。
三次握手
,
四次挥手
,为什么是
三次握手
四次挥手
三次握手
,
四次挥手
,为什么是
三次握手
四次挥手
四次挥手
TCP的
连接
的拆除需要发送四个包,因此称为
四次挥手
。
客户端
或服务器均可
主动
发起挥手动作。 由于TCP
连接
时全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成他的数据发送任务后就能发送一个FIN来终止这个方向的
连接
。收到一个FIN只意味着这一方向上没有数据流动,一个TCP
连接
在收到一个FIN后仍能
发送数据
。首先进行关闭的一方将执行
主动
关闭,而另一方执行被动关闭。
这是
因为
服务端
的LISTEN状态下的socket当收到.
TCP
四次挥手
断开
连接
四次挥手
的流程 1、
主动
关闭方发送FIN
连接
释放报文段
客户端
调用 close 方法,告诉服务器自己要
主动
关闭
连接
,会发送一个 FIN 报文给
服务端
,
客户端
进入FIN-WAIT-1状态。 2、被动关闭方发送对FIN的ACK普通确认报文段 由于此时服务器数据很可能还没有发完,需要继续向
客户端
发送未完成的数据,又不能让
客户端
等太久,所以先向
客户端
发送ACK 确认报文段,
服务端
进入 CLOSE_WAIT,
客户端
收到ACK
之后
进入FIN-WAIT-2状态。 3、被动关闭方发送FIN
连接
释放报文段 当服务器数据发送完
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章