zoukankan      html  css  js  c++  java
  • 广播信道--CSMA/CD协议

    有关数据链路层的学习,看了谢希仁的计算机网络,感觉就是很杂,脑子里面没有头绪,所以总结一下。

    数据链路层主要两种协议,一种是点对点的PPP协议,另外一种是一对多的CSMA/CD协议。

    点对点的PPP协议前面已经总结过了,今天抽时间再总结一下CSMA/CD协议:

    需要注意的是:在局域网中,由于集线器的出现,星型网在局域网中得到了广泛的应用。

    在网络刚开始的时候,主要使用的是总线型网络结构,因此,CSMA/CD协议是在总线型网络的基础上发展起来的,但是随着技术的发展和集线器的出现,在现在的大多数局域网中已经不再进行CSMA/CD协议了。

    CSMA/CD协议:

    这个协议所要解决的核心问题就是多点接入时,只能有一个主机占用总线,所以协议的实质就是“载波监听”和“碰撞检测”

    我们先来解释一下,什么叫“载波监听”和“碰撞检测”???

    载波监听:就是在多点接入时,由于网络时总线型的,所以同一时刻只能有一台主机发送,其他主机只能接受,其他主机想要发送数据,只能等到该主机发送完毕后才能进行。所以我们需要监听总线,是不是能够发送数据,这称之为:“载波监听”。

    碰撞检测:就是在同时又两台主机在总线发送数据时,我们需要知道总线上的数据发生了冲突,这种行为称之为“碰撞检测”;

    有些同学就会问,既然我们不允许同时发,那么为什么还会发生碰撞呢???

    这是因为当总线闲下来之后,可能会被几台主机同时检测到,那么此时就会发生碰撞,这时,我们要能够检测到总线数据发生了数据碰撞,发生数据碰撞的主机都要停止发送数据,那么我们怎么样来确定数据发送没有发生碰撞呢,那就是等待,假设数据从主机A发送到B的所用的时间为T,我们可以发现,当等待时间大于2T时还没有检测到数据碰撞,那么此次数据发送没有发生碰撞。这段时间称为争用期。

    协议中规定,争用期为51.2us,这个时间是怎么来的呢???

    协议规定,每一帧发送数据的最短字节为64,也就是512bit,假设是10Mbps,那么时间就是51.2us,当然,如果速率提高的话,时间也就相应变短。

    停止之后,我们使用截断二进制指数退避算法来确定重新传的数据,也就是等待一段时间,这段时间是争用期时间的整数倍,具体是多少倍是随机的,还和已经重新传数据的次数有关,比如已经传了5次,那么这次的整数是0-5中随机的一个整数,如果是6次,就是0-6的随机整数。

    如此,这就是CSMA/CD协议。

    这就是我对CSMA/CD协议的理解,欢迎大家批评指正

  • 相关阅读:
    Delphi映射模式实验
    restTemplate工具类
    RestTemplate中几种常见的请求方式
    RestTemplate(一)
    java.util.NoSuchElementException: No value present
    使用jsonRpc进行远程调用的时候com.googlecode.jsonrpc4j.HttpException: stream is closed
    SLF4J: Class path contains multiple SLF4J bindings.警告解决
    如何更改自己博客(博客园的)的背景
    Django中扩展Paginator实现分页
    bootstrap 导航栏
  • 原文地址:https://www.cnblogs.com/PIRATE-JFZHOU/p/7900914.html
Copyright © 2011-2022 走看看