回覆列表
  • 1 # 喲喲吼說科技

    TCP連線分為長連線和短連線,在客戶端與伺服器端透過TCP協議三次握手機制建立連線,若為短連線,那麼在資料包傳送完之後就會自己斷開;若為長連線,那麼在資料包傳送完畢後,在一定時間內會保持連線,就是我們說的keepalive功能。

    下面喲喲來詳細介紹一下TCP是如何保持長連線的:

    1、應用層的心跳機制

    透過應用程式自身傳送心跳包去檢測連線是否正常,基本方法就是在伺服器端設定一個Timer事件,在一定時間段內向客戶端一個心跳資料包,若在一定時間內沒有收到客戶端的迴應,那麼就會認為客戶端掉線;同樣客戶端在一定時間段內沒有收到伺服器的心跳包,則判斷與伺服器端連線斷開。

    2、TCP的keepalive機制

    其實跟心跳機制大同小異,無論是客戶端還是伺服器端,只要有一方開啟Keepalive功能後,就會在特定的時間段內傳送心跳包,對端在收到心跳包後進行回覆,表示自己線上。預設的Keepalive超時時間為2小時,探測次數為5次,但超時時間可以手動設定成合理的時間段。

    TCP是如何識別不同請求的呢?

    當每個連線建立後,都會儲存唯一的套接字,其中包含對端的IP地址、埠號等資訊,這樣透過這個套接字就會識別出來各種不同的請求,就可以向指定的對端傳送資訊了。

  • 中秋節和大豐收的關聯?
  • 媽媽說睡覺前聽我唱兒歌?具體歌詞?