【Istio 控制面】控制面全景:从 CRD 到 xDS 的翻译与推送内核
定位 Istio 控制面内核相对 Envoy 消费侧、Service Mesh 税文与 Gateway API 资源模型的缺口;给出五条坐标系、16 篇地图与本系列明确不写的范围,钉住 istiod 1.30.3 为主线。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 210 篇文章 · 返回首页
定位 Istio 控制面内核相对 Envoy 消费侧、Service Mesh 税文与 Gateway API 资源模型的缺口;给出五条坐标系、16 篇地图与本系列明确不写的范围,钉住 istiod 1.30.3 为主线。
以官方文档为准,对照 Linkerd destination/identity 控制面与 Istio istiod/xDS 的机制差异:资源模型、订阅形状、身份签发路径;只讲机制边界,不判定优劣。
用机制排除树收束 Istio CRD 翻译、Gateway API/GAMMA 与 eBPF L4 的选型边界,回收系列阅读路径,并列出推送 SLO、Ambient 成熟度、GAMMA 双轨等开放问题;不做延迟排行榜。
补齐 Envoy 数据面 xDS 消费侧与 Mesh 选型叙事之间的控制面内核:istiod 推送图、CRD/HTTPRoute 翻译、Ambient 多客户端、NACK/warming 责任与排障对齐。
相对 istio-xds/14 对照篇与 architecture/76 税文,钉清 Linkerd 2.20 非 xDS 控制面缺口;定义注入、identity、destination、策略与数据面五条轴,并强调 native sidecar 与 legacy 路径分列证据包。
以 Linkerd 2.20 为锚,拆解 proxy-injector 如何把 Pod 变成 mesh 成员;native sidecar 默认与 legacy init+sidecar 分列证据包,以及 opaque ports 与 membership 失败落格。
拆解 meshed Pod 内 TCP 如何经 iptables 或 Linkerd CNI 进入 linkerd2-proxy;inbound 与 opaque 端口语义,以及与注入轴衔接的重定向失败落格。
拆解 linkerd-identity 如何校验 CSR 并签发绑定 ServiceAccount 的工作负载证书;自动轮转与 issuer/trust anchor 分层,并对照 Envoy SDS 路径与失败落格。
拆解 linkerd-destination Pod 内 destination、sp-validator、policy 与反身 proxy 四容器分工;Informer/EndpointTranslator 如何把 Kubernetes 状态流式推给数据面,并钉住 2.20 内存优化门。
钉清 Linkerd 2.20 控制面与 linkerd2-proxy 之间的四套专用 gRPC 服务(destination/identity/inbound/tap),说明 per-target Get 流式寻址与 xDS type-subscription 的机制差,以及错误落在 gRPC 层而非 ACK/NACK。
展开 Linkerd 2.20 destination.Get 的 per-target 流式语义:EndpointTranslator 如何把 EndpointSlice 增量翻译成 add/remove/no_endpoints,identity 与 zone 富化,以及相对 xDS EDS 的失败落格与空流表象。
说明 Linkerd 2.20 策略 CRD(Server、AuthorizationPolicy、MeshTLSAuthentication)如何与 destination Pod 内 policy 容器分工,入站授权求值位置,以及策略拒绝与发现失败如何分列表象。
说明 Linkerd 2.20 ServiceProfile CRD 如何把 L7 路由、重试预算与超时注入 destination.GetProfile 流,sp-validator webhook 校验分工,以及与 Gateway API 路由的边界指针。
钉清 linkerd2-proxy 在 2.20 下的协议探测、入站/出站处理链、EWMA 负载均衡与 rate-limit-aware Load Biaser 机制;说明与 Envoy 数据面分工边界,不写 Rust vs C++ 性能榜。
钉清 Linkerd 2.20 支持的 Gateway API 1.2.1–1.5.1 版本门、mesh 路由与 Envoy Gateway 南北向分工、multicluster 共享 trust anchor 机制;不写 live 超前能力与未钉 GAPI 字段。
按 2.20 tag 钉控制面升级顺序、trust anchor/issuer 分层轮转、destination 内存重构运维门;附 live vs tag 门禁与否证检查表。无集群则不写升级成功叙事。
按 Linkerd 五轴映射未 mesh、TLS 失败、无端点、策略拒绝与 502;强调先点名轴、native sidecar 与 legacy init+sidecar 分列证据包;并说明不可与 istio-xds 五轴混因果。
从控制面协议、数据面引擎与排障坐标对照 istiod/xDS、Istio Ambient 与 Cilium eBPF L4;外链 istio-xds 全书不重写,不做跨方案 CPU 排行榜。
钉清 Linkerd 2.20 的 OSS stable 制品边界(2024-02 起)、Buoyant 商业分发与 edge 关系;不写定价菜谱,划分与观测/安全系列分工,开放问题指向选型终章。
用机制排除树收束何时不该跑 Linkerd;回收 istio-xds/16 的 Linkerd 叶;列出 native sidecar 与 Job、GAPI 双轨、与 Falco/Tetragon 联合 runbook 等开放问题;以 ADR 友好语言关闭续作边界。
补齐站内 istio-xds 对照篇之上的 Linkerd 控制面内核:proxy-injector、identity CSR、destination 按目标流式推送、linkerd2-proxy 数据面,并以排障与相对 istiod/xDS、Ambient、Cilium L4 的选型收束。
用机制排除树收束何时不该跑 Envoy Gateway;回收 Cilium 16 与 Tetragon 16 的南北向悬空指针;列出 status 当 SLO、IR 对账、remote infra、与 Cilium 四元组联合 runbook 等开放问题;关闭本系列续作边界。
厘清 Cilium Gateway API 南北向入口与本系列东西向 eBPF 数据面的分工:能力边界、排障坐标分叉、加密与 KPR 组合风险;标明本系列刻意不写的 Gateway 全书内容。
用机制排除树收束 Cilium eBPF 相对 Calico、kube-proxy、Envoy sidecar、Ambient 的选型;回收 Envoy/HAProxy 终章的 eBPF 叶;列出系列级开放问题;以 ADR 友好语言关闭数据面续作边界。
补齐站内 Cilium 产品单篇与 eBPF 内核实现之上的数据面内核层:Endpoint/Identity、BPF 挂载与 Map、东西向包路径、kube-proxy 替代、策略编译、Hubble、加密与 Mesh/ClusterMesh 边界,并以排障与选型收束。
用机制排除树收束 Envoy 相对 Nginx/HAProxy、sidecar / 节点级 Envoy / eBPF 的选型;回顾阅读路径,并列出 xDS 规模、sidecar 税、Wasm 与 HTTP/3 等系列级开放问题。
补齐站内 Envoy 单篇地图与 Mesh/网关选型之间的数据面内核层:Main/Worker、FilterChainMatch、HCM、Cluster/连接池、xDS warming 与 Hot restart,并以排障与选型收束。
相对 Gateway API 产品教程、Cilium 南北向边界、Envoy 消费侧与 istiod 翻译,钉清 Envoy Gateway v1.9.0 控制面内核缺口;定义附着/status、IR、xDS、Envoy 数据面、入口之后东西向五条轴,给出 16 篇阅读路线。
钉清 Gateway API v1.6.1 角色分离在 Envoy Gateway v1.9.0 里的失败语义:parentRefs 与跨 namespace、ReferenceGrant 握手、Accepted 相对 Programmed / ResolvedRefs,以及 YAML 已 apply 仍无流量时该先查哪条条件。
钉清 Envoy Gateway v1.9.0 Kubernetes provider 如何把 Gateway API 与引用对象收成翻译输入集、Status Manager 如何写回,以及漏 watch、缺 CRD、namespace 范围收窄时的失败表象;并核对 System Design 对 file provider 的过时表述。
钉清 Envoy Gateway v1.9.0 为何用中间表示解耦 Gateway API 与 Envoy 资源树:XdsIR 与 InfraIR 的分工、Translate 的顺序与依赖,以及 status 为何必须在同一次翻译里计算。
把 XdsIR 钉到 LDS/RDS/CDS/EDS/SDS,把 InfraIR 钉到 Envoy 舰队;说明 go-control-plane Delta xDS 只保证快照送达,不能代替 Envoy warming 与 ACK。
钉 HTTPRoute/GRPCRoute 的附着、hostname、matches/filters/backendRefs 如何进入 RDS;对照 Gateway API v1.6.1 匹配优先级,以及 v1.9 RouteRulesOverlap 对同 listener 相同匹配的警告。
区分 Gateway listener 证书与 BackendTLSPolicy 后端 TLS;钉 v1.9 SDS unix:// 必填、共享 system_ca_certificates,以及 EnvoyPatchPolicy 旧 secret 名失效。
钉 TCPRoute/UDPRoute/TLSRoute 在 Gateway API v1.6 的版本;说明 EG v1.9 只 reconcile v1,standard channel 停服 v1alpha2,以及失败表象是无流量而不是 HTTP 500。
把 SecurityPolicy、BackendTrafficPolicy、ClientTrafficPolicy、EnvoyExtensionPolicy、EnvoyPatchPolicy 钉到 IR/xDS 层;说明 v1.9 mergeType 只允许挂 xRoute,以及 Lua 默认关闭与 Patch 匹配旧 xDS 名如何表现为「策略写了不生效」。
钉清 EnvoyProxy CR 与 Infra Manager 对数据面 Pod 的所有权;说明 GatewayNamespaceMode 的 xDS 认证修复、v1.9 remote infrastructure provider 的责任面,以及 mergeBackends 仍是默认关闭的 experimental 能力。
区分 Envoy Gateway 控制面信号与数据面 access log / metrics / tracing 各自能钉住的坐标轴;说明 v1.9 客户端强制追踪默认 0% 会被误判为「没开 tracing」,以及 xdsNACKTotal 只证明 xDS 被拒而非路由翻译失败。
钉清 gateway-helm 与 gateway-crds-helm 的所有权边界;说明 v1.9 把 safe-upgrades ValidatingAdmissionPolicy 挪进 chart 后的两种必做动作,以及 TCP/UDP 存储版本迁移与 xDS 32MiB 接收上限如何表现为无 NACK 的失败。
按五轴映射 Envoy Gateway v1.9.0 南北向故障:status 未绿、Translator 产出空或错误 XdsIR、xDS NACK、Envoy 仍服务旧快照、入口之后的东西向 CNI;口诀是先点名轴,再下钻模块。
从翻译内核与排障坐标对照 Envoy Gateway v1.9.0 与 Cilium Gateway、Istio/GAMMA、Ingress 注解模型,以及 Contour / NGINX Gateway Fabric 实现叶;机制差表,不做延迟排行榜。
请求离开 Envoy Gateway 之后,用北段/南段证据包和两套排障口令对接 Cilium v1.20.0 的 CNI/KPR/加密/Gateway 四元组;本系列不重写 identity 与 map。
补齐站内 Gateway API 产品教程与 Envoy 数据面消费侧之上的南北向控制面内核:附着与 status、Provider watch、IR 翻译、xDS 与 Infra、路由/TLS/L4/Policy 边界,并以排障与相对 Cilium Gateway / Istio / Ingress 的选型收束。
从架构模型、配置方式、协议支持、可观测性、扩展机制和性能特征六个维度,系统对比 Nginx、HAProxy、Envoy 和 Traefik 四大代理/网关,给出基于场景的选型依据。
相对 k8s-network/13、ebpf/ 与 Envoy/HAProxy 排除树,钉清 Cilium eBPF 数据面内核缺口;定义 Identity、BPF 挂载、Map 状态、包路径、策略与观测五条坐标系,给出 16 篇阅读路线。
钉清 Cilium Endpoint 与 Numeric Identity 的关系:安全相关标签如何导出集群范围数字身份、保留身份与 well-known 身份、标签变更时的短暂 deny/allow 窗口,以及相对 IP 策略消除了什么。
说明 Cilium v1.20 如何在 XDP、TC、cgroup socket 等 hook 上分工;对照 bpf_xdp/host/lxc/sock 源码入口与 Intro 中的数据面对象;交代加载/替换边界,不重写 verifier 算法。
按 Cilium v1.20 Maps 文档钉清 policy、Service LB、CT、NAT、ipcache 等 map 的职责、默认容量与满表后果;说明 v3 policy map 语义变更,内核 map 实现外链 ebpf/ 系列。
沿 Cilium v1.20 Life of a Packet 钉清同节点与跨节点东西向停顿点:Endpoint Policy、Service、socket 加速、加密与 L7 重定向;说明与 netfilter/kube-proxy 旁路关系,并为 kube-proxy 替代篇铺路。
钉死 Cilium v1.20 kube-proxy replacement 下 ClusterIP、NodePort 与外部流量如何经 socket-LB / TC / XDP 与 service map;对照 iptables/IPVS,并列出 SNAT、DSR、Maglev 与共存迁移的失败表象——不写 Helm 百科。
拆解 Cilium v1.20 如何把 Kubernetes NetworkPolicy / CiliumNetworkPolicy 经 selector→identity 蒸馏进 endpoint policy map;钉死按方向的 default-deny 切换、Deny 优先与 identity 漂移造成的短暂拒绝/放行窗口。
界定 Hubble flow 关键字段对应数据面哪一层判定;区分 flow 流式观测与 Hubble/Cilium metrics 聚合口径,并列出指标全绿仍丢包的典型错位——不写 UI 点击教程。
聚焦 Cilium v1.20 透明加密如何挂接节点密钥与数据面路径:WireGuard 与 IPsec 的覆盖范围、strict mode、发现窗口明文泄漏,以及路径税与失败表象;密码学细节外链 wireguard 系列。
划清 Cilium v1.20 可选 L7 路径:BPF 何时重定向节点 Envoy、与 sidecar / Istio Ambient 的职责边界及失败面;不重写 Ambient 数据面,不把 Cilium 写成全能网格。
拆解 Cilium v1.20 ClusterMesh 的控制面(clustermesh-apiserver / kvstoremesh)、跨集群身份与服务发现边界;列出 maxConnectedClusters 与身份空间权衡,并显式写清 ClusterMesh 不提供的保证。
按观测层拆解 cilium status / cilium-dbg、Agent 与 Hubble Prometheus 指标语义、bpftool 与 cilium-dbg bpf 的职责边界;不粘贴伪造 scrape 或 Hubble 截图,只写口径与误读模式。
按五轴映射 Cilium 东西向故障:通用丢包、Policy denied、identity 漂移窗口、Service/ClusterIP 黑洞、透明加密失败;每轴绑定 status/Hubble/map 层,一次否证一轴。
从机制排除而非跑分出发,对照 Cilium eBPF 数据面与 Calico、kube-proxy iptables/IPVS、Envoy sidecar、Istio Ambient;链接 k8s-network/12–13、envoy/16、haproxy/14,不做延迟排行榜。
用机制排除树收束 HAProxy 相对 Nginx、Envoy、eBPF 的选型;回收本系列阅读路径,并列出 stick-table 规模、QUIC/H3 成熟度、reload 与 Runtime 混用可观测等开放问题。
定位 HAProxy 相对 network/56 配置运维、Nginx 多进程与 Envoy Filter/xDS 的生态位;钉住请求路径、线程共享、协议表示、动态运维、失败归因五条坐标系,并给出 14 篇阅读路线。
钉住 HAProxy 单进程多线程模型:每线程事件循环、连接单线程服务;对照 nbproc 下 stick-table 不共享,以及 Nginx 多进程与 Envoy Main/Worker;说明 poller 线程上阻塞的软警告。
说明 HAProxy frontend 与 bind 如何落到监听套接字;accept 之后 FD 与线程的关系;SO_REUSEPORT / cpu-map 与多线程接入;以及 expose-fd listeners 作为 seamless reload 的前置,并点到 content switching 入口而不做 ACL 百科。
厘清 connection → session → stream 与 mux 的分层;对比 TCP pass-through 与 HTTP mux;说明超时挂在哪一层对象上,以及失败归因如何区分连接级与流级;源码目录级指向 stream 与 mux_*。
说明 HTX 作为版本无关的内部 HTTP 表示如何分离解析与处理;http-request 改写/重定向落在 HTX 而非永恒原始缓冲;HTTP/1 与 HTTP/2 在 mux 边界的分叉;以及相对纯 L4 路径的成本模型——非应用层菜谱。
把 ACL 与 http-request / use_backend 当作数据面机制:说明连接期到 L7 的求值顺序、动作副作用如何改写后续条件,以及与 stick-table 限流/标记的耦合点;不写 ACL 关键字百科。
把 balance 算法、server maxconn/队列与 http-reuse 当作数据面机制:说明无持久化信息时如何选主、队列满与无 server 时如何失败,并轻对照 Envoy cluster/连接池边界。
说明 stick-table 的键类型、size/expire/store、nbthread 共享内存与 nbproc 不共享的边界,以及 peers 复制与 reload 继承;覆盖表满等容量失败模式。
区分健康检查引擎与数据面请求调度:说明默认 TCP 探活、httpchk/tcp-check 规则集、agent-check 的独立控制面语义,以及与 soft-stop/排空的交互提示;不写伪造检查日志。
区分 TLS 终结与 mode tcp 透传:说明握手相对线程/FD 的位置、会话缓存对握手成本的高层含义,以及与 HTTP 路径的交界;不是证书运维手册。
按 HAProxy 3.4.3 Management Guide 钉住 Runtime API 能改什么、不能改什么;区分 worker stats socket 与 master CLI,说明热改与 seamless reload 的语义边界。
按 HAProxy 3.4.3 Management Guide 拆解 -x / expose-fd listeners / master-worker sockpair 的 listen FD 交接、SIGUSR1 soft-stop 排空,以及 stick-table/peers 在 reload 下的保留边界;对照 Nginx 与 Envoy hot-restart。
用 accept/bind、stream/mux、ACL/路由、上游/健康、reload/runtime 五轴组织 HAProxy 生产排障;说明 show info/stat/sess、日志与 stats 页面落在哪一层,不粘贴伪造转储。
补齐站内 HAProxy 工程单篇与 Nginx/Envoy 选型之间的数据面内核层:线程组、stream/mux/HTX、ACL 求值、stick-table、health-check、Runtime API 与 seamless reload,并以排障与选型收束。
系统讲解 HAProxy 的工程实践:Frontend/Backend/Listen 配置模型、ACL 规则引擎的高级用法、Runtime API 的动态管理能力、多线程模型与性能调优、SSL 终止与健康检查策略,建立 HAProxy 从配置到生产运维的完整体系。
HTTP/3 请求链路怎么走完:Alt-Svc 发现、QPACK、与 QUIC 连接层的工程检查点。
拆解 pilot-discovery 二进制内部的组件化启动顺序:CA 为何先于 Discovery 初始化、注入 Webhook 与配置校验为何是独立 HTTPS 服务、以及哪些组件真正位于 xDS 推送热路径上。
拆解 istiod 如何从节点 ID 与 mTLS/JWT 得到一个 model.Proxy 身份,以及 NodeType 如何决定该连接会订阅哪一套 xDS 资源类型:sidecar/Router 走标准 LDS/RDS/CDS/EDS,ztunnel 走自定义 Address/Authorization,waypoint 是 Envoy 但推送触发条件不同。
画出 istiod 从 K8s watch 事件到某个代理收到 DiscoveryResponse 的完整推送图:ConfigUpdate、debounce、PushQueue、pushXds 各自的边界与代码依据,钉住 VersionInfo/Nonce 的生成规则,并说明为什么控制面的推送成功不等于 Envoy 在服务。
拆解 istiod 如何把 K8s Service、EndpointSlice、WorkloadEntry 聚合进内部服务模型,再经 CdsGenerator/EdsGenerator 分别生成 Cluster 与 ClusterLoadAssignment;钉住命名契约与部分推送边界,subset 留给 DestinationRule 篇。
拆解 istiod 的 RdsGenerator 如何把 VirtualService 与 Gateway API HTTPRoute(含 GAMMA mesh 模式)都编译成同一份内部路由模型,说明为何双轨输入会在同一 host 上产生冲突,以及两套 API 的合并顺序为何一个确定、一个未定义。
拆解 DestinationRule 如何在 CDS 已生成的 Cluster 之上派生 subset、挂载 connectionPool/outlierDetection/loadBalancer/tls,以及 mesh 默认、DestinationRule 级、port 级、subset 级四层设置的真实合并规则——其中 port 级与 subset 级的继承语义并不对称。
拆解 PeerAuthentication 如何落到入站 filter chain 的 mTLS 要求、AuthorizationPolicy 如何编译成 Envoy RBAC filter 的 permission/principal,以及 istiod CA 签发证书后 istio-agent 作为本地 SDS server 如何把 SPIFFE 身份证书喂给 Envoy;策略语义不重复展开,见零信任系列。
拆解 Sidecar 的 egress 裁剪、Telemetry API 的三层继承、EnvoyFilter 的补丁排序规则;三者作用在生成流水线的不同阶段,各自有一套容易被误用的合并/覆盖语义;不讲 Wasm/EnvoyFilter SDK 编程。
拆解 istiod 生产侧的 Full/Incremental 推送决策与 debounce 合并逻辑,说明它与 Envoy 消费侧 SotW/Delta 协议变体是两个正交问题;用 pilot/pkg/xds 源码钉住端点抖动下的日志可见性盲区。
用 pilot/pkg/xds 的 PushOrder 与 ShouldRespond 源码钉住 istiod 推送顺序与 NACK 处理边界,说明为什么'istiod 已推送'与'Envoy 在服务'之间的责任划分不在同一层,给出排障用的责任表。
拆解 Istio 多集群服务发现的控制面机制:remote secret 如何让 istiod 跨集群 watch,Split-Horizon EDS 如何按网络重写端点为东西向网关地址;只讲机制边界,不做厂商评选或延迟排行。
从 istiod 的 NodeType 与推送过滤代码出发,说明 ztunnel(Rust L4、HBONE、per-node)与 waypoint(Envoy L7、per-namespace)是两类订阅完全不同的 xDS 客户端,并指出 ambient 推送优化仍是源码里明写的 TODO。
把翻译、推送、ACK、warming、身份五个责任层对齐到具体 istioctl 子命令与 Envoy admin 端点,给出核对顺序而非命令输出;命令语义均引用官方文档,不粘贴未执行的结果。
定位 Envoy 相对 Nginx/HAProxy 静态配置代理与 Mesh 选型叙事的生态位;钉住请求路径、配置快照、FilterChainMatch、xDS warming、上游资源五条坐标系,并给出与 network/57 的分工及 16 篇阅读路线。
钉住 Envoy 单进程多线程模型:Main 管 xDS/Admin,Worker 绑连接终生;Event::Dispatcher 与 Thread Local Storage 如何把配置变成每线程可读快照,以及快照解决什么、解决不了什么。
拆解 Envoy accept 之后到 network filter 之前:listener filters 如何 enrich 元数据,FilterChainMatch 如何按 SNI/ALPN/目的地址选链,以及选错 chain 的典型失败模式。
在 FilterChain 已选定之后,说明 network filter 如何在连接字节流上工作、读写水印如何反压、连接生命周期事件,以及 TCP Proxy 相对 HTTP Connection Manager 的路径分叉。
说明 HttpConnectionManager 如何把字节变成协议无关的 stream 事件;HTTP/1/2/3 codec 的职责边界;流与连接生命周期差异;以及 codec 错误与半关闭语义的失败模式。
钉住 HCM 内 HTTP filter 的 decoder/encoder 顺序、Router 作为终端过滤器的含义,以及 retry/timeout 挂在路由与 Router 上的语义;说明「Router 之后再挂 filter」为何无效,并为 Cluster 上游选型铺路。
说明 Cluster 作为上游逻辑组的模型,拆开 priority / locality 权重与 subset 元数据匹配如何缩小可选主机集,并给出主动健康检查相对 outlier 的入口分工;为连接池与熔断篇铺路。
拆解 HTTP 连接池按协议/线程分池的方式,以及 cluster 级 circuit breaker 与 outlier ejection 如何在路由与 LB 都正确时仍让请求以 503 / overloaded 失败;衔接到 xDS 资源树。
把 Listener、RouteConfiguration、Cluster、ClusterLoadAssignment(及 SDS)画成依赖树,说明资源命名如何串起引用、warming 与 make-before-break 顺序为何决定短暂黑洞,并衔接到 ADS/SotW/Delta。
拆解 xDS 四变体(SotW/Incremental × 分类型流/ADS)、ACK/NACK 与 version/nonce 语义,以及 NACK 后控制面与数据面各自会怎样;钉住 ACK≠流量已切新路由。
拆解 Listener/Cluster warming、SDS 证书轮转与 xDS 热更新边界;说明为何协议 ACK 之后流量仍可能走旧路由或 503,并区分 xDS 热更新与 Hot restart。
拆解 Envoy Hot restart 的 UDS RPC、共享内存统计、父子 listen socket 交接与 drain 时间线;对照 xDS-only 热更新,说明何时必须进程级重启。
从请求路径机制位置出发,对照 Wasm、Lua、ext_authz 与 local/global rate limit 的隔离、失败语义与安全边界;外链 Wasm 架构与过载保护,不写 SDK 教程。
把 Envoy v1.39.0 的 stats、access log、tracing 钉回请求路径与 admin 统计树:各自能归因什么、不能归因什么,以及与可观测性系列的分工边界。
按第 1 篇五条坐标系拆解无上游、路由未生效、证书/SDS、warming 黑洞、hot restart 与连接泄漏;给出 admin 核对顺序与观测信号入口,不虚构延迟数字。
mTLS(双向 TLS)在微服务架构中实现服务间的身份认证和通信加密。本文从工程角度剖析 mTLS 的握手流程差异、证书分发的三种模式、SPIFFE/SPIRE 的标准化身份框架,以及 Istio 和 Linkerd 中 mTLS 的实现原理。覆盖性能开销测量、调试方法和大规模部署的证书轮换策略。
epoll 是 Linux 高性能网络编程的基石。本文深入剖析 epoll 的内核数据结构(红黑树与就绪链表)、ET 和 LT 两种触发模式的行为差异与编程范式、惊群问题及 EPOLLEXCLUSIVE 的解决方案。
数据从磁盘到网卡的传统路径涉及 4 次拷贝和多次上下文切换。本文系统剖析 sendfile、splice、vmsplice、MSG_ZEROCOPY 四种零拷贝技术的内核实现、适用场景与性能差异,并以 Kafka 和 Nginx 为案例分析零拷贝在生产系统中的工程实践。
TLS 1.3 将握手从 2 RTT 压缩到 1 RTT,并引入了 0-RTT 恢复模式。本文从工程视角剖析 TLS 1.3 的简化设计——移除了哪些不安全的特性、1-RTT 握手的每一步变化、PSK 模式与 0-RTT 的重放攻击风险控制,以及从 TLS 1.2 升级的工程路径和兼容性陷阱。
打开一个网页要握手几次?TCP 三次 + TLS 一次 = 至少 2 RTT。QUIC 说:我一次搞定,重连甚至 0 次。不是 TCP 不够好,是它的基因决定了它改不动。
WireGuard 用不到 4000 行内核代码替代了 IPSec/IKE 数十万行的协议栈——这不是少写功能,而是用固定密码学原语、固定握手模式和 cryptokey routing 这三个设计决定,换掉了证书体系、协商机和 SPD/SAD 分离。本文钻进源码和协议握手过程,逐层拆解 cryptokey routing 的双向执行、Noise IKpsk2 的 1.5 RTT 握手(含四次 ECDH 的安全属性贡献)、内核多核队列架构、timer 状态机、cookie DoS 防御和三密钥对轮换。
Dowling–Paterson 对 1.5 RTT confirmation 的证明障碍、Donenfeld 的回应、netdev 上「无算法协商」争论、PSK 量子权宜之计,以及 WireGuard 作为 ZTNA 数据面的边界与开放问题。
从 Donenfeld NDSS 2017 的设计哲学出发,拆解 Noise IKpsk2、内核数据路径、运维实践与形式化验证争论——把 WireGuard 从「好用的 VPN」讲成可核对的协议与系统。
RFC 4301 把「要不要保护」与「用哪把密钥」拆成 SPD 与 SAD。本文钉住安全关联、选择器、传输/隧道模式,并与 WireGuard cryptokey routing 做公理对照——不复述选型口号。
RFC 7296 用两个交换、四条消息建立 IKE SA 并捎带首个 Child SA。本文按载荷语义拆开 IKE_SA_INIT / IKE_AUTH,说明 PSK 与证书 AUTH、Cookie 抗 DoS 边界,以及和 WireGuard 1.5 RTT 确认的差异。
从 SKEYSEED 与 prf+ 展开 IKEv2 密钥树,说明 SK_d/SK_e/SK_a 如何喂给 Child SA,以及 CREATE_CHILD_SA、流量选择器与 rekey 改写了哪些运行时对象。
数据面几乎总是 ESP:拆开隧道模式封装、AEAD 与 EtM、anti-replay 窗口,以及 NAT 场景下 UDP/4500 封装如何改写外层五元组却保持 SPI 查找语义。
把 RFC 4301 的 SPD/SAD 映射到 Linux 6.6 的 xfrm policy/state:查看出站 xfrm_lookup、入站策略检查与 ip xfrm 观测面,并给出本机 netns 下手工安装 ESP 的对照实验入口。
拆解 strongSwan 的 charon、VICI/swanctl 与 kernel-netlink:配置里的 connections/children/proposals 如何变成 Linux xfrm 的 policy 与 state,并与 VPN 对比文中的站点示例对齐。
在 WSL2 Linux 6.6 上用双 netns + 手工 xfrm 传输模式 ESP 实测 ping 与包计数;复现删除 out policy 后丢包;整理 swanctl/ip xfrm 排障台账与 TS、方向、NAT 类故障模式。
用 Cremers ESORICS 2011 的 IKEv2 形式化结论、RFC 9370 混合密钥交换与 Gazdag 等对 PQ 扩展的 Tamarin 分析,对照 WireGuard 的无协商立场,收束何时仍应选择 IPsec。
作为 WireGuard 系列的对照续作:拆解 RFC 4301 的 SPD/SAD、IKEv2 握手与密钥树、ESP/NAT-T、Linux 6.6 xfrm 与 strongSwan 落盘,并以形式化分析与后量子混合 KE 收束选型边界。
VPN 是企业网络互联和远程访问的核心技术。本文从 IPSec 的 IKE/ESP/AH 协议栈、WireGuard 的 Cryptokey Routing 设计、OpenVPN 的 TLS 隧道模型,到三者在性能、安全、运维复杂度上的工程对比,系统讲解 VPN 技术的选型与部署实践。
汇总本站网络工程系列文章,覆盖分层模型、以太网、IP、TCP、DNS、TLS、HTTP/2/3、CDN、BGP 与故障诊断。
WireGuard 不是把 IPSec 写短一点。NDSS 2017 论文把「正确分层」当成复杂度的来源,用 cryptokey routing、固定原语与带外密钥分发换可审计实现。本文钉住这些设计决定及其边界。
对齐 wireguard.com/protocol 与 NDSS 2017:IKpsk2 消息布局、es/ss/ee/se 四次 DH 的安全贡献、1.5 RTT key confirmation、MAC1/MAC2 cookie,以及 messages.h 中的 rekey 常量。
基于 Linux 6.6 drivers/net/wireguard:wg_xmit 与 AllowedIPs trie、noise 握手入口、encrypt/decrypt worker、messages.h 常量与 netlink 配置面。与 network/89 全景文互补。
在 WSL2 Linux 6.6 上用双 netns + veth 实测 WireGuard 握手与 ping;整理 wg/wg-quick 工作流、AllowedIPs 与 FIB 脱节、漫游、MTU 与明确不适用场景。
源端看不到目标端文件,rsync 凭什么只传改动的几 KB?从 Tridgell 的 rsync 算法出发,用 rsync 3.4.4 源码钉住弱滚动校验的 O(1) 更新、弱+强两级匹配、sqrt 块大小与签名长度随文件增长的权衡,讲清差异是怎么在不传整文件的前提下被算出来的。
rsync 的差异算法落到真实工具里,是 generator/sender/receiver 三个进程在一条管线上跑。本文用 rsync 3.4.4 源码与 wire 行为讲清三角色分工、文件列表与逐文件生命周期、token 字节流格式、强校验协商与版本边界,并在本机内核 6.6 上实测:100 MiB 文件改 1 字节,delta 走约 120 KB,whole-file 走整 100 MiB。
Linux 内核网络参数是系统网络性能的基础旋钮。本文从 /proc/sys/net/ 出发讲收发缓冲区自动调优、TCP backlog、conntrack、SYN flood 防护、TIME_WAIT 管理,并系统化展开多队列网卡 RSS、软件分发 RPS / RFS / XPS 的取舍与调优方法。
把 RDMA(InfiniBand / RoCEv2 / iWARP)与 CXL(CXL.io / CXL.cache / CXL.mem)放在同一张图上看:前者是节点之间的远程 DMA 网络,后者是节点内 / 机架内的内存语义互联。本文按语义层、物理层、一致性模型、失效模式、工程取舍五个维度拆开两者,给出它们各自适合什么问题。
QUIC 已经不是实验性协议——HTTP/3 标准化后,CDN、浏览器和主流服务端框架都在推进 QUIC 支持。本文从工程视角对比主流 QUIC 库的成熟度和性能特征,讲解 CDN/负载均衡器的 QUIC 适配方案、从 TCP 迁移到 QUIC 的渐进路径、QUIC 调试工具链,以及生产环境的部署陷阱和性能调优实践。
eBPF 正在重新定义网络工程——从传统的 iptables/netfilter 规则堆砌,到可编程、可观测、高性能的网络数据平面。本文系统讲解 eBPF 网络程序类型(XDP/TC/Socket)、Map 数据结构、Cilium 的 eBPF 数据平面实现,以及 eBPF 在负载均衡、可观测性和网络安全中的工程实践。
传统网络设备的转发逻辑固化在硬件中。P4 语言让交换机的转发管线可编程——你可以定义自己的包头解析、匹配规则和转发动作。本文从 P4 语言核心概念出发,讲解 Parser/Match-Action/Deparser 的编程模型、可编程交换机芯片(Tofino)的架构、P4 在数据中心和运营商网络中的应用案例,以及 P4 与 eBPF 的定位差异。
生产环境的网络条件远比实验室复杂——延迟抖动、随机丢包、带宽突变、链路故障。本文系统讲解 tc netem 的完整用法、Mininet 虚拟网络拓扑搭建、网络层混沌工程(Toxiproxy/Comcast/tc-netem)的实战方法,以及如何在 CI/CD 流水线中集成网络条件测试,确保应用在恶劣网络下的鲁棒性。
网络工程正处于一个技术变革的交汇点——SmartNIC/DPU 将网络处理从主机 CPU 卸载到专用硬件,CXL 打破了服务器内存的物理边界,io_uring 正在重塑内核态网络 I/O,而 Kernel Bypass 技术在追求极致性能的同时也在寻找与内核生态的平衡。本文系统分析这些趋势的技术本质、工程影响和演进方向。
网络性能测试不是跑个 iperf3 就完了。本文系统讲解网络性能基准测试的方法论——带宽、延迟、丢包率、PPS 的正确测量方式,iperf3 的参数选择与结果解读,netperf 的请求-响应测试,hping3/sockperf 的延迟测量,以及基准测试的统计方法和常见陷阱。
网络延迟优化是延迟敏感应用的核心关注点。本文从 Nagle 算法与 Delayed ACK 的经典交互问题出发,系统讲解 TCP_NODELAY 和 TCP_CORK 的正确用法、中断亲和与 RPS/RFS、Busy Polling、socket 调优、应用层延迟优化,以及延迟分解和定位方法论。
带宽管理是网络工程的核心能力。本文从 Linux tc 的 qdisc/class/filter 三层模型出发,系统讲解 HTB 分层令牌桶、TBF 令牌桶过滤器、FQ/fq_codel 公平队列、tc-bpf 可编程流量控制、netem 网络模拟,以及 QoS 策略设计和容量规划的工程实践。
网络监控不是简单的 ping 和带宽图表。本文系统讲解网络 RED 指标体系、Blackbox Exporter 探针监控、Smokeping 延迟基线、SNMP 与流量采集、NetFlow/sFlow 分析、网络告警策略设计、Dashboard 构建方法论,以及端到端网络可观测性的工程实践。
DDoS 攻击分为容量型、协议型和应用层三大类,防御策略截然不同。本文从攻击分类学出发,系统讲解 SYN Flood 的 SYN Cookie 防御、UDP 反射放大的 BGP Flowspec 清洗、HTTP Flood 的速率限制与行为分析,以及 Anycast 清洗中心的工作原理,构建从边缘到源站的多层 DDoS 防御体系。
WAF 是应用层安全的核心防线,但规则写多了误报高、写少了漏报多。本文从 OWASP CRS 的规则结构、ModSecurity 的规则语法与执行模型、正则 WAF 与语义分析 WAF 的对比、WAF 绕过技巧与防御、误报控制策略,到 WAF 的部署架构选型,系统讲解 WAF 的工程实践。
IDS 和 IPS 是网络安全的纵深防御层。本文从 IDS/IPS 的工程差异、Suricata 的多线程架构与部署模式、Snort 规则语法与自定义签名编写、基于异常的流量基线检测、Eve JSON 日志分析与 SIEM 集成,到性能调优和容量规划,系统讲解网络入侵检测与防御的工程实践。
网络隔离是安全架构的基石。本文从传统 VLAN 的 4096 限制、VXLAN 的 Overlay 隔离机制、SDN 下的 Calico/Cilium Network Policy 工程实践、微分段的设计方法论,到零信任网络架构的分段策略,系统讲解从物理隔离到软件定义隔离的演进和工程落地。
网络取证是安全事件响应的关键环节。本文从全流量捕获 vs NetFlow/sFlow 的取舍、pcap 的存储与检索架构、Zeek 的网络日志分析、威胁狩猎的网络指标(IoC)、攻击路径还原方法论,到取证工具链和证据保全流程,系统讲解网络取证的工程实践。
网络编程模型的选择决定了服务的并发能力上限。本文从阻塞 I/O 到非阻塞、select、poll、epoll,逐步解剖每种模型的系统调用开销、性能边界与适用场景,用 C 代码实测从 C10K 到 C1M 的演进。
当内核网络栈的上下文切换和拷贝开销成为瓶颈时,DPDK 提供了内核旁路方案。本文从 PMD 轮询模型、Hugepage 内存管理、NUMA 亲和到 F-Stack 用户态协议栈,系统讲解 DPDK 的工程原理与生产实践。
XDP 在内核网络栈最早期处理数据包,兼顾 DPDK 级性能与内核生态兼容性。本文从 XDP 的三种执行模式、程序编写实战、AF_XDP 的零拷贝路径到 Facebook Katran L4 负载均衡器的 XDP 实现,系统讲解 eBPF 驱动的高性能包处理。
Reactor 和 Proactor 是网络服务器的两种核心 I/O 处理模式。本文从单线程 Reactor、多线程主从 Reactor、Proactor 与 io_uring 的天然契合,到 Go goroutine、Rust async 和 Java Virtual Thread 的协程网络 I/O 对比,系统分析各模式的适用场景与工程权衡。
系统解剖 CDN 的多层缓存架构——从 DNS 调度到 PoP 内部结构、Origin Shield 回源保护、多 CDN 部署策略。结合实际配置和响应头分析,给出 CDN 架构的工程理解。
深入剖析 CDN 缓存策略的工程实践——TTL 设置方法论、Purge 机制与一致性保证、stale-while-revalidate 的工程价值、缓存命中率优化与常见缓存问题排查。
CDN 对静态资源的加速已成共识,但动态 API 请求同样可以受益于 CDN 的网络基础设施。本文从 TCP 优化、智能路由到边缘计算三个层次,拆解动态加速的技术原理、架构选型与工程实践。
CDN 的 HTTPS 部署涉及边缘 TLS 终止、证书托管、回源加密等多个工程环节。本文系统拆解 CDN HTTPS 的架构模式、证书管理方案、安全最佳实践与常见故障排查方法。
CDN 故障排查是运维工程中的高频场景。本文系统覆盖缓存未命中分析、回源异常诊断、CDN 响应头解读、性能监控体系搭建四个维度,提供从现象到根因的排查方法论。
系统剖析 Nginx 的架构设计:Master-Worker 进程模型的工程细节、epoll 事件驱动机制、Upstream 负载均衡与连接池管理、内存池与缓冲区设计、共享内存与 Worker 间通信,建立 Nginx 从配置到内核的完整理解。
系统剖析 Envoy 代理的架构设计:per-Worker 线程模型与事件循环、Filter Chain 的分层扩展机制、xDS 协议族的动态配置发现、热重启的实现原理与零停机更新、Envoy 在 Service Mesh 中的数据面角色,建立 Envoy 从架构到运维的完整理解。
系统解剖反向代理的三种 TLS 处理模式——终止、透传与重加密。从架构对比到 SNI 路由、证书管理、性能影响与安全权衡,给出生产环境的工程选型依据。
系统剖析反向代理层的性能瓶颈与调优方法——Proxy Buffer 内存控制、上下游 Keepalive 参数协调、HTTP/2 连接复用行为、代理层 CPU/内存/连接数监控与容量规划。
系统讲解 L4 负载均衡的内核实现:IPVS 的工作原理与三种转发模式(NAT/DR/TUN)、调度算法选择、LVS 高可用方案(Keepalived + VIP)、云环境中的 L4 LB(NLB/MetalLB),建立传输层负载均衡的工程能力。
深入讲解 L7 负载均衡的工程实现:HTTP 请求解析与路由决策、基于 Host/Path/Header 的高级路由规则、SSL Termination 的架构位置、L4+L7 混合架构设计,以及 L7 LB 的性能优化与故障排查。
系统讲解负载均衡算法的数学原理与工程实现:Round Robin 及加权变体、Least Connection 及其局限、一致性哈希在 LB 中的应用、P2C(Power of Two Choices)的概率优势,以及真实负载下的算法性能对比与选型。
系统讲解负载均衡中的健康检查工程:主动检查(TCP/HTTP/gRPC)与被动检查的机制差异、假阳性与假阴性的权衡、故障转移的连接排空与优雅下线、Envoy Outlier Detection 的异常点检测,以及健康检查策略的工程设计。
系统讲解全局负载均衡的工程实现:GeoDNS 的原理与精度问题、Anycast 的路由收敛与故障转移、BGP 社区在流量调度中的应用、多活架构的流量切换策略,建立跨地域流量调度的完整知识体系。
系统讲解负载均衡的工程实践:Cookie/IP Hash 会话保持的实现与陷阱、基于权重和 Header 的灰度路由策略、LB 容量估算与扩展方法、高可用 LB 的部署模式,建立从方案设计到生产落地的完整知识体系。
OSI 七层模型和 TCP/IP 四层模型是每本教科书的开头,但大多数工程师学完就忘。这篇文章不重复教科书,而是从工程师的真实需求出发:分层到底帮你解决了什么问题?抽象在哪些场景会泄漏?每一层的核心工程关注点是什么?理解这些,后续排查网络问题时你才知道该从哪一层下手。
以太网是局域网的事实标准,但大多数工程师只知道'网线插上就能用'。这篇文章拆解以太网帧的真实结构、MTU 与 MSS 的关系、PMTUD 黑洞的成因与排查、VLAN 标签对帧大小的影响,以及数据中心 Jumbo Frame 的性能收益与部署陷阱。理解链路层,才能排查那些'莫名其妙的丢包'。
IPv4 首部的每个字段都有工程含义——TTL 不只是'生存时间',DF 位决定了 PMTUD 能否工作,IP 分片在现代网络中几乎等于 bug。这篇文章逐字段解读 IPv4 首部,分析分片的工程代价,剖析路由表查找的最长前缀匹配原理,并用 tcpdump 和 ip 命令实际观察每一个行为。
IPv6 不只是'地址变长了'——它简化了首部、取消了广播、用 NDP 替代了 ARP、改变了分片策略。这篇文章从工程实践出发,覆盖 IPv6 地址架构、NDP 协议、SLAAC 自动配置、双栈部署的常见陷阱、Happy Eyeballs 算法,以及 NAT64/DNS64 的迁移方案。
ping 超时不代表'网络不通',traceroute 的星号不代表'那一跳有问题'。这篇文章拆解 ICMP 协议的工程本质——每种类型和代码的含义、ping 和 traceroute 的三种实现方式、ICMP 限速与防火墙行为对诊断的干扰,以及如何用 ICMP 构建系统化的网络诊断方法论。
深入剖析 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 用显式标记替代丢包信号。本文从协议设计、内核实现到生产部署,深入剖析这三项扩展的工程价值与落地挑战。
UDP 不是'不可靠的 TCP',它是一张白纸——不做连接管理、不做流控、不做重传,把所有决策权交给应用层。本文从 UDP 的协议本质出发,剖析它在游戏、视频、DNS、QUIC 等场景中的工程用法,深入分析 MTU/分片/NAT 穿越等工程陷阱,并给出高性能 UDP 编程的内核调优方法。
TCP 的可靠传输是一种固定策略——全量有序、丢包即重传、拥塞窗口统一管理。但很多场景需要'可定制的可靠性':游戏要低延迟重传、视频要部分可靠、RPC 要多路复用无队头阻塞。本文深入对比 KCP、ENet、QUIC 三个在 UDP 上构建可靠传输的框架,剖析它们的 ARQ 策略、流控设计和工程取舍。
SCTP 在协议层面解决了 TCP 的两个结构性缺陷——单路径和单流——提供原生的多宿主故障切换和多流无队头阻塞传输。它在电信核心网中广泛部署,但在公网上几乎不可用。本文剖析 SCTP 的协议设计、四次握手安全机制、多宿主工程实践,以及它为何在部署竞争中输给了 QUIC。
传输层协议的选择决定了应用的延迟、吞吐量、可靠性和部署可行性。本文从延迟、吞吐、可靠性、NAT 穿越四个维度系统对比 TCP、UDP、QUIC、SCTP 四种传输协议,给出 Web 服务、游戏、IoT、实时音视频、RPC 等典型场景的选型决策框架和迁移路径。
DNS 是互联网最基础的目录服务,也是最脆弱的单点之一。本文从 wire format 出发逐字段解析 DNS 报文结构,详解 A/AAAA/CNAME/MX/SRV/TXT/NS/SOA 等记录类型的工程用途,分析 EDNS0 扩展与 DNS over TCP 的触发条件,结合 dig +trace 完整实操展示 DNS 解析的真实链路。
一个域名从浏览器到最终 IP 地址,经历了浏览器缓存、操作系统缓存、Stub Resolver、递归解析器、权威服务器多层解析和缓存。本文完整追踪 DNS 解析的每一跳,剖析递归与迭代查询的差异,详解各级缓存的 TTL 行为和否定缓存的工程影响,分析公共 DNS、运营商 DNS 与自建 DNS 的选型决策。
DNS 解析延迟直接影响用户体验和服务可用性。本文从浏览器 DNS Prefetch、服务端预解析、TTL 策略设计、本地 DNS 缓存部署(systemd-resolved / dnsmasq / CoreDNS)四个维度,系统性地分析 DNS 性能优化的工程实践,包含延迟量化、缓存命中率提升和故障切换加速的完整方案。
DNSSEC 通过数字签名保护 DNS 应答的完整性和真实性,但部署率至今不到 30%。本文从 RRSIG、DNSKEY、DS 三种核心记录的工作原理出发,详解信任链的构建过程、KSK/ZSK 双密钥体系与轮换流程,分析验证失败的排查方法和部署的真实工程成本。
DNS 明文传输让运营商、WiFi 热点运营者和网络中间人能够窃听和篡改 DNS 查询。DoH、DoT、DoQ 三种加密 DNS 协议各自解决了不同场景的需求。本文对比三种协议的技术细节、性能差异和部署方式,分析企业环境中加密 DNS 的选型决策与落地实践。
DNS 故障是最常见也最难排查的网络问题之一。本文系统性地覆盖 DNS 超时、NXDOMAIN、SERVFAIL、劫持四大故障类型的诊断方法,详解 dig、nslookup、drill 的高级用法,提供 DNS 故障的 SRE 应急手册和常见配置错误汇总。
TLS 1.2 握手是 HTTPS 的基础机制。本文逐包分析完整握手的每一步——ClientHello 的密码套件协商、ServerHello 的参数选择、证书验证、密钥交换(RSA vs ECDHE)的安全差异,以及 ChangeCipherSpec 到 Application Data 的完整流程。结合 Wireshark 抓包和 OpenSSL 命令实操。
证书过期宕机是最常见也最可避免的生产事故。本文从工程角度剖析 X.509 证书结构、PKI 信任链的工作原理、ACME 协议与 Let's Encrypt 的自动化部署、私有 CA 的搭建实践,以及 cert-manager 在 Kubernetes 中的证书管理方案。覆盖证书监控、轮换策略与过期告警的完整工程体系。
TLS 握手的性能开销是 HTTPS 服务的隐性成本。本文从会话恢复(Session Ticket、PSK Resumption)、OCSP Stapling、AES-NI 硬件加速三个维度剖析 TLS 性能优化的工程实践,给出 Nginx/OpenSSL 的完整配置方案与基准测试方法论。
TLS 协议在过去二十年里暴露了一系列严重漏洞。本文从攻击原理到防御工程,系统性剖析 BEAST、POODLE、Heartbleed、DROWN 等经典攻击的技术本质,详解版本降级攻击与 TLS_FALLBACK_SCSV 防御、CBC padding oracle 攻击的数学原理、以及生产环境的 TLS 安全配置检查清单。
HTTP/1.1 是 Web 的基石协议,至今仍承载着大量流量。本文从工程视角深入剖析 HTTP/1.1 的持久连接机制、管线化的失败原因、队头阻塞的本质、域名分片的工程实践,以及 HTTP/1.1 在现代架构中仍然重要的场景和调优方法。
深入剖析 HTTP/2 的二进制帧格式、流多路复用、HPACK 头部压缩与 Server Push 的工程实践。从协议设计到 Nginx/Go 配置,覆盖 HTTP/2 的工程挑战与性能优化。
系统剖析 HTTP 缓存体系:Cache-Control 指令全表、ETag 与 Last-Modified 的条件请求、Vary 头的工程陷阱、CDN 与浏览器缓存的交互行为。从缓存策略设计到缓存失效排查的完整工程实践。
系统剖析 Cookie 的安全属性(Domain/Path/Secure/HttpOnly/SameSite)、第三方 Cookie 的消亡与替代方案、Session 管理工程实践与 CSRF 防护的现代实践。
深入对比 gzip、Brotli 和 zstd 三种 HTTP 压缩算法的压缩率、速度和 CPU 开销。覆盖 Content-Encoding 与 Transfer-Encoding、动态压缩与预压缩策略、Nginx/CDN 压缩配置和压缩级别的工程权衡。
系统剖析 HTTP 安全头的工程实践:CORS 预检与跨域策略、CSP 内容安全策略的渐进部署、HSTS 与 Preload、X-Frame-Options、Referrer-Policy。覆盖安全头的审计方法与自动化测试。
系统讲解 HTTP 调试的完整工具链:curl 高级用法、Chrome DevTools Network 面板深度使用、mitmproxy 的拦截与改写、TTFB 分解与性能分析方法论。覆盖从开发调试到线上排查的全场景。
系统讲解 WebSocket 协议的工程实践:握手升级流程、二进制帧格式、Ping/Pong 心跳机制、断线重连策略、负载均衡器适配、单机百万连接的内核调优与架构设计。
系统剖析 gRPC 的协议设计与工程实践:四种通信模式、HTTP/2 帧映射、Protobuf 编码效率、gRPC 负载均衡挑战(L7 vs client-side)、连接管理、拦截器、错误处理、性能调优与 gRPC-Web 的限制。
系统讲解服务端推送的轻量方案:SSE 协议与事件流格式、自动重连机制、长轮询的实现模式与超时策略、短轮询/长轮询/SSE/WebSocket 四种推送方案的选型矩阵。
系统剖析 MQTT 协议的工程实践:连接管理、Clean Session 与 Persistent Session、三种 QoS 级别的消息流与可靠性、Retained Message、Last Will、MQTT 5.0 新特性、Broker 架构设计。
从延迟、吞吐、开发效率、生态成熟度四个维度对比 REST、gRPC、GraphQL、WebSocket,给出微服务内部与面向客户端的选型决策树,讨论混合架构模式与迁移路径。
深入分析 WebTransport 基于 QUIC 的浏览器传输能力:可靠流与不可靠数据报的工程场景、WebCodecs 的媒体处理管线、与 WebSocket/WebRTC 的对比、当前浏览器支持现状与迁移路径。
系统讲解 tcpdump 的工程实战:BPF 过滤语法完整指南、滚动捕获策略、时间戳精度控制、容器/Pod 环境抓包、高级用法与性能优化,让抓包成为系统化的诊断方法。
系统讲解 Wireshark 的深度分析能力:Display Filter 高级语法、TCP 流图与 IO Graph、Expert Information 各级别含义、TCP 分析标记解读、TLS 解密配置、自定义 Lua 解析器编写。
系统讲解网络延迟的分解方法论:从 DNS 到 TCP 到 TLS 到 TTFB 到传输的全链路延迟拆解,Wireshark RTT 测量、mtr/hping3 路径分析、内核协议栈延迟追踪,建立从'用户说慢'到精确定位瓶颈的工程方法。
系统讲解网络故障排查的方法论:OSI 分层排查法、连通性/性能/间歇性三类故障的诊断路径、排查决策树、工具链选择、真实故障案例复盘,建立从'网络不通'到精确定位根因的工程能力。
系统讲解 Linux 网络诊断工具链:ss 的过滤语法与性能优势、ip 命令族全景、conntrack 连接追踪、/proc/net/ 文件解读,建立从 Socket 状态到连接审计的工程能力。
系统讲解 eBPF 在网络诊断中的工程应用:bcc 工具集(tcplife/tcpretrans/tcpdrop)的使用场景、bpftrace 自定义网络探针编写、XDP 丢包分析、内核协议栈延迟追踪,建立基于 eBPF 的系统化网络诊断方法。
深入网络编程,实现一个异步 TCP 服务器。学习如何使用 user_data 管理连接上下文,处理 Accept, Read, Write 链式调用。