TCP---長連接與短連接的區別


1、什么是長連接和短連接

長連接

長連接,也叫持久連接,在TCP層握手成功后,不立即斷開連接,並在此連接的基礎上進行多次消息(包括心跳)交互,直至連接的任意一方(客戶端OR服務端)主動斷開連接,此過程稱為一次完整的長連接。HTTP 1.1相對於1.0最重要的新特性就是引入了長連接。

短連接

 

短連接,顧名思義,與長連接的區別就是,客戶端收到服務端的響應后, 立刻發送FIN消息,主動釋放連接。也有服務端主動斷連的情況,凡是在一次消息交互(發請求-收響應)之后立刻斷開連接的情況都稱為短連接。

 

注:短連接是建立在TCP協議上的,有完整的握手揮手流程,區別於UDP協議。

 

 

2、如何快速區分當前連接使用的是長連接還是短連接

1. 凡是在一次完整的消息交互(發請求-收響應)之后,立刻斷開連接(有一方發送FIN消息)的情況都稱為短連接
2.長連接的一個明顯特征是會有心跳消息(也有沒有心跳的情況),且一般心跳間隔都在30S或者1MIN左右,用wireshark抓包可以看到有規律的心跳消息交互(可能會存在毫秒級別的誤差)。
 

3、什么時候用長連接,短連接?

1、需要 頻繁交互的場景使用長連接,如即時通信工具(微信/QQ,QQ也有UDP),相反則使用短連接,比如普通的web網站,只有當瀏覽器發起請求時才會建立連接,服務器返回相應后,連接立即斷開。
2、 維持長連接會有一定的系統開銷,用戶量少不容易看出系統瓶頸,一旦用戶量上去了,就很有可能把服務器資源(內存/CPU/網卡)耗盡,所以使用需謹慎。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM