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

2023-09-20 16:28:32

OSI七层网络参考模型

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七层网络参考模型,该视频中有更加丰富的动画解释。

更多推荐

【整理】text2kgbench: 语言模型根据本体生成知识图谱的能力

概述该论文的研究背景是大型语言模型(LLM)和基于本体的知识图谱(KG)在自然语言处理(NLP)任务中的性能提升。过去的方法存在一些问题,该论文提出的方法通过从文本中生成KG并遵循给定的本体,解决了这些问题,并鼓励了新的方法。本文提出了Text2KGBench,一个基准测试,用于评估语言模型根据本体从自然语言文本中生成

访问者模式简介

概念:访问者模式(Visitorpattern)是一种行为型设计模式,它允许在不修改已有对象结构的情况下定义新操作。该模式将数据结构与操作分离,使得新增操作变得容易,并且可以在不同的数据结构上复用相同的操作。特点:将操作封装到独立的访问者类中,使得添加新的操作变得简单。可以对一个对象结构中的元素进行多种不同类型的遍历和

Remix 和 Next.js 中实现依赖注入

文章目录在Remix中实现依赖注入在Next.js中实现依赖注入对比小结在Remix中实现依赖注入在Remix中实现依赖注入需要使用到context。下面是一个简单的示例:首先,在项目根目录下创建context.js文件:importReactfrom'react';constDependenciesContext=R

【Spatial-Temporal Action Localization(二)】论文阅读2017年

文章目录1.ActionVLAD:Learningspatio-temporalaggregationforactionclassification[code](https://github.com/rohitgirdhar/ActionVLAD/)[](https://github.com/rohitgirdhar/

platform驱动模型

一、总线驱动模型1.概念linux中将一个挂载在总线上的驱动的驱动模型分为三部分:device、driver和bus。device是用来保存设备信息的对象,存放在内核中一个klist_device链表中进行管理。driver当前设备的驱动信息对象,存放在内核中一个klist_driver链表中进行管理。bus是当前设备

【Python从入门到进阶】36、Selenium 动作交互

接上篇《35、selenium基本语法学习》上一篇我们介绍了selenium的基本语法,包括元素定位以及访问元素信息的操作。本篇我们来学习selenium操作网页的动作内容。一、什么是selenium动作操作动作操作是指使用Selenium调用WebDriver执行与用户交互相关的动作,例如单击、右键单击、悬停、拖放等

Redis集群搭建

Redis集群搭建1、主从模式部署1.1环境准备IP主机名角色192.168.54.200mastermaster192.168.54.201slave1slave1192.168.54.202slave2slave21.2下载下载地址:http://download.redis.io/releases/这里选择下载:

全链路自动化测试

背景从SOA架构到现在大行其道的微服务架构,系统越拆越小,整体架构的复杂度也是直线上升,我们一直老生常谈的微服务架构下的技术难点及解决方案也日渐成熟(包括典型的数据一致性,系统调用带来的一致性问题,还是跨节点跨机房复制带来的一致性问题都有了很多解决方案),但是有一个环节我们明显忽略了。在现在的微服务架构趋势下,微服务在

微信小程序| 打造ChatGPT英语四六级背单词小程序

一、需求背景学英语,最大的痛苦莫过于背单词!不知道你平时都是用什么方式在背单词呢?硬啃单词书?字典?还是说各类的背单词APP来回跳转?不可否认的是,单词一两遍完全记不住,没有个三四五六七八遍,都很难在考场的卷子上认出他!所以,这次我们来做一个通关英语四六级的背单词神器,让他能够基于艾宾浩斯遗忘规律来辅助我们高效背单词。

数仓主题域和数据域、雪花模型,星型模型和星座模型

数仓模型和领域划分一、主题域和数据域的差别二、雪花模型,星座模型和星型模型一、主题域和数据域的差别明确数据域作为数仓搭建的重要一环,能够让数仓的数据便于管理和应用。数据域和主题域都是数据仓库中的重要概念,但含义略有不同,常常作为面试官的面试考点。数据域指的是特定的业务领域或是业务过程,如销售、采购、人力资源管理、财务等

前端需要知道的计算机网络知识----网络安全,自学网络安全,学习路线图必不可少,【282G】初级网络安全学习资源分享!

网络安全(英语:networksecurity)包含网络设备安全、网络信息安全、网络软件安全。黑客通过基于网络的入侵来达到窃取敏感信息的目的,也有人以基于网络的攻击见长,被人收买通过网络来攻击商业竞争对手企业,造成网络企业无法正常营运,网络安全就是为了防范这种信息盗窃和商业竞争攻击所采取的措施。随着互联网的高速发展,信

热文推荐