计算机网络之---MAC协议

MAC协议的作用

在数据链路层中,MAC(媒介访问控制)协议负责控制设备如何访问共享的通信介质(如以太网、无线电波等),确保在多台设备共享同一传输媒介时能够有效地进行数据传输,避免冲突、控制流量,并确保数据的有序传递。

MAC协议的核心功能包括:

  • 媒介访问控制:如何决定设备何时发送数据。
  • 碰撞检测与避免:当多个设备尝试同时发送数据时,如何处理冲突(碰撞)。
  • 流量控制:确保发送速率不会超出接收端的处理能力。

MAC协议分类

1. CSMA/CD(载波侦听多路访问/碰撞检测)

  • 应用场景:以太网(Ethernet)。
  • 工作原理
    • 载波侦听(Carrier Sense):设备首先检测共享信道是否空闲。如果信道是空闲的,设备就可以发送数据。
    • 多路访问(Multiple Access):所有设备共享同一个传输介质,因此必须协调访问。
    • 碰撞检测(Collision Detection):在数据发送过程中,设备会继续监听信道。如果发生碰撞(即两个设备同时发送数据),它们会停止传输,并在随机延时后重新尝试发送。
  • 优点:简单且低成本,适用于小型到中型网络。
  • 缺点:在网络负载较重时,碰撞频率高,导致网络效率低下。随着网络规模增大,这种协议会导致严重的性能下降。
  • 适用场景:传统的以太网(使用双绞线或同轴电缆)以及一些早期的局域网环境。

2. CSMA/CA(载波侦听多路访问/碰撞避免)

  • 应用场景:Wi-Fi(IEEE 802.11)。
  • 工作原理
    • 载波侦听(Carrier Sense):设备首先侦听信道,确认是否空闲。
    • 碰撞避免(Collision Avoidance):如果信道空闲,设备会等待一段时间后再发送数据(称为退避时间),以减少碰撞的概率。
    • 竞争和退避算法:使用随机退避算法(如二进制指数退避)来避免设备同时发送数据。当发生碰撞时,设备会随机等待一段时间再重试。
  • 优点:能够有效避免无线网络中的数据碰撞。
  • 缺点:网络利用率低,延迟较高,尤其在网络负载较重时。
  • 适用场景:无线局域网(如Wi-Fi)和一些基于无线通信的网络。

3. Token Passing(令牌传递)

  • 应用场景:令牌环网络(Token Ring)、FDDI。
  • 工作原理
    • 在令牌传递协议中,网络中的所有设备都通过一个环形拓扑(或逻辑环)连接。只有拥有“令牌”的设备才能发送数据。令牌是一个特殊的数据帧,它在网络中循环传递。
    • 每个设备在收到令牌后,如果有数据要发送,就会占用网络并发送数据。数据发送完毕后,它会将令牌传递给下一个设备。
  • 优点:避免了碰撞的发生,每次只有一个设备能发送数据,因此效率较高。
  • 缺点:需要维护令牌,网络结构需要额外的硬件支持(如令牌生成和管理)。如果令牌丢失,网络通信将中断。
  • 适用场景:较为早期的局域网,如令牌环(Token Ring)和FDDI网络。

4. Polling(轮询)

  • 应用场景:一些点对点通信或主从模式的网络(例如一些串行通信网络)。
  • 工作原理
    • 在轮询协议中,一个中央控制设备(如主机)定期轮询所有从设备,询问它们是否有数据需要发送。如果某个从设备有数据要发送,它会将数据传输到主设备或网络中。
  • 优点:避免了碰撞的发生,适用于较为静态的网络环境。
  • 缺点:中央控制设备负载较重,带宽利用率低,尤其在从设备较多时,轮询时间较长。
  • 适用场景:通常应用于一些专用的串行通信链路、工业控制网络等。

