计算机网络 笔记 数据链路层 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,成本较高:与以太网相比,令牌环网的硬件设备(如网卡、集线器等)成本较高,这在一定程度上限制了其广泛应用。
相关文章:

计算机网络 笔记 数据链路层 2
1,信道划分: (1)时分复用TDM 将时间等分为“TDM帧”,每个TDM帧内部等分为m个时隙,m个用户对应m个时隙 缺点:每个节点只分到了总带宽的1/m,如果有部分的1节点不发出数据,那么就会在这个时间信道被闲置,利用…...

xml简介
目录 基本语法特点及应用场景一个简单示例 xml(全称eXtensible Markup Language)是一种用于存储和传输数据的标记语言,跨平台并且跨语言,xml内容较多,这篇文章会介绍一些基础的内容。 基本语法 xml文档通常以xml声明开…...

透明部署、旁路逻辑串联的区别
背景 需讨论防火墙到底是串联,还是旁挂。 通常串联指的就是“透明部署”,旁挂指的就是“逻辑串联”。 透明部署(串联) 也称为透明模式或桥接模式,是一种安全设备的部署方式。在这种模式下,安全设备被串联…...

【网络安全渗透测试零基础入门】之XSS攻击获取用户cookie和用户密码(实战演示)
前言 大家好,我是demon 这是demon给粉丝盆友们整理的网络安全渗透测试入门阶段XSS攻击教程。 本阶段主要讲解XSS攻击获取用户cookie和用户密码。 喜欢的朋友们,记得给晓晓点赞支持和收藏一下,关注我,学习黑客技术。 简介 该…...

c#版本、.net版本、visual studio版本之间的对应关系
最近这几年一直没用过c#开发,都是从事Qt c开发工作,回想一下之前c#还要追溯到2019年,算算时间大概都已过去4,5年了,时间飞快。 2019真是个神奇的数字,vs2019是我用的时间最长的一个IDE,新冠起始…...

熵与交叉熵:从不确定性角度理解 KL 散度
从不确定性减少视角理解KL散度 【 Transformer 系列,故事从 d k \sqrt{d_k} dk 说起】 LLM这么火,Transformer厥功甚伟,某天心血来潮~,再去看看! 它长这个样子: 深入浅出 Transformer 看完后ÿ…...

Redis:数据类型
1. 字符串(String) 简介 概念:这是最简单的数据类型,可以存储字符串、整数或浮点数。特点:支持原子操作,如递增和递减数值。 示例 # 设置一个键值对 SET mykey "Hello, Redis!"# 获取该键的值…...

搭建Node.js后端
从头开始搭建一个Node.js后端,并实现查询历史数据的功能,下面是详细的步骤说明,包括环境配置、项目初始化、代码编写、以及服务器启动。 1. 环境配置 1.1 安装 Node.js 和 npm 首先,你需要在你的电脑上安装 Node.js 和 npm&…...

集合——数据结构
数据结构 就是计算机存储数据的方式。 不同情况下采取不同数据结构会让数据查找,存储更加有效率。 栈...

从CentOS到龙蜥:企业级Linux迁移实践记录(系统安装)
引言: 随着CentOS项目宣布停止维护CentOS 8并转向CentOS Stream,许多企业和组织面临着寻找可靠替代方案的挑战。在这个背景下,龙蜥操作系统(OpenAnolis)作为一个稳定、高性能且完全兼容的企业级Linux发行版࿰…...

《机器学习》——支持向量机(SVM)
文章目录 什么是支持向量机?基本原理数学模型 支持向量机模型模型参数属性信息 支持向量机实例(1)实例步骤读取数据可视化原始数据使用支持向量机训练可视化支持向量机结果完整代码 支持向量机实例(2)实例步骤导入数据…...

【PPTist】公式编辑、插入音视频、添加动画
一、插入公式 点击公式的时候 latexEditorVisible 会变成 true src/views/Editor/CanvasTool/index.vue <Modalv-model:visible"latexEditorVisible" :width"880" ><LaTeXEditor close"latexEditorVisible false"update"data &…...

LeetCode - #186 翻转字符串里的单词 II(会员题)
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...

Kafka核心参数与使用02
一、从基础的客户端说起 Kafka 提供了非常简单的生产者(Producer)和消费者(Consumer)API。通过引入相应依赖后,可以快速上手编写生产者和消费者的示例。 1. 消息发送者主流程 一个最基础的 Producer 发送消息的步骤…...

Three.js 渲染技术:打造逼真3D体验的幕后功臣
文章目录 前言一、着色器(Shaders)二、后处理(Post-processing)三、抗锯齿(Anti-aliasing)四、实时渲染与离线渲染五、光照模型与材质优化六、环境映射(Environment Mapping)七、纹理…...

