CSMACD协议与CSMACA协议

article/2025/9/23 9:17:18

CSMA/CD协议

全称:载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection)
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。(总线型网络
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。(半双工网络
那么,先听后发为什么还会冲突?
因为电磁波在总线上总是以有限的速率传播的。

传播时延对载波监听的影响

在这里插入图片描述

确定碰撞后的重传时机

截断二进制指数规避算法
1.确定基本退避(推迟)时间为争用期2r。
2.定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10。
3.从离散的整数集合[0, 1, 2的k次方 - 1]中随机取出一个数t,重传所需要退避的时间就是t倍的基本退避时间,即2tr。
4.当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。
例:
在这里插入图片描述注:若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。

最小帧长问题

A站发了一个很短的帧,但发生了碰撞,不过帧在发送完毕后才检测到发生碰撞,没法停止发送,因为发完了。。
在这里插入图片描述

CSMA/CA协议

全称:载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidance)
在这里插入图片描述

工作原理

发送数据前,先检测信道是否空闲。
空闲则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
接收端收到RTS后,将响应CTS(clear to send)。
发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。
接收端收到数据帧后,将用CRC来检验数据是否正确,正确响应ACK帧。
发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。

对比

在这里插入图片描述


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

相关文章

深度解读华为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…

压力测试 - HTTP压测工具stress指南

2019.03.19重新修改(之前的使用安装方式有误!) Stress安装指南 github地址:https://github.com/buaazp/stress 使用环境:macOS 或者 Linux (Windows用户请安装虚拟机或者Linux服务,如git工具…