计算机网络——33多点访问协议
多点访问协议
多路访问链路和协议
两种类型的链路(一个子网内部链路连接形式)
- 点对点
- 拨号访问的PPP
- 以太网交换机和主机之间的点对点链路
- 广播
- 传统以太网
- HFC上行链路
- 802.11无线局域网
多路访问协议
单个共享的广播型链路
2个过更多结点同时传送:冲突
- 多个结点在同一个时刻发送,则会收到2个或多个信号叠加
多路访问协议(介质访问控制协议:MAC)
- 分布式算法 - 决定节点如何使用共享信道,即:决定节点什么时候可以发送
- 关于共享控制的通信必须用借助信道本身传输
- 没有外带的信道,各节点使用其协调信道使用
- 用于传输控制信息
理想的多路访问协议
给定:Rbps的广播信道
必要条件
- 当一个节点要发送时,可以R速率发送
- 当M个节点要发送,每个可以以R/M的平均速率发送
- 完全分布的
- 没有特殊节点协调发送
- 没有时钟和时隙的同步
- 简单
MAC(媒体访问控制)协议:分类
3大类
- 信道划分
- 把信道划分为小片(时间、频率、编码)
- 分配片给每个节点专用
- 随机访问
- 信道不划分,允许冲突
- 冲突后恢复
- 依次轮流
- 节点依次轮流
- 但是有很多数据传输的节点可以获得较长的信道使用权
信道划分MAC协议
TDMA
TMDA:time division multiple access
- 轮流使用信道,信道的时间分为周期
- 每个站点使用每周期中固定的时隙(长度 = 帧传输时间)传输帧
- 如果站点无帧传输,时隙空闲 -> 浪费
- 如:6站LAN:1,3,4有数据报,时隙2,5,6空闲
FDMA
FDMA:frequency division multiple access
- 信道的有效频率范围被分为一个个小的频段
- 每个站点被分配一个固定的频段
- 分配给站点的频段如果没有被使用,则空闲
- 例如:6站的LAN,1,3,4有数据报,频段2,5,6空闲
码分多路访问(CDMA)
- CDMA(code division multiple access)
- 所有站点在整个频段上同时进行传输,采用编码原理加以区分
- 完全无冲突
- 假定:信号同步很好,线性叠加
- 比方
- TDM:不同的人在不同的时刻讲话
- FDM:不同的组在不同的小房间里通信
- CDMA:不同的人使用不同的语言讲话
随机存取协议
- 当节点有帧要发送时
- 以信道带宽的全部R bps发送
- 没有节点间的预先协调
- 两个或更多节点同时传输,会发生 -> 冲突
- 随机存取协议规定
- 如何检测冲突
- 如何从冲突中恢复(如:通过稍后的重传)
- 随机MAC协议
- 时隙ALOHA
- ALOHA
- CSMA、CSMA/CD、CSMA/CA
时隙ALOHA
假设
- 所有的帧都是等长的
- 时间被划分成相等的时隙,每个时隙可发送一帧
- 节点只在时隙开始时发送帧
- 节点在时钟上是同步的
- 如果两个或多个节点在一个时隙传输,所有的站点都能检测到冲突
运行
- 当节点获取新的帧,在下一个时隙传输
- 传输时没有检测到冲突,成功
- 节点能够在下一时刻发送新帧
- 检测时如果检测到冲突,失败
- 节点在每一个随后的时隙以概率p重传帧直到成功
优点
- 节点可以以信道带宽全部连续传输
- 高度分布:仅需要节点之间在间隙上的同步
- 简单
缺点
- 存在冲突,浪费时间
- 即使有帧要发送,仍然有可能存在空闲的时隙
- 节点检测冲突的时间 < 帧传输的时间
- 必须传完
- 需要时钟上同步
时隙ALOHA的效率
效率:当有很多节点,每个节点有很多帧要发送时,x%的时隙是成功传输帧的时隙
- 假设N个节点,每个节点都有很多帧要发送,在每个时隙中的传输概率是p
- 一个节点成功传输概率是 p ( 1 − p ) N − 1 p(1-p)^{N-1} p(1−p)N−1
- 任何一个节点的成功概率是 N p ( 1 − p ) N − 1 Np(1-p)^{N-1} Np(1−p)N−1
- N个节点的最大效率:求出使 f ( P ) = N p ( 1 − p ) N − 1 f(P) = Np(1-p)^{N-1} f(P)=Np(1−p)N−1 最大的 p ∗ p^ * p∗
- 代入 p ∗ p^* p∗得到最大 f ( p ∗ ) f(p^{*}) f(p∗)
- N为无穷大时的极限为1/e = 0.37
最好情况,信道利用率为37%
纯ALOHA
- 无时隙ALOHA:简单、无需节点间在时间上同步
- 当有帧需要传输:马上传输
- 冲突的概率增加:
- 帧在 t 0 t_0 t0发送,和其他在$[t_0 - 1,t_0 + 1]区间内开始发送的帧冲突
- 和当前帧冲突的区间(其他帧再次区间开始传输)增大了一倍
纯ALOHA的效率
P(指定节点成功) = P(节点传输)
P(其他节点在 [ t 0 − 1 , t 0 ] [t_0 - 1,t_0] [t0−1,t0]不传)
P(其他节点在 [ t 0 , t 0 + 1 ] [t_0,t_0 + 1] [t0,t0+1]不传)
= p ⋅ ( 1 − p ) N − 1 ⋅ ( 1 − p ) N − 1 = p ⋅ ( 1 − p ) 2 ( N − 1 ) p \cdot (1-p)^{N-1} \cdot (1-p)^{N-1} =p \cdot (1-p)^{2(N-1)} p⋅(1−p)N−1⋅(1−p)N−1=p⋅(1−p)2(N−1)
选择最佳的p、N趋向无穷大
= 1/(2e) = 17.5%
效率比时隙ALOHA更差了
CSMA冲突
冲突仍然可能发生
由传播延迟造成:两个节点可能侦听不到正在进行的传输
冲突
整个冲突帧的传输时间都被浪费了,是无效的传输(红黄区域)
注意
传播延迟(距离)决定了冲突的概率
节点依据本地的信道使用情况来判断全部信道的使用情况
CSMA/CD(冲突检测)
CSMA/CD
- 载波倾听CSMA:和在CSMA中一样发送前倾听信道
- 没有传完一个帧就可以在短时间内检测到冲突
- 冲突发生时则传输终止,减少对信道的浪费
冲突检测CD技术,有线局域网中容易实现
- 检测信号强度,比较传输与接收到的信号是否相同
- 通过周期的过零点检测
人类类比:礼貌的对话人
以太网CSMA/CD算法
- 适配器获取数据报,创建帧
- 发送前:监听信道CS
- 闲:开始传输帧
- 忙:一直等到闲再发送
- 发送过程中,冲突检测CD
- 没有冲突:成功
- 检测到冲突:放弃,之后尝试重发
- 发送方适配器检测到冲突,除放弃外,还发送一个Jam信号,所有听到冲突的适配器也是如此
强化冲突:让所有站点都知道冲突 - 如果放弃,适配器进入指数退避状态
在第m次失败后,适配器随机选择一个(0,1,2,…, 2 m − 1 2^{m-1} 2m−1)中K,等待 K ∗ 512 K^*512 K∗512位时,然后转到步骤2
exponential backoff 二进制指数退避算法
指数退避
- 目标:适配器试图适应当前负载,在一个变化的碰撞窗口中随机选择时间点尝试重发
- 高负载:重传窗口时间大,减少冲突,但等待时间长
- 低负载:使得各站点等待时间少,但冲突概率大
- 首次碰撞:在{0,1}选择K,延迟 K ∗ 512 K^*512 K∗512位时
- 第2次碰撞:在{0,1,2,3}选择K
- 第10次碰撞:在{0,1,2,3,…,1023}选择K
CSMA/CD效率
- T p r o p T_{prop} Tprop = LAN上2个节点的最大传播延迟
- t t r a n s t_{trans} ttrans = 传输最大帧的时间
e f f i c i e n c y = 1 1 + 5 t p r o p / t t r a n s efficiency = \frac{1}{1 + 5t_{prop}/t_{trans}} efficiency=1+5tprop/ttrans1 - 效率变为1
- 当 t p r o p t_{prop} tprop变成0时
- 当 t t r a n s t_{trans} ttrans变为无穷大时
- 比起ALOHA更好的性能,而且简单,廉价,分布式
无线局域网CSMA/CA
WLAN构成
- 基站:AP
- 无线链路
- 移动主机节点
无线局域网中的MAC:CSMA/CA
- 冲突: 2 + 2^+ 2+站点(AP或者站点)在同一时刻发送
- 802.11:CSMA - 发送前侦听信道
- 不会和其他节点正在进行的传输发生冲突
- 802.11:没有冲突检测
- 无法检测冲突:自身信号远远大于其他信号节点
- 即使能CD:冲突 != 成功
- 目标:avoid collisions:CSMA/C(collision)A(voidance)
- 无法CD:一旦发送一股脑全部发送完毕,不CD
- 为了避免无CD带来的信道利用率低的问题,事前进行冲突避免
无线局域网:CSMA/CA
发送方
- 如果站点检测到信道空闲持续DIFS长,则传输整个帧(no CD)
- 如果检测到信道忙碌,那么选择一个随机回退值,并在信道空闲时递减该值;如果信道忙碌,回退值不会变化;到数到0时(只生在信道闲时)发送整个帧,如果没有收到ACK,增加回退值并对之进行重复
802.11接收方
- 如果帧正确,则在SIFS后发送ACK
无线链路特性,需要每帧确认;例如:由于隐藏终端问题,在接收端可能形成干扰,接收方没有正确的收到,链路层可靠机制)
IEEE 802.11 MAC 协议:CSMA/CA
在count down时,侦听到了信道空闲为什么不发送,而要等到0时再发送
- 2个站点有数据帧需要发送,第三个节点正在发送
- LAN CD:让2者听完第三个节点发完,立即发送
- 冲突:放弃当前的发送,避免了信道的浪费于无用冲突帧的发送
- 代价不昂贵
- WLAN:CA
- 无法CD,一旦发送就必须发完,如冲突信道浪费严重,代价高昂
- 思想:尽量事先避免冲突,而不是在发生冲突时放弃然后重发
- 听到发送的站点,分别选择随机值,回退到0发送
- 不同的随机值,一个站点会胜利
- 失败站点会冻结计数器,当胜利节点发完再发
无法完全避免冲突
- 两个站点相互隐藏
- A,B相互隐藏,C在传输
- A,B选择了随机回退值
- 一个节点如A胜利了,发送
- 而B节点收不到,顺利count down到0发送
- A,B的发送在C附近形成了干扰
- 选择了非常靠近的随机回退值
- A,B选择的值非常近
- A到0后发送
- 但是这个信号还没到达B时
- B也到0了,发送
- 冲突
冲突避免 RTS - CTS交换
思路:允许发送方“预约”信道,而不是随机访问该信道:避免长数据帧的冲突(可选项)
- 发送方首先使用CSMA向BS发送一个小的RTS分组
- RTS可能会冲突(但是由于比较短,浪费信道较少)
- BS广播 clear - to - send CTS,作为RTS的相应
- CTS能够被所有涉及到的节点听到
- 发送方发送数据帧
- 其他节点抑制发送
采用小的预约分组,可以完全避免数据帧的冲突
线缆接入网络
- 多个40Mps 下行(广播)信道,FDM
- 下行:通过FDM分成若干信道,互联网、数字电视等
- 互联网信道:只有1个CMTS在其上传输
- 多个30Mps 上行的信道,FDM
- 多路访问:所有用户使用:接着TDM分成微时隙
- 部分时隙分配,部分时隙竞争
DOCSIS:TDM上行信道
- 采用TDM的方式将上行信道分成若干微时隙:MAP指定
- 站点采用分配给他的微时隙上行数据传输:分配
- 在特殊的上行微时隙中,各站点请求上行微时隙:竞争
- 各站点对于该时隙的使用是随机访问的
- 一旦碰撞(请求不成功,结果是:在下行的MAP中没有为他分配,则二进制退避)选择时隙上传输
轮流 MAC 协议
信道划分MAC协议:
- 共享信道在高负载时是有效和公平的
- 在低负载时效率低下
- 只能等到自己的时隙开始发送或者利用1/N的信道频率发送
- 当只有一个节点有帧传时,也只能够得到1/N个带宽分配
随机访问MAC协议
- 在低负载时效率高:单个节点完全可以利用信道全部带宽
- 高负载时,冲突开销较大,效率极低,时间很多浪费在冲突中
轮流协议
- 有二者的优点
轮询
- 主节点邀请从节点依次传送
- 从节点一般比较“dumb”
- 缺点
- 轮询开销:轮训本身消耗信道带宽
- 等待时间:每个节点需等到主节点轮询后开始传输,即使只有一个节点,也需要等到轮询一周后才能够发送
- 单点故障:主节点失效时造成整个系统无法工作
令牌传递
- 控制令牌(token)循环从一个节点到下一个节点传递
- 令牌报文:特殊的帧
- 缺点
- 令牌开销:本身消耗带宽
- 延迟:只有等到抓住令牌,才可传输
- 单点故障
- 令牌丢失系统级故障,整个系统无法传输
- 复杂机制重新生成令牌
相关文章:

