网络协议依赖关系与 AI 时代通信协议完整指南

王亚博(Abel Wang)· 2026-10-05 · 网络基础 / AI Agent

〇、先回答:视频说的对吗?

基本全对——标准的网络知识体系,无一硬伤。三个值得补充的精确化:

1. ARP 的层级位置:说 ARP「依赖数据链路层」不够精确——ARP 是运行在以太网帧之上的辅助协议(直接封装在以太网帧中,不经 IP),它本身是「为 IP 服务」的二层半角色。说「IP 依赖 ARP」是对的。

2. DNS 的 TCP 回退:DNS 默认 UDP 53,但响应超过 512 字节(或启用 DNSSEC)、区域传送时自动改用 TCP 53——这个回退机制值得记住。

3. HTTP/3 改变了游戏规则:「应用层都依赖 TCP」在 HTTP/3 时代不再绝对——QUIC 跑在 UDP 上(RFC 9000),HTTP/3 = HTTP over QUIC over UDP,完全绕开了 TCP。这是近年最重要的协议层变化。

一、分层模型与依赖原则

1.1 两套模型

层OSI 七层TCP/IP 四层核心问题
7应用层应用层为应用提供什么服务
6表示层数据怎么编码/加密
5会话层会话怎么建立维持
4传输层传输层端到端可靠还是快速
3网络层网络接口层怎么跨网找到对方
2数据链路层同一局域网怎么传帧
1物理层↑比特怎么变成信号

1.2 依赖原则(一切的核心)

上层依赖下层提供的服务;下层对上层透明。
排错自底向上:物理通 → 链路通 → IP 通 → 端口通 → 应用通。

每一层只知道下一层能给自己什么,不关心再往下怎么实现。这就是为什么:换 Wi-Fi 还是换网线,浏览器不用改(链路层透明);TCP 负责重传,HTTP 不用自己管丢包(传输层兜底);MCP 从 stdio 换成 HTTP 传输,工具调用逻辑不用改(传输抽象)。

二、经典依赖链

2.1 自底向上的依赖栈

层关键协议依赖谁一句话职责
物理层电/光/无线电—把比特变成信号
数据链路层以太网、ARP*物理层MAC 地址在同一局域网传帧
网络层IP、ICMP以太网(+ARP 解析 MAC)IP 地址跨网路由
传输层TCP、UDPIP端到端:TCP 可靠 / UDP 快
应用层HTTP、DNS、SSH、TLS*TCP/UDP应用语义

*ARP 直接封装在以太网帧中(不经 IP),是「为 IP 服务」的链路层辅助协议;*TLS 严格说是会话/表示层角色,实践中夹在 TCP 与应用协议之间。

2.2 一次 HTTPS 请求的完整依赖链(背下来)

1. DNS 解析     :查缓存 → hosts → 问 DNS 服务器(UDP 53,大响应转 TCP)
2. ARP          :拿到网关 IP,广播 ARP 请求换网关 MAC
3. TCP 三次握手 :与目标 443 端口建连(SYN → SYN+ACK → ACK)
4. TLS 握手     :证书验证 + 密钥协商(TLS 1.3 只需 1-RTT)
5. HTTP 请求    :GET / HTTP/1.1 + Host 头
6. 服务器响应   :200 OK + 内容
7. 渲染与子资源 :页面内每个资源重复 3-6(HTTP/2 多路复用可共用连接)
8. 挥手收尾     :FIN 四次断开(或 keep-alive 保持)

2.3 TCP vs UDP(怎么选)

TCPUDP
连接面向连接(三次握手)无连接
可靠性确认+重传+排序尽力而为
速度慢一点(握手+确认开销)快(无建立开销)
类比靠谱物流公司闪电快递
用例网页/文件/邮件/SSH直播/游戏/DNS 查询/VoIP

三、常用 HTTP 请求

3.1 依赖链

HTTP   → TLS(https 时)→ TCP → IP → 以太网/物理
HTTP/3 → QUIC → UDP → IP(新路线,绕开 TCP)

3.2 版本演进(依赖关系视角)

版本依赖关键特性
HTTP/1.1TCPkeep-alive 复用连接,但应用层队头阻塞
HTTP/2TCP多路复用,但 TCP 层队头阻塞仍在
HTTP/3QUIC/UDP彻底解决队头阻塞,0-RTT 重连,弱网优势

