CSMA、CSMA/CD与CSMA/CA协议

article/2025/9/24 4:18:55

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

若每个站点在发送数据之前都先侦听一下公用信道,如果信道空闲后再发送,则就会大大降低冲突的可能性,从而提高信道的利用率 。
CS:载波侦听/监听,每一个站在发送数据之前都要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
协议思想:发送帧之前,先监听信道。如果信道空闲,则发送完整帧;如果信道忙,则推迟发送。

根据侦听方式和侦听到信道忙后的处理方式不同,CSMA协议分为三种。
1-坚持CSMA:一个结点要发送数据时,首先侦听信道,如果信道空闲,那么立即发送数据;侦听到信道忙后,继续坚持侦听信道;侦听到信道空闲后,发送帧的概率为1,即立即发送数据。
非坚持CSMA:一个结点要发送数据时,首先侦听信道,如果信道空闲,那么立即发送数据;如果信道忙,那么放弃侦听,等待一个随机的时间后再重复上述过程。
p-坚持CSMA:用于时分信道。一个结点要发送数据时,首先侦听信道,如果信道忙,就持续侦听,直至信道空闲;如果信道空闲,那么以概率p发送数据,以概论1-p推迟到下一个时隙。
在这里插入图片描述

载波监听多路访问/碰撞检测(CSMA/CD)协议

是CSMA协议的改进方案,适用于总线型网络或半双工网络环境。

CS:载波侦听/监听,每一个站在发送数据之前以及在发送数据时都要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
CD:碰撞检测就是边发送边侦听,即适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站点是否也在发送数据。

CSMA/CD的工作流程可简单概括为“先听后发,边听边发,冲突停发,随机重发”。

在发送过程中出现碰撞的原因:电磁波在总线上的传播速率总是有限的,因此,当某个时刻发送站检测到信道空闲时,此时信道并不一定是空闲的。

若在发送过程中检测到碰撞,则中止数据的发送,并发送一个拥塞信号,让所有用户都知道。在中止发送后,适配器就执行指数退避算法,等待一段时间后重新发送。

载波监听多路访问/碰撞避免(CSMA/CA)协议

CSMA/CD协议用于使用有线连接的局域网,但在无线局域网的环境下,却不能简单地搬用CSMA/CD协议,特别是碰撞检测的部分,原因如下:
1.接收信号的强度往往会远小于发送信号的强度,且在无线介质上信号的动态变化范围很大,无法实现360°检测碰撞。
2.在无线通信中,并非所有的站点都能听见对方,即存在“隐蔽站”问题。如A和C都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会产生冲突。
因此,在无线局域网中,广泛使用CSMA/CA协议。

“碰撞避免”并不是指协议可以完全避免碰撞,而是指协议的设计要尽量降低碰撞发生的概率。

CSMA/CA协议工作原理:
发送数据前,先检测信道是否空闲。空闲则发出RTS (request to send),信道忙则等待。接收端收到RTS后,将响应CTS (clear to send)。发送端收到CTS后,开始发送数据帧。接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。

CSMA/CD与CSMA/CA的区别

相同点
在接入信道之前都需要进行监听,当发现信道空闲后,才能进行接入。
不同点
1.传输介质不同:CSMA/CD 用于有线局域网,而CSMA/CA用于无线局域网。
2.载波检测方式不同:因传输介质不同,CSMA/CD 与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测 (ED)、载波检测(CS) 和能量载波混合检测三种检测信道空闲的方式。
3.CSMA/CD可以检测冲突,但无法避免;CSMA/CA不能检测冲突,但是可以尽量避免冲突。二者出现冲突后都会进行有上限的重传。


http://chatgpt.dhexx.cn/article/CUU0i9WS.shtml

相关文章

CSMACD协议与CSMACA协议

CSMA/CD协议 全称:载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection) CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线是否有其他计算机在发送数据。 MA&#xff1…

深度解读华为5G空口新技术:F-OFDM和SCMA

长江后浪推前浪,4G建设方兴未艾,业界关于5G的讨论已如火如荼。对于每一代移动通信,空口技术都相当于王冠上的明珠。 本文引用地址: http://www.eepw.com.cn/article/271583.htm 在月初的世界移动通信大会上,华为发布了…

基于polar码和SCMA的多用户检测的联合检测译码matlab仿真,polar采用SCAN软译码,SCMA用MPA算法

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 构造的核心是通过信道极化(channel polarization)处理,在编码侧采用方法使各个子信道呈现出不同的可靠性,当码长持续增加时,部分信道将…

OTFS-SCMA学习笔记