5. TDMA(时分多址)

  • 应用场景:蜂窝移动通信、卫星通信等。
  • 工作原理
    • 在TDMA中,时间被分成多个时隙,每个设备在不同的时隙中发送数据。每个设备都有固定的时隙,避免了同时发送数据导致的碰撞。
  • 优点:避免了冲突,每个设备都有固定的发送时隙,通信质量较高。
  • 缺点:时间分配不灵活,时隙资源可能浪费,特别是在设备数量较少时。
  • 适用场景:蜂窝网络(如2G、3G)和一些卫星通信系统。

6. CDMA(码分多址)

  • 应用场景:蜂窝移动通信、无线通信。
  • 工作原理
    • CDMA是通过将每个通信设备的数据编码为不同的“码”来进行区分。多个设备可以同时在同一个频段上发送数据,但通过不同的码进行区分,从而避免冲突。
  • 优点:能够在同一频率带宽内支持多个通信设备,频谱利用率高。
  • 缺点:对信号的质量要求较高,需要更复杂的编码和解码技术。
  • 适用场景:蜂窝网络(如CDMA网络)和一些无线通信系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/951638.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WebSocket介绍与使用

1.简介 在我们平时写的web项目中,大多是使用http协议,但是http协议是典型的一问一答的模式,只能由客户端向服务器发送请求,再由服务器返回响应,但实际开发中,很多场景都需要服务器主动发送消息给服务端&am…

PyCharm+RobotFramework框架实现UDS自动化测试——(二)RobotFramework环境配置

从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者,时光不负有心人。 文章目录 1.环境准配2.Pycharm中相关配置2.1. 安装Hyper RobotFramework Support 3.脚本执行环境3.1 执行单条的配置3.2 执行全部用例配置 4.工程运行4.1 单条用例运行4.…

wireshark排除私接小路由

1.wireshark打开,发现了可疑地址,合法的地址段DHCP是192.168.100.0段的,打开后查看发现可疑地址段,分别是,192.168.0.1 192.168.1.174 192.168.1.1。查找到它对应的MAC地址。 ip.src192.168.1.1 2.通过show fdb p…

视频编辑最新SOTA!港中文Adobe等发布统一视频生成传播框架——GenProp

文章链接:https://arxiv.org/pdf/2412.19761 项目链接:https://genprop.github.io 亮点直击 定义了一个新的生成视频传播问题,目标是利用 I2V 模型的生成能力,将视频第一帧的各种变化传播到整个视频中。 精心设计了模型 GenProp&…

git merge与rebase区别以及实际应用

在 Git 中,merge 和 rebase 是两种将分支的更改合并到一起的常用方法。虽然它们都可以实现类似的目标,但它们的工作方式和效果有所不同。 1. Git Merge 定义:git merge 是将两个分支的历史合并在一起的一种操作。当你执行 git merge 时&…

HTML实战课堂之简单的拜年程序

一、目录:  一、目录: 二、祝福 三:代码讲解 (1)详细解释: 1.HTML部分 2. CSS部分 三、运行效果(随机截图): 四、完整代码: 二、祝福…

Postman接口测试03|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言

目录 七、Postman 1、安装 2、postman的界面介绍 八、Postman执行接口测试 1、请求页签 3、响应页签 九、Postman的环境变量和全局变量 1、创建环境变量和全局变量可以解决的问题 2、postman中的操作-全局变量 1️⃣手动设置 2️⃣代码设置 3️⃣界面获取 4️⃣代…

Linux第二课:LinuxC高级 学习记录day01

0、大纲 0.1、Linux 软件安装,用户管理,进程管理,shell 命令,硬链接和软连接,解压和压缩,功能性语句,结构性语句,分文件,make工具,shell脚本 0.2、C高级 …

python学opencv|读取图像(二十九)使用cv2.getRotationMatrix2D()函数旋转缩放图像

【1】引言 前序已经学习了如何平移图像,相关文章链接为: python学opencv|读取图像(二十七)使用cv2.warpAffine()函数平移图像-CSDN博客 在此基础上,我们尝试旋转图像的同时缩放图像。 【2】…

logback日志

