TCP/IP系列——长链接与短链接的区别

1 什么是长链接和短链接

 
 

 

三次握手和四次挥手

 
TCP区别于UDP最重要的特色是TCP必须创建在可靠的链接之上,链接的创建和释放就是握手和挥手的过程。
三次握手为链接的创建过程,握手失败则链接创建失败。
四次挥手为链接的 完整释放过程,也会发生某个消息丢失或者超时的状况,有一方主动发送 FIN消息即表示链接即将释放。
注: SYN、ACK、FIN消息具备哪些含义,以及链接的状态,请参考《TCP/IP详解 卷1》第18章。
 

长链接

 
长链接,也叫持久链接,在TCP层握手成功后, 不当即断开链接,并在此链接的基础上进行屡次消息(包括心跳)交互,直至链接的任意一方(客户端OR服务端)主动断开链接,此过程称为一次完整的长链接。HTTP 1.1相对于1.0最重要的新特性就是引入了长链接。
 

短链接

 
短链接,顾名思义,与长链接的区别就是,客户端收到服务端的响应后, 马上发送FIN消息,主动释放链接。也有服务端主动断连的状况,凡是在一次消息交互(发请求-收响应)以后马上断开链接的状况都称为短链接。
注:短链接是创建在TCP协议上的,有完整的握手挥手流程,区别于UDP协议。
 

2 如何快速区分当前链接使用的是长链接仍是短链接

 
一、 凡是在一次完整的消息交互(发请求-收响应)以后,马上断开链接(有一方发送FIN消息)的状况都称为短链接
二、长链接的一个明显特征是会有心跳消息(也有没有心跳的状况),且通常心跳间隔都在30S或者1MIN左右,用wireshark抓包能够看到有规律的心跳消息交互(可能会存在毫秒级别的偏差)。
 

3 何时用长链接,短链接?

 
一、须要 频繁交互的场景使用长链接,如即时通讯工具(微信/QQ,QQ也有UDP),相反则使用短链接,好比普通的web网站,只有当浏览器发起请求时才会创建链接,服务器返回相应后,链接当即断开。
二、 维持长链接会有必定的系统开销,用户量少不容易看出系统瓶颈,一旦用户量上去了,就颇有可能把服务器资源(内存/CPU/网卡)耗尽,因此使用需谨慎。
 
 
转载:
http://jgsj.iteye.com/blog/2050436
相关文章
相关标签/搜索