玳瑁的嵌入式日记D33-0904(协议头)

数据封包过程

当应用程序(比如客户端要发送 "Hello" 消息)有数据要传输时:

  1. 应用层:应用程序会把原始数据(像 "Hello" 字符串)准备好,这是应用层能识别和处理的应用数据。
  2. 传输层:传输层会给应用数据添加传输层的头部信息。以 TCP 协议为例,头部会包含源端口、目的端口、序列号、确认号等信息。这些信息的作用是为了在传输过程中能对数据进行可靠传输的控制,比如确保数据按序到达、进行流量控制等,添加头部后就形成了传输层的报文段。
  3. 网络层:网络层会给传输层传来的报文段添加网络层头部。以 IP 协议为例,头部包含源 IP 地址、目的 IP 地址、协议类型(表明传输层用的是 TCP 还是 UDP 等)等信息,这些信息用于确定数据在网络中的传输路径,添加头部后就形成了 IP 数据报。
  4. 数据链路层:数据链路层会给网络层传来的 IP 数据报添加数据链路层的头部和尾部。头部包含源 MAC 地址、目的 MAC 地址等信息,尾部包含用于校验数据完整性的帧校验序列(FCS)等信息,添加后就形成了数据帧。之后,数据帧会通过物理介质(如网线、无线信号等)发送出去。

数据拆包过程

当数据帧到达目的设备(比如服务器)后:

  1. 数据链路层:首先对收到的数据帧进行校验,如果 FCS 校验通过,就会去掉数据链路层的头部和尾部,然后把剩下的 IP 数据报交给网络层。
  2. 网络层:网络层会去掉 IP 头部,检查目的 IP 地址是否是自己,如果是,就把剩下的传输层报文段交给传输层。
  3. 传输层:传输层会去掉传输层头部,根据头部里的信息(如序列号等)对数据进行重组、确认等操作,然后把应用数据交给应用层。
  4. 应用层:应用层最终获取到原始的应用数据(比如 "Hello" 字符串),然后进行相应的处理,这样就完成了整个数据从发送到接收的过程。

HTTP 基于 TCP 实现,核心分 4 步,重点是 "建连接→传请求→回响应→关连接":

  1. 建连接(TCP 三次握手)

    客户端和服务器先 "握手",确认双方能正常通信,建立稳定的数据传输通道(比如:"我要连你"→"我收到了,你连吧"→"好的,连好了")。

  2. 发请求

    连接通后,客户端给服务器发 "需求"(比如 "我要首页的内容"),包含要什么资源、用什么方式要(如 GET/POST)。

  3. 回响应

    服务器看懂 "需求" 后,处理并返回结果:要么给所需数据(如 HTML 页面、图片),要么告诉客户端结果(如 "找到了""没找到")。

  4. 关连接(TCP 四次挥手)

    数据传完,双方 "挥手" 断开连接,释放资源(比如:"我用完了,关吧"→"知道了,等我收尾"→"我也收尾完了,关"→"好的,关了")。

(若用 "长连接",第 4 步会延迟,后续请求可直接复用连接,不用重复握手)


TCP 头部

标志位名称 比特位位置 符号 核心作用
紧急指针有效位 第 1 位 URG 表示 TCP 报文段中的 "紧急指针" 字段有效,用于发送紧急数据(如中断指令),无需排队。
确认位 第 2 位 ACK 表示 "确认号" 字段有效,用于确认已收到对方发送的 TCP 报文段(通信中大部分报文段会置 1)。
推送位 第 3 位 PSH 要求接收方立即将数据交给应用层(而非缓存),适用于需要实时交互的场景(如 SSH 命令)。
复位位 第 4 位 RST 强制重置 TCP 连接,用于处理连接异常(如对方端口未监听、连接超时),表示 "连接不可用"。
同步位 第 5 位 SYN 用于建立 TCP 连接的 "三次握手":首次握手(客户端发 SYN=1)、第二次握手(服务端回 SYN=1+ACK=1)。
终止位 第 6 位 FIN 用于释放 TCP 连接,标识发送方已无数据要传输,触发 "四次挥手" 过程(双方需分别发送 FIN)。
相关推荐
老蒋新思维4 小时前
创客匠人视角:智能体重构创始人 IP,知识变现从 “内容售卖” 到 “能力复制” 的革命
大数据·网络·人工智能·tcp/ip·创始人ip·创客匠人·知识变现
老蒋新思维6 小时前
创客匠人:认知即资产 ——AI 时代创始人 IP 知识变现的底层逻辑
网络·人工智能·网络协议·tcp/ip·重构·创始人ip·创客匠人
白帽子黑客罗哥7 小时前
渗透测试技术:从入门到实战的完整指南
网络·安全·web安全·渗透测试·漏洞挖掘·网络安全培训
北邮刘老师8 小时前
【智能体互联协议解析】ACPs/AIP为什么还在用“落后”的“中心化”架构?
网络·人工智能·架构·大模型·智能体·智能体互联网
winfield8218 小时前
MCP 协议详解
开发语言·网络·qt
sdszoe49228 小时前
IP地址规划与VLSM技术
网络·网络协议·tcp/ip·vlsm·ip地址规划
m0_569531018 小时前
《K8s 网络入门到进阶:Service 与 Ingress 原理、部署方案及核心区别对比》
网络·容器·kubernetes
广东大榕树信息科技有限公司8 小时前
当运维管理面临挑战时,如何借助动环监控系统提升响应能力?
运维·网络·物联网·国产动环监控系统·动环监控系统
狂奔的sherry9 小时前
WIFI后端功能问题解决
网络
yimengsama9 小时前
VMWare虚拟机如何连接U盘
linux·运维·服务器·网络·windows·经验分享·远程工作