NNetpath
L0

网络基础

Linux 协议栈与观测

所有网络问题的地基。搞清一个包从应用到网线要经过哪些环节,每个环节能用什么命令看,以及延迟、带宽、PPS 三个指标各自受什么限制。

4 个小组 · 8 节课 · 约 4 小时已完成 0/8

1从这里开始

1 节 · 25 分钟

还没有实际排障经验就从这节起。一次 curl 串起全过程,把后面要用的名词一次性认全。

  1. 1

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

    原理入门25 分钟

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

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

2打地基

2 节 · 55 分钟

先统一口径、再看清二三层怎么转发。这两节后面每一课都要用到,跳过去会处处别扭。

  1. 2

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

    原理入门25 分钟

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

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

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

    原理入门30 分钟

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

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

3走通一个包

3 节 · 95 分钟 · 正文 2/3

沿着收发路径走一遍,再看 TCP 的实际行为和内核侧能动的旋钮。

  1. 4

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

    原理30 分钟

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

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

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

    原理30 分钟

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

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

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

    原理深入35 分钟仅大纲

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

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

4动手排障

2 节 · 55 分钟

把前面的知识收成一套固定的命令顺序,然后拿一个真实故障练手。

  1. 7

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

    原理30 分钟

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

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

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

    闯关25 分钟

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

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