**1. 干什么** 网卡硬件负责电信号或无线电波的发送与接收,不理解 IP 地址与 HTTP。TCP/IP 协议栈运行在内核,完成分层封装、排队、重传与分发。用户态程序只交付待发字节并取回已收字节,不直接操作网卡。 **2. 谁在调** * 用户态主体:curl、wget、nc 等网络程序。 * C 库封装层:socket 系列函数封装系统调用。 * 内核态主体:协议栈(TCP、IP、链路层)、收发缓冲区、网卡驱动。 **3. 做什么业务** 发送时,用户态字节经系统调用进入内核,协议栈依次附加 TCP 头(源目端口)、IP 头(源目地址)、网卡帧头,再交驱动指挥网卡发出。接收时反向拆层并放入接收缓冲区。连接是否建立、端口是否可达,是内核连接表与缓冲区的状态,不由用户态程序持续值守。 **4. 组件清单** * 网卡设备与驱动 * TCP/IP 协议栈分层 * 发送 / 接收缓冲区 * 内核连接状态表 **5. 最小可运行** ``` # 查看网卡列表与本机监听端口 ip link ss -tlnp ``` 代码说明:第一条列出网卡设备与链路