• 重学 以太网的mac协议的CSMA/CD


    之前上课一直模糊的CSMA/CD进行系统性整理。

    CSMA/CD (Carrier Sense Multiple Acess/Collision Detect)应用在OSI的 数据链路层

    在以太网中,多个节点共用一个channel,保证channel可以有效的为节点提供数据传输服务,CSMA/CD就是其中一个MAC协议

    提供不可靠的服务。

    工作原理:

    (1)发送数据前,先监听信道是否空闲。空就可以送数据。

    (2)边发送边监听,如果监听到冲突,就停止发送(实际上是发送一个jam signal,一共32位,让这个数据错的更厉害,以免其他站点没有检测出错误)

    (3)监听到冲突后,等到空闲后,尝试在送一次数据(尽全力),要等待一段时间才能发送。(即退避算法)

           1如果连续冲撞超过16次,就放弃这个数据包

           2随机等待一个时间,设冲撞次数n,则等待时间即为[0,n]选一个数乘以51.2us,如果n>=10则,在区间[0,n],n的上限为10(比如你冲撞了15次,等待时间也是从[0,10]随机取一个数乘以51.2us)

    (4)冲突窗口,即一个slot time 就是51.2us(非常重要的数据),即一个来回。 这也是以太网帧的最小长度,即51.2us*10Mps=512bit = 64B。(10Mps就是带宽) 这也是为了让一个发送数据的节点,在侦测到碰撞的数据的时候,可以知道是不是自己发送的数据发生了碰撞,才能进行重传。

    缺点:就是后发送的数据可能先送到,Last-in-first-out,就是前面的一直冲突冲突,然后可能等待较长的时间,然后新来的要发送的数据,一来就发现信道是空闲,就马上送,结果一送就送成功了。

  • 相关阅读:
    3.2 直线与方程
    3.1.2 两条直线平等与垂直的判定
    GNU Make
    linux 启动后台进程
    go 占位符
    raft 协议
    restTemplate 接收list数据
    JAVA通过实体类生成数据库查询语句(驼峰命名规则)
    flink使用命令开始、停止任务
    SPringBoot 配置类继承WebMvcConfigurationSupport和实现WebMvcConfigurer的使用
  • 原文地址:https://www.cnblogs.com/wpqwpq/p/5708389.html
Copyright © 2020-2023  润新知