一文一图搞懂OSI七层模型

2023-10-31

什么是OSI?

所谓的OSI,是由国际化标准组织(ISO)针对开放式网路架构所制定的电脑互连标准,全名是开放式通讯系统互连参考模型(Open System Interconnection Reference Model),简称OSI模型。该模型是一种制定网路标准都会参考的概念性架构,并非一套标准规范,也不是用来提供实现的方法,而是透过观念描述,协调各种网路功能发展时的标准制定。

依据网路运作方式,OSI模型共切分成7个不同的层级,每级按照网路传输的模式,定义所属的规范及标准。由具体到抽象的网路传输方式层次来看,7层分别为实体层、资料连结层、网路层、传输层、会议层、展示层及应用层。

OSI模型的好处在于,它细分每个功能,在发展网路功能及教育训练上有很大的帮助。产品开发时,只要依据各个层级规范,专注发展即可;在教学时,透过OSI模型解释网路运作的架构,也较容易让初学者了解。但是某些层级的功能仍不易掌握,像是会议层及展示层。相较于网路层或应用层,它们规范的标准若有似无,实际上的应用也不多见。


直接上图!

 

第一层︰实体层(Physical Layer)

实体层是OSI模型的最底层,它用来定义网路装置之间的位元资料传输,也就是在电线或其他物理线材上,传递0与1电子讯号,形成网路。实体层规范的内容包含了缆线的规格、传输速度,以及资料传输的电压值,用来确保讯号可以在多种物理媒介上传输。

网路线、网路卡与集线器(Hub),都是平常容易接触到的实体层设备。网路线包括办公室及机房内常见的RJ-45 UTP双绞线、有线电视使用的同轴电缆,以及应用在骨干网路的光纤缆线等。不过,对无线网路而言,只要可以传输电波的介质,都属于它的传输媒介。

集线器指的是单纯串接线路,再以广播方式传输资料的设备。市面上所见的复合式集线器设备,例如Switching Hub(交换式集线器),是厂商依照市场需求所开发的产品,通常包含些许资料连结层的功能,就OSI的规范来说,它并不完全是一个集线器。

第二层︰数据链路层(Data Link Layer)

资料连结层介于实体层与网路层之间,主要是在网路之间建立逻辑连结,并且在传输过程中处理流量控制及错误侦测,让资料传送与接收更稳定。资料连结层将实体层的数位讯号封装成一组符合逻辑传输资料,这组讯号称为资料讯框(Data Frame)。讯框内包含媒体存取控制(Media Access Control,MAC)位址。而资料在传输时,这项位址资讯可让对方主机辨识资料来源。 MAC位址是一组序号,每个网路设备的MAC位址都是独一无二的,可以让网路设备在区域网路沟通时彼此识别,例如网路卡就是明显的例子。

不少网路协定是在资料连结层上运作,我们较常听到的是非同步传输模式(Asynchronous Transfer Mode,ATM),以及点对点协定(Point-to-Point Protocol,PPP)。前者是早期网路发展的通讯协定,由于单次传输量很小,适合用作语音传输;后者则是在我们使用ADSL时,会透过这项协定连接ISP,从而连上网际网路。

网路交换器(Switch)是这个层级常见的设备,主要在区域网路上运作,能依据MAC位址,将网路资料传送到目的主机上。交换器一般分为可设定式与免设定两种,前者可以设定流量控制或设定子网路分割,后者仅传输网路资料,不具其他进阶功能。

第三层︰网路层(Network Layer)

网路层定义网路路由及定址功能,让资料能够在网路间传递。这一层中最主要的通讯协定是网际网路协定(Internet Protocol,IP),资料在传输时,该协定将IP位址加入传输资料内,并把资料组成封包(Packet)。在网路上传输时,封包里面的IP位址会告诉网路设备这笔资料的来源及目的地。由于网路层主要以IP运作为主,故又称为「IP层」。除了IP,在网路层上运作的协定还包含IPX及X.25。

路由器及Layer 3交换器即属于第三层的网路设备,主要以IP作为资料传输依据,它们大多在企业机房内运作,不过我们也常看到有些设备也同时包含网路层功能,如IP分享器,以及俗称小乌龟的ADSL用户终端设备(ADSL Terminal Unit-Remote,ATU-R)。

第四层︰传输层(Transport Layer)

传输层主要负责电脑整体的资料传输及控制,是OSI模型中的关键角色,它可以将一个较大的资料切割成多个适合传输的资料,替模型顶端的第五、六、七等三个通讯层提供流量管制及错误控制。

