3.3 使用广播信道的数据链路层

1 局域网的数据链路层

  局域网最主要的特点:就是网络为一个单位所拥有,且地理范围和站点数目均有限。

  注:在局域网刚刚出现时,局域网比广域网具有较高的数据率、较低的时延和较小的误码率。但随着光纤技术在广域网中普遍使用,现在的广域网也具有很高的数据率和很低的误码率。

  它有以下优点

    (1)具有广播功能,从一个站点可方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。

    (2)便于系统的扩展和逐渐地演变,各设备的位置可灵活地调整和改变。

    (3)提高系统的可靠性(reliability)、可用性(availibility)、生存性(survivability)

  局域网可按网络拓扑进行分类

    星形网:由于集线器(hub)的出现和双绞线大量用于局域网中,星形以太网和多级星形结构的以太网获得了非常广泛的应用。

    环形网 最典型的就是令牌环形网(token ring),简称为令牌环。

    总线网:各站直接连在总线上。总线两端的匹配电阻吸收在总线上传播的电磁波信号的能量,避免在总线上产生有害的电磁波反射。总线网可使用两种协议:(1)传统以太网使用的CSMA/CD(2)令牌传递总线网,即物理上是总线网而逻辑上是令牌环形网。前一种总线网现在已演变为星形网,而后一种令牌传递总线网早已退出了市场。

    树形网 树形网是总线网的变形,都属于使用广播信道的网络,但这主要用于频分复用的宽带局域网。

     

  共享信道的方法有两种

    1.静态划分信道 

      (1)如利用频分复用、时分复用、波分复用和码分复用等。用户只要分配到了信道就不会和其他用户发送冲突。

      (2)这种划分信道的方法代价比较高,不适合于局域网使用。

    2.动态媒体接入控制(多点接入)

      (1)随机接入:随机接入的特点是所有用户可随机地发送信息。但如果恰巧有两个或更多的用户在同一时刻发送信息,那么在共享媒体上就要发生碰撞(即发生了冲突),使得这些用户的发送都失败。因此,必须有解决碰撞的网络协议。

      (2)受控接入:受控接入的特点是用户不能随机地发送信息而必须服从一定的控制。这类的典型代表有分散控制的令牌环局域网和集中控制的多点线路探询(polling)或称为轮询。

  1.以太网的两个标准:

    (1)DIX Ethernet V2

      DIX Ethernet V2,是世界上第一个局域网产品的规约。

    (2)IEEE 802.3[W-IEEE802.3]

      1983年制定了第一个IEEE的以太网标准IEEE 802.3,数据率为10Mb/s

      802.3局域网对以太网标准中的帧格式作了很小的一点更动,但允许基于这两种标准的硬件实现可以在同一局域网上互操作。

    注:出于有关厂商在商业上的激烈竞争,IEEE 802委员会未能形成一个统一的、最佳的局域网标准,而是被迫制定了几个不同的局域网标准,如802.4令牌总线网、802.5令牌环网等。

    (1)为了使数据链路层更好地适应不同的局域网标准,IEEE802委员会就把局域网的数据链路层拆成两个子层,即逻辑链路控制子层LLC(Logical Link Control)和媒体接入控制子层MAC(Medium Access Control)

    (2)与接入到传输媒体有关的内容都放到MAC子层,而LLC子层则与传输媒体无关,不管采用何种传输媒体和MAC子层的局域网对LLC子层来来说都是透明的。

    

 

  2.适配器的作用

    • 计算机与外界局域网的连接是通过通信适配器(adapter)
    • 适配器本来是在电脑主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA)。这种接口板又称为网络接口卡NIC(Network Interface Card)或简称为网卡。
    • 适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。
    • 适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。
    • 由于网络上的数据率和计算机总线上的数据率并不相同,所以在适配器中必须装有对数据进行缓存的存储芯片。
    • 若在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或应当在存储器的什么位置上把局域网传送过来的数据块存储下来。
    • 适配器还要能够实现以太网协议。
    • 适配器接收和发送各种帧时不使用计算机的CPU。这时CPU可以处理其他任务。
    • 当适配器收到有差错的帧时,就把这个帧丢弃而不必通知计算机。
    • 当适配器收到正确的帧时,它就使用中断来通知该计算机并交付给协议栈中的网络层。
    • 当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。
    • 计算机的硬件地址——MAC地址,就在适配器的ROM中。
    • 计算机的软件地址——IP地址,就在计算机的存储器中。

