2017-08-11 75 views
0

考慮一個服務器和多個客戶端的情況。每個客戶端都創建TCP連接以與服務器進行交互。 TCP有三種使用方式:TCP Keepalive的典型用法是什麼?

  1. 服務器端保持活動:服務器發送TCP保持活動以確保客戶端處於活動狀態。如果客戶端死了,服務器關閉到客戶端的TCP連接。
  2. 客戶端保持活動:客戶端發送TCP keepalive以防止服務器關閉到客戶端的TCP連接。
  3. 兩側存活:如第1和2所述

TCP存活的上述用途的哪些是典型服務器和客戶端發送TCP存活?

回答

1

服務器端保活:服務器發送TCP保持連接以確保客戶端處於活動狀態。如果客戶端死了,服務器關閉到客戶端的TCP連接。

如果客戶是死的,服務器得到一個「連接重置」的錯誤,後,它應該關閉連接。

客戶端保持活動:客戶端發送TCP保持活動以防止服務器關閉到客戶端的TCP連接。

不可以。客戶端發送keepalive,這樣如果服務器死了,客戶端會收到'連接重置'錯誤,之後應該關閉連接。

兩側存活

雙方能夠得到一個「連接復位」由於存活失敗的,如上所述。

以上這些用法是典型的嗎?

其中任何一個,或沒有。如果一個對等方經常發送,它並不需要keepalive。因此,服務器通常比客戶更有用。

+0

@EJB通過說「因此服務器通常比客戶端更有用」,您的意思是服務器發送keepalive的用法更典型嗎? –

+0

我不知道你會如何衡量,但似乎很可能。例如,Telnet服務器使用它是標準的。 – EJP

相關問題