当前位置:   article > 正文

TCP套接字不适合无明确证据情况下主动设置套接字缓冲区

TCP套接字不适合无明确证据情况下主动设置套接字缓冲区

结论先行

  • Linux TCP套接字默认缓冲区策略已很大程度上可以满足要求
  • TCP套接字并不适合主动设置套接字缓冲区,除非证明有必要!

因为TCP为可靠传输,并具有流量控制、拥塞控制等功能,所以,主动地单项提高套接字收发缓冲区,可能效果并不会太好

证据

  • Redis服务的配置文件不存在对于TCP套接字缓冲区的设置

Redis作为知名服务程序,并严重依赖TCP套接字进行工作,不主动设置TCP套接字缓冲区有其原因

  • sysctl -a -r '[wr]mem'命令显示套接字内核参数,仅具有IPv4的遗留TCP控制项,但更外现代的IPv6此类控制项并没有对应提供

反推此类设置可能并不合适

  • 测试Demo程序显示默认情况下TCP套接字缓冲区并不太小

  • 根据官网介绍Linux协议栈会根据主机情况进行智能确定

相关测试均在Linux环境中验证

setsockopt

setsockopt接口对于TCP套接字的缓冲区能够起到作用,并受系统内核参数net.core.[wr]mem_defaultnet.core.[wr]mem_max的影响。

但如上所述,它并不建议使用!

参考

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/431047
推荐阅读
相关标签
  

闽ICP备14008679号