传输控制协定(Transmission Control Protocol,TCP)是我们常接触具有传输层功能的协定,它在传输资料内加入验证码,当对方收到后,就会依这个验证码,回传对应的确认讯息(ACK),若对方未及时传回确认讯息,资料就会重新传递一次,以确保资料传输的完整性。

第五层︰会议层(Session Layer)

这个层级负责建立网路连线,等到资料传输结束时,再将连线中断,运作过程有点像召集多人开会(建立连线),然后彼此之间意见交换(资料传输),完成后,宣布散会(中断连线)。

有很多应用服务运作在会议层上,我们常接触到的是NetBIOS names,这是一种用来识别电脑使用NetBIOS资源的依据。我们使用Windows系统时,开启网路上的芳邻,或是用到「档案及列印分享」时,通常会看到群组及电脑名称,这些就是NetBIOS names定义的。

第六层︰表示层(Presentation Layer)

应用层收到的资料后,透过展示层可转换表达方式,例如将ASCII编码转成应用层可以使用的资料,或是处理图片及其他多媒体档案,如JPGE图片档或MIDI音效档。

除了转档,有时候当资料透过网路传输时,需要将内容予以加密或解密,而这个工作就是在展示层中处理。

第七层︰应用层(Application Layer)

应用层主要功能是处理应用程式,进而提供使用者网路应用服务。这一层的协定也很多。使用者常见的通讯协定,有DHCP(Dynamic Host Configuration Protocol)、FTP(File Transfer Protocol)、HTTP(HyperText Transfer Protocol)及POP3(Post Office Protocol-Version 3)等,依据不同的网路服务方式,这些协定能定义各自的功能及使用规范等细部规则。

