解析OSI 七层模型

🌐 一、OSI 七层模型(从下往上)

| 层级 | 名称 | 主要作用 | 协议示例 |

| ----- | ----- | -------------- | --------------------- |

| **7** | 应用层 | 为应用提供网络服务 | HTTP、FTP、DNS、SMTP |

| **6** | 表示层 | 数据格式、加密解密、压缩 | JPEG、MP3、TLS(部分) |

| **5** | 会话层 | 管理会话、维持连接 | RPC、NetBIOS |

| **4** | 传输层 | 可靠/不可靠传输 | TCP、UDP |

| **3** | 网络层 | 寻址、路由 | IP、ICMP、ARP |

| **2** | 数据链路层 | 组帧、MAC 地址、错误检测 | Ethernet、PPP、WIFI MAC |

| **1** | 物理层 | 0/1 电信号传输 | RJ45、电缆、光纤、PHY |

🔌 二、重点:物理层(Layer 1)

物理层 = 电信号层面

作用:

  • 负责比特(0 和 1)的电气传输

  • 规定电压、频率、光信号、接口(RJ45、光纤)、编码方式(如曼彻斯特编码)

  • 不懂什么是 IP,也不懂 MAC,更不懂地址

  • 只负责"把比特送过去"

物理层组成:

  • 网线(双绞线)、光纤

  • 变压器(magnetics)

  • PHY 芯片(如 RTL8211、KSZ9031、内置 PHY)

  • 发射/接收电路

你现在的 linkdown 就发生在物理层

即:网线和 PHY 没建立链路(Link=NO) → 连 0/1 都传不出去。

ethtool eth0

当看到:

Link detected: yes

物理层才通

📶 三、链路层(Layer 2)

链路层 = MAC 地址 的世界。

作用:

  • 将比特组合成帧(Frame),并附加校验(FCS / CRC)

  • 负责局域网内通信(同网段)

  • 确保这一跳的数据不出错

  • 使用 MAC 地址(48-bit)

链路层帧结构(简化):

| 目的MAC | 源MAC | 类型 | 数据 | CRC |

常见协议:

  • Ethernet II(以太网)

  • WiFi MAC 层

  • PPP、HDLC

链路层只管同一个交换机内的设备

不会跨路由器。

🧭 四、网络层(Layer 3)

网络层 = IP 地址 + 路由 的世界。

作用:

  • 负责跨网段通信

  • 寻找路径(routing)

  • 将数据包包装为 IP 包

常见协议:

  • IP(IPv4 / IPv6)

  • ARP(解析 MAC)

  • ICMP(ping 就在这里)

添加默认网关,就是在网络层。

🚚 五、传输层(Layer 4)

传输层 = 可靠性与端口号

协议:

| 协议 | 特点 |

| ------- | ------------ |

| **TCP** | 有连接、可靠、三次握手 |

| **UDP** | 无连接、不可靠、实时性好 |

应用层靠端口 (port) 来区分程序,例如:

  • 80 → HTTP

  • 22 → SSH

  • 1883 → MQTT

  • 🗣 六、应用层(Layer 7)

  • 这是我们最常见的层:

    HTTP、DNS、FTP、MQTT、SSH 都在这里。

🔗 七、整个数据从应用层到物理层的封装流程(重要)

以 HTTP 为例

从发送端:

应用层:HTTP 数据

传输层:TCP 加上源端口、目的端口

网络层:IP 加上源 IP、目的 IP

链路层:以太网帧包住 IP 包,加上 MAC 地址

物理层:转成电信号(0/1)发送出去

接收端逆向拆包:

物理层 → 链路层 → 网络层 → 传输层 → 应用层

📌 三层中你最需要理解的是:

1)物理层:

👉 网线插好没有?灯亮不亮?

👉 ethtool eth0 → Link detected: yes/no

📌 你的问题就在这一层 没 link

2)链路层:

👉 MAC 地址是否收发?

