首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改每个连接的拥塞控制算法

更改每个连接的拥塞控制算法
EN

Stack Overflow用户
提问于 2011-01-14 07:41:56
回答 5查看 6.2K关注 0票数 5

到目前为止,linux中的命令'sysctl‘在全局上改变了整个系统的拥塞控制算法。但是拥塞控制,其中TCP窗口大小和其他类似的参数是变化的,通常是每个TCP连接。所以我的问题是:

  • 是否有一种方法可以改变每个TCP连接所使用的拥塞控制算法?

还是我错过了一些琐碎的东西?如果是,那又是什么呢?

EN

回答 5

Stack Overflow用户

发布于 2011-06-07 19:46:36

这是在iperf中使用-Z选项完成的-补丁是这里

这就是它的实现方式(PerfSocket.cpp,第93行):

代码语言:javascript
运行
复制
    if ( isCongestionControl( inSettings ) ) {
#ifdef TCP_CONGESTION
    Socklen_t len = strlen( inSettings->mCongestion ) + 1;
    int rc = setsockopt( inSettings->mSock, IPPROTO_TCP, TCP_CONGESTION,
                 inSettings->mCongestion, len);
    if (rc == SOCKET_ERROR ) {
        fprintf(stderr, "Attempt to set '%s' congestion control failed: %s\n",
            inSettings->mCongestion, strerror(errno));
        exit(1);
    }
#else
    fprintf( stderr, "The -Z option is not available on this operating system\n");
#endif

其中mCongestion是一个字符串,其中包含要使用的算法的名称。

票数 6
EN

Stack Overflow用户

发布于 2011-03-17 11:19:15

通过get/setsockopt,这似乎是可能的。我找到的唯一文档是:http://lkml.indiana.edu/hypermail/linux/net/0811.2/00020.html

票数 2
EN

Stack Overflow用户

发布于 2018-08-17 08:19:28

在较新版本的Linux中,可以使用ip路由为特定目标设置拥塞控制.充血。

如果有人熟悉这个方法,请编辑这篇文章。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4688924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档