【网络工程】内核网络参数调优:sysctl 全景与实战
Linux 内核网络参数是系统网络性能的基础旋钮。本文从 /proc/sys/net/ 的参数体系出发,系统讲解收发缓冲区自动调优、TCP Backlog 队列、conntrack 连接追踪表、SYN Flood 防护参数、TIME_WAIT 管理,以及参数调优的系统化方法论——先基准、再调整、后验证。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 17 篇文章 · 返回首页
Linux 内核网络参数是系统网络性能的基础旋钮。本文从 /proc/sys/net/ 的参数体系出发,系统讲解收发缓冲区自动调优、TCP Backlog 队列、conntrack 连接追踪表、SYN Flood 防护参数、TIME_WAIT 管理,以及参数调优的系统化方法论——先基准、再调整、后验证。
深入剖析 TCP 连接的完整生命周期——三次握手的每个细节、四次挥手的工程陷阱、11 个状态的实测观察,以及 TIME_WAIT 堆积、SYN Flood 防御、端口复用等生产环境高频问题的系统化解决方案。
从工程视角剖析 TCP 可靠传输的核心机制——序列号与确认的精确语义、RTO 计算的数学基础、快速重传与 SACK 的工程价值、DSACK 的重复检测,以及重传对延迟的放大效应与实际诊断方法。
深入剖析 TCP 滑动窗口的工程实现——发送窗口、接收窗口与拥塞窗口的三角关系,窗口缩放的必要性,零窗口与 Silly Window Syndrome 的防治,以及 Wireshark 中的窗口分析方法与缓冲区调优实战。
TCP 拥塞控制是互联网流量管理的核心机制。本文从 AIMD 的数学直觉出发,逐步剖析 Reno、NewReno、BIC、CUBIC 的演进动机与工程差异,通过内核参数观测和实测数据帮助读者理解拥塞窗口行为、选择合适的拥塞控制算法。
BBR 抛弃了 30 年来基于丢包的拥塞控制范式,改为直接估算瓶颈带宽和最小 RTT。本文剖析 BBR v1/v2/v3 的状态机与工程行为,分析 BBR 与 CUBIC 共存的公平性问题,并给出生产环境的部署与调优指南。
TCP 内核参数和 socket 选项是网络性能的最后一道关卡。本文系统梳理 Linux TCP 参数体系,从缓冲区、Backlog 队列、Keepalive、TIME_WAIT 到拥塞控制,给出不同场景的调优模板和基准测试方法论。
TCP 问题排查是后端工程师的日常。本文系统梳理重传、RST、窗口异常三大类 TCP 问题的诊断方法,通过 ss、netstat、tcpdump、Wireshark 等工具链配合 Prometheus 指标采集,建立完整的 TCP 故障诊断体系。
TCP 诞生四十余年,核心协议栈已高度成熟,但三项现代扩展正在改变它的工程边界:TCP Fast Open 省去一次握手 RTT、MPTCP 让单连接利用多条路径、ECN 用显式标记替代丢包信号。本文从协议设计、内核实现到生产部署,深入剖析这三项扩展的工程价值与落地挑战。
传输层协议的选择决定了应用的延迟、吞吐量、可靠性和部署可行性。本文从延迟、吞吐、可靠性、NAT 穿越四个维度系统对比 TCP、UDP、QUIC、SCTP 四种传输协议,给出 Web 服务、游戏、IoT、实时音视频、RPC 等典型场景的选型决策框架和迁移路径。
一台繁忙的 Nginx 服务器上有 100 万个活跃连接,每个连接都有 keepalive 超时定时器。如果用最小堆管理这些定时器,每次新连接到来都要 O(log n) 插入——100 万个定时器意味着 20 次比较。时间轮用 O(1) 解决了这个问题。
拥塞控制是互联网能正常运转的底层原因。
滑动窗口不只是一道 LeetCode 题型,它是网络协议、流控、限流的通用模式。
深入网络编程,实现一个异步 TCP 服务器。学习如何使用 user_data 管理连接上下文,处理 Accept, Read, Write 链式调用。
打开一个网页要握手几次?TCP 三次 + TLS 一次 = 至少 2 RTT。QUIC 说:我一次搞定,重连甚至 0 次。不是 TCP 不够好,是它的基因决定了它改不动。
TCP SYN 处理详解:三次握手、SYN Flood 防护与网络性能优化
Linux 高并发服务器内核参数调优:文件描述符、TCP 网络栈与 core dump 配置