3.3.2 CSMA / CD 协议(载波监听多点接入 / 碰撞检测)

本文深入探讨了以太网的工作原理,包括无连接的通信方式、曼彻斯特编码和CSMA/CD协议。介绍了如何通过载波监听、碰撞检测来避免数据冲突,以及最小帧长度的设定来确保有效通信。同时,详细阐述了碰撞后的退避算法和以太网帧的最小长度要求,确保网络的稳定性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 早期的以太网将 多台计算机 连接到 一根总线
    认为有源器件不可靠,无源电缆线可靠
    在这里插入图片描述

  • 局域网上计算机的别名
    主机、工作站、站点、站

  • 总线 / 广播通信 的 特点
    当总线上一台计算机发送数据时,总线上的 所有计算机都能检测到这个数据

  • 广播特性总线上的一对一通信
    使每一台计算机的适配器拥有一个与其它适配器都不同的地址 mac
    在发送数据帧时,在帧的首部写明 接收站的地址(目的mac地址)
    仅当 数据帧中的目的地址适配器ROM中存放的硬件地址 一致时,该适配器才接收这个数据帧;否则丢弃这个数据帧

  • 以太网通信
    1、无连接的工作方式
    2、以太网发送的数据都使用曼切斯特编码

  • 无连接 的工作方式
    不用事先建立连接,直接发送数据,不可靠的交付服务
    适配器对发送的数据帧不进行编号,不要求对方回复确认(为了简化以太网通信)
    接收端收到出错帧,直接丢弃
    对有差错的数据帧是否重传由高层决定:如TCP协议会发现一些丢失的数据,过一段时间后TCP把这些数据重传给以太网进行重传,以太网不知此为重传帧,视为新的数据帧来发送
    总线上同一时间只允许一台计算机传输数据,否则各发送方会相互干扰,发送数据被损坏,使用 CSMA / CD 协议(载波监听多点接入 / 碰撞检测)解决此问题

  • 曼切斯特编码
    二进制基带数字信号通常是高低电压交替出现的信号,当出现 一连串的连1或者连0 时,接收端无法从 收到的比特流 中提取 位同步信号
    使用曼彻斯特编码可以方便提取位同步信号
    曼彻斯特编码的 缺点 :所占的频带宽度比原始的基带信号加倍了(每秒的传输码元数加倍了)

  • CSMA / CD 协议要点
    载波监听
    多点接入
    碰撞检测

  • 载波监听
    检测总线上是否有其它计算机也在发送数据
    其实总线没有载波,只是借用一下这个名词
    其实就是检测信道,发送前和发送中每个站都不停地检测信道
    发送前检测信道,是为了获取发送权,只有总线空闲才能发送
    发送中检测信道,是为了及时发现是否有其他站的发送和本站发送产生碰撞(冲突),此为碰撞检测

  • 多点接入
    总线型网络上,许多计算机以多点接入的方式连接在一根总线上

  • 碰撞检测
    边发送边监听:适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。当几个站同时在总线上发送数据时,总线上的信号电压变化幅度会增大(互相叠加),当适配器检测到总线上信号电压变化幅度超过一定的门限值,就认为至少有两个站同时在发送数据,产生碰撞。
    当某个适配器检测出碰撞后立即停止发送,避免继续浪费资源,等待一个随机时间再次发送

  • 发送前检测到空闲,仍能产生碰撞的原因
    根本原因 :以太网只能进行双向交替通信(半双工通信)
    电磁波在总线上以 有限速率 传播,存在传播时延
    单程端到端时延 记为 τ
    最早要在 2 * τ 时间点上就能判断是否发生碰撞(按最坏情况考虑,δ->0的情况)
    在这里插入图片描述
    每个站在自己发送数据时都存在碰撞的可能。开始发送计时,经过 2 * τ 的时间可以确定是否碰撞(快的话一个 τ 就能检测到碰撞)
    一次以太网不能保证一定能成功发送数据帧,此为发送的不确定性
    若以太网的平均通信量远小于以太网的最高数据率,以太网发生碰撞的机会会很小

  • 争用期 / 碰撞窗口
    以太网的 端到端往返时间 :2 * τ
    一个站发送数据开始计时,经过争用期这段时间内还没有检测到碰撞,便能确定此次发送不会产生碰撞。如此可以确定正确发送完这一帧
    若争用期为 51.2 μs,对于 10 mbps 的以太网,争用期内可以发送 512 bit,即 64 字节,此长度亦为最小帧长度(小于此长度接收端会认定此帧因为检测到冲突被提前中断发送了)

  • 截断二进制指数退避算法
    用来确定碰撞后重传的时机(确定等待的随机时间,注意不是空闲就立即发送)
    k = Min [ 当前站当前帧的重传次数,10 ]
    然后从离散整数集合 [ 0,1,… ,(2k - 1)]中随机取出一个数,记为 r,若 r 超过 16,则直接丢弃该帧,向高层报告
    当前站当前帧重传等待时间为 r * 2τ
    (重传次数越大,离散整数k 的集合范围越大,那么彼此的重传时间差别就越大,不容易随机到同一个数值,不会再一次冲突,如此实现动态退避)

  • 以太网最小帧长度
    如上情况,若发生碰撞,就一定会在前64字节内停止发送,因此发送出去的数据一定小于64字节。
    因此规定 长度小于64字节的帧 均视为由于冲突而异常终止的 无效帧
    接收端收到这种帧,直接丢弃
    要确保发送的帧的总长大于 64 字节

  • 强化碰撞
    当发送数据的站检测到碰撞,除了立即停止发送数据,并继续发送 32比特或48比特 的 人为干扰信号,以便让所有用户都知道现在已经发生碰撞
    在这里插入图片描述
    如上图
    A 从发送数据开始到发现碰撞再到停止发送的时间间隔是 TB
    A 检测出碰撞已经发生时所发送的强化碰撞的干扰信号的持续时间是 TJ
    整个信道被占用的时间还要增加一个单程的端到端的传播时延 τ
    发生碰撞使得 A 浪费时间 TB + TJ
    总线被占用的时间是 TB + TJ + τ

  • 以太网设置最小帧长和最大帧长各有什么目的
    最小帧长:因为碰撞后取消发送当前帧,需要区分正确的帧与这种中断发送的帧
    最大帧长:保证各个站都能公平地竞争接入以太网,若某个站发送了特别长的数据帧,其他站需要等待很长时间才能发送数据

  • CSMA / CD 协议要点
    先听后发
    边听边发(网络适配器要边听边发)
    冲突停止
    延迟重发(以太网每发完一帧就把已发送的帧暂存一下,若在争议期内检测出碰撞,推迟一段时间再重发这个暂存的帧)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值