计算机网络 笔记 数据链路层 2

1,信道划分:

 (1)时分复用TDM

将时间等分为“TDM帧”,每个TDM帧内部等分为m个时隙,m个用户对应m个时隙

缺点:每个节点只分到了总带宽的1/m,如果有部分的1节点不发出数据,那么就会在这个时间信道被闲置,利用率低

(2)统计时分复用STDM

根据时分复用,通过统计使用情况,按需动态分配,可以做到如果需要,可以一个用户独占信道,部分信道不分配带宽。利用率更高

(3)频分复用FDM

根据不同的信号频率差异容易区分不同信号将用于传输信道的总带宽划分成若干个子频带,每一个子频道作为一个子信道,每一个用户使用一个子信道进行通信。各路信号首先通过低通滤波器限制基带信号的带宽,避免它们的频谱出现相互混叠(整合)。然后,各路信号分别对各自的载波进行调制、合成后送入信道传输。在接收端,分别采用不同中心频率的带通滤波器分离出各路已调信号,解调后恢复出基带信号(分离)。

优点:可以同时发出信号,充分利用带宽

缺点:这可以用于模拟信号的传输

(4)波分复用WDM(光的频分复用)

是将两种或多种不同波长的光载波信号在发送端经复用器汇合在一起,并耦合到光线路的同一根光纤中进行传输;在接收端,经分波器将各种波长的光载波分离,然后由光接收机作进

一步处理以恢复原信号。

(5)码分复用CDM

(解决多个信号同时发出导致的信号干扰,叠加问题)

1, 给各个节点分配唯一的“码片序列”(也叫扩频码)

每个码片序列包含m个码片(信号值),可以看做m维向量,所以也叫m序列码

各节点的m维向量必须相互正交(良好的相自关性和互相关性),内积为0

2,发送方如何发送值要不表示1,要不表示-1(1表示比特1,-1表示比特0)

每个节点之间相互知道其他节点的码片序列

3,接受方如何接受,分离

假设一个节点接收到来自节点1和节点二的信息 a*X+b*Y  (a和b表示正负1,节点1的m维码片序列是 X,节点二的是Y)

我们左边乘X, X*(a*X+b*Y)= a*X*X + b*X *Y ,因为相互正交的原因,所以结果是 a*X*X,因为 X*X=m  所以可以算出接收到的信号的a是1还是-1,就可以从叠加的信号中分离出真正的数据了(这个操作叫规格化内积)

介质访问控制:

多个节点共享同一个总线型的广播信道时,容易发生信号冲突

无论是有线通信还是无线通信,都会发生信号冲突

2,随机访问

(1)ALOHA协议

一,纯ALOHA

有数据就立马传输

如果发送过程中:1数据帧发送过程中,其他节点也开始发送,那么这两个数据冲突,接收点会接受失败,随机等待一段时间(如果是固定的时间,下次重传还是会冲突)后会重传

二,时隙ALOHA

区别只在一个是立即发送,一个是最近的一个时隙发送,降低了冲突率,提高利用率

(2)CSMA协议(载波监听多路访问协议)

这里的监听相当于会去检查信道是否闲置,只有闲置才会发出

一, 1-坚持CSMA

当一个节点有数据要发送时,它首先监听信道。

如果信道空闲,该节点立即发送数据。

如果信道忙,则该节点持续监听信道,直到信道空闲,然后立即发送数据。

优点:只要信道空闲,节点就能立即发送数据,减少了信道空闲时间,提高了信道利用率。

缺点:当多个节点同时发现信道空闲并立即发送数据时,容易发生碰撞,导致数据重传,增加了碰撞的概率和系统的冲突开销。

二, 非坚持CSMA

当节点有数据要发送时,先监听信道。

如果信道空闲,节点立即发送数据。

如果信道忙,节点不再持续监听,而是随机等待一段时间后,再重新监听信道,直到信道空闲时发送数据。

