TIME_WAIT,IOCP的一个情况不理解
时间: 2019-05-13来源:博客园
前景提要
TIME_WAIT,IOCP的一个情况不理解
0 悬赏园豆: 100 [待解决问题] 我的服务器和客户端都是在本机,添加了路由因此通信通过了网卡
服务器是接受客户端通信后马上返回一条18字节大小的确认信息。
在大量的通信,单机每秒2万左右,运行一段时间会出现因为大量的TIME_WAIT而阻塞的情况。
我想问的是:
我在自己的测试中,wsasend过程中使用的wsabuf.len设置的比实际要传递的信息字节数大,这种时候,居然没有出现TIME_WAIT卡死的情况(出现了少量的TIME_WAIT)
抓包分析没觉得有什么特殊的问题:
两种情况(wsabuf.len正确和过大)都是服务器端首先关闭连接,都是发出[PSH,ACK]之后,马上发[FIN,ACK]数据报
我实在是想不明白为什么会出现这种问题?
PS:
这么说不太礼貌,但是我不是想要解决因为大量TIME_WAIT阻塞的问题,而是因为这个问题发现了一个现象我不理解。谢谢各位。
PPS:
服务端使用的是IOCP进行通信,客户端是阻塞+线程池的方式 网络通信 珍惜-敬畏-努力 | 初学一级 | 园豆: 102
提问于:2019-05-13 16:55 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(1) 0 既然客户端和服务器都在本机,那么出现的TIME_WAIT的确认都是服务端吗?服务端通常来说不会主动去发送FIN去短开连接的。是不是客户端发送了什么信息主动要求服务端断开连接的,类似http中的connecttion:close指令。 blackheart | 园豆:3417 (老鸟四级) | 2019-05-14 12:18 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行