1, 如果服务端的Socket比客户端的Socket先关闭,会导致客户端出现TIME_WAIT状态,占用系统资源。所以,必须等客户端先关闭Socket后,服务器端再关闭Socket才能避免TIME_WAIT状态的出现。2, 在linux下写socket的程序的时候,如果尝试send到一个discon...
分类:
其他好文 时间:
2014-09-17 02:18:41
阅读次数:
226
长连接与短连接所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。比如http的,只是连...
分类:
其他好文 时间:
2014-09-16 21:53:01
阅读次数:
216
继上次解决完mysql连接过多,导致的TIME_WAIT进程过多问题之后,最近这个现象再一次出现,并且依然和之前一样严重。只不过这次出现问题的mysql 服务跟上次不一样,上一次主要是mysql master server,而这一次是mysql slave server。所以这意味着,我们上次解.....
分类:
其他好文 时间:
2014-09-05 19:56:03
阅读次数:
301
1. 实际问题
初步查看发现,无法对外新建TCP连接时,线上服务器存在大量处于TIME_WAIT状态的TCP连接(最多的一次为单机10w+,其中引起报警的那个模块产生的TIME_WAIT约2w),导致其无法跟下游模块建立新TCP连接。
TIME_WAIT涉及到TCP释放连接过程中的状态迁移,也涉及到具体的socket api对TCP状态的影响,下面开始逐步介绍这...
分类:
其他好文 时间:
2014-09-01 21:13:53
阅读次数:
9542
1)Socket通信相当于两个人通过电话联系,Http协议相当于电话联系时所使用的中文2)Http1.1前均为短连接,1.1版本为长连接,即服务器接收一次请求并发送响应后会等待一段时间看浏览器是否在这段时间内获取新连接。3).net服务器本质上是一个客户端和服务器各自socket进行通信的机制(图片...
分类:
Web程序 时间:
2014-09-01 19:14:13
阅读次数:
202
这里指讨论基于HTTP的推技术, 诸如flash,applet之类的东西不作分析, 他们就不能说是"纯粹"的浏览器应用了.首先是一点背景知识, 大家都知道长连接避免了tcp连接的反复建立,能够节省大量资源. 但HTTP天生就是短连接的pull式服务, 这不能说是个缺点, 只是对某些实时性服务而言有点...
分类:
其他好文 时间:
2014-08-29 13:00:37
阅读次数:
259
什么是长连接?其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。通常的短连接操作步骤是:连接-》数据传输-》关闭连接;而长连接通常就是:连接-》数据传输-》保持连接-》数据传输-》保持连接-》…………-》关闭连接;这就要求长连接在没有数据通信时,定时发送数据包,以维持连...
分类:
数据库 时间:
2014-08-17 11:33:32
阅读次数:
250
1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要...
分类:
其他好文 时间:
2014-08-15 13:03:09
阅读次数:
166
以下来结论自tcpcopy & gryphon讨论群经过试验测试得出,与网上较多介绍有些不同,不保证肯定正确。经过压力测试试验,至少在我机器上面,得出如下结论:1)reuse这个参数毫无用途(timestamp开启的情况下),有它没它一个样2)recycle确实影响比较大(timestamp开启的情...
分类:
其他好文 时间:
2014-08-11 21:03:02
阅读次数:
179
我們公司所代管的網站裡,有幾個流量是非常大的,在尖峰的時刻同時上線人數可能高達數千到數萬人,而在這個時候如果使用netstat或TCPView查看所有 TCP 連線時就會看到非常多處於TIME_WAIT狀態的連線,平時就會多達數千條TIME_WAIT連線之多,尖峰的時候還有一萬多條TIME_WA.....