优点:减少了多个节点同时等待信道空闲后立即发送数据而导致碰撞的可能性,使他们错开,降低了碰撞概率。

缺点:可能会导致信道在节点等待的这段时间内处于空闲状态,而没有被充分利用,信道利用率相对较低。比如现在是第i秒,i+1秒就会空闲,但是这里有a和b要发出信号,然后随机到i+10秒和i+13秒,那么中间就有9s的空闲

三, p-坚持CSMA

这里的p表示空闲时立即发送数据的概率,这里的坚持是指信道不空闲的时候,是否坚持坚持监听

(3)CSMA/CD协议 (冲突检测)

常用于早期的有限以太网(同轴电缆连接多个节点组成的有限局域网,集线器连接的多个节点组成的有限局域网)

要点:发送之前要先监听信道,发送的过程中也坚持监听,如果没有发生冲突就完成这次传输,如果发生冲突,就立刻停发,然后统计停发的次数,如果停发次数高于15,就会放弃这个帧,并且报告网络层,反之就会随机等待一个时间,然后重发。这里随机等待的时间是r倍的争用期,r是一个随机数 ,k是冲突数。争用期=2*最远单向传播时延

二进制指数退避算法:

如果k<=10,在[0,2^k-1]中随机选r

如果k> 10,在[0,2^10-1]中随机选r

什么时候检测到发出数据发生了碰撞

争用期:如果在争用期内没有发生冲突,就不会发生冲突了,因为已经完成了信道的占领

最短帧长限制

2*最大单向传播时延*信道带宽=争用期*信道带宽

所以对应过短的帧,需要填充后再发送

接收方:如果帧大小比最短大小还小。不是发给自己的,检测出错都会丢弃,正确接收后会交给网络层

最长帧长限制:

防止某些节点一直占领信道

以太网规定:64 B-1518 B

(4)CSMA/CA协议(冲突避免)

常用于WIFI

在发送的时候不去检测冲突,而是在发送之前就想办法避免冲突

2,冲突避免:因为无线传输和有线传输的不同,难以像有线的那样有效的去检测冲突(因为 一,距离越远信号越弱,所以就会有自己发出的信号在发出时是强信号,在接收时是弱信号,如果你现在在发出一个信号的同时,也在接收一个弱信号,那么自己发出的信号会极大的干扰自己接收的信号。二,因为信号的传播是四面八方的,同一个AP下A和B可能互相感知不到对方的存在,进而认为当前信号是空闲的,所以这个时候B就是A的隐藏站)所以要在发送前就想办法去规避

AP:接入点(也就是WIFI热点)

漫游:从一个热点切换到另外一个,比如校园网是多个AP,从食堂到寝室,是从食堂的AP切换到了寝室的AP

工作模式1:

总结:先监听后发送,如果忙的话就会 避让

先监听,

如果空闲的话,会在DIFS之后发送发送数据帧(中间不会检测冲突)
这里的DIFS是分布式协调IFS(最长帧间间隔),每次帧事务开始时等待

随机退避原理:

如果不空闲的话,会根据二进制指数退避算法进行随机退避,发送方仍然监听,只有信道空闲的时候才计时,倒计时结束,才会立即发送数据帧

接收方:

接收方接收过后,会在SIFS之后返ACK

这里的SIFS是最短帧间间隔,是比DIFS更短的一个时间间隔,这段时间用于差错控制等操作

如果这时发送方没有收到ACK,又会进行随机退避重传数据帧

工作模式2:

信道预约机制:先预约,后发送,如果没有收到CTS,就随机退避,之后再预约

1,发送方会再DIFS后向AP发送RTS控制帧

这里的RTS包括源地址,目的地址,通信所需持续的时间

2,AP经过SIFS后广播CTS控制帧

这里的CTS也是包括源地址,目的地址,通信所需持续的时间

3,其他无关节点会禁言一段时间,等待发送方收到CTS后,等待SIFS后才会发送数据帧

