玳瑁的嵌入式日记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)。
相关推荐
乘乘凉6 小时前
简陋的RPC
服务器·网络·rpc
大有数据可视化6 小时前
安全与效率兼得:工业控制系统如何借力数字孪生实现双赢?
网络·数字孪生·工业空盒子
Linux运维技术栈6 小时前
Cloudflare安全规则实用指南:从路径拦截到IP限制的10个经典范例
网络·tcp/ip·安全
WhoisXMLAPI7 小时前
WhoisXML API 推出 TLD RDAP 监测工具
网络·安全·github
三项超标7 小时前
AI入坑: Trae 通过http调用.net 开发的 mcp server
网络·网络协议·http
喜欢你,还有大家8 小时前
Linux网络服务——基础设置
linux·服务器·网络
绵绵细雨中的乡音8 小时前
HTTP 协议详解
网络·网络协议·http
耐达讯通信技术8 小时前
“乾坤大挪移”:耐达讯自动化RS485转Profinet解锁HMI新乾坤
运维·网络·物联网·自动化·信息与通信
耐达讯通信技术8 小时前
惊爆!耐达讯自动化RS485转Profinet,电机连接的“逆天神器”?
运维·网络·人工智能·科技·网络协议·自动化