OSI网络通信模型详解

OSI 模型就是把这整个过程拆解成了 7 个明确分工的步骤,每一层只负责自己那一摊事儿,这样整个系统才能顺畅运转,出了问题也容易找到“锅”在谁那。

核心比喻:寄快递 📦

想象你要把一份重要的礼物(你的数据)寄给远方的朋友(另一台电脑)。


🚚 第 1 层:物理层 - 修路和开车

  • 人话: 负责把电脑连起来的“物理道路”和“跑在上面的车”。就是网线、光纤、无线电波(WiFi)、网卡这些看得见摸得着的东西。

  • 职责: 把电脑里的 0 和 1 转换成物理信号(比如电脉冲、光信号、无线电波)在“路”上跑,或者把接收到的物理信号转换回 0 和 1。

  • 寄快递比喻: 修公路、造卡车、规定卡车能跑多快、用什么燃料。它只管“车”能不能在“路”上跑起来,不管车上装的是什么货,也不管货要送到哪个城市。

  • 关键词: 网线、光纤、集线器、中继器、信号、比特流。

📬 第 2 层:数据链路层 - 同城快递站

  • 人话: 负责在同一个小区或街道里(同一个局域网内)准确地把包裹送到邻居家。解决“怎么找到隔壁老王”的问题。

  • 职责:

    • 把物理层传来的 0/1 信号打包成一个个小包裹(叫“帧”)。

    • 给每个小包裹写上 源地址 和 目标地址(这个地址叫 MAC 地址,是网卡身份证,全球唯一)。

    • 检查包裹在传输过程中有没有损坏(比如被干扰了)。

    • 协调同一“小区”里多台电脑谁先发包裹,避免堵车(冲突)。

  • 寄快递比喻: 你们小区的快递站。他们认识小区里每家每户的门牌号(MAC地址)。负责把寄给你的包裹准确送到你家门口,检查包裹在小区运输途中有没有破损。也负责协调小区里多个快递员送件不撞车。

  • 关键词: MAC地址、交换机、网桥、帧。

🗺 第 3 层:网络层 - 跨城市物流中心

  • 人话: 负责把包裹从你的城市送到朋友的城市。解决“走哪条路最快最便宜”的问题。

  • 职责:

    • 给你的大包裹(数据包)写上 源IP地址 (你的电脑地址) 和 目标IP地址 (你朋友的电脑地址)。

    • 规划从你的城市到你朋友城市的最佳路线(路由选择)。包裹在路上可能会经过很多中转站(路由器)。

    • 如果包裹太大,物流中心会把它拆成几个小包裹;朋友那边的物流中心会再把它拼起来。

  • 寄快递比喻: 大型物流转运中心(比如顺丰分拨中心)。它只关心包裹的 出发城市(源IP) 和 目的城市(目的IP)。它决定包裹是走空运还是陆运,走哪条高速公路最快最不堵(路由)。它负责把大箱子拆成小箱子装车,到了目的地再拼回来。

  • 关键词: IP地址、路由器、数据包、路由。

✈ 第 4 层:传输层 - 快递公司客服与运输方式

  • 人话: 负责端到端的可靠或快速送达。解决“包裹怎么送”和“丢了怎么办”的问题。

  • 职责:

    • 选择运输方式:

      • TCP (可靠挂号信): 保证包裹一定送到、按顺序送到、没损坏。速度稍慢,适合重要文件(如网页、邮件)。会先打电话确认朋友在家(建立连接),包裹送到要签收确认,丢了会重发。

      • UDP (普通明信片): 不保证一定送到、按顺序送到、没损坏。速度超快,适合实时性要求高的(如直播、语音通话)。直接扔进邮筒,爱到不到。

    • 管理数据流,避免发送方发太快把接收方淹没。

  • 寄快递比喻: 你选择快递公司(顺丰-可靠/TCP vs 邮政平邮-快速但可能丢/UDP)。顺丰客服(TCP)会确保包裹安全无误送达,有确认机制。邮政平邮(UDP)便宜快速,但可能丢失或顺序错乱。

  • 关键词: TCP、UDP、端口号(区分电脑上的不同应用,比如微信用8080端口收消息,浏览器用80端口看网页)、段。