3.3 方法与状态码(最小集)

方法:GET(读)/ POST(建)/ PUT(全量改)/ PATCH(部分改)/ DELETE(删)
状态码:200 OK / 201 Created / 301 302 重定向 / 400 请求错 / 401 未认证 / 403 无权限 / 404 没有 / 429 太频繁 / 500 服务器错 / 502 网关错 / 504 超时

3.4 实用命令

# 基础 GET
curl https://api.example.com/users

# POST JSON(最常用的 API 调用形态)
curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{"name": "abel"}'

# 看完整握手过程(理解依赖链的最好方式)
curl -v https://example.com 2>&1 | grep -E "Trying|Connected|SSL|> |< "

四、WebSocket 与 SSE

4.1 WebSocket 是什么

RFC 6455(2011)。借 HTTP 的门进 TCP 的场:先发一个 HTTP Upgrade 请求,服务器回 101 Switching Protocols,之后这条 TCP 连接升级为全双工长连接——双方随时互发消息,不再受请求-响应配对约束。

依赖链:WebSocket → TCP → IP(必须 TCP,无 UDP 版)
握手  :HTTP GET + Upgrade: websocket + Sec-WebSocket-Key
       ← HTTP/1.1 101 Switching Protocols

4.2 与 HTTP 的分工

HTTPWebSocket
方向请求-响应(客户端发起)全双工(服务端可主动推)
连接短连接为主长连接(心跳保活)
开销每次带完整头帧头仅 2-14 字节
用例API 调用、网页聊天、行情推送、协同编辑、Agent 状态流

4.3 最小示例(浏览器端)

const ws = new WebSocket('wss://example.com/ws');
ws.onopen = () => ws.send(JSON.stringify({type: 'subscribe', channel: 'agent_status'}));
ws.onmessage = (e) => console.log('收到:', e.data);
ws.onclose = () => console.log('关闭(可指数退避重连)');

4.4 亲戚:SSE(Server-Sent Events)

单向版 WebSocket:服务端 → 客户端的持续 HTTP 流(Content-Type: text/event-stream)。LLM 流式输出的标准方案——OpenAI 兼容 API 的 stream: true 就是 SSE。只要「服务端推、客户端收」就选 SSE:更简单、自动重连、过代理友好。

五、模型间通信(LLM API 调用)

5.1 依赖链

你的代码 → HTTPS POST /v1/chat/completions → TLS → TCP → DNS/CDN
流式输出:同一连接上 SSE 流回 token

模型 API 没有发明新传输层,只是把 HTTP 用到了极致。

5.2 OpenAI 兼容接口(事实标准)

curl -X POST https://api.openai.com/v1/chat/completions \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"model": "gpt-6.1-sol",
       "messages": [{"role": "user", "content": "你好"}],
       "stream": true}'

兼容此格式的:OpenAI / DeepSeek / GLM(zai) / Qwen / 本地 vLLM、Ollama 等。stream: true 时响应是 SSE:每行 data: {...chunk...},最后 data: [DONE]。

5.3 流式 vs 非流式

非流式流式(SSE)
首字延迟等全部生成完首个 token 即到
实现简单需处理分片解析
用例批处理、后处理聊天界面、实时反馈

5.4 模型 ↔ 模型通信的三种形态

① API 编排:A 模型输出作为 B 模型输入(脚本串联)——最简单,当前主流。
② A2A 协议(见第七节):Agent 间标准化互操作。
③ 共享工作区:多模型读写同一存储(数据库/文件/消息队列)实现间接协作。

六、MCP(Model Context Protocol)

6.1 是什么

Anthropic 2024-11 开源的模型↔工具连接标准。解决的问题:每个模型接每个工具都写一遍适配(M×N 问题)→ 统一成一个协议(M+N 问题)。类比:USB-C 接口——任何设备插任何线。

6.2 架构与传输

MCP Host(Claude Desktop / 你的 Agent)
  └─ MCP Client(每个 Server 一个连接)
       └─ MCP Server(工具提供方:GitHub/数据库/文件系统/业务 API)

传输层两种(消息格式相同,均为 JSON-RPC 2.0):
stdio:本地进程标准输入输出(最快,适合本机工具);Streamable HTTP:远程 Server,HTTP POST + 可选 SSE(适合云端/共享工具)。