参考资料:OTFS-SCMA: A Downlink NOMA Scheme for Massive Connectivity in High Mobility Channels OTFS系统流程 X [ m , n ] X[m,n] X[m,n]是DD时延多普勒域 Γ { ( m M Δ f , n N T ) , m 0 , … , M − 1 , n 0 , … , N − 1 } \Gamma\left\{\left(\frac…

【通信】基于Matlab模拟SCMA系统时延调度算法

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 ⛄ 内容介绍 稀疏码多址接入(Sparse Code Multiple …

SCMA基本原理介绍

SCMA: Sparse Code Multiple Access SCMA基本原理 我们考虑一个同步(synchronous)的SCMA系统, 含1个基站(Base Station, BS); J J J个用户(so called layers);K个OFDM…

面向5G移动通信的新型多址接入技术-SCMA

从移动通信发展历程来看,通信几乎每隔十年就会换代升级,从80年代的1G通信主要是以语音为主,调制方式是FDMA;90年代2G通信发展了短信传输,调制方式有CDMA,TDMA等;2000年前后3G通信出现,传输速率加…

使用JMeter进行压力测试

1. 引言 在日常开发中,当完成一个接口开发时,需要对接口进行准确性测试,比如PostMan、Swagger等,但在接口上线运行前对其进行性能测试是很有必要的,就是所谓的接口压力测试。 压力测试就是考察当前软硬件环境下系统所…

JMeter进行API服务的压力测试

文章目录 前言一、准备工作1.安装jmeter2.安装java环境 二、JMeter使用样例1.运行JMeter2.创建调用流程1.背景阐述:2.JMeter模拟调用1.添加线程组:2.请求设置3.创建请求流程4.响应时长展示5.监控服务器CPU,MEM,I/O等 前言 本文用…

使用jmeter进行http压力测试(适合小白观看)

今天2019年2月4日,除夕贴完对联等着过大年了! 今天来更新一篇博客,关于如何使用 jmeter 对web 进行压力测试,由于我的个人电脑是 deepin(Linux) 操作系统,因此这里就在Linux环境下演示,其实 Linux 演示和 w…

压力测试-Jmeter

我们在开发的过程中,如果遇到系统预估访问量会比较大的时候,或者我们再做底层基础服务的时候,往往需要对我们的服务性能做一些压力测试和稳定性测试,市面上有很多压测工具,今天我们主要讲解的是Jmeter压力测试工具&…

软件jmeter压力测试实例,jmeter压力测试案例实战

1、 测试目标地址:http://www.cnblogs.com/ 2、 1秒内有100个用户同时访问,看性能如何 3、 步骤 线程组、http请求、查看结果树、聚合报告 添加http请求如下: 继续填入参数格式: 服务器或名称IP:www.cnblogs.com 端口号:80 Connect:1000 Response:1000 添加查看结…

Jmeter负载和压力测试

负载和压力的区别: 负载测试:在一定的工作负荷下,给系统造成du的负zhi荷及系统响应的时间。 压力测试:在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响。 TPS和QPS的区别: tps可以理解为是每秒对事务的处理的能力 qps是每秒对服务器的查询能力 性能测试w…

Jmeter 压力测试 - Http2.0工具支持-【教学篇】

Jmeter快速使用 特此郑重声明!该文章是原创作品,小编编写实属不易 ,帮忙点赞关注一下~转载小伙伴请注明出处!谢谢 概述 Apache JMeter Apache组织开发的压力测试工具。目前通过HTTP和FTP服务器用于对软件做压力测试,它…

Http压力测试工具HttpTest4Net

HttpTest4Net是一款基于C#实现的和HTTP压力测试工具,通过工具可以简单地对HTTP服务进行一个压力测试.虽然VS.NET也集成了压力测试项目,但由于VS自身占用的资源导致了在配置不高的PC上难以做到高并发压力测试,再加上需要装VS这个样一个庞大的工具也是件很麻烦的事情.使用HttpTes…

JMeter之压力测试

一、什么是压力测试 软件测试中:压力测试(Stress Test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、…

Jmeter登录压力测试

1.配置海量用户账号数据登录测试 usernamepassword1K.csv 用户名& 密码MD5加密 2. 启动jmeter.bat,新增测试计划 3.配置CSV文件 4.配置信息头 5. 配置http请求默认值 6.配置http请求账号&密码 配置查看结果树&聚合报告

Jmeter压力测试步骤

1.选择语言 Jmeter默认英文,切换语言为中文 2.创建线程组 点击选中测试计划,右键点击添加线程组 点击线程组,这里可以设置名称,添加注释,设置线程数(每次有多少线程同时开启)、线程响应时间(…

Jmeter接口压力测试

一.创建测试用例 Jmeter主界面: 1.添加线程组 测试计划 (右键->添加->Threads(Users)->线程组),修改线程组名称为“登录”,可添加多个线程组,设置线程数&…

jmeter进行http压力测试

jmeter进行http压力测试 下载地址 下载地址:http://jmeter.apache.org/download_jmeter.cgi JMeter基于Java开发,需要系统有安装JDK环境。解压后进入bin目录,点击jmeter.bat 1、添加线程组: 测试计划 -> 添加 -> Threads…