CSMA/CD-CSMA/CA

article/2025/8/25 18:17:00

1.CSMA(载波侦听多路访问协议)

  CSMA 当其他节点检测到信道被占用时不发送数据。但是当数据发送完后其他节点同时检测到信道为空闲,之后又在同一时刻发送数据,可能再次产生冲突。

2.CSMA/CD(带冲突检测的载波侦听多路访问协议)

  由于以太网(Ethernet)成为现存局域网络结构的绝大多形式,CSMA/CD(Carrier Sense Multiple ACcess/Collision Detection)载波监测多址接人协议也成为局域网采用最多的MAC协议。CSMA/CD适宜于总线型局域网拓扑结构的随机竞争型媒体访问控制。总线型网络允许同一时刻只有一个节点(Node)发送数据,一旦两个或以上节点同时发送数据,则会发生数据碰撞,数据不能正常发送和接收。CSMA/CD协议就是尽可能保证网络上同时只有一个节点发送数据,减小数据“碰撞”概率。

  CSMA/CD工作过程

  当MAC收到LLG发来的数据以后,首先监测网络电缆上是否具有数据,即载波传送。

  发送数据前 先侦听信道是否空闲 ,若空闲 则立即发送数据.在发送数据时,边发送边继续侦听.若侦听到冲突,则立即停止发送数据。等待一段随机时间(通过二进制指数回退算法),再重新尝试。

  先听后发,边发边听,冲突停发,随即延迟后重发

  CSMA/CD使用条件

  L/R >= 2*T(L为发送数据包的大小,R为带宽,T为从发送端到接收端的传播时延)。

3.CSMA/CA协议(带冲突避免的载波侦听多路访问协议)

  CSMA作为随机竞争类MAC协议,算法简单而且性能丰富,所以在实际局域网的使用中得到了广泛的应用。但是在无线局域网中,由于无线传输媒体固有的特性及移动性的影响,无线局域网的MAC在差错控制、解决隐藏终端等方面存在应有别于有线局域网。因此WLAN与有线局域网所采用的CSMA备一定的差异。WLAN采用CSMA/CA(CSMA/Collision Avoidance)协议,其与CSMA/CD最大的不同点在于其采取避免冲突工作方式。

  与CSMA/CD不同,WLAN媒体访问控制(MAC)层采用的CSMA/CA(CSMA/Collision Avoidance)协议,由于在RF传输网络中冲突检测比较困难,所以该协议用避免冲突检测代替802.3协议使用的冲突检测,采用冲突避免机制尽量减小冲突碰撞发生的概率,以提高网络吞吐性能与迟延性能。协议使用信道空闲评估(CCA)算法来决定信道是否空闲,通过测试天线能量和决定接收信号强度RSSI来完成,并且使用RTS、CTS和ACK帧减少冲突。数据加密与普通局域网的等同加密(WEP)算法一样,使用64位密钥和RC4加密算法。

  CSMA/CA工作过程

  当发射端希望发送数据时,首先检测介质是否空闲,若是介质为空闲时,送出RTS(Request To Send请求发送),RTS信号包括发射端的地址、接收端的地址、下一笔数据将持续发送的时间等信息,接收端收到RTS信号后,将响应短信号CTS(Clear To Send),CTS信号上也RTS内记录的持续发送的时间,当发射端收到CTS包后,随即开始发送数据包。接收端收到数据包后,将以包内的CRC(CyClic Redundancy Check,循环冗余校验)的数值来检验包数据是否正确,若是检验结果正确时,接收端将响应ACK包,告知发射端数据己经被成功地接收。当发射端没有收到接收端的ACK包时,将认为包在传输过程中丢失,而一直重新发送包。

4.CSMA/CA与CSMA/CD的区别

  (1)载波检测方式:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。

  (2)信道利用率比较CSMA/CA协议信道利用率低于CSMA/CD协议信道利用率。但是由于无线传输的特性,在无线局域网不能采用有线局域网的CSMA/CD协议。信道利用率受传输距离和空旷程度的影响,当距离远或者有障碍物影响时会存在隐藏终端问题,降低信道利用率。

  具体最高的信道利用率与传输速率有关。在IEEE802.11b无线局域网中,在1Mb/s速率时最高信道利用率可到90%,而在11Mb/s时最高信道利用率只有65%左右。

CSMA/CD是英文carrier sense multiple access/collision detected 的缩写,可把它翻成“载波侦察听多路访问/冲突检测”,或“带有冲突检测的载波侦听多路访问”。所谓载波侦听(carrier sense),意思是网络上各个工作站在发送数据前都要总线上有没有数据传输。若干数据传输 (称总线为忙),则不发送数据;若无数据传输(称总线为空),立即发送准备好的数据。所谓多路访问(multiple access)意思是网络上所有工作站收发数据共同使用同一条总线,且发送数据是广播式的。所谓冲突(collision),意思是,若网上有两个或两个以上工作站同时发送数据,在总线上就会产生信号的混合,哪个工作站都同时发送数据,在总线上就会产生信号的混合,哪个工作站都辨别不出真正的数据是什么。这种情况称数据冲突又称碰撞。为了减少冲突发生后又的影响。工作站在发送数据过程中还要不停地检测自己发送的数据,有没有在传输过程中与其它工作站的数据发生冲突,这就是冲突检测(collision detected)

