【计算机网络笔记】OSI参考模型基本概念

news2024/11/19 0:44:14

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念


  • 系列文章目录
  • OSI参考模型
  • OSI参考模型解释的通信过程
  • 为什么需要数据封装?


OSI参考模型

开放系统互连 (OSI)参考模型是由国际标准化组织 (ISO) 于 1984年提出的分层网络体系结构模型。目的是支持异构网络系统的互联互通。

OSI参考模型是网络系统互连的国际标准(但也仅仅是一个标准)。虽然从市场上来说,这个模型并不是一个流行的产品,但是它是我们理解网络通信的最佳学习工具或者理论模型。OSI参考模型不仅是计算机网络中一个重要的模型,在通信领域中也经常使用这个模型讨论问题。

在OSI参考模型中,网络按照功能分为七层,每层完成特定的网络功能。所有层次共同协作,完成整个网络的通信。

在这里插入图片描述


OSI参考模型解释的通信过程

通过一个例子来说明。两个主机通过中间系统(比如路由器)进行互连通信。

源主机和目的主机都要实现7层的功能,中间系统要完成3层的功能。所有对等层次之间都会遵循相关的协议进行数据交换,也就是说对等层次协议规定了这一层如何构造和交换数据。这里协议都是虚线,说明这是逻辑上的通信。最终通信总得在物理链路上传输。所以最下面是物理介质。

在这里插入图片描述

A主机要给B主机发送数据,数据先到达应用层进行处理,应用层按照它所在的层的协议处理完数据后再发给表示层进行处理,以此类推一直向下,最终是物理层。然后数据传到了中间系统,中间系统从物理层接收数据,接收以后要还原到数据链路层,再还原到网络层,每一层协议所处理的数据单元或数据包,在OSI参考模型中通常叫PDU(协议数据单元)。在网络层确定了数据接下来要传给哪个主机后,再将数据往下最后交给物理层,然后数据在物理介质上进行传输到了目的地以后,一层一层还原,最终还原到应用层。注意在这个过程中,在对等的层上只能识别对等层打包的数据。

在这里插入图片描述

  • 图中实线描述的是数据真正的流动方向。叫做实通信或者物理通信。虚线是对等层之间,它们以为数据是直接交换的。比如你写信给你的朋友,从你俩的角度看,好像是你把这个信直接给了你的朋友,但事实上,信是通过邮政系统里复杂的处理过程后才到达对方手中。

  • 相邻层之间通过接口交换数据

通过这个图我们能够发现,中间系统是没有实现上面四层功能的。这四个层次就是端到端的层,下面三层是非端到端层。

在这里插入图片描述

数据在每一层传输的过程中,每一层协议有可能会给数据加上一些比如控制信息这样的信息头,构成这个协议的数据包,叫做PDU(协议数据单元)。物理层就不会加东西了,而是将数据转化为比特流,这个比特流在物理介质上进行传播。传到目的主机后,再一层一层的将对等层添加的协议头部信息去掉。

在这里插入图片描述

那为什么每一层要对数据进行再封装呢?


为什么需要数据封装?

为了添加控制信息。数据封装最终构造的是协议数据单元 (PDU)。增加的信息多数以头部(链路层是加头加尾)。

控制信息主要包括:

  • 地址(Address): 标识发送端/接收端。标识谁发的数据,要发给谁。
  • 差错检测编码(Error-detecting code): 用于差错检测 或纠正。
  • 协议控制(Protocol control): 实现协议功能的附加信 息,如: 优先级(priority)、服务质量(QoS)、 和安全控制等。

当然,差错控制信息和协议控制信息并不是每个协议都要加的。

下一篇文章逐一地来介绍OSI参考模型每一层主要完成哪些功能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式存储 vs. 全闪集中式存储:金融数据仓库场景下的性能对比

作者:深耕行业的 SmartX 金融团队 张德敏 近年来随着金融行业的高速发展,经营决策者及监管机构对信息时效性的要求越来越高,科技部门面临诸多挑战。例如,不少金融机构使用数仓业务系统,为公司高层提供日常经营报表&am…

阿里云服务器x86计算架构ECS规格大全

阿里云企业级服务器基于X86架构的实例规格,每一个vCPU都对应一个处理器核心的超线程,基于ARM架构的实例规格,每一个vCPU都对应一个处理器的物理核心,具有性能稳定且资源独享的特点。阿里云服务器网aliyunfuwuqi.com分享阿里云企业…

InitializeComponent报错(提示不存在)

我是c#新手。为了解决这个问题,需要按照以下步骤进行。、 WPF应用(.NET Framework) 解决问题 首先,确保项目的类型为WPF应用(.NET Framework); 然后,代码的位置应正确处于项目的MainWindow.xaml.cs; 最后&#xff0c…

Deno 快速入门

目录 1、简介 2、安装Deno MacOS下安装 Windows下安装 Linux 下安装 3、创建并运行TypeScript程序 4、内置Web API和Deno命名空间 5、运行时安全 6、导入JavaScript模块 7、远程模块和Deno标准库 8、使用deno.json配置您的项目 9、Node.js API和npm包 10、配置IDE…