属于第七层的应用软体,像是网路浏览器(IE、Firefox)、电子邮件、线上游戏、即时通讯(MSN Messenger、ICQ)等。上述软体均透过单一或多种通讯协定,提供各类网路应用服务,像是网路浏览器藉由HTTP的沟通,即可呈现图文并茂的网页。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文一图搞懂OSI七层模型 的相关文章

  • 查找第一个可滚动父级

    我遇到这种情况 需要将元素滚动到视口中 问题是我不知道哪个元素是可滚动的 例如 在纵向中 主体是可滚动的 而在横向中 它是另一个元素 还有更多情况会更改可滚动元素 现在的问题是 给定一个需要滚动到视口中的元素 找到其第一个可滚动父元素的最佳
  • Bootstrap 的跨浏览器数字微调器/步进器 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个与 Twitter Bootstrap 2 3 集成的数字微调器 使用 HTML5input type number
  • <输入类型=按钮> 与 <按钮> [重复]

    这个问题在这里已经有答案了 我有点困惑 这些有什么区别呢 请不要引用非常旧的帖子 我注意到在 html 和样式表中访问某些样式是不同的内联样式
  • 如何在滚动时保持这些 tagHover 的位置靠近标签并且 tagHover 具有固定位置?

    https plnkr co edit PuP3f71kCjkqgjjMkgNS p preview https plnkr co edit PuP3f71kCjkqgjjMkgNS p preview 下面还有一个 stackoverfl
  • 在响应模式下使用 CSS 更改元素顺序

    图1为桌面模式 下面两张图片和文字 总共三个div 图 2 是我希望它在移动浏览器 例如手机 中的显示方式 关于如何实现这一点有什么想法吗 我愿意接受任何建议 这个想法是让文本显示在图像上方 以最好地说明这两个图像的描述 在桌面版本中将文本
  • JSP - 如何从数据库呈现 html(或 jsp)代码

    我有一个由多个用户组使用的jsp 要求是每个用户组在访问页面时都希望有自定义的外观和感觉 带有区分参数 我们建议允许用户将他们需要的html转储到数据库表中 jsp将确定用户组并显示相应的html 有关如何做到这一点的任何指示 示例 如果用
  • 使用 Java 访问 HTML5 本地存储

    是否可以直接使用Java访问localstorage对象 如果是的话怎么办 更新 我知道 localstorage 是客户端 java 是服务器端 但我在网上读到 GWT 有 api 允许读取 localstorage 本地存储 顾名思义
  • 使用 PHP 将 class="active" 添加到活动页面

    动态标头 CSS 类更改为活动使用 PHP 目录 我想要的班级 li 在活动目录下更改标签 现在 每个指南都向我展示了当您的页面等于它时如何执行此操作 但我想更改 这 li li 取决于我所在的目录 例如 如果说我在 http exampl
  • 如何使用 jQuery 拖放文本

    我需要创建一个消息模板 如下所示 你好 Stackoverflow Text A 感谢您的支持 Text B 在这种情况下 我需要使用拖放字段来Textarea 我进行了初步研发 寻找一些库来实现我的要求 并发现了这个通过拖放插入文本 ht
  • 使用 JSON 文件动态更新 HTML 内容?

    我想创建一个 JS 循环 使用 jQuery 来查看 JSON 文件 并根据是否 div ids 与 JSON id 值匹配 这需要易于扩展并且无论有多少人都可以工作 div 添加了盒子 我有一个 HTML 文件 设置如下 div clas
  • 如何为 HTML5 音频元素制作加载栏?

    我正在尝试为 HTML5 音频元素制作一个加载栏 显示加载 缓冲的百分比 对于视频标签 可以使用以下方法进行计算 video buffered end 0 video duration 但我无法让它与音频标签一起使用 它只是返回一个固定值
  • 显示带有背景颜色的百分比条

    例如 如果我有一个包含两列和 2 行的表 Col1 Percentage 50 50 70 70 如何用代表 COl1 值的颜色填充百分比列 像这样的东西 您可以使用具有两个紧接着的停止点的线性渐变 percentageFill heigh
  • 从网站存储数据的最简单方法(在服务器端)

    我有一个非常简单的网站 实际上是单页 有一个输入字段和一个按钮 我需要将用户提交的数据存储在服务器端的某个位置 完美的方法可能是简单的文本文件 并在每次单击按钮后附加新行 日志文件也可以 据我了解 JavaScript 本身是不可能的 我在
  • 更改时触发跨度文本/html

    jQuery 或 JavaScript 中是否有任何事件在以下情况下触发span标签 text html 已更改 Code span class user location span user location change functio
  • 通过 jQuery 从输入类型=“文件”多个中删除文件

    我在使用 PHP 和 jQuery 上传文件时遇到问题 表单可以一次上传多个图像 这些图像可以在滑块中预览 表单还包含两个字段标题和描述 滑块通过 jQuery 工作 当用户通过单击选择文件来选择多个图像时
  • xpath:选择中断标签之前和之后的文本节点

    考虑以下因素 混合 br and br text1 br text2 br text3 br text4 br text5 如何找到每个文本节点 我正在考虑符合 br 标签之前或之后的条件的东西 但不确定是否 br and br 在 xpa
  • 文本后面有粗下划线

    如何使用 span 和 css 在文本 ABC 后面重现这种下划线 我已经能够做下划线below嵌套的文本span和彩色的border bottom 但无法获取behind图像和above文本基线 p style font size 48p
  • 数字和小数的输入掩码

    在测试我的程序后 我发现了以下错误 我在 sqlserver 中的表包含 价格数字 6 2 我的程序的用户输入价格 555 00 就很好了 但是当他输入 555555 时 这是错误的 所以我需要指定掩码 其中尾数是可选的 0 到 999 小
  • 使用 JavaScript onclick 添加表格行

    我正在尝试使用 javascript 添加下面找到的完全相同的元素 我已经尝试了这里找到的所有解决方案 我什至尝试用php echo但没有运气 无需更改任何输入名称或类似内容 只需单击该按钮即可向表中添加另一行 仅此而已 这是该元素 tr
  • CSS:缩放字体大小以适应父块元素的高度

    我发现的几乎每个问题和答案都谈到了视口大小 这确实不是我的问题 拿着这支笔 https codepen io njt1982 pen pZjZNM https codepen io njt1982 pen pZjZNM 我有一个非常基本的