4,AP收到数据帧后,进行CRC校验,无差错则再SIFS后返回ACK

当数据帧过大的话,使用预约机制就很有性价比

轮询访问

1,令牌环网技术:

它使用一个令牌(一种特殊的帧)在环形网络拓扑结构中循环,以此来控制网络中节点对共享介质的访问,各节点之间轮询访问,不会发生冲突.

2,令牌传递机制

令牌概念:令牌是一个特殊的、长度固定的帧,它在环网中循环传递。令牌有两种状态:空闲(Idle)和忙(Busy)。

空闲令牌:当令牌处于空闲状态时,网络中的节点如果有数据要发送,就可以截获空闲令牌,并将其状态改为忙,然后在令牌后面附加自己要发送的数据帧,接着将带有数据的令牌发送到环网上。

令牌传递:令牌在环网中依次传递给每个节点。当一个节点接收到令牌时,它首先检查令牌的状态。如果是空闲令牌,且该节点有数据待发,就执行上述截获和发送操作;如果节点没有数据要发送,或者接收到的是忙令牌,就直接将令牌传递给下一个节点。例如,节点 A 接收到空闲令牌,它有数据要发送,就将数据附加到令牌后,变为忙令牌并发送给节点 B,节点 B 若没有数据要发,就把忙令牌传递给节点 C。

令牌只能单一方向传递

3, 数据传输过程

发送数据:当一个节点成功截获空闲令牌并附上数据帧发送后,数据帧会随着令牌在环网上循环。每个节点在接收到数据帧时,会检查帧中的目的地址。如果目的地址与自己的地址匹配,就复制该数据帧,并将帧中的一个标志位设置为已接收,然后将数据帧继续传递下去。

回收数据:当数据帧回到发送节点时,发送节点检查标志位,确认数据已被正确接收后,将忙令牌重新置为空闲令牌,并将其发送到环网上,以便其他节点有机会使用。例如,节点 A 发送数据给节点 C,数据帧在环网中传递,节点 C 接收数据并设置标志位,数据帧继续循环回到节点 A,节点 A 确认后释放空闲令牌。

如果重新回到发送节点,

看到接受状态是false,仍没有被接受,会重发数据,当然这个重发会有次数上限,当次数过高,会直接丢弃然后上报网络层

如果接收状态是 true,那么就会修改令牌号,传输给下一个节点,所以每次只会传输一个帧,如果想要再次发送,要等下次令牌轮到自己

令牌:

令牌帧:前后两个帧定界,中间是令牌号

数据帧 SD和ED是帧定界,AC是令牌号,DA和SA是目的和源地址,PDU是数据,CRC是校验码,FS是接受状态

MAU:令牌环网的集中控制站,MAU可以和MAU连接

优点:

1,无冲突传输:由于令牌环网采用令牌传递机制,同一时刻只有一个节点能够获得令牌并发送数据,因此避免了像以太网中可能出现的冲突问题,保证了数据传输的确定性和可靠性。

2,公平性:每个节点都有机会获得令牌,并且获得令牌的机会是均等的。这使得网络中的各个节点在获取网络资源方面具有较好的公平性,适用于对实时性和公平性要求较高的应用场景,如工业控制网络。

3,适合重载网络:在网络负载较重的情况下,由于没有冲突,令牌环网的性能相对稳定,不会像以太网那样因冲突频繁而导致性能急剧下降。

缺点:

1,环网故障敏感性:环形拓扑结构中,任何一个节点或链路出现故障都可能导致整个网络瘫痪。例如,若某一节点的网卡损坏,令牌可能无法正常传递,从而影响整个网络的通信。为解决这一问题,通常会采用冗余链路或备用环等措施。

2,维护复杂:令牌环网的维护相对复杂,需要专门的管理机制来确保令牌的正常传递和回收,以及处理可能出现的令牌丢失、重复等问题。同时,添加或移除节点时,需要对令牌传递机制进行相应的调整。

