tcp server
写 tcp server 要注意的几个设置参数
SO_REUSEADDR
Ignore SIGPIPE
客户端意外挂掉时, 服务器继续往 socket 写数据, 可能会生成 SIGPIPE 信号, 默认导致进程终止
O_NONBLOCK
设置非阻塞 IO
TCP_KEEPALIVE
TCP_NODELAY
用来禁用 Nagle 算法
Nagle 算法的策略:
没有已发送未确认报文时,立刻发送数据。
存在未确认报文时,直到「没有已发送未确认报文」或「数据长度达到 MSS 大小」时,再发送数据。
TCP_QUICKACK
用来禁用 TCP 延迟确认
TCP 延迟确认的策略:
当有响应数据要发送时,ACK 会随着响应数据一起立刻发送给对方
当没有响应数据要发送时,ACK 将会延迟一段时间,以等待是否有响应数据可以一起发送
如果在延迟等待发送 ACK 期间,对方的第二个数据报文又到达了,这时就会立刻发送 ACK
+V why_null 请备注:from博客园