计算机网络——33多点访问协议
多点访问协议 多路访问链路和协议 两种类型的链路(一个子网内部链路连接形式) 点对点 拨号访问的PPP以太网交换机和主机之间的点对点链路 广播 传统以太网HFC上行链路802.11无线局域网 多路访问协议 单个共享的广播型链路 2个过更多结点同时传送&am…...
基于神经网络的人脸识别系统的设计与实现
基于神经网络的人脸识别系统的设计与实现 摘要: 随着计算技术的快速发展,人脸识别已成为身份验证、安全监控等领域的关键技术。本文旨在设计并实现一个基于神经网络的人脸识别系统,该系统能够自动地从输入图像中检测和识别出人脸。论文首先介…...

远控桌面多任务并发文件保密传输
远程桌面文件传输是一个重要的功能,大多数远控都是用的桌面程序模式,利用系统自带复制粘贴拖拽文件拷贝功能,做一个ole调用对接,可以将很多控制权交给操作系统。 但我做的是浏览器版,浏览器是沙盒原理,为了…...

探索 ZKFair 的Dargon Slayer蓝图,解锁新阶段的潜力
在当前区块链技术的发展中,Layer 2(L2)解决方案已成为提高区块链扩容性、降低交易成本和提升交易速度的关键技术,但它仍面临一些关键问题和挑战,例如用户体验的改进、跨链互操作性、安全性以及去中心化程度。在这些背景…...

