35.3. 启用 TCP_CORK

TCP_CORK 可防止 TCP 发送任何数据包,直到套接字"不成"。

流程

  1. 使用 setockopt 命令启用 TCP_CORK

    # int one = 1;
    
    # setsockopt(descriptor, SOL_TCP, TCP_CORK, &one, sizeof(one));
  2. 在由应用程序中的多个组件在内核中构建逻辑数据包后,禁用 TCP_CORK。

    # int zero = 0;
    
    # setsockopt(descriptor, SOL_TCP, TCP_CORK, &zero, sizeof(zero));

    TCP 会立即发送累积逻辑数据包,而不等待应用中任何其他数据包。