我在Linux中读到了关于TCP_FASTOPEN的文章,我不知道按照cookie保存的内容。
如果我的Linux服务器上的一个程序使用tcp快速打开连接,那么其他连接到同一服务器的程序是否使用以前的cookie进行快速打开?
还是只有来自同一个程序的套接字才能相互使用cookie?
发布于 2016-05-21 17:16:22
几年前,TCP_FASTOPEN作为一种解决方案被引入,以提高TCP连接的性能,减少握手过程的一次往返。第一个实现TFO的操作系统是Linux,当在公共网络中使用时,已经展示了很好的改进。
Linux内核中的实现是由部分完成的,首先是LinuxKernel3.6.1,然后是实现客户端需求的LinuxKernel3.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旨在减轻新的安全漏洞,以便在握手期间进行数据交换。cookie是服务器生成的MAC标记,对客户端是不透明的;客户机只需缓存cookie并将其传回后续SYN数据包以打开新连接。服务器可以在任何时候终止cookie以增强安全性。当应用程序关闭时,它不会死,因为它存储在系统内存中
https://stackoverflow.com/questions/37365711
复制相似问题