TCP_DEFER_ACCEPT 优化
时间:2011-02-24 来源:napoleon_liu
设置listen套接字的TCP_DEFER_ACCEPT选项后, 只当一个链接有数据时是才会从accpet中返回(而不是三次握手完成)。
使用方法:
#include <netinet/tcp.h>
int timeout=1;
setsockopt( listen_fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &timeout, sizeof(int) )
timeout参数:
当服务端一直没接受到数据后,会重发SYN/ACK给客户端,当超过(net.ipv4.tcp_synack_retries = 5)次后, 就开始timeout的计时.
timeout = 0表示取消 TCP_DEFER_ACCEPT选项
性能四杀手:内存拷贝,内存分配,进程切换,系统调用。
TCP_DEFER_ACCEPT 对性能的贡献,就在于 减少系统调用了。
相关阅读 更多 +