带冲突检测的CSMA(CSMA/CD:CSMA with Collision Detection):它一旦检测到冲突,立即终止当前传输中的帧,节省时间和带宽,并等待一段时间,重新尝试.它广泛用于LAN中MAC子层,是当前以太网LAN的基础. CSMA/CD 曾经用于各种总线结构以太网(bus topology Ethernet)和双绞线以太网(twisted-pair Ethernet)的早期版本中。现代以太网基于交换机和全双工连接建立,不会有碰撞,因此没有必要使用CSMA/CD

CSMA
CSMA,即载波监听多路访问协议。在采用CSMA协议的网络系统中,每个结点在发送数据之前,先监听信道是否为空闲状态,再根据监听的结果决定如何动作。

CSMA主要分为四种协议:

1-坚持 CSMA:当一个结点想要发送数据时,先监听一下信道,如果忙则继续等待,直到信道空闲。如果空闲则立即发送数据。
非坚持CSMA :当一个结点要发送数据,先监听信道,如果空闲则立即发送数据,否则放弃监听,随机等待一段时间后再监听。
p-坚持CSMA :当一个结点要发送数据,先监听信道,如果信道忙,则坚持监听到下一个时隙。如果信道空闲,则有p的概率发送数据,1-p的概率继续等待。

CSMA/CD
CSMA只在发送数据前检查是否冲突,而数据发送过程中是有可能冲突的,这时CSMA会继续将剩下的数据发送完,浪费时间、浪费带宽。

所以出现了带有冲突检测的CSMA协议,即CSMA/CD。是对CSMA的改进,网络结点在发送数据时,边发送边监听,一旦发现有冲突,立即停止发送。

这时候大家都不发送了,会产生一个争用时隙, 冲突的各结点在停止发送后,等待一段时间再监听信道,发现空闲信道则发送数据。 而当很多结点彼此都冲突时,则会产生一系列的争用时隙,在经过几轮竞争后,有一个结点发送数据成功。有数据要发送的结点将开始新一轮竞争。

可以看出,其实CSMA/CD的工作周期就是传输周期、争用周期、空闲周期交替出现的一个过程。

带冲突检测的CSMA(CSMA/CD:CSMA with Collision Detection):它一旦检测到冲突,立即终止当前传输中的帧,节省时间和带宽,并等待一段时间,重新尝试.它广泛用于LAN中MAC子层,是当前以太网LAN的基础. CSMA/CD 曾经用于各种总线结构以太网(bus topology Ethernet)和双绞线以太网(twisted-pair Ethernet)的早期版本中。现代以太网基于交换机和全双工连接建立,不会有碰撞,因此没有必要使用CSMA/CD。

CSMA/CA
CSMA/CA,带有冲突避免的载波多路访问协议,是对CSMA/CD协议的修改,把冲突检测改为冲突避免。

主要用于无线局域网。

为什么要冲突避免呢?

在无线局域网中,每个移动的站点发送的范围可以看成是一个以本身为圆心的圆。这有可能会出现两个问题:

隐蔽站问题

A站点和C站点都想发送数据给B站点,但是A和C相距较远,都认为到B的信道是空闲的,就都向B发送数据,两个方向来的数据发生碰撞,那就有问题了
暴露站问题

ABCD四个站点,黄色和白色是B的传播范围,白色和蓝色是C的传播范围,B向A发送数据时,C想向D发送数据,这时候C发现信道是冲突的(因为B的传播信号是圆形范围的),于是选择了不向D发送数据,可是我们可以看到B向A发送数据并不影响C向D发送数据。这就造成了信道明明不忙,却也不能发送的问题。
综合上面两个问题,CSMA/CA协议,要求每个发送站点在发送帧数据之前,先监听信道,空闲则发送,但是发送完一帧后,必须等待一个短时间间隔,这个间隔称为帧间间隔,检查接受站点是否发回帧确认。若没有确认,则认为发送失败,重发该帧。

CSMA/CA中需要用到以下三种帧间间隔

SIFS=用于分隔一次对话的各帧
PIFS=SIFS+一个时隙时间长度
DIFS=PIFS+一个时隙时间长度

时隙时间长度,指的是在某一个站在某一个时隙开始接入到信道时,那么在下一个时隙开始时,其他站能检测出信道变成非空闲的时间
 

dix 的ethernet标准,ieee 802.3使用的都是 csma/cd , csma/ca用于无线网络,比如802.11。
csma/cd是带有冲突检测的载波侦听夺路访问;
csma/ca是带有冲突避免的载波侦听夺路访问。


http://chatgpt.dhexx.cn/article/1xbeU3HH.shtml

相关文章

计算机网络:随机访问介质访问控制之CSMA协议

文章目录 CSMA协议1-坚持CSMA非坚持CSMAp-坚持CSMA比较 CSMA协议 时隙ALOHA系统的效率虽然是纯ALOHA系统的两倍,但每个站点都是随心所欲地发送数据的,即使其他站点正在发送也照发不误,因此发送碰撞的概率很大。 若每个站点在发送前都先侦听…

