zoukankan      html  css  js  c++  java
  • 2016.6.20 计算机网络复习要点第三章之CSMA/CD协议

    1.最早的以太网是将许多计算机都连接到一根总线上:

    (1)总线的特点是:当一台计算机发送数据时,总线上的所有计算机都检测到这个数据,这种就是广播通信方式;

    (2)为了实现在总线上的一对一通信,可以使每一台计算机的适配器拥有一个与其他适配器都不同的地址,当数据帧中的目的地址与适配器ROM中存放的硬件地址一致时,该适配器才能接收到这个数据帧;

    (3)人们通常把局域网上的计算机称为“主机”,“工作站”,“站点”或“站”

    2.以太网为了通信方便采取的措施:

    (1)采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据,适配器对发送的数据帧不进行编号,也不要求对方发回确认。

    **以太网提供的服务是尽最大努力的交付,即不可靠的交付;

    **对有差错帧是否需要重传则由高层来决定,但以太网并不知道这个重传帧,而是当做新的数据帧来发送;

    **总线上只要有一台计算机在发送数据,总线的传输资源就会被占用,在同一时间只能允许一台计算机发送数据;

    **以太网采用的解决冲突的方法是:CSMA/CD,载波监听多点接入/碰撞检测

    (2)以太网发送的数据都是使用曼彻斯特编码的信号。

    **二进制基带数字信号通常就是高,低电压交替出现的信号;

    **曼彻斯特编码:1是“前高后低”,而0是“前第后高”;

    **曼彻斯特编码的缺点是,它所占的频带宽度比原始的基带信号增加了一倍(因为每秒传送的码元加倍了);

    3.CSMA/CD协议的要点:

    (1)“多点接入”:就是说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。协议的实质是“载波监听”和“碰撞检测”;

    (2)“载波监听”:检测信道;不管在发送前,还是在发送中,每个站都必须不停地检测信道。

    **在发送前检测信道,是为了获得发送权,如果检测出已经有其他站在发送,则自己就暂时不许发送数据,必须等到信道变为空闲时才能发送;

    **在发送中检测信道,是为了及时发现有没有其他站的发送和本站发送的碰撞;

    (3)“碰撞检测”:边发送边监听;

    **即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据;

    **当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(相互叠加),当适配器检测到的信号电压变化幅度超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞;

    (4)电磁波在1Km电缆的传播时延约为5us;

    (5)在局域网分析中,常把总线上的单程,端到端传播时延记为r,A发送数据后最迟要经过多久时间才能知道自己发送的数据和其他站发送的数据有碰撞,这个时间最多为2r(两倍的总线端到端的传播时延)

    (6)显然,在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听)。因此,使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行半双工通信(双向交替通信);

    (7)每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性,这一小段时间是不确定的,它取决于另一个发送数据的站到本站的距离;

    (8)最先发送数据帧的A站,在发送数据帧后至多经过时间2r就可知道所发送的数据帧是否遭受到碰撞;因此,以太网端到端往返时间2r称为争用期(碰撞窗口);

    **经过争用期还没有检测到碰撞,才能肯定这次发送不会发送碰撞;

    (9)以太网采用截断二进制指数退避算法来确定碰撞后重传的时机;

    **截断二进制指数退避算法:让发生碰撞的站停止发送数据后,不是等待信道变为空闲后就,立即,再发送数据,而是推迟(退避)一个随机的时间

    **基本退避时间为争用期2r,具体的争用时间是51.2us;

    **从离散的整数集合【0,1...,(2k-1)】中随机取出一个数,记为r。重传应推后的时间就是r倍的争用期;

    **K为碰撞次数时。K=Min[重传次数,10],当重传次数超过10时,K就不在增大而是一直等于10;

    **当重传达16次仍不能成功时,则丢弃该帧,并向高层报告

    (10)适配器每发送一个新的帧,就要执行一次CSMA/CD算法,适配器对过去发送过的碰撞没有记忆功能;

    (11)为了避免在发送完毕之前没有检测出碰撞:

    **以太网规定一个最短帧长64字节,即512bit,通过填充使帧长不小于64字节;

    **对于10Mb/s以太网,发送512bit的时间需要51.2us,也就是上面提到的争用期;

    **凡是长度小于64字节的帧都是由于冲突而异常中止的无效帧,只要收到了这种无效帧,就应当立即将其丢弃;

    (12)信号在以太网上传播1Km大约需要5us,以太网最大的端到端时延必须小于争用期的一半(即25.6us),这相当于以太网的最大端到端长度约为5Km,实际上以太网覆盖范围远没有这么大;

    (13)强化碰撞:就是当发送数据的站一旦发现了碰撞时,除了立即停止发送数据外,还要再继续发送32比特或48比特的人为干扰信号,以便让所有用户都知道现在已经发送了碰撞;

    (14)CSMA/CD协议的要点归纳:

    ①准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,但在发送之前,必须先检测信道;

    ②检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲,就发送这个帧;

    ③在发送过程中仍不停地检测信道,即网络适配器要边发送边监听,这里只有两种可能性:

    ④一是发送成功:在争用期内一直没有检测到碰撞,这个帧肯定能够发送成功;

    ⑤二是发送失败:在争用期内检测到碰撞,这是立即停止发送数据,并按照规定发送人为干扰信号;适配器接着就执行指数退避算法,等待r倍512比特时间后,返回步骤2,继续检测信道;但若重传16次还不能成功,则停止重传而向上报错;

    ⑥以太网每发送完一帧,一定要把已发送的帧暂时保留一下。

  • 相关阅读:
    Windows10环境下使用VisualSVN server搭建SVN服务器
    2020年最详细springboot官方最新版2.2.5版本教程
    IntelliJ IDEA使用(二):tomcat和jetty配置
    图文详解 Intellij IDEA配置Jetty
    intellij IDEA配置tomcat
    使用IntelliJ IDEA 配置JDK(入门)
    跟武哥一起学习Spring Boot
    项目验收文档模板
    软件项目开发,交付文档(全)
    程序员的工作交接
  • 原文地址:https://www.cnblogs.com/hqutcy/p/5601275.html
Copyright © 2011-2022 走看看