3,成本较高:与以太网相比,令牌环网的硬件设备(如网卡、集线器等)成本较高,这在一定程度上限制了其广泛应用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch在Windows环境搭建测试

引子 也持续关注大数据相关内容一段时间&#xff0c;大数据内容很多。想了下还是从目前项目需求侧出发&#xff0c;进行相关学习。Elasticsearch&#xff08;ES&#xff09;是位于 Elastic Stack&#xff08;ELK stack&#xff09; 核心的分布式搜索和分析引擎。Logstash 和 B…

计算机网络 笔记 网络层1

网络层功能概述 主要的任务是把分组从源端传输到目的端&#xff0c;为分组交换网上的不同主句提供通信服务&#xff0c;网络层的传输单位是数据报。 主要的功能&#xff1b; 1&#xff0c;路由选择&#xff1a;路由选择指网络层根据特定算法&#xff0c;为数据包从源节点到目…

Rubyer-WPF:打造优雅、精致的 WPF 用户界面

在桌面应用开发领域&#xff0c;WPF&#xff08;Windows Presentation Foundation&#xff09;凭借其强大的 UI 设计能力和丰富的功能&#xff0c;始终是开发者们青睐的工具之一。今天&#xff0c;我将为大家介绍一款专注于 WPF UI 设计的优秀项目——Rubyer-WPF&#xff0c;它…

设计模式 行为型 访问者模式(Visitor Pattern)与 常见技术框架应用 解析

访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为设计模式&#xff0c;它允许你在不改变元素类的前提下定义作用于这些元素的新操作。这种模式将算法与对象结构分离&#xff0c;使得可以独立地变化那些保存在复杂对象结构中的元素的操作。 假设我们有一个复杂的对…

继承多态语法糖

抽象类(通用) 子类继承父类方法后&#xff0c;这个子类对象如果执行方法的话&#xff0c;只要子类重写了就执行子类的&#xff0c;不执行父类的。 /*** 功能&#xff1a;* 作者&#xff1a;IT伟* 日期&#xff1a;2025/1/13 19:20*/ // 抽象类 A abstract class A {// 构造函…

MarS:一个由生成基础模型驱动的金融市场模拟引擎

“MARS: A FINANCIAL MARKET SIMULATION ENGINE POWERED BY GENERATIVE FOUNDATION MODEL” 项目主页&#xff1a;https://mars-lmm.github.io/ 论文地址&#xff1a;https://arxiv.org/pdf/2409.07486 Github地址&#xff1a;https://github.com/microsoft/MarS/ 摘要 生成…

macOS 使用 FreeRDP 远程访问 Windows:完整指南20250109

&#x1f5a5;️ macOS 使用 FreeRDP 远程访问 Windows&#xff1a;完整指南 引言 随着远程办公需求的快速增长&#xff0c;跨平台远程管理已经成为不可或缺的技能之一。作为一款开源轻量的远程桌面协议实现工具&#xff0c;FreeRDP 为 macOS 用户提供了一个简单、高效的解决…

两分钟解决 :![rejected] master -> master (fetch first) , 无法正常push到远端库

目录 分析问题的原因解决 分析问题的原因 在git push的时候莫名遇到这种情况 若你在git上修改了如README.md的文件。由于本地是没有README.md文件的&#xff0c;所以导致 远端仓库git和本地不同步。 将远端、本地进行合并就可以很好的解决这个问题 注意&#xff1a;直接git pu…

计算机图形学【绘制立方体和正六边形】

工具介绍 OpenGL&#xff1a;一个跨语言的图形API&#xff0c;用于渲染2D和3D图形。它提供了绘制图形所需的底层功能。 GLUT&#xff1a;OpenGL的一个工具库&#xff0c;简化了窗口创建、输入处理和其他与图形环境相关的任务。 使用的函数 1. glClear(GL_COLOR_BUFFER_BIT |…

springboot高校教室资源管理平台