📞 第 5 层:会话层 - 打电话约定取送时间

  • 人话: 负责建立、管理和终止两个应用程序之间的“对话”。解决“我们现在开始聊,聊完拜拜”的问题。

  • 职责:

    • 建立连接:就像打电话,先拨通(建立会话)。

    • 维持连接:保持通话畅通。

    • 有序对话:确保你说一句,对方听到一句,按顺序来(同步)。

    • 结束连接:聊完了,挂电话(终止会话)。

  • 寄快递比喻: 你和朋友打电话约定:“我现在要开始给你寄礼物了哦!”(建立会话),中间保持联系沟通进展(维持会话),最后说“礼物都寄完啦!”(终止会话)。确保整个“寄礼物”这件事有始有终。

  • 关键词: 会话、建立、维持、终止、同步点。(这层在现代协议如TCP/IP中功能常被合并到传输层或应用层,概念上独立但实现上不那么明显)

📝 第 6 层:表示层 - 礼物翻译和包装

  • 人话: 负责数据的“翻译”和“化妆”。解决“你朋友看不懂你的方言或礼物包装风格”的问题。

  • 职责:

    • 翻译: 把数据转换成对方能理解的格式。比如你的电脑图片是JPEG格式,朋友电脑只认识PNG,这层负责转换。

    • 加密/解密: 给礼物加个密码锁(加密),只有你朋友有钥匙能打开(解密)。

    • 压缩/解压缩: 把礼物体积压缩小一点,方便运输,到了目的地再拆开。

  • 寄快递比喻: 礼物包装店。负责把礼物(数据)包装成符合目的地风俗的样子(格式转换),或者给礼物盒加把锁(加密),或者把大毛绒玩具抽真空压缩(压缩)。

  • 关键词: 加密、解密、压缩、解压缩、格式转换(JPEG, MPEG, ASCII等)。

🎯 第 7 层:应用层 - 你和你朋友

  • 人话: 这是你直接打交道的那一层!代表具体的网络应用和服务。解决“你想干嘛”的问题。

  • 职责: 提供用户接口和网络服务。

    • 你用的软件:浏览器(访问网站)、微信(聊天)、邮箱软件(发邮件)、QQ音乐(听歌)。

    • 这些软件利用下面6层提供的服务来完成你的指令。

  • 寄快递比喻: 你(发送方) 和 你朋友(接收方)。你想寄礼物(使用应用),你朋友想收礼物(使用应用)。你们决定了要寄什么(数据内容),但不关心包裹是怎么经过层层转运送到的(下面6层的细节)。

  • 关键词: HTTP (网页)、SMTP/POP3 (邮件)、FTP (文件传输)、DNS (域名解析)、Telnet、微信、浏览器、各种APP。


🌟 总结一下 OSI 七层模型的核心思想

  1. 分层: 把复杂的网络通信拆成7个独立、分工明确的步骤。

  2. 各司其职: 每一层只干自己该干的活,不用操心其他层的事(层与层之间有清晰的接口)。

  3. 下层服务上层: 下面的层(比如物理层)为紧挨着的上层(数据链路层)提供服务。数据链路层又为网络层服务,以此类推。

  4. 封装与解封装: 发送数据时,数据从应用层开始,从上往下走,每经过一层,该层就给它加一个“包装盒”(头部信息,可能还有尾部)。接收数据时,数据从下往上走,每经过一层,就拆掉对应层的“包装盒”,最终还原出原始数据给应用层。

  5. 便于理解和排错: 哪一层出了问题,就去找哪一层的原因,不用大海捞针。也方便不同厂商只专注于某一层的设备开发(比如做交换机的专注链路层,做路由器的专注网络层)。

📌 重要提示

  • 理论模型: OSI 模型是一个理论框架参考模型,用于理解和设计网络协议。实际的网络协议栈(如统治互联网的 TCP/IP 协议栈)并不是严格对应这7层,通常被简化为4层或5层(把OSI的应用层、表示层、会话层合并为一层应用层)。但理解OSI七层模型对深刻理解网络原理至关重要。

  • 为什么学它? 即使实际协议不完全对应,OSI模型提供了最清晰、最系统的视角来理解网络通信中不同环节的作用和相互关系。无论是学习网络、配置设备还是排查故障,这个分层思想都是基石。

现在再看网络通信,是不是感觉清晰多了?就像拆解一个精密的快递流程! 😄

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/472.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高并发网络通信Netty之空轮询问题

