回覆列表
  • 1 # 使用者3532686847364

    1 什麼是長連線和短連線

    三次握手和四次揮手

    TCP區別於UDP最重要的特點是TCP必須建立在可靠的連線之上,連線的建立和釋放就是握手和揮手的過程。

    三次握手為連線的建立過程,握手失敗則連線建立失敗。

    四次揮手為連線的完整釋放過程,也會發生某個訊息丟失或者超時的情況,有一方主動傳送FIN訊息即表示連線即將釋放。

    注:SYN、ACK、FIN訊息具有哪些含義,以及連線的狀態,請參考《TCP/IP詳解 卷1》第18章。

    長連線

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

    短連線

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

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

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

    1、凡是在一次完整的訊息互動(發請求-收響應)之後,立刻斷開連線(有一方傳送FIN訊息)的情況都稱為短連線;

    2、長連線的一個明顯特徵是會有心跳訊息(也有沒有心跳的情況),且一般心跳間隔都在30S或者1MIN左右,用wireshark抓包可以看到有規律的心跳訊息互動(可能會存在毫秒級別的誤差)。

    3 什麼時候用長連線,短連線?

    2、維持長連線會有一定的系統開銷,使用者量少不容易看出系統瓶頸,一旦使用者量上去了,就很有可能把伺服器資源(記憶體/CPU/網絡卡)耗盡,所以使用需謹慎。

  • 中秋節和大豐收的關聯?
  • 眼蟲的細胞結構有什麼?