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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值