一、使用两个以上spring环境变量做三目操作 <springProperty name"application_name" scope"context" source"spring.application.name"/><springProperty name"trace_app_name" scope"context" source"sprin…

计算机网络 (34)可靠传输的工作原理

前言 计算机网络可靠传输的工作原理主要依赖于一系列协议和机制&#xff0c;以确保数据在传输过程中能够准确无误地到达目的地。 一、基本概念 可靠传输指的是数据链路层的发送端发送什么&#xff0c;在接收端就收到什么&#xff0c;即保证数据的完整性、正确性和顺序性。由于网…

如何用通俗易懂的方式解释大模型中的SFT,SFT过程需要大量标记的prompt和response吗?

想象你在培训一个超级助理 假设你新买了一个智能管家机器人&#xff0c;它已经看过海量的书籍和资料&#xff08;这就是预训练过程&#xff09;。但是呢&#xff0c;它还不太懂得"做人的艺术"——不知道该用什么语气说话、怎么回应你的需求。 现在你要训练它成为一…

istio-proxy oom问题排查步骤

1. 查看cluster数量 cluster数量太多会导致istio-proxy占用比较大的内存&#xff0c;此时需检查是否dr资源的host设置有配置为* 2. 查看链路数据采样率 若采样率设置过高&#xff0c;在压测时需要很大的内存来维护链路数据。可以调低采样率或增大istio-proxy内存。 检查iop中…

科研绘图系列:R语言绘制分组箱线图(boxplot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图输出系统信息介绍 科研绘图系列:R语言绘制分组箱线图(boxplot) 加载R包 library(ggpubr) library(ggplot2) library(tidyverse) # dev…

【SpringAOP】Spring AOP 底层逻辑:切点表达式与原理简明阐述

前言 &#x1f31f;&#x1f31f;本期讲解关于spring aop的切面表达式和自身实现原理介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &am…

IOS HTTPS代理抓包工具使用教程

打开抓包软件 在设备列表中选择要抓包的 设备&#xff0c;然后选择功能区域中的 HTTPS代理抓包。根据弹出的提示按照配置文件和设置手机代理。如果是本机则会自动配置&#xff0c;只需要按照提醒操作即可。 iOS 抓包准备 通过 USB 将 iOS 设备连接到电脑&#xff0c;设备需解…

Elasticsearch:使用 Playground 与你的 PDF 聊天

LLMs作者&#xff1a;来自 Elastic Toms Mura 了解如何将 PDF 文件上传到 Kibana 并使用 Elastic Playground 与它们交互。本博客展示了在 Playground 中与 PDF 聊天的实用示例。 Elasticsearch 8.16 具有一项新功能&#xff0c;可让你将 PDF 文件直接上传到 Kibana 并使用 Pla…

ClickHouse vs StarRocks 选型对比

一、面向列存的 DBMS 新的选择 Hadoop 从诞生已经十三年了&#xff0c;Hadoop 的供应商争先恐后的为 Hadoop 贡献各种开源插件&#xff0c;发明各种的解决方案技术栈&#xff0c;一方面确实帮助很多用户解决了问题&#xff0c;但另一方面因为繁杂的技术栈与高昂的维护成本&…

机器翻译优缺点

随着科技的飞速发展&#xff0c;机器翻译是近年来翻译行业的热门话题&#xff0c;在人们的生活和工作中日益普及&#xff0c;使用机器能够提高翻译效率&#xff0c;降低成本。尽管关于机器翻译为跨语言交流带来了诸多便利&#xff0c;但在译文的正确率和局限性方面存在一定争议…

【redis初阶】浅谈分布式系统

目录 一、常见概念 1.1 基本概念 2.2 评价指标&#xff08;Metric&#xff09; 二、架构演进 2.1 单机架构 2.2 应用数据分离架构 2.3 应用服务集群架构 2.4 读写分离/主从分离架构 2.5 引入缓存 ⸺ 冷热分离架构 2.6 数据库分库分表 2.7 业务拆分 ⸺ 引入微服务 redis学习&…