当前位置: 首页 > news >正文

网络模型OSI

网络模型

  • OSI定义
    • 模型分布
    • 数据封装、解封过程
  • 数据链路层
    • 1.LLC逻辑链路控制子层(Logic Link Control Sub Layer)
    • 2.MAC媒介访问控制子层(Medium Acess Control Sub Layer)
      • CSMA/CA
        • RST-CST原理

OSI定义

OSI:Open Systems Interconnection Reference Model,开放系统互连参考模型
目的:用于计算机或通信系统间互联的标准,以实现网络互通

模型分布

在这里插入图片描述
在这里插入图片描述

物理层(Physical Layer):定义物理设备标准,包括电气特性、机械特性、功能特性、规程特性这四个方面。用于建立、维护、断开物理连接。定义通信的传输介质,实现实际终端设备信号传输,码流通过物理设备传输。工作设备主要有网卡、集线器、各种线缆(光纤、网线、同轴电缆)

数据链路层(Data Link Layer):
1.提供mac地址(网卡物理地址),物理地址寻址
2.数据成帧frame、转发
3.错误检测机制,发现数据有丢失则通知对方重传

网络层(Network Layer):
1.提供IP地址,数据传送的目的地寻址
2.选择一个传送数据的最佳路线,根据路由器运行的不同的路由协议选择最佳路径

传输层(Transport Layer):
1.提供端口号,根据端口号识别对应服务(每种应用对应不同的端口号)
2.控制数据流量,确保传输准确。发送端分段数据、接收端重组数据

会话层(Session Layer):
在应用程序之间建立维护并拆除会话连接

表示层(Presentation Layer):
为不同客户端提供数据和信息的语法转换,使系统能解读成正确的数据,同时它还能提供压缩解压、加密解密等服务。

应用层(Application Layer):
给用户和抽象的网络之间提供一个接口,使用户可以通过使用应用程序、app来使用整个的6层网络模型

数据封装、解封过程

在这里插入图片描述
在这里插入图片描述

数据链路层

数据链路层有两个著名sub layer

1.LLC逻辑链路控制子层(Logic Link Control Sub Layer)

该子层实现了两个站点之间帧的交换,实现端到端(源到目的),无差错的帧传输和应答功能及流量控制功能

2.MAC媒介访问控制子层(Medium Acess Control Sub Layer)

解决共用信道竞争,分配信道使用权。
目前LAN中常用的媒介访问控制方法是CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance,译为载波监听多路访问/冲突避免机制))

有线和无线使用MAC差异
有线使用“冲突检测”CSMA/CD(Carrier Sense Multiple Access/Collision Detect,载波监听多路访问/冲突检测机制):
1.发送数据前监听信道是否空闲,空闲则发送;
2.发送数据的同时监听,监听到冲突时停时发送,停止随机时间后重新发送

无线使用“冲突避免”CSMA/CA:同时发送和监听的方式,对于无线介质来说浪费资源。

CSMA/CA

由于无线网络是共享介质,协调的作用是使各个无线设备使用无线网络时避免冲突发生。

两种冲突避免方案:
1.避退:发送数据前,先监听无线链路状态是否空闲。当无线链路被其他设备占用时,设备会随机为每一帧选择一段退避(backoff)时间,减少冲突发生。

2.RST-CST握手:发送数据前,终端发送一个RST帧给目标,目标回复CST才开始传输数据。确保后续传输数据时其他设备不会使用信道。
RST、CST帧长很小所以消耗很少:
RST请求发送帧:20字节,内容包含要发送的数据帧长,
CST允许发送帧:14字节,内容包含请求中欲发送的数据帧的长度

RST-CST原理

