← 前一天目录后一天 →

每日科普 · 2026-09-15 周二

考研 408 × 求职面试

知识点 · 计算机网络 · 基础

OSI 七层模型与 TCP/IP 四层模型

网络通信为什么要分层?因为把复杂问题拆成若干小问题,各层各司其职、互不干扰,一层出问题也好定位。 OSI 七层模型(理论标准)从下到上依次是: 1. 物理层:传输比特流,管电压、接口、网线。 2. 数据链路层:把比特组成帧,处理 MAC 地址、差错检测。 3. 网络层:负责寻址和路由,核心是 IP 地址。 4. 传输层:提供端到端通信,TCP 可靠、UDP 高效,靠端口区分进程。 5. 会话层:管理会话的建立、维持与断开。 6. 表示层:数据格式转换、加密、压缩。 7. 应用层:面向用户,如 HTTP、FTP、DNS。 TCP/IP 四层模型(实际工程)把上面七层合并:应用层(合并会话、表示、应用)、传输层、网际层、网络接口层。 记忆口诀:物数网传会表应。数据发送时自上而下逐层封装(加首部),接收时自下而上逐层解封装。考试常考两种模型的层次对应关系,以及各层的代表协议和设备。

每日一题 · 计算机网络

OSI 七层模型与 TCP/IP 四层模型

在 OSI 参考模型中,负责端到端可靠传输、并通过端口号区分不同应用程序的是哪一层? A. 网络层 B. 传输层 C. 会话层 D. 数据链路层

解析

答案:B。 解析:抓住关键词“端到端”和“端口号”。网络层负责的是主机到主机的寻址与路由,用的是 IP 地址;数据链路层用 MAC 地址处理相邻节点间的帧传输;会话层只管会话的建立与维护。只有传输层工作在端到端层面,通过端口号区分同一主机上的不同进程,并由 TCP 提供可靠传输、UDP 提供高效传输。所以选 B。

面试小贴士 · 计算机网络

OSI 七层模型与 TCP/IP 四层模型

面试常问:TCP/IP 和 OSI 的对应关系、各层协议与设备。答法:先说分层目的,再自上而下报层次并各举一例协议。易错点:把 IP 说成传输层、把交换机说成网络层设备;记住“物数网传会表应”口诀。

代码实现 · C

代码示例

#include <stdio.h>

// 模拟数据自上而下逐层封装,每层加一个首部标记
void send(const char *data) {
    printf("[应用层] 原始数据: %s\n", data);
    printf("[传输层] 加 TCP 首部(含端口) -> 段\n");
    printf("[网络层] 加 IP 首部(含 IP 地址) -> 包\n");
    printf("[链路层] 加 MAC 首部 -> 帧\n");
    printf("[物理层] 转为比特流发送\n");
}

// 接收方自下而上逐层解封装
void recv(const char *data) {
    printf("[物理层] 接收比特流\n");
    printf("[链路层] 去 MAC 首部 -> 帧\n");
    printf("[网络层] 去 IP 首部 -> 包\n");
    printf("[传输层] 去 TCP 首部 -> 段,按端口交付进程\n");
    printf("[应用层] 还原数据: %s\n", data);
}

int main(void) {
    const char *msg = "Hello, OSI!";
    send(msg);
    printf("----------------\n");
    recv(msg);
    return 0;
}
← 前一天目录后一天 →