一、问题背景 在 NioEventLoop 事件循环中,Selector 一次次 select() 返回为 0,且没有事件被触发,形成空转,导致 CPU 占用 100%,系统资源白白浪费。这种情况尤其在 高并发、连接数多、IO事件少 的场景下更容易出现。 …

Nginx+Tomcat负载均衡群集

一、NginxTomcat 负载均衡、动静分离 1、Tomcat 简介 名称由来:Tomcat 最初由 Sun 的软件构架师詹姆斯・邓肯・戴维森开发,后变为开源项目并由 Sun 贡献给 Apache 软件基金会。因 O’Reilly 开源项目常以动物命名相关书籍,他希望动物能自我照…

Linux下nginx访问路径页面

第一步:通过Xshell在虚拟机中下载nginx sudo apt-get install nginx 第二步:进入nginx配置页面 cd /etc/nginx 我这里创建了一个html文件夹 在进入去创建页面并且重新加载 boahuboahu-VMware-Virtual-Platform:/$ cd /etc/nginx boahuboahu-VMware-Vir…

python实战项目76:51job数据采集与分析

python实战项目76:51job数据采集与分析 一、数据采集二、数据预处理2.1 导入相关库、读取数据2.2 查看数据2.3 处理数据、删除重复值、删除空值2.4 处理薪资水平字段数据三、数据可视化3.1 不同公司规模招聘岗位数量分布3.2 不同公司性质招聘岗位数量分布3.3 不同年限要求招聘岗…

OPENGLPG第九版学习 - 纹理与帧缓存 part1

文章目录 6.1 纹理综述6.2 基木纹理类型6.3 创建并初始化纹理代理纹理 6.4 指定纹理数据6.4.1 显式设置纹理数据将静态数据载入到纹理对象 6.4.2 从缓存(目标对象GL_PIXEL_UNPACK_BUFFER)中加载纹理6.4.3 从文件加载图像(DDS为例)读取一个图像文件并返回内存中的纹素数据将纹素…

Redis 持久化机制详解:RDB、AOF 原理与面试最佳实践(AOF篇)

在上一章我们深入学习了 Redis 中重要的数据持久化机制 ——RDB(Redis Database),了解了其通过周期性快照将数据以二进制文件形式保存到磁盘的原理,包括触发条件、文件结构以及优缺点等核心内容。 Redis 持久化机制详解&#xff…

NumPy数组操作详解

在现代数据科学与工程计算领域,高效的数组操作是实现复杂算法的基础。NumPy作为Python的核心科学计算库,提供了一套强大的多维数组对象及操作机制。本文深入探讨NumPy数组的各种操作,旨在帮助读者全面掌握其功能与应用场景。 数组创建与属性查…

ER图:数据库设计的可视化语言 - 搞懂数据关系的基石

在数据库设计和数据建模领域,ER图(实体-关系图) 绝对是最基础、最核心的可视化工具之一。它用最直观的方式描绘了现实世界中的数据及其关系,是构建可靠数据库的蓝图。今天,我们就来聊聊这个技术基石。 本文来自「大千A…

图像特征检测算法ORB

ORB(Oriented FAST and Rotated BRIEF)是一种在计算机视觉领域广泛应用的特征检测与描述算法。 算法原理 特征点检测 :ORB 算法结合了 FAST(Features from Accelerated Segment Test)特征点检测方法和 Harris 特征点检…

docker 目录更改,必须做数据迁移才能启动

要修改 Docker 镜像的存储位置 并迁移数据(如从 /var/lib/docker 迁移到 /mnt/data/docker),需要以下步骤: 1. 停止 Docker 服务 在修改配置和迁移数据前,先停止 Docker 服务: sudo systemctl stop docke…

springboot入门之路(一)

文章目录 1.Spring Boot介绍2.开发你的第一个Spring Boot应用2.1创建POM2.2yml和properties的配置区别yml配置properties配置 2.3springbootDemo代码2.4创建一个可执行jar 参考文档:SpringBoot参考指南;SpringBoot实战 1.Spring Boot介绍 Spring Boot使…

设计模式之责任链模式

责任链模式是一种经典的设计模式,属于行为型设计模式,他的核心思想是:将请求的发起者与接受者进行解耦,让多个对象都有机会处理请求,从而避免了请求发送者与接受者之间的耦合关系。这些对象连接形成一条链,…