open Gauss 数据库-04 openGauss数据库日志管理指导手册
发文章是为了证明自己真的掌握了一个知识,同时给他人带来帮助,如有问题,欢迎指正,祝大家万事胜意! 目录 前言 openGauss 数据库日志管理 1 实验介绍 2 实验目的 3 系统日志 3.1 运行时日志 3.2 安装卸载时日志…...

Redis性能瓶颈与安全隐患排查验证纪实
在写《Redis怎样保证数据安全?》这篇文章,我是有对redis设置密码需要哪些步骤,设置密码的性能损耗有验证的。这就涉及到要对redis的配置做修改。 开始时我是打算采用直接使用redis配置文件的方式。所以我从redis官网下载了一个默认的配置文件…...
【C/C++】C语言实现顺序表
C语言实现顺序表 简单描述代码运行结果 简单描述 用codeblocks编译通过 源码参考连接 https://gitee.com/IUuaena/data-structures-c.git 代码 common.h #ifndef COMMON_H_INCLUDED #define COMMON_H_INCLUDED#define LIST_INIT_CAPACITY 100 //!< 线性表初始化长度 #def…...
零基础快速上手:搭建类ChatGPT对话机器人的完整指南
来自:鸵傲科技开发 随着人工智能技术的飞速发展,对话机器人已经成为我们日常生活中不可或缺的一部分。它们能够实时响应我们的需求,提供便捷的服务。那么,对于零基础的朋友们来说,如何快速搭建一个类似ChatGPT的对话机…...
Java中的取余与取模运算:概念、区别与实例详解
Java中的取余与取模运算:概念、区别与实例详解 引言一、取余运算(Remainder Operation)二、取模运算(True Modulo Operation)三、区别比较四、实战应用 引言 在Java编程中,当我们提到“取余”和“取模”运算…...

