当前位置: 首页 > news >正文

讲解计网中OSI模型及各层作用

我们来详细讲解一下计算机网络中至关重要的 OSI(Open Systems Interconnection)模型,即开放系统互连参考模型。

一、什么是 OSI 模型?

OSI 模型是一个概念性的框架,它由国际标准化组织(ISO)提出,旨在将复杂的网络通信过程分解为七个更小、更易于管理的层次。每一层都有明确定义的功能,并且只与相邻的上下两层进行通信。

核心思想: 分层和解耦。下层为上层提供服务,上层使用下层提供的服务,而无需关心其具体实现细节。这使得网络协议的设计、开发和故障排除都变得更加简单。


二、为什么需要 OSI 模型?

  1. 简化复杂性:将庞大的网络问题分解为多个小问题,分而治之。

  2. 标准化接口:每一层都有明确的功能和与相邻层的接口,允许不同厂商的设备和技术只要遵循同一标准就能互操作。

  3. 易于故障排除:当网络出现问题时,可以根据模型分层进行排查,快速定位问题所在层次。


三、各层详解(从下到上)

为了便于理解,我们用一个经典的寄送包裹的比喻来贯穿整个七层。

第 1 层:物理层(Physical Layer)
  • 功能:负责在物理介质上传输原始比特流(0和1)。它定义了设备的物理特性,如电压水平、电缆规格、接口类型、传输速率等。它不关心比特流的意义,只关心如何正确地发送和接收信号。

  • 数据单位比特(Bit)

  • 协议与设备:RJ45、光纤、同轴电缆、集线器(Hub)、中继器(Repeater)

  • 比喻运输卡车和公路。它负责把货物(数据)从一个地方实际搬运到另一个地方,但不关心货物是什么。

第 2 层:数据链路层(Data Link Layer)
  • 功能:在直接相连的节点之间建立可靠的数据传输链路。主要职责包括:

    • 物理寻址:定义 MAC 地址(设备的唯一物理标识)。

    • 成帧:将网络层传来的数据包封装成帧(Frame),添加帧头和帧尾。

    • 差错控制:通过帧尾的校验和(如CRC)检测传输过程中是否出现比特错误。

    • 流量控制:控制发送速率,确保接收方不会被淹没。

  • 数据单位帧(Frame)

  • 协议与设备:PPP、HDLC、以太网(Ethernet)、交换机(Switch)、网桥(Bridge)

  • 比喻本地邮局的分拣员和运输管理。他们负责管理本地邮局间的单条运输线路,确保包裹(帧)在两个邮局间正确无误地运送,并检查包裹是否完好(差错控制)。MAC地址就像是每个邮局的本地仓库编号。

第 3 层:网络层(Network Layer)
  • 功能:负责将数据从源主机跨网络发送到目的主机。主要职责包括:

    • 逻辑寻址:定义 IP 地址(网络的逻辑标识)。

    • 路由:根据 IP 地址,为数据包选择最佳路径。

    • 分组:将传输层的报文封装成数据包(Packet),并添加IP头(包含源和目的IP地址)。

  • 数据单位数据包(Packet)

  • 协议与设备:IP协议(IPv4/IPv6)、ICMP、OSPF、路由器(Router)

  • 比喻国家的邮政网络系统。它根据收件人地址(IP地址)决定信件应该通过哪些主要城市的邮局(路由器)和哪条交通路线(路由)来运送。它不关心单个运输线路的好坏,只关心整体的路径规划。

第 4 层:传输层(Transport Layer)
  • 功能:提供端到端(应用程序到应用程序)的可靠或不可靠的数据传输服务。主要职责包括:

    • 服务寻址:通过端口号(Port) 来标识主机上的特定应用程序(如80端口对应Web服务)。

    • 分段与重组:将上层数据分割成更小的单元(段),并在接收端重组。

    • 连接管理:建立、维护和终止连接(如TCP的三次握手)。

    • 可靠性:通过确认、重传等机制保证数据可靠送达(TCP)。

  • 数据单位段(Segment - TCP) 或 数据报(Datagram - UDP)

  • 协议:TCP(传输控制协议,可靠)、UDP(用户数据报协议,不可靠但快速)

  • 比喻公司的收发室。它负责把从不同部门(应用程序)来的信件打包,写上具体的部门房间号(端口号),并决定是用挂号信(TCP,可靠)还是平信(UDP,快速)寄出。同时,它要确保重要的挂号信对方一定能收到。

第 5 层:会话层(Session Layer)
  • 功能:负责建立、管理和终止两个应用程序之间的会话(Session)。它提供对话控制(双工、半双工)和同步点。

  • 比喻一次完整的电话通话。它负责拨号建立连接(会话开始),管理谁在说话(对话控制),如果通话中断,可以从断点处重新连接(同步),最后说“再见”并挂断电话(终止会话)。

  • 协议:NetBIOS、RPC