在这里插入图片描述
RST-CST如何解决多个站之间数据传输冲突
站A无线信号覆盖范围:B、C、E
站B无线信号覆盖范围:A、D、E
如果A向B发送数据:
1.A向B发送RST,因为B、C、E在A的覆盖范围内,所以都能接收到A发送的RST
2.B向A发送CST,因为A、D、E在B的覆盖范围内,所以都能接受到B的CTS
3.C接收到A的RST,接收不到B的CST。在A向B发送数据的同时,可以发送数据,不会干扰B
4.D接受不到A的RST,可以接收B的CST。在收到B发送的CST后关闭数据发送,避免干扰B
5.E接收A的RST和B的CST,在A发送数据帧的整个过程中不能发送数据
6.若A和E同时向B发送RST,两个RST冲突使得B接收不到正确的RST,则B无法产生CST,此时A和E各自推迟随机时间后重新发送RST

802.11提供3种“RST-CST”可供使用
1.使用RST-CST帧
2.不使用
3.在一定条件下使用,当数据帧的长度超过某一数值时

协调功能(Coordination Function)
CSMA/CA具体运作时由协调功能来控制,协议规定四种协调功能
1.分布式协调功能(Distributed CF,简称DCF)
2.基于DCF之上的Point CF(Point CF,简称PCF)
3.混合型协调功能(Hybrid CF,简称HCF)
4.用于Mesh网络的(Mesh CF,简称MCF)
基于竞争的服务(contention-based service,使用DCF进行数据交换)
基于无竞争的服务(contention-free service,使用PCF进行数据交换)

相关文章:

网络模型OSI

网络模型OSI定义模型分布数据封装、解封过程数据链路层1.LLC逻辑链路控制子层(Logic Link Control Sub Layer)2.MAC媒介访问控制子层(Medium Acess Control Sub Layer)CSMA/CARST-CST原理OSI定义 OSI:Open Systems Interconnection Reference Model,开放…...

RT-Thread初识学习-01

1. RT-Thread 简介 1.1 RT-Thread 是什么 据不完全统计,世界有成千上万个 RTOS(Real-time operating system,实时操作系统),RT-Thread 就是其中一个优秀的作品。 RT-Thread 内核的第一个版本是熊谱翔先生在 2006 年…...

二阶段提交事务的实现和缺点

背景 说起分布式事务,我们最绕不开的一个话题就是该不该使用分布式事务,而要理解为什么做出使用与否的决定,就必须要提到分布式事务中的最经典的实现:两阶段提交事务,本文我们就简答介绍下这个两阶段提交事务以及它的优缺点 技术…...

定点数的表示和运算

文章目录真值(有正负号)和机器数(0正1负)原码整数小数补码负数的补数正数的补数[y]~补~ > [-y]~补~反码小结移码移位运算加减法运算溢出判断真值(有正负号)和机器数(0正1负) 无符…...

java虚拟机内存分布

java虚拟机内存分布 Java虚拟机在执行java程序的过程中会把它所管理的内存划分为如下若干个不同的数据区域。 1.程序计数器 程序计数器是线程私有的,它占用的空间相对较小,用来记录当前线程字节码执行到哪一步。字节码解释器通过改变这个计数器的值来获…...

最完整的小红书带货笔记——垂直模式

最完整的小红书带货笔记——垂直模式,小红书直播复盘怎么做?#直播带货笔记 第1篇,带你解锁直播复盘5大要点! #小红书店铺#小红书运营 小红书怎么发带货笔记? 做小红书带货的同学注意了,我们带货一定要发笔…...

SpringBoot实战——个人博客项目

目录 一、项目简介 二、项目整体架构 数据库模块 后端模块 前端模块 三、项目具体展示 四、项目的具体实现 1、一些准备工作 🍎数据库、数据表的创建 🍎设置数据库和MyBatis的配置 🍎将前端项目引入到当前项目中 2、登录注册模块 &…...

浅谈Spring中事务管理器

由于事务部分代码在设计上整体比较简单,我自己觉得它在设计上没有什么特别让我眼前一亮的东西,所以下文更多的是侧重执行流程,能理解事务管理器等一众概念以及相关的变量含义,真正遇到Bug会调试,知道在什么地方打断点就…...

Python练习系统

