2016-05-21 49 views
0

我一直在閱讀關於TCP_FASTOPEN在Linux中,我不知道什麼是cookie保存。TCP_FASTOPEN Cookie是保存每個?

如果我的Linux服務器上的一個程序使用tcp快速開啓連接,則連接到同一服務器的其他程序是否使用以前的快速開啓的cookie?

或者只有來自同一程序的套接字才能使用彼此的cookie?

回答

0

幾年前,TCP_FASTOPEN(TFO)的概念被引入作爲解決方案,以提高TCP連接的性能,從而減少握手過程的一次往返。實現TFO的第一個操作系統是Linux,並且在通用網絡中使用時已經得到了很好的改進。

在Linux內核中的實現已經由部分內容做出,分別是Linux Kernel 3.6.1,第一個實現客戶端需求,然後是實現服務器端套接字行爲的Linux Kernel 3.7。

當使用TCP_FASTOPEN時,其行爲有點不同。您不再需要使用connect(2),而是使用sendto(2),它還使您有機會讓內核緩衝一些初始傳出數據。對於短的呼叫SENDTO(2)其像一個隱式連接(2)和發送/寫(2)同一時間

有關詳細信息http://edsiper.linuxchile.cl/blog/2013/02/21/linux-tcp-fastopen-in-your-sockets/

EDIT

快速打開的Cookie是旨在緩解新的安全漏洞,以便在握手期間實現數據交換。 Cookie是服務器生成的MAC標籤,對客戶端不透明;客戶端只需緩存cookie並將其傳遞迴後續的SYN數據包以打開新的連接。服務器可以隨時過期以提高安全性。它在應用程序關閉時不會死亡,因爲它存儲在系統內存中

+0

我知道所有這一切。謝謝。但我仍然沒有回答我的問題。不同的程序使用同一個cookie嗎?或者在同一個程序中只有不同的套接字? –

+0

Fast Open Cookie旨在緩解新的安全漏洞,以便在握手期間啓用數據交換。 Cookie是服務器生成的MAC標籤,對客戶端不透明;客戶端只需緩存cookie並將其傳遞迴後續的SYN數據包以打開新的連接。服務器可以隨時過期以提高安全性。它不會在應用程序關閉時死亡,因爲它存儲在系統內存中 – piyushj

+0

@MarkoKevac添加評論....很抱歉忘了提及你 – piyushj