本章导读

卷七把卷六的并发骨架工业化成网络栈:三块地基(地址模型——全卷货币;事件端口——五后端引擎心脏;缓冲链——数据面货币)→ 两种传输(TCP 三章——金标准在 ch66;UDP 一章)→ 中间层(代理——SOCKS5/CONNECT 的托管拨号)→ 收官(net-misc——分帧、端口文件与网卡)。第 61 章说"骨架装上 TCP/TLS/HTTP 就是卷七"——本卷兑现前半句(TCP/UDP/代理装好了),TLS 与 HTTP 在卷八/九。

本卷知识地图

1地基地址模型(62)+ 事件端口五后端(63)+ 缓冲链(64)
2服务DNS 解析器——引擎亲和(65)
3TCP连接与读写(66 金标准)+ 背压/发送族/服务端(67)
4UDP双形态/批量/组播(68)
5中间层代理双协议托管拨号(69)
6收官分帧、端口文件与网卡信息(70——P11)

一条主线:骨架的工业化映射

卷七的每章都能映射回第 61 章骨架的一个组件——这是本卷的阅读地图。调度器泵 → 事件端口(ch63:PollFor 的底层等待;readiness/completion 双形态对应骨架的回调 vs 提交两种姿势);连接协程 → Stream 回调(ch66:Accept/Read/Close 事件表是协程直线逻辑的引擎表达);计算外挂 → SendFile/Worker 侧操作(ch67:重活外挂的 IO 版——内核文件发送与 Post 投递);消息总线 → 缓冲链直移(ch64:统计消息的段链版——SendBuffer 零拷贝);服务组停机 → 状态机+Close 协议(ch66-67:CLOSED 唯一终态、停机三件套——组 Cancel 的引擎形态)。读每章前回看骨架图——骨架是地图、引擎是地形。

两条横切纪律

全卷贯穿两条从卷六延续的纪律。零拷贝纪律:数据从端口到处理者到发送——引用链承载(ch64 四类追加 + ch67 发送五档——数据面所有权全集);拷贝只在边界(协议头连续化 Pullup、跨界复制 Send)。Worker 纪律:引擎回调在 Worker 线程——Buffer/Read 等直移操作仅 Worker 内、跨线程经 Post(第 56 章调度器绑定的引擎版)——零锁的代价是位置纪律。两条纪律在 TCP/UDP/代理各章反复执法——它们是骨架三零指标(泵零阻塞/池零等待/消息零锁)的逐章展开。

与前后卷的衔接

向前衔接:卷六的并发工具全部在此上岗(Future 收 IO 结果、取消树穿端口、任务池挂重计算——金标准章是全家福);卷五的观测管线监控引擎(水位/状态/统计字段——ch63/67 的观测位)。向后衔接:卷八 TLS 套在 Stream 上(ch66 透明性保证)、卷九 HTTP 套在 TLS 上、卷十 xhttp 全家桶——传输层的质量决定整栈质量。net-misc 收官的帧/网卡工具是协议层与运维的后勤。

三类读者三种走法

服务端开发者(主力):地基三章(62-64)按序精读——它们是全部传输章的词汇表;TCP 金标准(66)逐行读(它是引擎使用的完全范式);UDP/代理按业务涉取。嵌入式/IoT 开发者:分外珍惜 select 兜底(ch63——无专用后端的平台)与 UDP 轻量性(ch68——资源受限的传输首选);TCP 进阶章按内存预算取舍(SendFile 的块预算、WriteLimit 的上限)。协议开发者(写自定义协议/TLS 实现):缓冲链章(64)与端口章(63)是你的直接工具——段链+零拷贝+双形态是协议底座原料;TCP 章的状态机与停机是你的行为参照。三类读者共同依赖地址模型(62)——全卷第一课。

一个提醒:网络层的"简单"是分层的恩赐

新手觉得 socket 简单(几行代码连通)、老手知道网络层最难(乱序/重传/缓冲/背压/停机全在细节)——这个反差的根源是分层把复杂度藏在了接口下面。XRT 的网络层把藏起来的显形回来:状态机有名字(四态)、背压有数字(Pending/WriteLimit)、停机有协议(三件套)、所有权有类型(五档发送)——显形的复杂度才是可控的复杂度。读卷七时如果感到"比 socket 难"——那是你在看 socket 下面本来就存在的东西。带着这个视角,卷八 TLS(更深的分层)与卷九 HTTP(协议之上的协议)的复杂度你会觉得理所当然——每层都在显形下一层的隐藏契约。

性能观:网络栈的三级优化位

网络性能的优化位在三个层级,先知道位置再谈调优。引擎级(ch63):后端选择(引擎自动——io_uring vs epoll 的差异)、Worker 数量(ch60 经济学)、批量接口(Vec 族——摊还系统调用);连接级(ch66-67):写预算(太小伤吞吐、太大失去背压)、缓冲池配置(ch64——段大小与水位)、Nagle/延迟类平台项(Stream 配置);应用级(骨架层):连接池复用(TCP 握手摊销)、流水线(请求重叠)、协议分帧效率(ch70 的帧工具)。三级由底向上收益递减、由顶向下可控性递增——先量后调(第 137 章带工具回来)。本卷各章的"基准"小节就是取数示范。

学习检验(离开本卷前自测)

合上书回答七问:地址模型的区域 ID 与列表语义各解决什么?端口的 readiness/completion 怎么选、能力怎么查?缓冲四类追加对应哪四种所有权?TCP 四态与停机三件套?发送五档按什么选、写预算怎么防慢客户端?UDP 双形态的分界与 MTU 坑位?代理的托管语义与透明性保证什么?最后:给一个"每连接一协程+文件下载+代理出站"的服务,画出组件图并标注每层的背压位——七问顺畅、组件图能画,卷七过半(net-misc 在下阶段收尾)。

📖 本章涉及的 API 参考手册:net(247 个条目)tcp(81 个条目)

点击查看完整签名、参数约束、返回值与错误说明