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

devtools/2025/1/15 6:22:57/

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网络)和一些无线通信系统。

http://www.ppmy.cn/devtools/150265.html

相关文章

Python 正则表达式完全指南

# Python 正则表达式完全指南 正则表达式(Regular Expression)是Python中进行文本处理的强大工具。本指南将详细介绍Python中正则表达式的使用方法和实践技巧。 ## 1. 基础知识 ### 1.1 导入正则表达式模块 python import re ### 1.2 创建正则表达式 在…

Copula算法原理和R语言股市收益率相依性可视化分析

阅读全文:http://tecdat.cn/?p6193 copula是将多变量分布函数与其边缘分布函数耦合的函数,通常称为边缘。在本视频中,我们通过可视化的方式直观地介绍了Copula函数,并通过R软件应用于金融时间序列数据来理解它(点击文…

CSS:定位

CSS定位核心知识点详解 CSS定位是网页布局中的重要概念,它允许开发者将元素放置在页面的指定位置。以下是对CSS定位所有相关详细重要知识点的归纳: 为什么要使用定位: 小黄色块在图片上移动,吸引用户的眼球。 当我们滚动窗口的…

Android Compose 显示底部对话框 (ModalBottomSheet),实现类似BottomSheetDialog的效果

1. ModalBottomSheet ModalBottomSheet是Compose官方的底部对话框,类似传统View中的BottomSheetDialog,可以实现从底部弹出,并支持滑动关闭的效果。 需要注意的是,这里使用的是material3,然后ModalBottomSheet这个组件…

AI人工智能(2):机器学习

1 简介 机器学习(Machine Learning)是人工智能(AI)的一个分支,它使计算机系统能够利用数据和算法自动学习和改进其性能。机器学习是让机器通过经验(数据)来做决策和预测。机器学习已经广泛应用于…

【Linux】编辑器之神vim使用教程

什么是Vim? Vim是从vi发展而来的文本编辑器,代码补全、编译以及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,下图为Vim的键盘图 Vim的使用 基本上vi/vim共分为三种模式:命令模式(Command Mode&…

使用Deepseek搭建类Cursor编辑器

使用Deepseek搭建类Cursor编辑器 Cursor想必大家都用过了,一个非常强大的AI编辑器,在代码编写上为我们省了不少事,但高昂的价格让我们望而却步,这篇文章教你在Visual Studio Code上搭建一个类Cursor的代码编辑器。 步骤其实非常…

深度学习学习笔记(第29周)

目录 摘要 Abstracts 1. 概述 2. Better 2.1 Batch Normalization(批归一化) 2.2 High Resolution Classifier(高分辨率分类器) 2.3 Convolutional With Anchor Boxes(带有Anchor Boxes的卷积) 2.4…