用python给自己做个练习系统刷题吧! #免费源码在文末公众号哈# 选择题 def xuanze():global flag2if flag21:def insert():numvar1.get()questionvar2.get()choicevar3.get()answervar4.get()with open(d:\\练习系统\\练习三3.1.pickle,rb) as file:lst1pickle.lo…...

Transformer学习笔记1

Transformer学习笔记1 翻译中,每个词翻译时更看重哪个原词? ## 注意力机制的一般性原理 典型的注意力机制 hard one-hot形式,但是太过专一 soft 都分布,但是太过泛滥 local attention 自注意力机制:self-atte…...

软件测试简历个人技能和项目经验怎么写?(附项目资料)

目录 前言 个人技能 项目实战经验 项目名称:苏州银行项目(webapp) 项目描述: 项目名称:中国平安项目(webapp) 项目描述: 项目名称:苏宁易购项目(webapp&a…...

C语言运算符优先级和结合性一览表

所谓优先级就是当一个表达式中有多个运算符时,先计算谁,后计算谁。 运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符()和逗号运算符 简单记就是:! > 算术运…...

Java8介绍

Java 8 Java 8 把函数式编程里的一些思想融入到 Java 的语法中,让我们可以用更少的时间写出高效的代码。 Java 8的优势: 代码行更少Lambda表达式Stream API便于并行减少空指针JVM优化兼容老版本 Lambda Lambda表达式是一段可以传递的代码&#xff0…...

Java 基准测试

Java 基准测试maven依赖简单使用执行多个函数BenchmarkMode(Mode.AverageTime) 运行模式OutputTimeUnit(TimeUnit.NANOSECONDS) 报告结果时间单位Warmup(iterations 5,time 1,timeUnit TimeUnit.SECONDS) 预热参数Measurement(iterations 5,time 1,timeUnit TimeUnit.SEC…...

普通护照出国免签及落地签国家和地区

1.互免签协议的国家(双向免签) 序号 协议国 限制条件 生效日期 1 阿联酋 停留不超过30天 2018.01.16 2 巴巴多斯 停留不超过30天 2017.06.01 3 巴哈马 停留不超过30天 2014.02.12 4 白俄罗斯 停留不超过30天 2018.8.10 5 波黑 停留不超…...

20230219 质心和重心的区别和性质

质心:(无需重力场的前提)所有质点的位置关于它们的质量的加权平均数。 重心:(需要重力场的前提)重力对系统中每个质点关于重心的力矩之和为零。 质心: xˉ∑i1nmixi∑i1nmi,yˉ∑i1nmiyi∑i1nmi…...

maven多环境配置

maven多环境配置 参考网址: https://mp.weixin.qq.com/s/-e74bd2wW_RLx7i4YF5M2w https://mp.weixin.qq.com/s/3p53kBHqys58QdMme6lR4A 项目地址 https://gitee.com/shao_ming314/maven-profile-dir 项目说明 该项目基于目录进行多环境配置 , 具体的配置文件在 src/resource…...

设计模式之中介模式与解释器模式详解和应用

目录1 中介模式详解1.1 中介模式的定义1.1.1 中介者模式在生活场景中应用1.1.2 中介者模式的使用场景1.2 中介模式的通用实现1.2.1 类图设计1.2.2 代码实现1.3 中介模式应用案例之聊天室1.3.1 类图设计1.3.2 代码实现1.4 中介者模式在源码中应用1.4.1 jdk中Timer类1.5 中介者模…...

2023年全国最新交安安全员精选真题及答案1

百分百题库提供交安安全员考试试题、交安安全员考试预测题、交安安全员考试真题、交安安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 一、单选题: 1.对施工组织设计中的安全技术措施或者专项施工方案是否…...

chrome插件开发备忘录

文章目录前言要点通信方式注意事项参考前言 第一次接触到插件开发,起因是我用了十多年的一键上传需要升级了。之前的版本来自于有道云,是通过在书签栏加一个书签,然后将上传功能注入到当前页面的方式来实现的。一直也用得挺好,挺…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...