TCP_NO_DELAY设置未在CentOS 5.5中应用

时间:2016-03-22 22:09:08

标签: c++ linux sockets

我在CentOS 5.5 32位和CentOS 6.7 64位上用C ++部署套接字应用程序。我需要转换Nagle的算法,因为我正在与仪器进行通信,并且需要尽可能低的延迟。我用来关闭Nagle算法的代码如下。

if (!setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val)))
        return SUCCESS;
    else
        return TRANSPORT_ERROR;

对于CentOS 5.5系统,Nagle的算法似乎没有被禁用。我可以在wireshark跟踪中看到,我的应用程序中的几个TCP写入在大约200ms延迟后被捆绑在一个数据包中。

CentOS 6.7中的整个应用程序运行时间不到25毫秒。据我所知,数据包捆绑在一起的唯一方法是Nagle的算法。这是准确的,还是我缺少的东西?

任何人都可以提供的帮助将不胜感激。

0 个答案:

没有答案