Netpath
ETH · Linux 协议栈、观测与端口账

以太网与协议栈

所有网络问题的地基。先把地图和口径立起来:一次访问经过哪些角色,带宽、延迟、PPS 三个指标怎么算,二层三层各管什么;然后上手把命令敲一遍、接一台真出问题的机器、算一次接入网端口账;最后再回头拆开协议栈,看那些计数器究竟来自内核里的哪一段。

3 个小组 · 9 节课 · 约 4 小时已完成 0/9
Section 1

概念:先建立地图

3 节 · 80 分钟

一次访问经过哪些角色、指标怎么算、二层三层各管什么 —— 先有词汇表,再谈别的。

  1. 1

    从一次 curl 说起:网络到底是什么

    原理入门25m

    不谈调优、不谈参数。用一条命令把 DNS、TCP、TLS、HTTP 串起来,顺手把后面要用的名词认全。

    • 说出一次 curl 背后依次发生的五件事,以及各自可能在哪一步失败
    • 认识 MAC / IP / 端口 / 网关 / DNS / MTU / RTT 这几个后面天天出现的名词
    • 知道自己该按哪条路线学下去,以及哪些内容现在可以先跳过
  2. 2

    带宽、延迟、PPS:三个指标与必背换算

    原理入门25m

    Gbps 与 GB/s 差 8 倍,小包场景真正的瓶颈是 PPS 不是带宽。这节把口径统一。

    • 在 Gbps、GB/s、PPS 之间快速换算,并算出线速下的理论 PPS
    • 判断一个场景到底受带宽限制还是受 PPS / 延迟限制
    • 用带宽延迟积(BDP)解释为什么长肥管道跑不满
  3. 3

    二层与三层:ARP、VLAN、子网与转发

    原理入门30m

    交换机怎么决定往哪个口发,路由器怎么决定下一跳,以及同网段与跨网段的区别。

    • 解释 ARP 的作用,并说出 ARP 表异常会造成什么现象
    • 看懂 CIDR 前缀,快速算出可用地址数与广播域大小
    • 读懂一台 Linux 主机的路由表并预测某个目的地址走哪条路
Section 2

实践:动手看真实的网络

3 节 · 90 分钟

工具认全,接一台真出问题的机器,再算一次接入网的端口与收敛比。

  1. 4

    网络观测工具箱:ss、ethtool、tcpdump、nstat

    原理30m

    一套固定顺序的命令清单,让你在陌生机器上十分钟内摸清网络状态。

    • 按接口、连接、协议栈、丢包四个维度各挑一条命令快速体检
    • 用 tcpdump 精确抓到目标流量而不是抓一堆无关包
    • 看懂 ethtool -S 和 nstat 里最常用的那几个计数器
  2. 5

    闯关:一台"网络慢"的机器

    闯关25m

    报障只有两个字"网慢"。在模拟终端里按路径逐层收敛,找出真正的原因。

    • 面对模糊报障,按固定顺序收敛而不是乱猜
    • 从计数器里读出丢包发生在哪一层
    • 给出一个能验证的结论,而不是"网络有问题"
  3. 6

    以太网规划:Spine-Leaf 端口账与收敛比

    规划35m

    给定节点数和网卡规格,算出需要几台 leaf、几台 spine、多少线缆、收敛比多少。

    • 独立算出一套 Spine-Leaf 的交换机数量与线缆数量
    • 解释收敛比的含义并判断某个取值是否可接受
    • 看出配置里真正的瓶颈资源在哪一层
Section 3

原理:再拆开协议栈

3 节 · 95 分钟

前面敲过的那些计数器,来自内核里的哪一段 —— 从 send() 到网线,逐层讲清楚。

  1. 7

    一个包的旅程:从 send() 到网线

    原理30m

    把发包和收包路径拆成可观测的若干段,后面所有排障都是在这条路径上定位。

    • 说出发包路径上的关键环节:socket 缓冲、qdisc、驱动环形队列、DMA
    • 说出收包路径上的关键环节:DMA、硬中断、软中断/NAPI、协议栈、socket 队列
    • 拿到一个丢包现象时,知道该去哪一层查计数器
  2. 8

    TCP 的脾气:握手、窗口、拥塞与重传

    原理30m

    为什么带宽没跑满却觉得慢?多半是窗口、重传和排队在起作用。

    • 解释拥塞窗口、接收窗口、慢启动与拥塞避免的关系
    • 区分快速重传与超时重传,判断哪种对业务危害更大
    • 判断重传率、RTT、缓冲区膨胀(bufferbloat)三类症状
  3. 9

    内核网络栈调优:中断、队列与 offload

    原理深入35m

    同一张网卡,配置对不对能差出几倍性能。这节讲能动的旋钮和动的理由。

    • 解释 RSS / RPS / RFS 各自解决什么问题
    • 判断该不该开 GRO / LRO / TSO / checksum offload
    • 按症状选择调整环形队列、中断合并还是 CPU 亲和性