宏(预编译)详解

目录 一、程序的编译环境 二、运行环境 三、预编译详解 3.1预定义符号 3.2.1 #define 定义标识符 3.2.2 #define 定义宏 3.2.3#define替换规则 3.2.4 #和## 2)##的作用: 3.2.5宏和函数的对比 3.2.6宏的命名约定和#undef指令 一、命名约定: …

CCC数字钥匙设计【NFC】--通过NFC进行车主配对Phase3

1、车主配对流程介绍 车主配对可以通过车内NFC进行,若支持UWB测距,也可以通过蓝牙/UWB进行。通过NFC进行车主配对总共有5个Phase。本文档主要对Phase3进行介绍。 1) Phase0:准备阶段; 2) Phase1:启动流程&#xff1…

C语言中的3种注释方法

C语言中的3种注释方法 2021年8月28日星期六席锦 在用C语言编程时,常用的注释方式有如下几种: (1)单行注释 // … (2)多行注释 /* … */ (3)条件编译注释 #if 0…#endif (1)(2)在入门教程中比较常见。 对于(1) 【单行注释 // …】,注释只能显示…

将输入对象转换为数组数组的维度大于等于1numpy.atleast_1d()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将输入对象转换为数组 数组的维度大于等于1 numpy.atleast_1d() 选择题 使用numpy.atleast_1d()函数,下列正确的是? import numpy as np a1 1 a2 ((1,2,3),(4,5,6)) print("…

Dev-C++ 软件安装教程(附安装包下载)

Dev-C(123网盘)提取码:EoF8https://www.123pan.com/s/JRpSVv-dKnjv.html (软件包下载后,右键解压) 一、打开文件夹,双击“Dev-C” 二、软件安装,点击“OK” 三、点击“I Agree” 四、点击“Ne…

计算机视觉基础(5)——特征点及其描述子

前言 本文我们将学习到特征点及其描述子。在特征点检测中,我们将学习角点检测和SIFT关键点检测器,角点检测以哈里斯角点检测器为例进行说明,SIFT将从高斯拉普拉斯算子和高斯差分算子展开。在描述子部分,我们将分别学习SIFT描述子和…

49数码论坛系统设计与实现

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

浅析限流式保护器在低压配电系统中电气火灾的应用

安科瑞 华楠 【摘要】文章分析了低压配电系统短路的类型、原因及火灾危险性,并提出改善措施。 【关键词】:低压配电系统; 短路; 措施 0引言 随着人类进入现代文明社会,电气的普及深入千家万户,广泛应用于…

npm ERR! exited with error code: 128

1.遇到的问题 报错信息:npm ERR! E:\tools\Gitt\Git\cmd\git.EXE ls-remote -h -t https://github.com/nhn/raphael.git npm ERR! npm ERR! fatal: unable to access https://github.com/nhn/raphael.git/: OpenSSL SSL_read: Connection was reset, errno 10054 …

FPGA project : IIC_wr_eeprom

简介: 简单双向二线制,同步串行总线。 scl:串行时钟线,用于同步通讯数据。 sda:双向串行数据线。 物理层: 1,支持挂载多设备。 2,二线制。 3,每个设备有其单独的地…

【已解决】java的gradle项目报错org.gradle .api.plugins .MavenPlugin

我的java的gradle项目经常报错org.gradle .api.plugins .MavenPlugin。报错这个问题是因为依赖起冲突了,我在网上试了很多方法都没有效果,折让小编我很是苦恼,不过还好到最后问题还是解决了。 首先要知道你的项目所使用的gradle版本&#xf…

Webpack十大缺点:当过度工程化遇上简单的静态页面

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

React-Router路由

1.React Router的基本使用 安装:安装时,选择react-router-dom,react-router会包含一些react-native的内容,web开发并不需要; npm install react-router-dom 路径模式 BrowserRouter使用history模式; Hash…

【六:(mock数据)spring boot+mybatis+yml】

目录 1.1、代码编写Demo类User类启动类 APplication 1.2、配置类查询语句的配置 mysql.ymlspringboot的配置 application.yml日志的配置 logback.xml数据库的配置 mybatis-config.xml 1.3、测试:1.3.1、测试获取用户数1.3.2、添加用户1.3.3、数据的更新1.3.4、数据的…

【八:(调springboot+testng+mybatis+数据校验】

目录 1、代码结构configcontrollermodelspringboot启动类 2、配置资源mysql.xmlapplication.ymllogback.xmlmybatis-config.xml数据库配置 3、测试验证 1、代码结构 config package com.course.config; import org.springframework.context.annotation.Bean; import org.sprin…

Linux 进程操作

文章目录 进程的基本知识进程pid进程常用的函数 forkwait和waitpidexec函数簇system函数信号处理signal函数Linux的SIGUSR1SIGUSR2 讨论 进程的基本知识 一个程序的执行称为一个进程,所有的代码都是在进程中执行的,进程是操作系统资源分配的基本单位。 在…