TCP_FASTOPEN cookie是按什么保存的?

时间:2016-05-21 16:56:02

标签: linux tcp network-programming

我一直在阅读Linux中的TCP_FASTOPEN,但我无法弄清楚cookie的保存情况。

如果我的Linux服务器上的一个程序使用tcp快速打开连接,那么连接到同一服务器的其他程序是否使用以前的cookie快速打开?

或者只有来自同一程序的套接字可以互相使用cookie?

1 个答案:

答案 0 :(得分:1)

几年前,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/

修改

Fast Open Cookie旨在缓解新的安全漏洞,以便在握手期间实现数据交换。 cookie是服务器生成的MAC标记,对客户端不透明;客户端只是缓存cookie并将其传回后续的SYN数据包以打开新的连接。服务器可以随时使cookie过期以增强安全性。应用程序关闭时它不会死,因为它存储在系统内存中