2 CSMA/CD协议

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

    

  总线的特点:当一台计算机发送数据的时候,总线上的所有计算机都能检测到这个数据。这就是广播通信方式。当我们需要在总线上进行一对一通信的时候,就需要使每一台计算机的网卡拥有一个与其他网卡都不同的地址。这个时候,我们在发送数据帧时,就需要表明数据帧接收站的地址。只有网卡地址与其相同时,才接受数据帧,否则丢弃帧。

  为了通信方便,以太网采取了以下两种措施:

    1.采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。网卡对发送的数据帧不进行编号,也不要求对方发回确认。这样做可以使以太网工作起来非常简单。以太网所提供的服务是尽最大努力的交付,即不可靠的交付。

    2.以太网发送的数据都是使用曼彻斯特编码的信号,使用曼彻斯特编码的优点是可以很方便的解决接收端接收连续的0或者1时无法提取同步信号的问题;缺点就是因为曼彻斯特编码的规则导致每秒需要传输的码元数量增加了一倍,所以它占的频带宽度也比原始的基带信号增加了一倍。

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

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

  载波监听就是利用电子技术检测总线上有没有其他计算机也在发送。载波监听实际上就是检测信道。在发送前,每个站不停地检测信道,是为了获得发送权;在发送中检测信道,是为了及时发现有没有其他站的发送和本站发送的碰撞,这就是碰撞检测。总之,载波监听是全程都在进行的。

  碰撞检测就是边发送边监听。就是网卡边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据的时候其他站是否也在发送数据。当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加),当网卡检测到的信号电压超过一定的门限值时,说明总线上至少有两个站同时在发送数据,表明产生了碰撞(冲突),所以也称为冲突检测。这时,由于接收的信号已经识别不出来,所以任何一个正在发送的站就会立即停止发送数据,然后等待一段随机事件以后再次发送。

  传播时延对碰撞检测的影响

    因为网卡只有在接收到电压幅度不正常的信号以后才能判断是否产生了冲突,所以它在接收到信号之前会认为信道是空闲的。但是信号传播会有延迟,比如下图:

     

    如图为两台计算机AB,假设二者之间距离为一公里,如果AB同时发送数据,则会在线路中间发生碰撞,那么AB检测到碰撞的时间为图中单程端到端的传播时延t;若A先发,B后发,那么A最长时间检测到碰撞的时间为2t

    注:电磁波在1km电缆的传播时延约为5us(需要记住!)

    在使用CSMA/CD协议时,一个站不可能同时进行发送和接收,进行的是半双工通信。

    从图中可以看出,每个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。(这个时间是2tt由两站之间的距离决定)这是以太网发送的不确定性。正是这种不确定性使得以太网的平均通信量远小于以太网的最高数据率。

    以太网端到端的往返时间2t称为争用期(碰撞窗口),既经过这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

  截断二进制指数退避算法:

    以太网使用截断二进制指数退避算法来确定碰撞后重传的时机。这种算法让发生碰撞的站在停止发送数据后,不是等待信道变为空闲后立即再发送数据,而是推迟(退避)一个随机的时间,以减小再次发生碰撞的概率。具体算法如下:

    1.协议规定了基本退避时间为2t,具体的争用期时间通常取51.2us,对于10Mb/s的以太网,在争用期内可发送512bit,即64字节。

    2.从离散的整数集合[01,……(2^k-1]中随机取一个数,记为r,重传应推后的时间就是r倍的争用期。

      k=Min[重传次数,10]

     可见当重传次数不超过10时,参数k等于重传次数;当重传次数超过10时,k就不再增大而一直等于10

    3.当重传达16次仍然不能成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告。

  例如:

    • 在第一次重传时,k=1,随机数从{01}中选一个数。所以重传的推迟时间可以是0或者2t,随机选择。
    • 第二次发生碰撞,k=2,随机数从{0123}中选一个,所以重传的推迟时间可以是02t4t6t随机选择一个。

    以此类推。。。

  可能会出现这样一种情况就是:

  某个站发送了一个很短的帧,但发生了碰撞,不过在这个帧发送完毕后才检测到发生了碰撞。已经没有办法中止帧的发送,因为已经发送完了。这个时候即使发生了碰撞,那么刚才的帧也无法进行重传,就会产生错误。

  注:数据帧能够重传的一个条件:以太网要实现重传,必须保证这个站在收到冲突信号的时候这个帧没有传完。

  所以基于这种情况,以太网规定了一个最短帧的长度为64个字节,即512bit。因为64字节正好是争用期长度,如果在争用期内没有发生碰撞,那么就不会发生碰撞了。因此,凡长度小于64字节的帧都是由于冲突而异常停止的无效帧。接收端收到这种帧会直接丢弃。(对于10Mb/s传统以太网而言!!!)

  我们知道信号在以太网上传播1km需要5us,以太网上最大的端到端的时延必须小于争用期的一半(25.6us,相当于以太网的最大端到端长度约为5km。实际上的以太网覆盖范围远没有这么大。因此实际的以太网都能在争用期51.2us内检测到可能发生的碰撞。以太网确定以51.2us作为争用期,不仅考虑了端到端时延,而且还考虑了好多其他因素。

  强化碰撞

    当发送数据的站一旦发现发生了碰撞时,除了立即停止发送数据外,还要再继续发送32比特或48比特的人为干扰信号,以便让所有用户都知道发生了碰撞。

    以太网还规定了帧间最小间隔为9.6us,相当于96比特时间,这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

  根据以上讨论,可以CSMA/CD协议的要点归纳如下

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

    2.检测信道:不停地检测信道,一直等待信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小时间间隔),就发送这个帧。

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

      1)发送成功:在争用期内一直未检测到碰撞,这个帧发送成功,回到(1

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

posted @ 2018-09-17 18:56  世界辣么大  阅读(531)  评论(0编辑  收藏  举报