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

article/2025/8/25 21:59:20

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

一、冲突域、冲突检测、冲突避免

独木桥上人可以来回走动,但如果两边都有人,如果没有人做出避让,注定是两败俱伤

冲突域概念

冲突域指的是两台及以上终端通信时会发送冲突的区域。

冲突域的影响:冲突域内的终端进行同时进行通信的时候会发生数据碰撞,从而造成数据破坏不能正常的发送数据到目标。
以太网冲突域

 虽然说现在的交换机端口已经是全双工,实现数据同时收发几乎不可能出现数据冲突,但可以该接口下接入了一台hub,让全双工的链路变成了只有单双工的链路,从而成为了一个冲突域,所以考虑到这个问题,通常情况下交换机每个端口都是一个冲突域。

 以太网中主要是半工共享链路形成的冲突域,无线局域网中AP发射器通常也是与hub一样工作在半双工模式,如果同一时间有两个数据进行发送将会发生碰撞。

冲突检测机制

CSMA/CD(Carrier Sense Multiple Access With Collision Detection)载波监听多路访问/冲突检测

 在以太网中,为了有效缓解数据冲突带来的影响,使用到CSMA/CD机制,终端通过监听冲突域链路的电压强弱来判断是否有其它节点在链路上传输数据,从而实有效的避免发送数据时产生冲突。

冲突避免机制

此处参考:360问答 baoerwei网友的回复内容

https://wenda.so.com/q/1386757258060829

CSMA/CA(Carrier Sense Multiple Access With Collision Avoidance)载波监听多路访问/冲突避免

 在无线局域网中,无线用户并不能像以太网的终端一样去实时监听链路的电压判断是否链路空闲,而是先向AP发送RTS请求(Ready To Send 准备发送)帧通知AP自己要发送数据[发送的RTS也可能会与发送中的数据发生碰撞]

 AP成功收到RTS,进行检测当前信道是否空闲,空闲则在一个短帧隙SIFS之后回应CTS(Clear To Sen 准许)帧通知无线用户可进行发送数据了。

 在数据传输过程中,有即使有其它用户进行发送RTS请求,AP也不会回复CTS,没有收到CTS的无线用户将随机等待时间后再继续发送RTS请求。

图上引用:[T爱吃大闸蟹] RTS/CTS机制以及RTS threshold

https://blog.csdn.net/tiantian_xiao/article/details/123720744

在这里插入图片描述

二、CSMA/CD工作方式

1、载波监听:当发送数据前,通过监听链路上的电压强弱来判断是否有其它节点在使用共享介质,没有则发送数据,有则一起监听,直到出现空闲后发送数据。

2、多路访问/冲突检测:多个节点可能一起进行监听,发现链路空闲时多个节点也可能同时发送数据且发生冲突,通过链路电压变化检测到冲突后,立即停止传输,优先感知到的设备将向链路发出一个“Jam”帧(拥挤信号)随后链路上所有节点随机等待一定时间后重复第一步。

(每台设备者都可以发送Jam帧,但优先感知到的设备发送出去被其它设备接收之后,停止发送Jam帧)

三、CSMA/CA工作方式

1、无线用户需要进行发送数据时,先向AP发送RTS(准备发送)消息,请求发送数据。

2、AP接收到RTS并监听无线链路空闲时,回复无线用户CTS(准许发送)消息

3、无线用户收到CTS后将立即转发数据,没有收到CTS将随机等待一段时间后再重新发送RTS。

四、两者对比

1、两者都不能解决冲突域带来的数据冲突问题,只能有效的缓解数据冲突。

2、CSMA/CD主要应用于以太网网络中、CSMA/CA主要应用于无线网络中

3、CSMA/CD通过监听链路电压缓解冲突、CSMA/CA通过向AP的请求授权避免冲突

4、CSMA/CD冲突之后发送Jam全员随机等待时间,CSMA/CA通过授权占用方式避免冲突


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

相关文章

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

解决pycharm中报ModuleNotFoundError: No module named ‘tensorflow‘错误

在pycharm中编写python程序时,遇到了报ModuleNotFoundError:no module named XXX的错误。以下是我的解决方法。 目录 一、错误现象 二、原因分析 三、解决方法 四、更多错误解决方法 一、错误现象 执行python程序时,报错,错误信息为Modu…

No module named ensurepip

pip升级失败,然后pip直接用不了 ModuleNotFoundError: No module named ‘pip‘按照网上搜的处理: python -m ensurepip结果返回: ModuleNotFoundError: No module named ensurepip最后找到Python pip 安装与使用处理: curl h…

No module named ‘cv2‘ 解决办法 (No module named ‘numpy‘ 等所有报错均可解决)

更多视觉额自动驾驶项目请见: 小白学视觉 自动驾驶项目 实在不行可以私信我解决! 0 常规解决方案 1.当出现No module named ‘cv2‘ 解决方案:pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 2.当出现No module named ‘num…

DNS-named服务器配置

要求:现在要求新建一个a.com的DNS服务器,DNS服务器地址为192.168.10.103,www.a.com域名指向ip地址192.168.10.101,ftp.a.com域名指向ip地址192.168.10.102,并新建对应的反向查询区域。 DNS服务器地址:192.…

DNS域名解析服务--Named服务

使用BIND提供域名解析服务 简介 部署主服务器 部署主从服务器 2.1. 部署带安全加密传输的主从服务器 部署缓存服务器 分离解析技术 一、部署主服务器 基本过程 - 1. 编辑主配置文件 /etc/named.conf- 2. 编辑子配置文件(区域配置文件) /etc/named.rfc1912.z…

vue 最简易的邮箱正则表达式

vue 最简易的邮箱正则表达式 我们首先了解正则表达式的元字符: d 表示数字 w 表示数字,字母和下划线 s 表示空格和制表符 D 表示非数字 W 表示非数字,字母和下划线 ^ 在[ ]中表示除了,非;在[ ]之外表示输入字符串的开…