OSI七层网络参考模型与数据流通过程

news/2024/10/18 19:22:58/

OSI七层网络参考模型

文章目录

  • OSI七层网络参考模型
    • 1. OSI参考模型初步了解
    • 2. OSI参考模型理解
    • 3. 数据流通的过程

1. OSI参考模型初步了解

OSI,英文为Open System Interconnect,意为开放式系统互连,国际化标准组织(ISO)指定了OSI模型,这个模型把网络通信的工作定义成7个框架,分别是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层,即OSI开放式系统互连参考模型。

这个参考模型的目的就是解决网络通讯,比如说华为电脑要与苹果电脑进行通讯,但这两台电脑来自不同公司,就像只会中文的人不能与只会英文的人交流,但是如果大家都统一使用OSI网络模型来沟通情况就不一样了

OSI参考模型也采用了分层结构的思想,即把一个网络系统分成若干层,每一层都去实现不同的工作,每一层的功能都以协议描述,该协议定义了每一层与相对于需要通信的网络系统的等层的规则和约定,这实现了当网络出现问题的时候可以从一个宏观的整体去分析和解决问题。每一层向相邻上层提供一套确定的服务,并且使用与之相邻的下层所提供的服务。从概念上来讲,每一层都与一个远方对等层通信,但实际上该层所产生的协议信息单元是借助于相邻下层所提供的服务传送的。因此,对等层之间的通信称为虚拟通信。

在这里插入图片描述

2. OSI参考模型理解

我们先用上面所说的华为电脑和苹果电脑进行通信的例子,先用最通俗的语言来解释OSI七层参考模型每一层的各施其职。假设现在苹果电脑自己用应用软件搭建了一个网站,华为电脑想要访问这个网站就需要软件应用了,比方说用浏览器访问网站,两个应用具体需要如何进行交互就是应用层的事情了,应用层的功能不是为了应用什么应用程序,而是为了如何沟通,常见的应用层协议就是HTTP了。应用层就是最接近用户的那一层,沟通的时候不是直接与另一应用层进行沟通,实际物理上的连通是需要物理层的。

  • 物理层:我们要发送出去的数据就是无数的0和1,这就是我们所说的“比特”,物理层就是将这些比特传输出去,传输媒介有电、光或者其他形式的电磁波来表示和传输信号。数据从网络接口出去之后会经过很多的网络拓扑并不是一条线直接传输过去的,因此需要中继器和集线器这样的设备,但数据去到哪一台设备是需要定向的,这时候就需要高级一点的层——数据链路层。
  • 数据链路层:在数据链路层这里,基本传输单位是“帧”,在传输过程中可能出现0变成1,1变成0,所以会进行差错检测,当发现数据错误时候可以重传数据帧。另外设备的传输能力和接收能力也是一个问题,所以会进行一定的流量控制。在这一层中,上层数据加上源和目的方的物理地址(MAC)地址封装为数据帧,MAC地址就是用来标识网卡的物理地址(全球唯一),为了可以通过MAC地址对不同设备进行数据的传输,就出现了交换机,发送端发送数据的时候,交换机就知道了发送端的MAC地址,如果交换机知道了接收端的MAC地址就可以传输过去了。
  • 网络层:但是仅仅靠网卡来进行通讯效率是不高的,比如说两个设备用的同一个厂商的网卡且MAC地址只相差一个字母,而它们相隔十万八千里,物理地址此时就很难做出快速定位。因此需要IP地址来进行寻址和路由选择。IP这样的逻辑地址就是实现点到点的过程了。网络层就是以路由器为最高节点俯瞰网络的关键层,它负责将上层数据加上源和目的方的逻辑(IP)地址封装成数据包,实现数据从源端到目的端的传输。网络层进行逻辑地址寻址,实现不同网络之间的路径选择。
  • 传输层:虽然有MAC和IP地址可以抵达对方的主机,但是对方的主机可能运行着无数个软件进程,这时就需要传输层了。传输层是计算机通信体系结构中关键一层,传输层定义了传输数据的协议端口号,以及流控和差错检测。将上层应用数据分片并加上端口号封装成数据段,或通过对报文头中的端口识别。传输层实现了网络中不同主机上的用户进程之间的数据通信,为用户提供了进程到进程的服务。传输层起到了承上启下的作用,承接上层软件应用,下启网络数据传输。
  • 会话层:会话层就比较容易理解,它就是用来维持你的登录状态让你不需要每一次都输入密码,当然网站也会管理和控制你的登录状态,会话层在这里的作用就是负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能。
  • 表示层:表示层也很容易理解,就是将接收到的数据转化为二进制的计算机语言、数据加密和解密、数据压缩和解压等,它提供了数据的安全传输。
  • 应用层:应用层就是最接近用户的一层了,是人机交互的窗口。

通过以上这些应该就对ISO模型有所了解了吧,下面来总结一下:

作用关键词
应用层最接近用户一层,为应用程序提供网络服务人机交互
表示层数据转换、加密解密、压缩解压数据处理
会话层管理传输连接管理连接
传输层定义传输数据的协议端口号,以及流控和差错校检段、端口号
网络层进行逻辑地址寻址,实现不同网络之间的路径选择包、IP地址
数据链路层建立逻辑连接,进行硬件地址寻址,差错检测、流控等帧、MAC地址
物理层数据传输,决定传输媒介比特流、媒介

在这里插入图片描述

3. 数据流通的过程

