玳瑁的嵌入式日记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)。
相关推荐
程序员夏洛5 分钟前
HTTP 2.0 和 3.0 有什么区别?
网络·网络协议·http
丶浅行DE时光15 分钟前
管道式电磁流量计选型指南 介质腐蚀与工况适配方案推荐
大数据·网络·人工智能·科技·推荐算法
段一凡-华北理工大学40 分钟前
高炉智能布料技术与炉料分布优化~系列文章03:布料矩阵解码:环位、角度、圈数与料流的量化控制
java·网络·人工智能·矩阵·高炉智能化·高炉布料矩阵优化·高炉智能布料技术
云飞云共享云桌面3 小时前
医疗器械设备研发:多人同时操作 SolidWorks,怎样依靠单台服务器替代多工作站
运维·服务器·网络·数据库·制造
Sylvia33.4 小时前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
鼹鼠SDN7 小时前
没有公网 IP,如何在外面访问家里的打印机、摄像头和整个局域网?
网络·网络协议·tcp/ip
小诗懂技术9 小时前
【网络通信UDP】基础 进程间不同主机的通信
运维·服务器·网络
DM今天肝到几点?11 小时前
AI 安全进入「攻防同频」:Gemini 3.8 Flash Cyber 上线、Astra 触及关键级、HiddenLayer 融资 1 亿美元
网络·人工智能·深度学习·安全·语言模型·开源·知识图谱
幼儿园蛋小黑12 小时前
TCP 并发:从原理到高并发实践
网络·网络协议·tcp/ip
我爱cope14 小时前
【计算机网络 | 网络层11:ICMP 协议:Ping 和 Traceroute 的底层原理】
网络·学习·计算机网络