随机推荐

  • C++实现链式栈

    pragma once template
  • python可视化石头剪刀布界面

    python是一个简单高效的编程语言 其易于扩展和丰富的库深受人们的欢迎 它让编程变得更简单 易懂 现在它也可以用来写一个一个简单的小游戏 无需网络能玩一天 代码如下 import random import tkinter from tk
  • abb 机械手臂 示例程序

    教学设备的示例程序 如有侵权 立删 MODULE SX815Q1 CONST robtarget pHomeQ1 396 50 0 00 630 00 0 499991 0 500009 0 499998 0 500002 1 1 3 0
  • 算法实践1_线性回归

    参数解释 sklearn linear model LinearRegression fit intercept True normalize False copy X True n jobs None 超参 解释 类型 默认值 fit i
  • 生产API版本及SIMNOW环境说明

  • Java 读取某文件下的所有文件名称以及大小,并输出在xls表格里

    方法一 package com test demo test import lombok Data import java io import java util ArrayList import java util List Title
  • np.clip的使用方法

    np clip的使用方法 参数数量及其作用 示例 参数数量及其作用 np clip是一个截取函数 用于截取数组中小于或者大于某值的部分 并使得被截取部分等于固定值 函数如下 np clip a a min a max out None 该函
  • WSL2中使用GPU

    在WSL2上安装CUDA和NVIDIA HPC SDK 1 WSL2和Ubuntu的安装 2 安装显卡驱动 3 在WSL2中安装CUDA 4 安装 NVIDIA HPC SDK Windows10内部预览版20145及之后的版本的WSL2支
  • 软件设计模式详解 #CSDN博文精选# #IT技术# #软件模式# #设计模式#

    大家好 小C将继续与你们见面 带来精选的CSDN博文 又到周一啦 上周的系统化学习专栏已经结束 我们总共一起学习了20篇文章 这周将开启全新专栏 放假不停学 全栈工程师养成记 在这里 你将收获 将系统化学习理论运用于实践 系统学习IT技术
  • 五、IDEA中创建Web项目

    文章目录 5 1 创建Web项目 5 1 1 创建项目 5 1 2 编写Servlet类 5 2 手动部署项目 5 3 自动部署项目 5 3 1 IDEA集成Tomcat 5 3 2 IDEA部署JavaWeb项目 5 4 war包部署 5
  • css被点击后改变样式,Js 通过点击改变css样式

    通过js 点击按钮去改变目标原始的背景颜色Change html function test4 event if event value 11 取div1 var div1 document getElementById div1 div1
  • voronoi图编程构造_可视化编程真的有那么糟糕?

    作者 Anton Livaja 译者 弯月 责编 屠敏 以下为译文 我想告诉你 如果使用恰当 可视化编程和是图解推理是一个非常强大的工具集 也就是说 只有当可视化编程扎根于数学和计算机科学并建立坚实的基础 才能发挥良好的作用 为了降低编程的
  • 《职场情绪稳定:内在的力量与策略》

    近期发生的新闻热点 如大规模裁员 创业公司倒闭 公共卫生事件等 让公众更加关注稳定情绪和心理健康的问题 在职场中 我们常常遇到各种挑战和压力 如何保持稳定的情绪成了一个重要的话题 首先 让我们分享一些工作中可能引发我们情绪波动的事情 我曾经
  • IT项目管理七

    Tony Prince 和他的团队正在做一个娱乐和健康方面的项目 他们被要求修改现有的成本估计 以便能有一个可靠的评价项目绩效的基线 你的进度和成本目标是在6个月内在200 000美元的预算下完成项目 1 作业一 准备和打印一页类似于图7
  • 求n个数的最小公倍数(C语言)

    Problem Description 求n个数的最小公倍数 Input 输入包含多个测试实例 每个测试实例的开始是一个正整数n 然后是n个正整数 Output 为每组测试数据输出它们的最小公倍数 每个测试实例的输出占一行 你可以假设最后的
  • java项目 畅购商城 购物车

    第10章 购物车 学习目标 能够通过SpringSecurity进行权限控制 掌握购物车流程 掌握购物车渲染 微服务之间的认证访问 1 SpringSecurity权限控制 用户每次访问微服务的时候 先去oauth2 0服务登录 登录后再访
  • 网易游戏(互娱)游戏研发一面&二面(已收到offer)

    简单来讲下上周面网易互娱的心得 因为我不是走内推而是直接怼笔试的 所以上周才有了笔试结果然后被告知面试 我面的岗位是游戏研发工程师 初级 一面 40分钟左右 开始是简单的自我介绍 C 关于C 问的比较简单 因为我跟面试官说我主要学的是Jav
  • 风格回调函数 vs c++风格虚基类

    http www cnblogs com raymon archive 2012 08 28 2660876 html 风格回调函数 vs c 风格虚基类 关于接口定义和调用的对比 c 中也很常用回调函数 比如MFC中 既可以用回调函数的方
  • APP移动端自动化基础及appium环境搭建

    目录 APP移动端自动化测试基础 主流移动端自动化工具 Appium介绍 Appium工作原理 Appium环境搭建 安装前准备工具 安装Android SDK 配置环境变量 安装Python client 安装夜神模拟器 mumu模拟器
  • 一文一图搞懂OSI七层模型

    什么是OSI 所谓的OSI 是由国际化标准组织 ISO 针对开放式网路架构所制定的电脑互连标准 全名是开放式通讯系统互连参考模型 Open System Interconnection Reference Model 简称OSI模型 该模型