Spring Boot高校教室资源管理平台是一个基于Spring Boot框架开发的高校教室资源管理系统。 一、平台背景与意义 随着高校规模的不断扩大&#xff0c;教室资源的管理变得日益复杂。传统的管理方式往往依赖于人工记录和纸质文件&#xff0c;不仅效率低下&#xff0c;而且容易出…

[笔记] 使用 Jenkins 实现 CI/CD :从 GitLab 拉取 Java 项目并部署至 Windows Server

随着软件开发节奏的加快&#xff0c;持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;已经成为确保软件质量和加速产品发布的不可或缺的部分。Jenkins作为一款广泛使用的开源自动化服务器&#xff0c;为开发者提供了一个强大的平台来实施这些实践。然而…

正点原子STM32F103战舰版电容触摸键学习

一、tpad.h代码 #ifndef __TPAD_H #define __TPAD_H#include "./SYSTEM/sys/sys.h"/******************************************************************************************/ /* TPAD 引脚 及 定时器 定义 *//* 我们使用定时器的输入捕获功能, 对TPAD进行检…

JVM:ZGC详解(染色指针,内存管理,算法流程,分代ZGC)

1&#xff0c;ZGC&#xff08;JDK21之前&#xff09; ZGC 的核心是一个并发垃圾收集器&#xff0c;所有繁重的工作都在Java 线程继续执行的同时完成。这极大地降低了垃圾收集对应用程序响应时间的影响。 ZGC为了支持太字节&#xff08;TB&#xff09;级内存&#xff0c;设计了基…

zerox - 使用视觉模型将 PDF 转换为 Markdown

7900 Stars 478 Forks 39 Issues 17 贡献者 MIT License Python 语言 代码: https://github.com/getomni-ai/zerox 主页: OmniAI. Automate document workflows 更多AI开源软件&#xff1a;AI开源 - 小众AI zerox基于视觉模型 API 服务&#xff0c;提供了将 PDF 文档转化为 Mar…

JAVA:Spring Boot 集成 JWT 实现身份验证的技术指南

1、简述 在现代Web开发中&#xff0c;安全性尤为重要。为了确保用户的身份&#xff0c;JSON Web Token&#xff08;JWT&#xff09;作为一种轻量级且无状态的身份验证方案&#xff0c;广泛应用于微服务和分布式系统中。本篇博客将讲解如何在Spring Boot 中集成JWT实现身份验证…

[论文阅读] (35)TIFS24 MEGR-APT:基于攻击表示学习的高效内存APT猎杀系统

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0c;非常欢迎大家给我留言评论&#xff0c;学术路上期…

目标检测中的Bounding Box(边界框)介绍:定义以及不同表示方式

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

openEuler22.03系统使用Kolla-ansible搭建OpenStack

Kolla-ansible 是一个利用 Ansible 自动化工具来搭建 OpenStack 云平台的开源项目&#xff0c;它通过容器化的方式部署 OpenStack 服务&#xff0c;能够简化安装过程、提高部署效率并增强系统的可维护性。 前置环境准备&#xff1a; 系统:openEuler-22.03-LTS-SP4 配置&…

Leecode刷题C语言之统计重新排列后包含另一个字符串的子字符串数目②

执行结果:通过 执行用时和内存消耗如下&#xff1a; void update(int *diff, int c, int add, int *cnt) {diff[c] add;if (add 1 && diff[c] 0) {// 表明 diff[c] 由 -1 变为 0(*cnt)--;} else if (add -1 && diff[c] -1) {// 表明 diff[c] 由 0 变为 -…

uniapp 微信小程序webview与h5双向实时通信交互

描述&#xff1a; 小程序webview内嵌的h5需要向小程序实时发送消息&#xff0c;有人说postMessage可以实现&#xff0c;所以试验一下&#xff0c;结果是实现不了实时&#xff0c;只能在特定时机后退、组件销毁、分享时小程序才能接收到信息&#xff08;小程序为了安全等考虑做了…