默认情况下,发送 数据采用Negale算法.
Negale算法是指发送的数据不会立刻发出,而是放在缓冲区内,等缓冲区满了再发出.发送完一批数据后,会等待接收方对这批数据的回应,然后再发送下一批数据.
Negale算法适用于发送方需要发送大批量数据,并且接收方会及时作出回应的场合,这种算法通过减少传输数据的次数来提高通信效率.
如果发送方持续发送小批量的数据,并且接收方不一定发送响应数据,那么Negale算法会使发送方运行很慢.
TCP_NODELAY的默认值为false,表示采用Negale算法.
如果设TCP_NODELAY为true,则表示会关闭Socket的缓冲,确保数据及时发送.
如果socket的底层不支持tcp_Nodelay选项,设置TCP_NODELAY会抛出异常