CSMA介绍

转载自: http://www.cnblogs.com/cherishui/p/4046360.html 以下是转载内容: 本文主要介绍通讯领域中CSMA相关机制,本文全部资料来自于网络。 网络通讯,必须依靠介质来传递数据,将数据调制到模拟信号上,…

计算机网络(十)CSMA详解

随机访问截止访问控制(所有用户可随机发送信息,发送信息时占全部带宽) 分类: CSMA:先听再说 CSMA/CD:先听再说,边听边说 CSMA/CA: CSMA协议(载波监听多路访问协议) CS:载波监听…

CSMA协议简述

CSMA协议 载波监听多路访问协议CSMA(carrier sense multiple access) CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。 当几个站同时在总线上发送数据时,总线上的信号电压摆动…

计算机网络:CSMA协议

载波监听多路访问协议CSMA协议 CS:载波监听/帧听,每一个站再发数据之前都要检测链路上是否有其他站在发送数据。(检测电压摆动值,当几个站同时发送数据时,总线上的电压摆动值就会增大。)MA:多点接入&#…

以太网 CSMA-CD与CSMA-CA的区别与工作方式

2.0.0 以太网 CSMA-CD与CSMA-CA的区别与工作方式 一、冲突域、冲突检测、冲突避免 独木桥上人可以来回走动,但如果两边都有人,如果没有人做出避让,注定是两败俱伤 冲突域概念 冲突域指的是两台及以上终端通信时会发送冲突的区域。 冲突域的…

Windows网络编程 c语言 报错:[Error] ‘bzero‘ was not declared in this scope

阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!! 文章目录 阅读前请看一下:我是…

C:bzero与memset

目录 1、bzero 2、memset 3、实例 1、bzero bzero函数声明如下: /* Set N bytes of S to 0. */ extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1)); 意思在注释里也写的很清晰,设置s的前n个字节为0。 2、memset memset函数声…

解决No module named numpy问题

目录 前沿 解决 解决方法1: 方法2:(强行安装更新更高的版本) 前沿 最近开始学习python了,由于要简单处理一下图片,奈何能C力太差,openCV上手有点难,想学习一下py简单的处理一下图…

Python中 No module named pygame

有时候运行Python程序,会出现如下错误 No module named pygame这个报错的意思是 没有安装pygame,有的时候你可能会出现No module named XXXX 这就是在说明你没有安装XXXX模块 解决: 1.进入cmd 2. 输入 pip install xxxx 表示安装这个模块 …

ModuleNotFoundError: No module named ‘transformers_modules.chatglm2-6b‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

ModuleNotFoundError: No module named ‘selenium

下面是我学习时的错误,在此文章记录一下,方便日后查找,以下解决方案都来源于网络。 问题:当jupyter出现ModuleNotFoundError: No module named selenium问题时的解决方案: 解决方案: 1、在cmd运行pip ins…

No module named ‘pyautogui‘

pip install pyautogui 出现如下错误。 ---------------------------------------- ERROR: Command errored out with exit status 1: C:\Users\zhangb\anaconda3\python.exe C:\Users\zhangb\anaconda3\lib\site-packages\pip install --ignore-installed --no-user --pref…

ModuleNotFoundError: No module named ‘torch._six‘的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

No module named ‘win32com‘

问题描述:在删除图片的时候遇到了No module named win32com的问题,详细如下: Traceback (most recent call last):File "PPOCRLabel.py", line 1825, in deleteImgfrom win32com.shell import shell, shellcon ModuleNotFoundErro…

记录-centos7搭建DNS服务(named.servicenamed-chroot)全流程

目录: 1.试验记录 2.全流程 record 注:记录过程中已发现存在的错误或不恰当之处: 数据库文件中时间大小应以秒为单位。 新增区域应写在/etc/named.rfc1912.zones中。 Record: Centos 7 提示: 0. 检查是否安装DNS服…

No module named ‘cvxpy‘ 已解决

问题描述 在windows系统,使用Anaconda搭建的开发环境,Python3;运行代码时出现No module named cvxpy;发现确实没有 cvxpy这个库,但是直接使用pip安装又不行的(pip install cvxpy )总是会报错的…

Duplicate named routes definition

初始化后台菜单的时候报了一堆Duplicate named routes definition, 原因:没有判断addRoutes是否成功,以下为正确逻辑:判断vuex中是否存在menus,当存在之后就不用再addroutes了,不存在则去添加,如…

解决No module named tkinter

原因 今天准备使用tutle画个图,导入turtle后运行发现提示没有tkinter这个包,于是尝试pip install tkinter安装,结果当然是失败: 后面一番搜索之后发现tinter是python3自带的包,不能用pip安装,我这里安装的…

No module named SimpleHTTPServer

问题分析:cmd启动python服务时没有找到SimpleHTTPServer这个模块 python -m SimpleHTTPServer 8000问题解决:在python安装路径下,lib文件下找到http文件夹,里面有server.py文件。 python -m http.server