QTcpSocket 如何统计在线时长
基本原理 QTcpSocket是 Qt 库中用于 TCP 通信的类。要统计在线时长,关键思路是记录连接建立的时间和当前时间,通过计算两者的差值来得到在线时长。实现步骤 记录连接建立时间: 在连接成功的信号槽函数中记录开始时间。例如,当QTcpSocket成功连接到服务器时,会发出connecte…...

【Altium】AD使用智能粘贴功能把多个网络标签改成端口
1、 文档目标 使用智能粘贴功能把多个网络标签(net lable)改成端口(port) 2、 问题场景 客户有一份原理图,网络用的是net label,没用Port,然后创建一个sheet symbol,但是sheet sy…...

.NET 终止或结束进程
如何使用 C# 终止进程。 使用简单的方法终止.NET中的现有进程Process.Kill()。有一个可选参数 true 或 false,用于结束与要结束的进程相关的所有子进程。 了解如何创建流程。 结束当前进程: System.Diagnostics.Process.GetCurrentProcess().Kill(tru…...

R.swift库的详细用法
R.swift 是一个 Swift 工具库,它提供了一个自动生成的类 R,使得你可以通过类型安全的方式访问项目中的资源,例如图片、字体、颜色、XIB 文件等。通过 R.swift,你可以避免字符串类型的错误,提升代码的可维护性。 以下是 R.swift 库的详细用法: 1. 安装 R.swift 使用 Sw…...

Js的回调函数
一、什么是回调函数(Callback)? 回调函数(Callback Function)是指一个函数被作为参数传递给另一个函数,并在特定事件发生或操作完成时执行。 可以通俗地理解为一种“委托”机制。 在JavaScript中࿰…...

flutter 独立开发之笔记
1、# use: - [flutter_launcher_icons:] 每次修改完icon后,都需要执行一遍 dart run flutter_launcher_icons 2、开启混淆并打包apk flutter build apk --obfuscate --split-debug-info./out/android/app.android-arm64.symbols 3、开启windows支持 flutter con…...

PHP的扩展Imagick的安装
windows下的安装 下载:Imagick扩展 PECL :: Package :: imagick 3.7.0 for Windows 下载:ghostscript(PDF提取图片时用到,不处理PDF可以不安装) Ghostscript : Downloads 安装扩展 Imagick解压后&…...

【git】在服务器使用docker设置了一个gogs服务器,访问和现实都不理想
以下问题应该都可以通过设置custom/conf/app.ini来解决 配置文档参考地址:https://www.bookstack.cn/read/gogs_zh/advanced-configuration_cheat_sheet.md domain显示的事localhost,实际上应该是一个IP地址。 关键字: DOMAIN ROOT_URL 因为是docker…...

多台PC共用同一套鼠标键盘
当环境中有多个桌面 pc 需要操作的时候,在 多台 pc 之间切换会造成很多的不方便 可以通过远程进行连接,但是有一个更好的方案是让多台机器之间共用同一套键盘鼠标 常用的解决方案 synergy 和 sharemouse,通过移动光标在不同的 pc 间切换 s…...

大语言模型是如何训练出来的?
近期听了不少与AI相关的播客,有理想转型AI的分享,有Character.ai出来同事的分享等,结合对Transformer架构的理解尝试大致还原大语言模型的训练过程。不过,当我这样的“中国大妈”也能够大致琢磨明白大语言模型是如何训练出来的时候…...

Vue2与Vue3在项目开发中的选择:深入探讨
文章目录 前言一、Vue2的优势与挑战二、Vue3的进步与特性三、如何做出选择?结语 前言 Vue.js 是一个用于构建用户界面的渐进式JavaScript框架。Vue2和Vue3是其两个主要版本,它们各自拥有一系列特点和优势。随着Vue3的发布,开发者们面临着在新…...

Web枚举:深入了解目标应用系统
Web枚举是渗透测试中重要的第一步,旨在全面收集目标系统的信息,以便后续攻击载荷的构建更具针对性和效率。本文将详细讨论如何通过各种方法识别目标Web应用的技术栈,并提取关键信息。 1. 识别目标系统的技术栈 技术栈指Web应用所依赖的技术组…...

RabbitMQ介绍与使用
RabbitMQ官网 RabbitMQ 介绍 RabbitMQ 是一个开源的消息代理和队列服务器,基于 AMQP(高级消息队列协议)标准,使用 Erlang 编程语言构建。它是消息队列(MQ)的一种,广泛应用于分布式系统中&#x…...

从0到机器视觉工程师(六):配置OpenCV和Qt环境
CMake配置OpenCV CMakeLists.txt文件的编写 cmake_minimum_required(VERSION 3.20) project(test_opencv LANGUAGES CXX) #寻找Opencv库 FIND_PACKAGE(OpenCV REQUIRED) include_directories(test_opencv ${OpenCV_INCLUDE_DIRS}) add_executable(test_opencv main.cpp) TARGE…...

计算机毕业设计Python机器学习农作物健康识别系统 人工智能 图像识别 机器学习 大数据毕业设计 算法
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...