了解TCP Friends机制

王福强


在今年的ADC试讲会上听日子哥在其PPT中提到tcp friends,之前没有了解过,遂打算简单了解一下, 而且感觉这东西可能对早先几年我的那个”实现一个基于网络层面抽象的actor库”“的念想的实现有些好处,只可惜当时只是想简单的通过loopback走,却不知道有这东东…

tcp stack层面的短路, 比loopback更近一步的减少了不必要的开销

loopback是避免了网路上的开销,而tcp friends则是进一步的减少了内核tcp stack层面的开销;

使用网络层面的抽象来实现actor, 一个好处就是可以使得本地actor跟远程actor之间的差异透明化; 另外一个就是调度可以直接走NIO的API, 并利用网络层的一些基础设施和功能,比如buffer, 流控等;最最根本的是, 相对于akka actor的实现,偶一直很怀念最早scala类库里的那个actor实现, 不管是内存语意上跟jvm的规定相吻合也好,还是actor定义和行为控制也罢;

如果把net.ipv4.tcp_{rmem/wmem}的配置写成超过4GB的配置,Linux的TCP实现就可能因为溢出而拒绝发出任何数据——这个bug在RHEL6和upstream里都有!如果backport了TCP friends,那么1GB的配置就会出现问题了!

—http://tweets.seraph.me/search/%E6%B7%98%E5%AE%9D%E5%86%85%E6%A0%B8%E7%BB%84

参考

  1. TCP friends
  2. net-tcp: TCP/IP stack bypass for loopback connections
  3. http://kernel.taobao.org/index.php/%E5%86%85%E6%A0%B8%E6%9C%88%E6%8A%A52012-08

>>>>>> 更多阅读 <<<<<<


欢迎加入「福强私学」

跨越2190个日夜,始终坚持“实践 + 原创”打造的715125字专属知识库,囊括了(但不限于)从职场、技术、管理与商业等多个板块的内容。

  • 一个ChatGPT触达不到的地方
  • 一个带你超越AI/人工智能的地方
  • 一个与你一起成长的地方

https://afoo.me/kb.html


开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。

订阅「福报」