了解了各层的作用现在就可以把全部关联起来:

  • 传输层将报文连同端口号封装成段:
    在这里插入图片描述

  • 段来到网络层,加上IP地址,封装成包,这里的包是含有目标IP地址的:在这里插入图片描述

  • 但因为目标IP地址不是同一个网络下的,要发送到其他的网络就要经过默认网关;这里就有一个问题,客户机主机最初并不知道默认网关的MAC地址,没有办法封装成帧,这个时候就可以通过ARP协议进行广播找到网关IP对应的MAC地址,把包封装成帧,源MAC地址填写自己的,目标MAC地址填广播地址的:在这里插入图片描述

  • 默认网关解封帧之后发现了MAC地址,再解封包发现了IP地址,就会把客户端MAC和IP关联为一台主机,接着默认网关将自己的IP和MAC地址打包为帧,再返回客户机,这样客户机就知道网关的IP地址了:在这里插入图片描述

  • 接着客户机就可以发送数据,客户机通过比特流发送到默认网关,默认网关解封发现这些数据是发送给自己的,同时也发现目标IP地址是在另一个网络中的就会进行路由转发最终到达目的网络,如果目标网关知道目标IP地址和MAC地址是哪一台主机的,就可以封装成帧直接发送数据,如果不知道的话,也是可以通过ARP协议喊一下就可以了

以上就是数据流通的基本内容了,接下来看一下每一层对应的协议:

层数名称主要协议
1物理层IEEE 802.3 (以太网)、IEEE 802.4 (标记总线)、IEEE 802.5 (令牌环)、FDDI (光纤分布式数据接口)、PPP (点对点协议)、SLIP (串行线路互联协议)等
2数据链路层IEEE 802.2 (一般数据链路协议)、PPP (点对点协议)、PPPoE (以太网上的点对点协议)等
3网络层IP (互联网协议)、ICMP (互联网控制报文协议)、IGMP (互联网组管理协议)、ARP (地址解析协议)、RARP (反向地址解析协议)等
4传输层TCP (传输控制协议)、UDP (用户数据报协议)等
5会话层RPC (远程过程调用协议)、SQL (结构化查询语言)、SMTP (简单邮件传输协议)、NFS (网络文件系统)等
6表示层SSL (安全套接字层)、TLS (传输层安全协议)、MIME (多用途互联网邮件扩展)等
7应用层HTTP (超文本传输协议)、FTP (文件传输协议)、SMTP (简单邮件传输协议)、DNS (域名系统)、TELNET (远程登录协议)、SNMP (简单网络管理协议)、NFS (网络文件系统)等

本篇文章参考了B站博主“技术蛋老师”的视频OSI七层网络参考模型,该视频中有更加丰富的动画解释。


http://www.ppmy.cn/news/1117309.html

相关文章

latexocr安装过程中遇到的问题解决办法

环境要求:需要Python版本3.7,并安装相应依赖文件 具体的详细安装步骤可见我上次写的博文:Mathpix替代者|科研人必备公式识别插件|latexocr安装教程 ‘latexocr‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的相关解决办…

【新版】系统架构设计师 - 案例分析 - 数据库设计

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 案例分析 - 数据库设计数据库基础数据库设计概述E-R模型概念结构设计逻辑结构设计规范化(范式)反规范化技术数据库事务并发控制索引视图物化视图存储过程触发器数据库性能优…

ESP8266 Windows下开发环境搭建

文章目录 1、SDK下载2、Windows下的开发工具链安装3、ESP8266专用工具链安装4、运行msys32目录下的mingw32.exe,初始化环境5、配置环境变量6、编译hello world例程7、SDK配置8、烧录9、在串口助手中查看 1、SDK下载 官方提供了两种SDK,OS版本和非OS版本…

卷运维不如卷网络安全

最近发现很多从事运维的选择了辞职,重新规划自己的职业发展方向。运维工程师这个岗位在IT行业里面确实是处于最底层的,不管什么环节出现问题,基本都是运维背锅。背锅也就罢了,薪资水平也比不上别的岗位。 一般运维的薪资水平大多数…

产品新闻稿件怎么写?纯干货

写产品新闻稿件需要遵循一定的结构和写作规范,接下来伯乐网络传媒来给大家分享一下,以下是一些建议和步骤,供您参考: 标题:使用简洁、准确的语言来概括产品的核心信息,吸引读者的兴趣。 导语/导览&#xf…

【ArcGIS】基本概念-矢量空间分析

栅格数据与矢量数据 1.1 栅格数据 栅格图是一个规则的阵列,包含着一定数量的像元或者栅格 常用的栅格图格式有:tif,png,jpeg/jpg等 1.2 矢量数据 矢量图是由一组描述点、线、面,以及它们的色彩、位置的数据&#x…

如何使用Java爬取指定链接的网页内容

在当今信息时代,互联网上的数据量庞大且不断增长。为了获取特定网页的内容,爬虫技术成为了一种非常有用的工具。本文将介绍如何使用Java编程语言来实现爬取指定链接的网页内容。 首先,我们需要准备好Java开发环境。确保你已经安装了Java Deve…

Flask框架-1-[群聊]: flask-socketio实现websocket的功能

一、项目结构 flask_websocket |---static |---js |---jquery-3.7.0.min.js |---socket.io_4.3.1.js |---templates |---home |---group_chat.html |---index.html |---app.py 1.1、python环境 python3.9.0 1.2、依赖包 Flask2.1.0 eventlet0.33.3 Flask-SocketIO5.3.4 1.…