Excel制作甘特图
使用Excel表格制作甘特图,可根据任务开始时间和结束时间自动计算工时,并自动用指定颜色填充横道图。 1.新建Excel文档,先设置项目基本信息,包括表格名称,这里设置为“**项目甘特图”;然后添加任务序号列&a…...

Dapr(一) 基于云原生了解Dapr
(这期先了解Dapr,之后在推出如何搭建Dapr,以及如何使用。) 目录 引言: Service Mesh定义 Service Mesh解决的痛点 Istio介绍 Service Mesh遇到的挑战 分布式应用的需求 Multiple Runtime 理念推导 Dapr 介绍 Dapr 特性 Dapr 核心…...

RESTful的优点
优点 1.通过url对资源定位,语义清晰; 2.通过HTTP谓词表示不同的操作,接口自描述; 3.可以对GET、PUT、DELETE请求重试(幂等的); 4.可以对GET请求做缓存; 5.通过HTTP状态码反映服务器端…...
网络检测与监控
1.IP sla 服务等级质量检测,思科私有,提供商与用户之间的协议 可以对带宽、延迟、丢包率、网络抖动进行检测 (1)针对icmp进行检测: r1(config)#ip sla 1 r1(config-ip-sla)#icmp-echo 12.12.12.2 source-ip 12.12…...