6.3 三大原语

原语方向类比例
Tools模型可调用POST 端点查数据库、发消息
Resources模型可读取GET 端点文件、配置、schema
Prompts提供给用户模板预设分析框架

6.4 消息示例(JSON-RPC 2.0)

{"jsonrpc":"2.0","method":"tools/call",
 "params":{"name":"query_db","arguments":{"sql":"SELECT count(*) FROM users"}},
 "id":1}

七、A2A(Agent-to-Agent Protocol)

7.1 是什么

Google 2025-04 发布(50+ 企业共建)的 Agent↔Agent 互操作标准。MCP 连接「Agent 与工具」,A2A 连接「Agent 与 Agent」——互补而非竞争。

7.2 核心机制

发现:Agent Card(JSON 名片)发布在 /.well-known/agent.json
      (能力、技能、端点 URL、认证要求)
通信:JSON-RPC 2.0 over HTTPS(复用 Web 安全体系)
任务:task 生命周期(submitted → working → completed/failed)
产物:Artifacts(文件/结构化数据)

依赖链:A2A → HTTPS → TLS → TCP → IP——纯 Web 技术栈,零新传输层。

7.3 用例:跨厂商 Agent 协作

你的旅行 Agent(Claude 系)需要订机票
  → 读取航司 Agent 的 Agent Card(发现它有 search_flights 技能)
  → A2A tasks/send 派发子任务
  → 航司 Agent(GPT 系)在自己的环境完成查询
  → 返回 Artifact(航班列表)
  → 你的 Agent 整合结果给用户

全程双方不暴露内部记忆与工具,只交换任务与产物——这是 A2A 与「直接共享 API」的本质区别:不透明协作。

7.4 MCP vs A2A 速记

MCPA2A
连接Agent ↔ 工具/数据Agent ↔ Agent
类比USB-C(设备接电脑)名片+邮件(公司与公司)
一句话给 Agent 发工具箱Agent 之间互相外包任务
发起AnthropicGoogle
传输JSON-RPC over stdio/HTTPJSON-RPC over HTTPS

八、协议选型速查表

场景选什么依赖链
网站/API 调用HTTP/2+TCP
高频 API/弱网HTTP/3QUIC/UDP
服务端主动推(简单)SSETCP
双向实时(聊天/行情)WebSocketTCP
给模型接工具MCPstdio / HTTP
Agent 调 AgentA2AHTTPS
大文件可靠传输TCP(FTP/HTTP)—
实时音视频UDP(RTP/WebRTC)—
域名解析DNSUDP 53(大包 TCP)

九、排错对照表(自底向上)

症状大概率的层排查命令
ping 不通链路层(ARP)/网络层(ICMP)ping → arp -a → traceroute
ping 通但 API 超时传输层(端口)/防火墙telnet host 443、curl -v
TLS 报错证书/系统时间查时间、openssl s_client
API 401/403应用层认证检查 key、token 过期
MCP 连不上stdio 进程没起/HTTP 端点错手动跑 server 命令看 stderr
A2A 发现失败Agent Card 路径/网络curl 对方 /.well-known/agent.json
WebSocket 秒断代理不支持 Upgrade/心跳缺失查 proxy、加 ping/pong

十、一句话总纲

所有新协议都是老依赖栈上的新语义:HTTP、WebSocket、SSE、MCP、A2A——没有一个发明了新的传输层,它们全部站在 TCP/UDP + IP + 以太网的肩膀上,只是约定了新的对话方式。理解了分层依赖,就拿到了一切协议的地图。

边界声明

本文经典网络部分基于 TCP/IP 标准知识体系整理;MCP 规格基于 Anthropic 官方开源仓库,A2A 规格基于 Google 官方发布(协议处于快速演进期,以官方仓库最新版本为准);HTTP/3/QUIC 基于 RFC 9000。文中命令示例以类 Unix 环境为准。

参考来源

一手来源:RFC 9000(QUIC)、RFC 6455(WebSocket);Anthropic Model Context Protocol 官方仓库(github.com/anthropics/model-context-protocol);Google A2A 官方发布(github.com/google-a2a/A2A);OpenAI API 官方文档
缘起:网络工程师-波哥《梳理网络协议的依赖关系》(抖音/B站)