第 6 层:表示层(Presentation Layer)
  • 功能:充当应用程序和网络之间的“翻译官”。确保一个系统应用层发出的信息能被另一个系统的应用层读懂。主要职责包括:

    • 数据翻译:编码转换(如ASCII to EBCDIC)。

    • 数据加密/解密:如SSL/TLS(虽然在实践中常介于应用层和传输层之间)。

    • 数据压缩:减少传输的数据量。

  • 比喻翻译官或加密员。如果你寄出一份用外语写并加密了的文件,表示层就是负责在发送前加密、在接收后解密并翻译成收件人能看懂语言的人。

  • 协议:SSL/TLS(加密)、JPEG/MPEG(压缩)

第 7 层:应用层(Application Layer)
  • 功能:最靠近用户的一层,为应用程序提供网络服务接口。它提供用户与之交互的服务(如电子邮件、文件传输、网页浏览)。

  • 注意:它不是指像 Chrome、Word 这样的应用程序本身,而是指这些应用程序为了进行网络通信所使用的协议

  • 比喻你(用户)和你要寄的信的内容。你写好一封信(应用数据),决定要寄出(发起网络请求)。

  • 协议:HTTP(网页)、HTTPS(安全网页)、FTP(文件传输)、SMTP/POP3(电子邮件)、DNS(域名解析)


四、数据封装与解封装过程

数据发送时,从应用层开始,每经过一层都会被添加一个头部(和尾部,如数据链路层),这个过程叫封装
数据接收时,从物理层开始,每经过一层都会剥离对应的头部,这个过程叫解封装

发送方(封装)
用户数据 -> 应用层数据 -> 表示层数据 -> 会话层数据 -> [传输层:添加TCP头] -> 段 -> [网络层:添加IP头] -> 包 -> [数据链路层:添加MAC头尾] -> 帧 -> [物理层:转换为比特流] -> 电信号/光信号

接收方(解封装)
电信号/光信号 -> 比特流 -> 帧 -> 移除MAC头尾 -> 包 -> 移除IP头 -> 段 -> 移除TCP头 -> 会话层数据 -> ... -> 应用层数据 -> 用户数据

总结

OSI 模型是一个理论模型,实际的 TCP/IP 协议族大致对应其部分层次。但理解 OSI 模型的七层结构及其功能,对于学习计算机网络、进行网络排错和架构设计具有不可替代的指导意义。它提供了一个通用的语言和思维框架来解决所有网络问题。

http://www.dtcms.com/a/350043.html

相关文章:

  • 网闸和防火墙各有什么长处?
  • ValueTask 实战指南:解锁 .NET 异步编程的性能秘密
  • maui中配置安卓手机在测试环境连接网络
  • 创建Java集成开发环境
  • 车载诊断架构 --- 基于以太网做software download的疑问汇总
  • [QMT量化交易小白入门]-八十四、LSTM模型对期货市场的秒级Tick数据进行预测
  • 14.examples\01-Micropython-Basics\demo_yield.py 加强版
  • 深入浅出 ArrayList:从基础用法到底层原理的全面解析(中)
  • 深度剖析 Grok2 开源:技术原理与创新洞察
  • 奶茶品牌ESG实践:从绿色供应链到可持续竞争力
  • 离线可用的网络急救方案
  • [RK3568][Android11] Android->默认显示设置->系统->开发者选项(不用连续点击版本号)
  • FunASR基础语音识别工具包
  • 学习Python第13天
  • .NET表格控件Spread .NET v18.0——支持富文本、增强PDF导出
  • 【Linux基础知识系列】第一百零七篇 - 使用crontab设置定期任务
  • 【文献阅读】SparseGPT: Massive Language Models Can be Accurately Pruned in One-Shot
  • 【保姆级】AutoCAD 2026安装包下载及详细图文安装教程!
  • Mysql杂志(一)
  • 大模型中常用的提示词框架
  • Python爬虫第五课:selenium自动化爬虫实战
  • ICCV 2025|TRACE:无需标注,用3D高斯直接学习物理参数,从视频“预知”未来!
  • 从2D序列帧到3D体积感:我用AE+UE5 Niagara构建次世代风格化VFX工作流
  • AWS ECS 成本优化完整指南:从分析到实施的最佳实践
  • 嵌入式第三十七天(TCP补充,应用层协议(HTTP))
  • 物联网时序数据库IoTDB架构解析
  • 告别“复制粘贴”式换肤:我用Adobe XD组件变体与CC库,构建多品牌设计系统架构
  • Android用Coil 3检查媒体资源是否有效,Kotlin
  • 【Github】Windows原始hosts文件内容及加速访问Github的方法
  • Linux系统操作编程——http