Switch-Router

Recent Posts

  • 2022-04-11

    VPP: FIB

    本系列文章仅为学习使用 VPP 过程中的一些自用笔记FIB 介绍维基百科是这样描述 FIB 的: A forwarding information base (FIB), also known as a forwarding table or MAC table, is most commonly used in network bridging, routing, and similar functions to find the proper output network int...

  • 2022-04-07

    SMC-R 加速 TCP

    Shared Memory Communication over RDMA (SMC-R) 是一项基于 RDMA 技术的内核态网络协议,目标是在应用无感知的状态下,提升 TCP 应用网络性能(实现更高带宽和更低时延)。SMC-R 协议(RFC7609)由 IBM 首先提出,现已合入 Linux 社区, 且还在不断的演进…高吞吐和低时延的网络是数据面不懈追求. 而近年来越发火热的 RDMA 成为了许多人眼中实现这一目标的利剑.加速的本质关于 RDMA 的基本原理, 互联网上已经有不少资料...

  • 2022-03-15

    从 UDP bind 的一次优化谈起

    事情的起因是在查找关于IP_BIND_ADDRESS_NO_PORT选项的来历, 往前翻 patch 记录时找到了udp: bind() optimisation这个commit.本文正是关于这个patch的一些理解和思考.这个patch解决什么问题呢? 这里引用 commit msg 原文: UDP bind() can be O(N^2) in some pathological cases.Thanks to secondary hash tables, we can make i...

  • 2021-10-08

    TCP拥塞控制之Hybla

    Hybla是为了改善大RTT的连接的传输性能所设计出的拥塞控制算法。经典拥塞控制算法与RTT的关系经典的拥塞控制算法包含慢启动(Slow Start)和拥塞避免(Congestion Avoidance)两个阶段。两个阶段更新拥塞窗口时采用不同的规则:\[W_{i+1} =\begin{cases}W_i + 1& \text{SS}\\\\W_i + \frac{1}{W_i}& \text{CA}\end{cases}\]上式中$W_i$表示收到第$i$个ACK后的拥塞...

  • 2021-09-15

    理解内核TCP定时器实现

    为什么内核TCP需要定时器TCP协议中的一些过程是需要在一段特定时间间隔后被处罚, 包括基本的报文 retransmit、delay ACK、timewait 等等.另外, 定时器触发后的响应函数都是在 bottom half 上下文运行, 整个过程无需用户程序参与.定时器分类站在一个tcp连接的视角,内核为其准备了以下几个定时器: reqsk、retransmit、delack、keepalive、timewait、pacing.接下来分别进行解释reqsk timer这是一个仅用于服务...