基于架构的软件开发方法_1.概述和相关概念及术语
1.体系结构的设计方法概述 基于体系结构的软件设计(Architecture-Based Software Design,ABSD)方法。ABSD方法是由体系结构驱动的,即指由构成体系结构的商业、质量和功能需求的组合驱动的。 使用ABSD方法,设计活动可以…...

读所罗门的密码笔记07_共生思想(中)
1. 在人工智能系统中建立信任 1.1. 人类的大脑容易被个人倾向、干扰因素和确认偏误所影响 1.2. 古莱说,然而,从不同的角度去思考事实、花更长时间来做决策的能力,可能会让人类拥有“密探”一般的智慧 1.3. 我们可以对决策进行批判性思考&a…...

目标检测——工业安全生产环境违规使用手机的识别
一、重要性及意义 首先,工业安全生产环境涉及到许多复杂的工艺和设备,这些设备和工艺往往需要高精度的操作和严格的监管。如果员工在生产过程中违规使用手机,不仅可能分散其注意力,降低工作效率,更可能因操作失误导致…...
Linux/Ubuntu/Debian 终端命令:设置文件/目录权限和组
更改文件权限: chmod filename:根据指定的权限更改文件的权限。 例如: chmod ux filename # 为文件所有者添加执行权限 递归更改目录权限: chmod -R <说明> 目录名称:递归更改目录及其内容的权限。 例如…...

QA测试开发工程师面试题满分问答3: python的深拷贝和浅拷贝问题
在 Python 中,深拷贝(deep copy)和浅拷贝(shallow copy)是用于创建对象副本的两种不同方式。 浅拷贝是创建一个新的对象,该对象与原始对象的内容相同(包括内部嵌套对象的引用)&…...

Spire.PDF for .NET【文档操作】演示:合并 PDF 文件并添加页码
搜索了这么多有关 PDF 合并的信息后,很容易发现,无论您在线合并 PDF 文件还是使用 C#/VB.NET 来实现此任务,您都无法逃避对 PDF 文件安全等一些重要问题的担忧,因此需要花费多少时间或者合并后的文件是否支持打印页码等等。不过&a…...
VMware使用PowerCLI 修改分布式虚拟交换机的默认上联接口为LAG
简介 创建VMware 分布式交换机vDS 并配置 LACP接口时,然后创建新的默认分布式端口组不会默认使用LACP的上联接口。这意味着当创建新的端口组时,不可避免地会导致没手动修改上联端口的问题,导致网络不通,因为它们无可用的上联端口…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...