👉 ARP 是否正确?(ping 同网段严重依赖 ARP)

3)网络层:

👉 IP、MASK、Gateway 配置对不对?

👉 路由表对不对?

如果物理层 linkdown → 上面所有层都别想工作

一张是 OSI 七层模型图 ,另一张是 数据封装过程图(比特→帧→包→段→数据)

📘 ① OSI 七层模型总图(最清晰版本)

┌───────────────────────┐

│ 7 应用层(Application)│ HTTP / DNS / FTP / MQTT │

├───────────────────────┤

│ 6 表示层(Presentation)│ 加密/解密、压缩 │ TLS、JPEG │

├───────────────────────┤

│ 5 会话层(Session) │ 管理会话、保持连接 │

├───────────────────────┤

│ 4 传输层(Transport) │ TCP(可靠)/ UDP(实时)│

├───────────────────────┤

│ 3 网络层(Network) │ IP 寻址、路由、ICMP、ARP │

├───────────────────────┤

│ 2 数据链路层(Data Link)│ MAC、Ethernet 帧、CRC 校验 │

├───────────────────────┤

│ 1 物理层(Physical) │ 电信号、光信号、PHY、网线 │

└───────────────────────┘

📗 ② 数据封装过程图:比特 → 帧 → 包 → 段 → 应用数据

当你执行一次 HTTP 请求时,数据是这样被多层打包的:

应用层:HTTP 数据

└──▶ "GET /index.html HTTP/1.1 ..."

传输层(TCP):

└──▶ [TCP头][HTTP数据]

网络层(IP):

└──▶ [IP头][TCP段]

链路层(Ethernet 帧):

└──▶ [目的MAC][源MAC][类型][IP包][CRC]

物理层:电信号(二进制 0/1)

└──▶ 以电压/光信号传输出去

汇总图如下:

┌────────────────────────────────────────────┐

│ 应用数据(HTTP) │

├────────────────────────────────────────────┤

│ TCP 段: TCP Header + HTTP Data │

├────────────────────────────────────────────┤

│ IP 包: IP Header + TCP Segment │

├────────────────────────────────────────────┤

│ 以太帧: MAC Header + IP Packet + CRC │

├────────────────────────────────────────────┤

│ 物理层:比特流(0 / 1) │

└────────────────────────────────────────────┘

📘 ③ 各层之间的俗称:

| 层级 | 数据单位 | 名称 |

| --- | ------- | -- |

| 应用层 | Data | 数据 |

| 传输层 | Segment | 段 |

| 网络层 | Packet | 包 |

| 链路层 | Frame | 帧 |

| 物理层 | Bit | 比特 |

一句话口诀:

应用数据 → TCP 段 → IP 包 → 以太帧 → 比特

相关推荐
斯普信专业组1 小时前
Calico网络架构与实现深度解析(上)
网络·架构
luoganttcc1 小时前
can 协议 600#09000000000000c0 分析
网络
痕忆丶1 小时前
本地搭建简易RTSP流媒体服务器
网络
network_tester1 小时前
IXIA XM2网络测试仪租赁方案:让高端测试能力触手可及的技术实践
网络·网络协议·tcp/ip·5g·网络安全·信息与通信·tcpdump
..空空的人1 小时前
C++基于protobuf实现仿RabbitMQ消息队列---技术认识1
服务器·网络·个人开发·protobuf·muduo
神秘的土鸡2 小时前
openEuler 安全加固与性能实测: SELinux,防火墙等多维防护实践
网络·安全·apache·openeuler
Ronin3052 小时前
【Linux网络】数据链路层
linux·网络·数据链路层·arp协议·局域网通信
星梦客2 小时前
FRP 内网穿透工具部署教程
网络·经验分享·笔记
Han.miracle2 小时前
网络层-IP 协议全景解析:从地址分配到内网穿透,解锁互联网通信底层密码
服务器·网络·网络协议·ip