常用的TCP选项

SO_REUSEADDR

重用本地地址,使得处于TIME_WAIT状态的端口依然可以立即重复使用,此外,也可以修改内核参数/proc/sys/net/ipv4/tcp_tw_recycle来快速回收被关闭的socket,从而使得TCP连接根本就不进入TIME_WAIT状态

SO_RCVBUF 和 SO_SNDBUF

分别设置TCP接受缓冲区和发送缓冲区的大小,当我们用setsockopt来设置TCP的接受缓冲区和发送缓冲区的时候,系统都会将其加倍,并且不得小于某个值。TCP接收缓冲区最小值为256字节,而发送缓冲区的最小值是2048字节

SO_RCVLOWAT 和 SO_SNDLOWAT

分别表示TCP发送缓冲区和接收缓冲区的低水位标记,它们一般被I/O复用判断socket是否可读或者可写。当TCP接收缓冲区中可读数据的总数大于其低水位标记时,IO复用系统调用将通知应用程序可以从对应的socket上读取数据;当TCP发送缓冲区中的空闲数据大于其低水位标记的时候,IO复用将通知应用程序往对用的socket上写数据,默认情况下,TCP接收缓冲区的低水位标记和TCP发送缓冲区的低水位标记为1字节

SO_LINGER
常用的TCP选项
常用的TCP选项