解析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 包 → 以太帧 → 比特

相关推荐
何妨呀~20 分钟前
Keepalived+Haproxy高可用集群实验
linux·服务器·网络
(Charon)29 分钟前
[网络编程] 基于 DPDK 的 UDP 报文收发实现
网络·网络协议·udp
..过云雨30 分钟前
HTTP 协议深度解析:请求/响应、报头、正文的核心原理与实战
网络·网络协议·tcp/ip·计算机网络·http
wechat_Neal1 小时前
车载以太网技术全景-网络基础理论篇
网络
水境传感 张园园1 小时前
便携式光透过率检测仪:如何成为安全“守门人”?
网络
做萤石二次开发的哈哈2 小时前
萤石开放平台 萤石可编程设备 | 设备 Python SDK 使用说明
开发语言·网络·python·php·萤石云·萤石
nvd112 小时前
从 SSE 到 Streamable HTTP:MCP Server 的现代化改造之旅
网络·网络协议·http
小蜗的房子3 小时前
Oracle 19C RAC Public IP单网卡改为bond模式操作指南
运维·网络·数据库·sql·tcp/ip·oracle·oracle rac
无忧智库3 小时前
国家级算力枢纽节点(东数西算)跨区域调度网络与绿色节能数据中心建设:深度解析“数字新基建”的战略落地
网络
网络工程师_ling3 小时前
【阿里云多地域混合云网络架构】
网络·阿里云·架构