计算机网络到底是什么?我用「网购快递」一次讲清 OSI 七层 + TCP/IP(附 Wireshark 抓包实操)
怪哉老师导言:很多同学背得出"应表会传网数物",一被问"ARP 在第几层、HTTPS 凭什么防窃听、SYN Flood 打的是哪一层"就卡壳。今天不背名词,咱们把七层当成快递公司的七个岗位,一层层拆开看它们到底在解决什么问题——并且每一层都给你对应的真实攻击手法和防护,因为学网安不懂分层,就等于不知道敌人从哪扇门进来。
零、先建立一个最关键的认识:数据不是"移动",而是"被一层层打包搬运"
你发一条微信,数据并没有真的"飞"到服务器。真实发生的是:每一层给数据加一个"快递单"(头部 Header),交给下一层,直到物理层变成电信号/光信号发出去;对方再一层层拆单,还原出消息。这个过程叫封装(Encapsulation)与解封装。
记住下面这张表,后面全靠它:
| 层 | 这一层解决什么问题 | 数据单位(PDU) | 用的"地址" | 典型设备 | 典型协议 |
|---|---|---|---|---|---|
| 应用层 | 你真正想干的事 | 报文/消息 | — | 应用本身 | HTTP/HTTPS/DNS/FTP/SMTP |
| 表示层 | 翻译成双方都懂的格式 | 数据 | — | — | TLS/SSL、编码、压缩 |
| 会话层 | 建立/维持/断开"这次对话" | 数据 | — | — | NetBIOS、RPC |
| 传输层 | 端到端可靠/快速送达 | 段(TCP)/数据报(UDP) | 端口号 | 状态防火墙 | TCP、UDP |
| 网络层 | 跨网络选路送达 | 包/分组 | IP 地址 | 路由器 | IP、ICMP、ARP |
| 数据链路层 | 同一网段内"最后一公里" | 帧 | MAC 地址 | 交换机 | Ethernet、PPP、ARP |
| 物理层 | 实实在在跑数据的介质 | 比特 | — | 集线器、网线 | 802.11、光纤 |
注:ARP 常被说"跨网络层与链路层",但它靠 MAC 干活,考证里多归在链路层。记住"靠 MAC 寻址 = 链路层"即可。
一、应用层:你本人(下单/看货/评价)
这是你直接接触的层,所有业务逻辑的入口都在这里:刷网页用 HTTP/HTTPS,发邮件用 SMTP,解析域名用 DNS。
- 深度点:HTTP 是明文的,账号密码在中间人眼里是裸奔,所以才有了 HTTPS = HTTP + 表示层的 TLS 加密。
- 攻击示例:XSS(跨站脚本)、SQL 注入、CSRF、钓鱼网站——它们全在应用层,因为敌人要骗的是"你本人"和"你的应用逻辑"。
- 防护:输入校验、参数化查询、CSRF Token、HSTS、内容安全策略(CSP)。
二、表示层:打包员(加密 / 压缩 / 编码)
把"应用层的话"翻译成"网络能安全运输的格式",最重要就是TLS/SSL 加密。
- 深度点:TLS 握手时,服务器发证书(含公钥 + CA 签名),客户端验证证书链;之后用非对称加密协商出对称密钥,后续用对称加密传数据(性能考量)。
- 攻击示例:SSL Strip 降级攻击——中间人把
https://偷偷改成http://,让你在明文里把密码交出来;证书伪造/中间人(用户乱点"继续访问")。 - 防护:HSTS 强制 HTTPS、不乱装根证书、留意证书警告。
三、会话层:客服(建立/维持这次"对话")
管理一次连接的建立、维持、断开。你登录后拿到的Session/Token,后续请求靠它证明"还是你"。
- 攻击示例:会话劫持(偷到别人 Session ID 就能顶替身份)、Token 泄露。
- 防护:HTTPS 全程加密传 Token、合理过期时间、绑定 IP/设备指纹。
四、传输层:配送方式(TCP / UDP)—— 端口号决定送给本机哪个应用
解决"端到端送到哪个进程",靠端口号(80=HTTP、443=HTTPS、53=DNS、22=SSH)区分本机应用。
- TCP:面向连接、可靠。三次握手建连,序列号+确认号保证不丢不乱序,流量控制+拥塞控制防堵死;代价是略慢。
- UDP:无连接、不可靠、快。发完不管,适合视频/语音/DNS 查询这种"丢一点无所谓但要快"的场景。
怪哉口诀:TCP 像顺丰保价+签收,UDP 像普通平邮一扔了事。
- 攻击示例(重点):
- SYN Flood(半连接攻击):伪造大量 SYN 却不回 ACK,把服务器"半连接队列"塞满,正常用户连不上。打的就是传输层。
- TCP Reset 注入、端口扫描(探你开了哪些端口)。
- 防护:SYN Cookie、限速、防火墙丢弃异常包。
五、网络层:填收货地址(IP)—— 路由器靠它跨城市选路
解决"跨网络怎么走到对方",核心是IP 地址和路由表。每台路由器看目的 IP 查表决定下一跳。
- 深度点:TTL(生存时间)每过一跳减 1,到 0 丢弃——既是防环机制,也是
tracert的原理(故意发 TTL=1,2,3… 看每一跳是谁)。 - 攻击示例:IP 欺骗(伪造源 IP,用于反射放大、绕过基于 IP 的信任);ICMP 攻击(Ping Flood、Smurf);BGP/路由劫持(把流量引到你不该去的地方)。
- 防护:入口过滤(RPF)、BGP 鉴权、ACL。
六、数据链路层:同城派送(MAC)—— 交换机靠它认人
同一网段内"最后一公里",靠MAC 地址寻址。交换机能记住哪个口连着哪个 MAC(MAC 表)。
- 攻击示例(局域网最常见):
- ARP 欺骗/毒化:骗子冒充网关 MAC,让你的流量先过它(中间人),可窃听可篡改。
- MAC 泛洪:塞满交换机 MAC 表,让它退化成广播 hub,方便抓包。
- VLAN 跳跃、WiFi WPA 破解。
- 防护:静态 ARP 绑定、端口安全、802.1X、WiFi 用 WPA3。
七、物理层:公路、货车、光纤
真正跑 0/1 的介质:双绞线、光纤、WiFi 电波、4G/5G。
- 攻击示例:搭线窃听、信号干扰(jamming)、侧信道。
- 防护:物理隔离、加密(让窃听到的也是密文)、电磁屏蔽。
八、TCP/IP 四层:工程上真正在跑的"精简版"
OSI 是教科书(七层,分得细),TCP/IP 是真实互联网用的模型(四层):
- 应用层 = OSI 应用+表示+会话
- 传输层 = 还是 TCP/UDP
- 网际层 = OSI 网络层(IP)
- 网络接口层 = OSI 数据链路+物理
为什么 TCP/IP 赢了?OSI 是"先定标准再实现",太理想;TCP/IP 是"先跑起来再标准化(RFC)",更务实。考证常考两者对应,背这张表就够了。
九、实操:用 Wireshark 看清"封装"长什么样
打开 Wireshark 选网卡开抓:
看 DNS(应用层+传输层 UDP):过滤器
dns,请求响应都是UDP/53——就查个名字,用不着 TCP 的可靠。看 TCP 三次握手(传输层):访问任意 https 站,过滤器
tcp.flags.syn==1 && tcp.flags.ack==0抓 SYN;紧跟 SYN-ACK(syn==1 && ack==1)、ACK,这就是"建立连接"全过程。看封装:点任意包,Wireshark 分层展开——Frame(物理/链路) → Ethernet II(链路) → IP(网络) → TCP(传输) → TLS/HTTP(应用)。亲眼看到"一层套一层"的头部堆叠,比背十遍管用。
十、排错心法:从哪层断的,就从哪层查
连不上网站?自底向上查:
- 物理层:网线灯亮吗?WiFi 连上没?
- 网络层:
ping 8.8.8.8通吗?(通=网络层及以下 OK) - 传输层:
telnet 域名 443或nc能连吗? - 应用层:
curl -I https://...看 HTTP 状态码。
ping不通但能上微信?多半是应用层/DNS问题,不是网断了。
十一、考证 / 面试易错点(怪哉划重点)
- ❌ TCP 和 IP 都在网络层 → ✅ TCP 传输层、IP 网络层。
- ❌ 交换机工作在网络层 → ✅ 交换机二层(MAC),路由器三层(IP)。
- ❌ HTTPS 在网络层加密 → ✅ 靠表示层 TLS。
- ❌ UDP 比 TCP “更安全” → ✅ 安全不靠传输协议,靠上层加密;UDP 只是不可靠。
- 路由器转发时会重写 MAC(每跳改二层头)、减 TTL,但 IP 地址不变。
结语
七层不是死记硬背,而是一张"责任划分图":每层只管自己那一小段,敌人也就只能从自己那一层打进来。把"哪层负责什么、哪层有什么典型攻击"对上号,你的网络安全思维就立起来了。
觉得有用点个赞,转发给同样被 OSI 劝退的同学。本文为教学科普,抓包实验请在自己搭建/授权的环境里进行,切勿对未授权目标动手。