ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

一个数据包的“打包“之旅:网络分层与数据封装图解

一个数据包的“打包“之旅:网络分层与数据封装图解 关键词网络分层、OSI、TCP/IP、数据封装、Wireshark、抓包、TCP三次握手本文为安全学习与授权测试用途所有操作均在本地环境完成请勿用于未授权目标。文章目录0. 一个每天都在发生、却少有人看透的过程1. 为什么要分层2. 两个模型OSI 七层 vs TCP/IP 四层OSI 七层理论模型3. 数据封装数据包是怎么打包的一次访问网页的完整封装接收方解封装关键传输途中哪些变、哪些不变4. PDU每层数据单位的名字5. 用 Wireshark 看真实封装6. 分层排障哪一层出了问题7. 动手实验8. 写在最后0. 一个每天都在发生、却少有人看透的过程你在浏览器输入一个网址、按下回车几百毫秒后网页就显示出来了。这几百毫秒里数据从你的电脑出发经过家里路由器、运营商、骨干网络到达千里外的服务器再原样返回。这件事复杂到惊人信号怎么传、数据怎么找到对方、出错怎么办、网页内容怎么组织……那它为什么还能如此稳定答案就两个字——分层。而理解分层最关键的机制叫数据封装你发出的数据会被一层层套信封打包出去。这篇文章我们用图解的方式把这个过程彻底讲清。它是你看懂抓包、排查网络问题、学习内网渗透的地基。1. 为什么要分层如果让一个协议把传信号、找地址、保可靠、组织网页所有事全管了那么任何一个环节变化网线换 Wi-Fi、IPv4 换 IPv6整个系统都得推倒重来。分层的思路是把通信过程切成若干层每层只解决一个明确问题、为上一层服务且不关心其他层的内部实现。这带来三个直接好处职责清晰信号、寻址、可靠性、应用数据各有归属出问题能按层定位可独立替换网线换光纤、以太网换 Wi-Fi只影响最底层上面的 TCP、HTTP 毫无感知标准化互通不同厂商设备只要遵守同一层协议就能对接。寄快递是个好类比你只关心包裹内容和收件人网点负责揽收干线负责城际转运分拣中心按地址路由。每一层都不关心包裹里是什么只在外面套上自己这层的单据。2. 两个模型OSI 七层 vs TCP/IP 四层OSI 七层理论模型层名称主要职责典型协议/设备7应用层面向应用的数据语义HTTP、DNS、SSH6表示层格式、编码、加密TLS、JPEG5会话层建立管理会话RPC4传输层端口、可靠传输TCP、UDP3网络层跨网络寻址路由IP、ICMP路由器2链路层同链路帧传输、MAC以太网、Wi-Fi、ARP交换机1物理层比特、信号网线、光纤、网卡OSI 适合教学但上三层在真实互联网里没严格分开。实际跑的是更精简的 TCP/IP 模型TCP/IP 层对应 OSI核心协议数据单位应用层5/6/7HTTP、DNS、SSH数据 data传输层4TCP、UDP段 segment / 数据报网际层3IP、ICMP包 packet网络接口层1/2以太网、Wi-Fi帧 frame / 比特教学中常画成五层把网络接口拆成链路层 物理层它和 Wireshark 的展示完全吻合。记忆要点越往上越靠近人和程序越往下越靠近硬件。3. 数据封装数据包是怎么打包的这是全文核心。发送数据时数据从应用层自上而下每经过一层就加上自己这层的头部像套信封。一次访问网页的完整封装假设浏览器产生一个 HTTP 请求逐层打包过程如下① 应用层数据浏览器生成 HTTP 请求报文GET /index.html HTTP/1.1 Host: example.com这层只关心要什么资源不管怎么送到。② 传输层TCP 段 segment加上 TCP 头部关键字段TCP 头字段作用源端口 / 目的端口标识哪个进程发出、交给服务器哪个进程HTTP80HTTPS443序号给字节编号保证按序重组、发现丢失确认号 ACK告诉对方收到哪了实现可靠传输标志位 SYN/ACK/FIN建立连接、确认、关闭握手挥手靠它窗口流量控制加完成为一个TCP 段。如果是 UDP只加极简头端口、长度、校验和。③ 网络层IP 包 packet加上 IP 头部IP 头字段作用源 IP / 目的 IP端到端标识谁发给谁跨网络寻址核心TTL每经过一个路由器减 1减到 0 丢弃防止无限环路traceroute 原理协议号上层是 TCP(6)、UDP(17) 还是 ICMP(1)首部校验和检查 IP 头损坏加完成为IP 包负责让数据跨网络被路由器正确转发。④ 链路层以太网帧 frame在当前这段链路上加帧头帧尾帧字段作用目的 MAC这一跳交给谁先给默认网关 MAC源 MAC这一跳谁发出你的网卡 MAC类型 EtherType上层是 IPv4(0x0800)、IPv6(0x86DD)、ARP(0x0806)帧尾 FCS校验这一帧有没有传错加完成为以太网帧。注意 MAC 只在当前这段链路有意义。⑤ 物理层比特 bit帧的二进制被网卡转成电信号、光信号或无线电波以 0/1 比特流发出。接收方解封装接收完全反过来数据自下而上每层拆掉自己的头部、检查后把载荷上交物理层收比特 → 链路层校验 FCS、拆帧头取出 IP 包 → 网络层检查 IP/TTL、拆 IP 头取出 TCP 段 → 传输层检查端口序号、拆 TCP 头取出 HTTP → 应用层 Web 进程解析请求。关键传输途中哪些变、哪些不变数据包往往经过好几跳路由器这是理解分层的精髓层经过路由器时应用数据、TCP 头不变端到端IP 头源/目的 IP一般不变端到端NAT 才改链路层帧头MAC每一跳都重新封装、会变路由器工作在网络层它解封装到 IP 层、查路由表决定下一跳再用下一段链路的帧头重新封装。所以MAC 地址是逐跳的每段链路用相邻两个接口的 MACIP 地址是端到端的从源到目的始终不变除非经过 NAT。4. PDU每层数据单位的名字层数据单位英文应用层数据 / 报文data / message传输层段TCP/ 数据报UDPsegment / datagram网络层包packet链路层帧frame物理层比特bit严谨交流时说一个 TCP 段“一个以太网帧能精确表达你指哪一层而不是笼统地说数据包”。5. 用 Wireshark 看真实封装打开 Wireshark 抓包包详情面板就是按封装层次从上到下排列的每层可展开Frame 1: 74 bytes on wire (592 bits) ... ← 帧层面这一帧多大 Ethernet II, Src: xx:xx, Dst: yy:yy ← 链路层MAC、类型 Internet Protocol Version 4, Src: 192.168.1.10 ← 网络层IP、TTL Src: 192.168.1.10, Dst: 93.184.216.34 TTL: 64, Protocol: TCP (6) Transmission Control Protocol, Src Port: 53000 ← 传输层端口、序号、标志 Src Port: 53000, Dst Port: 80 Flags: SYN Hypertext Transfer Protocol ← 应用层载荷 GET /index.html HTTP/1.1从外到内 物理层到应用层 解封装的逆序。看懂这个对应你就真正理解了封装。Wireshark 还能用颜色区分协议并提供 “Follow TCP Stream” 把一次连接的包重组成完整对话。6. 分层排障哪一层出了问题分层最实用的价值是系统化排障从下往上逐层定位层排查动作典型故障现象物理层看网卡灯、ip link是否 UP网线断、网卡禁用链路层ARP 能否解析、ip neigh网关 MAC 学不到网络层ping 网关、ping 8.8.8.8IP 不通、路由错误传输层nc -vz IP 端口、TCP 握手端口没开、防火墙应用层curl -v、DNS 解析HTTP 报错、DNS 失败经典排查路径ping网关IP# 通 → 物理/链路/本地网络层正常ping8.8.8.8# 通 → 能出外网不通 → 网络层/出口nslookupexample.com# ping IP 通但域名不通 → DNS应用层curl-vexample.com# 看 TCP 握手与 HTTP连不上 → 传输层端口/防火墙“能 ping 通但网页打不开”立刻缩小到 DNS、目标端口/防火墙、或 HTTP 服务本身不用怀疑网线。这套思路在排查反弹 Shell 为什么连不回来时同样好用。7. 动手实验iplink# 网卡与链路层MAC、UP 状态ipaddr# 各接口 IP网络层iproute# 路由表默认网关 下一跳ipneigh# ARP 表MAC 与 IP 对应ping-c4网关IP# 网络层到网关通不通ping-c48.8.8.8# 网络层能否出外网sudotcpdump-iany-nn-c5tcp port 80# 抓包看封装有图形界面时强烈建议打开 Wireshark 开始抓包访问一个 http 网站点开一个包对照第五节逐层展开——这一遍胜过读十遍理论。8. 写在最后这篇文章最该带走的三点第一分层让每层职责单一、可独立替换OSI 七层是理论互联网实际跑 TCP/IP 五层。第二封装 发送时自上而下逐层加头数据→段→包→帧→比特解封装反过来IP 端到端不变MAC 逐跳重封这是理解路由和内网的关键。第三Wireshark 详情面板就是封装结构的直观展示排障时从物理层到应用层逐层定位效率最高。如果你想顺着网络层继续看子网划分、路由决策、NAT 原理以及更多从零基础到内网/域控的体系化安全文章可以访问我的安全学习站点站点地址详见官网【光跃Eason·安研社】里面有完整的漏洞实战导航、成体系的网络与安全文章以及配套靶场环境具体联系方式见站点相关页面也欢迎加微信交流。我会持续更新网络基础和抓包实战内容我们下篇文章见。免责声明本文仅用于网络安全研究与教学所有测试均在本人授权的环境中进行。请严格遵守《网络安全法》切勿对任何未授权系统测试。技术本身中立关键在于使用它的人。
返回列表