从 FACK 到 RACK-TLP:TCP 丢包检测机制的演进与现代化之路


在传输控制协议(TCP)数十年的演进中,丢包检测与恢复机制始终是影响传输性能的核心环节。从最初依赖序列号判断丢包的 Reno 模式,到引入选择性确认的 SACK,再到基于时间判定的 RACK,乃至进一步强化的 RACK-TLP,TCP 的恢复能力经历了逐步现代化的升级。

本文将带你从理论层面,深入理解 TCP 的四种关键丢包检测机制:FACK、SACK、RACK 与 RACK-TLP,并对比它们的工作原理、适用场景与演进关系。

丢包是 TCP 面临的常见网络问题。能否及时发现丢包并快速恢复,直接决定了 TCP 在以下场景中的表现:

...

NS-3 Wi-Fi 仿真模型概述


ns-3 节点可以包含多个 NetDevice 对象,就像一台实际的计算机可以包含多个独立的网络接口卡(如以太网、Wi-Fi、蓝牙等)。本章节描述了 ns-3 的 WifiNetDevice 及其相关模型。通过将 WifiNetDevice 对象添加到 ns-3 节点中,可以创建基于 802.11 的基础设施网络和自组织(Ad Hoc)网络模型。

WifiNetDevice 模拟了基于 IEEE 802.11 标准的无线网络接口控制器 [ieee80211]。我们将在后续章节中详细说明,但简单来说,ns-3 提供了以下 802.11 相关模型:

...

Linux TC


tc - 显示/操作流量控制(traffic control)设置

tc 用于配置 Linux 内核中的流量控制。流量控制包括以下几个方面:

...

GAP Bond Manager 和 LE 安全连接


GAP Bond Manager (GAPBondMgr) 是一个可配置模块,用于从应用程序中承担大部分与安全管理器 (SM) 协议相关的配对和绑定安全机制。GAPBondMgr 在协议栈任务的上下文中执行。

蓝牙核心规范版本 4.2 添加了支持 LE Secure Connections 的功能,以增强 BLE 配对过程的强度。详细描述请参见 Bluetooth Core Specification Version 5.1Security Architecture 部分 ([Vol 1], Part A, Section 5.1)。以前版本 (4.1 和 4.0) 使用的方法定义为 LE Legacy Pairing。主要区别在于 Secure Connection 使用椭圆曲线 Diffie-Hellman (ECDH) 密码术,而 LE Legacy Pairing 则不使用。

以下是核心规范中定义的四种配对方法,每种配对方法在 不同配对方法的 GAPBondMgr 示例 中有详细描述。

...

聊聊 GCC 中的 int 类型和字节对齐


GCC

最近看到一个问题,在 64 位操作系统中。实际测试环境 Ubuntu 22.04,GCC 11。

sizeof(stuct test) =?当然我知道这道题想考察的 int/long 定义以及对齐问题,之前编码也不会太在意这类似问题,直接打印出来就行,但是作为考题这里有诸多不严谨地方。我们好好探索下。

...

Thread 路由协议


本文为 Thread 路由协议相关规范,翻译自Thread Specification->5.9 Routing Protocol,作为理论储备。这里未做任何解释,接下来会结合其他系列文档从抓包、代码实现结合协议规范去理解该路由协议。

Thread 拓扑

本节描述了 Thread 网络中使用的路由协议。Thread 路由协议是一个简单的距离向量路由协议。协议的主要目标是最大化地可以在单个消息中传输的路由信息量。因此,该协议限制了包含最多 MAX_ROUTERS 或更少路由器的网络。

...