第三章、数据链路层

一、数据链路层概述

  • 数据链路层基本概念
    • 结点:主机、路由器,相邻主机或路由器叫相邻结点
    • 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
    • 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成了数据链路。
    • 帧:链路层的协议数据单元,封装网络层数据报。
    • 数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
  • 数据链路层功能概述
    • 数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层的来的数据可靠的传输到相邻结点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
    • 功能一:为网络层提供服务。
      • 无确认无连接服务
      • 有确认无连接服务
      • 有确认面向连接服务(有连接的服务必有确认):先建立一条连接,接收端会发送信号通知发送端进行确认,这种服务是最可靠的
    • 功能二:链路管理,即连接的建立、维持和释放(用于面向连接的服务)
    • 功能三:组帧
    • 功能四:流量控制(限制发送方)
    • 功能五:差错控制(帧错和位错)

二、封装成帧及透明传输

  • 封装成帧:

    • 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
    • 首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(其中一种控制信息[帧定界符],才实现帧定界作用)(确定帧的界限)。
    • 帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。这样才能进行帧的同步。
    • 组帧就是在发送端完成的过程。
    • 帧同步则是在接收端完成的过程。
    • 从帧首部到帧尾部的总长,叫数据链路层的帧长。
    • 为了传输帧的传输效率,应尽可能的让帧的数据部分长一些,但是数据链路层的协议规定了帧的数据部分有一个上限值(<=最大传送单元MTU,不同的协议MTU的长度也不同)。image-20220221181225905
  • 透明传输

    • 透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层“看不见”有什么妨碍数据传输的东西。

    • 当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

  • 组帧的四种方法:

    1. 字符计数法

      ​ 帧首部使用一个计数字段(第一个字节,八位),来标明帧内字符数。image-20220221190818651

      缺点:鸡蛋装在一个篮子里了,如果说其中一个帧首部出现问题,则后面的所有帧全出错,因此这种方法不常用。
      
    2. 字符(节)填充法image-20220221191316500

      • 规定SOH为帧的开始字节,EOT为帧的结束字节,不同协议的开始结束字符表示方式不同。下图为ASCII码表的一部分。image-20220221191757236

      • 当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码),不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。

      • 当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像等)。就要采用字符填充方法实现透明传输。

        image-20220221192649513

    ​ 字符填充法:

    ​ 1.若原始数据中出现控制信息。

    ​ 2.在发送的时候会在这些字节前加上一个转义字符,以告诉接收端帧并没有结束或此字符为转义字符以正常接收。

    ​ 3.接收端接收到数据后将前面加的转义字符去掉,这样得到的帧就和以前一样了。

    1. 零比特填充法image-20220221193542694

      首部尾部使用01111110(6个1),遵循遇到5个1就填充1个0的原则。

      • 在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。

      • 在接收端收到一个帧时,先找到标志字段边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。

      • 保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。

    2. 违规编码法image-20220221194514375

      • 简单的说:违规编码法就是采用编码过程中不会出现的两种电平来表示定界帧的起始和终止。IEE802就是采用的违规编码法。
  • 组帧总结:由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。

三、差错控制(检错编码)

  • 传输中差错产生原因

    • 概括来说,传输中的差错都是由于噪声引起的。

      • 对于全局性来说:由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。

        解决办法:提高信噪比来减少或避免干扰(对传感器下手)。

      • 对于局部性来说:外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。

        解决办法:通常利用编码的技术来解决。

  • 差错主要分为位错和帧错

    • 位错:比特位出错(1变为0,0变为1)。
    • 帧错:(如有3个帧1#-2#-3#)
      • 丢失:收到1#-3#
      • 重复:收到1#-2#-2#-3#
      • 失序:收到1#-3#-2#
    • 为了解决以上帧错的问题,过去OSI的观点可以采用帧编号或确认重传机制等,目前的通信链路的的质量已经大大提高了,所以由通信链路质量不好所引起的差错概率大大降低,因此,现在因特网针对不同的网络,来选择是否采用确认重传机制。
      • 对于通信质量好,有线传输链路,则不采用确认重传机制,链路层不需要为网络层提供可靠传输的服务,如果在链路层传输的时候发生差错需改正,则交给传输层来处理 ,对应的是无确认无连接服务。
      • 对于通信质量差的无线传输链路,则采用确认重传机制,为上层提供可靠传输服务,对应的是有确认无连接服务和有确认面向连接服务。
  • 数据链路层的差错控制

    • 主要针对比特错,一般有两种控制方式
      • 检错编码(只能发现帧上的比特有错误,并不能检测出是具体哪一位出错了)
        • 奇偶校验码
        • 循环冗余码CRC
      • 纠错编码(可以检测出帧上的哪一位出错并改正)
        • 海明码
    • 编码解释:数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程中是否出现了差错。
    • 冗余编码:在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否符合原规则,从而判断是否出错。
  • 奇偶校验码

    • 奇偶校验码由n-1位信息元(要发送的数据)和1位校验元(冗余码)组成。

      • 奇校验码

        image-20220222214140072

      • 偶校验码

        image-20220222214203251

    • 奇偶校验码特点:只能检查出奇数个比特错误,检错能力为50%。

  • CRC循环冗余码

    image-20220222220025575

    image-20220222220630482

    • 总结:

      • CRC循环冗余码的使用过程

        • 发送端:原数据先加上生成多项式的阶个数的0,通过和生成多项式进行模2除法(异或),得出一个余数(FCS),将原数据+余数组合发送到接收端。
        • 接收端:将接收到的数据通过和生成多项式相除,如果为余数为0,则认为无差错,否则丢弃此帧。
      • 在数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据链路层接收的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。现阶段可以默为通过CRC技术接收端数据链路层接收的帧均无差错。

      • “可靠传输”:数据链路层发送端发送什么,接收端就收什么。

      • 链路层使用CRC,能够实现无比特差错的传输,但这还不是可靠传输。

四、差错控制(纠错编码)

  • 海明码(汉明码):发现双比特错,纠正单比特错。

  • 工作原理:动一发而牵全身,多个冗余位,如果一个比特位出错,可能会使多个冗余位变化。image-20220224224830326

  • 工作流程分解:

    • 确定校验码位数

      • 海明不等式image-20220224224926815

        举例:image-20220224225101791

    • 确定校验码和数据的位置image-20220224225440780

    • 求出校验码的值image-20220224230100880

      • 2的次方处的值对应的二进制只有一个1,根据这些1的位置来与其他相同位置为1的数据进行异或操作,可以求出校验码处的值。
    • 检错并纠错

      image-20220224230735939

      • 接收到数据后,令所有要校验的位异或运算,和之前的运算是一样的,异或得出的结果从P4到P1写出二进制序列,这个二进制序列就是出错的位置,将这个位置的数据改成反码就可以纠错了。

五、流量控制与可靠传输机制

  • 数据链路层的流量控制:

    • 较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
    • 数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
    • 数据链路层流量控制手段:接收方收不下就不回复确认(一个不包含数据的控制帧)[发送确认帧就代表发送端可以发送一下个]。
    • 传输层流量控制手段:接收端给发送端一个窗口公告,告诉发送端此时数据缓冲区的大小等。
    • 数据链路层的数据确认机制:当接收端接收到发送端的数据后,若还有空间接收数据,会给发送端发送一个确认帧,来告诉发送端还有空间,发送端接着发送数据到接收端,如果接收端无空间接收数据,则不会送送确认帧。
  • 流量控制的方法:

    • 停止-等待协议(滑动窗口协议的一种,相当于发送窗口和接收窗口都只有一个):

      • 每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。
      • 效率很低
      • image-20220227115702526
    • 滑动窗口协议image-20220227120845061

      • 滑动窗口原理:发送端和接收端由多个连续的,重复的窗口组成,每个窗口就是一帧,[发送窗口就是指在发送方维持一段连续的,允许发送的帧的序号],如上图,有6个发送窗口,1个接收窗口,发送窗口首先将第一个窗口的数据发送到接收窗口,接收窗口收到数据后,给发送窗口一个确认帧,同时接收窗口后移一位,发送窗口收到确认帧后后移一位(如果没有收到确认帧,后面的其他序号窗口的数据也会发送到接收窗口)。

        收到一个确认帧,发送窗口前进一格。

      • 后退N帧协议(GBN):滑动窗口协议的一种

      • 选择重传协议(SR):滑动窗口协议的一种

      • image-20220227122444792

      • 对数据链路层来说,其在发送过程中,发送窗口和接收窗口的大小是固定不变的

    • 滑动窗口与流量控制、可靠传输的关系image-20220227123035239

六、停止-等待协议

  • 停止-等待协议究竟是哪一层的:
    • 在计算机网络发展的前期,通信链路质量不是很好,所以链路层要担负起可靠传输的功能,因此链路层就会使用停止-等待协议、后退N帧协议、选择重传协议等来保证数据的可靠传输。
    • 随着技术的发展,通信链路的质量越来越好,出错可能性降低,因此链路层将保证可靠传输的功能抛弃,交给传输层,这样会使传输速度加快。
  • 停止等待协议
    • 出现原因:除了比特出差错,底层信道还会出现丢包问题(丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失)。为了解决丢包问题,同时也是为了实现流量控制,出现了停止-等待协议。
    • 前提:
      • 虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)的情况。
      • 不考虑数据是在哪个层次上传送的,讨论的只是可靠传输的原理。
      • ”停止-等待“就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
    • 停等协议的两种应用情况
      • 无差错情况:(ACK就是确认帧)image-20220228232051854
      • 有差错的情况:
        • 数据帧丢失或检测到帧出错image-20220228232555130
        • ACK丢失image-20220228232800344
        • ACK迟到image-20220228232921876
    • 停止-等待协议性能分析
      • 优点:简单
      • 缺点:信道利用率太低(Td为发送方的发送时延)image-20220228233333282
    • 信道利用率:发送方在一个发送周期内,有效的发送数据所需要的时间占整个周期的比率,计算公式如下image-20220228233615967
    • 信道吞吐率=信道利用率*发送方的发送速率

七、后退N帧协议(GBN)

  • 因为停等协议太浪费信道,因此在停等协议的基础上,一帧发送完后可以接着在发,这样就形成了流水线。基于这种模式,对应两种协议,GBN和SRimage-20220302203427561

  • 后退N帧协议中的滑动窗口

    • 发送窗口:发送方维持一组连续的允许发送的帧的序号。
    • 接收窗口:接收方维持一组连续的允许接收帧的序号,在GBN协议中,接收窗口只有一个。

    image-20220302205224232

  • 后退N帧的实现过程:发送窗口有多个,接收窗口只有一个,当发送方收到上层的请求后,要发送数据,假设发送方滑动窗口有6个,如上图,则发送方先将0#帧发送,发送后创建一个0#帧的副本,发送的同时可以把后面的1#2#3#4#5#6#帧都按顺序发送(也可以不发送,如当上层无发送数据要求时),当1#帧发送到接收窗口并被接收窗口接收,则接收窗口会发一个0#帧的确认针ACK0给发送方,同时接收窗口后移一位,发送方收到来自接收方的ACK0后,将发送窗口后移一位,同时删除副本。

  • GBN发送方必须响应的三件事

    • 上层的调用:
      • 上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
    • 收到一个ACK:
      • GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
    • 超时事件:
      • 协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
  • GBN接收方要做的事

    • 如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧的数据部分交付给上层。
    • 其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。
  • 细节图image-20220302213107595

  • 滑动窗口长度

    • 窗口长度可以无限么:若采用n个比特对帧编号,那么发送窗口的尺寸应满足:1<=尺寸<=2的n次方-1.因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。

      如取2个比特对帧编号,则编号有4种,00,01,11,10即0,1,2,3;发送窗口尺寸应该在[1,3]中,尺寸最大为3,若为4的话,若4个针全丢失,则丢失的编号为0123,新帧的编号也是0123,则无法区分了。

  • GBN重点总结image-20220302214137980

  • GBN协议性能分析

    • 优点:因连续发送数据帧而提高了信道的利用率
    • 缺点:在重传时必须把原来已经正确传送的数据帧重传,使得传送效率降低
    • 为了解决这个问题,就有了选择重传协议

八、选择重传协议SR

  • GBN协议的弊端:

    • 累积确认,批量重传,这样出错帧后面的无错帧也会被抛弃,对资源造成一种浪费。
    • 解决办法:只重传出错的帧,设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。
  • 选择重传协议中的滑动窗口

    • 多个发送窗口,多个接收窗口image-20220303205943410
  • SR发送方必须响应的三件事

    • 上层的调用:从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
    • 收到一个ACK:如果收到ACK,假如该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
    • 超时事件:每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
  • SR接收方要做的事

    • “来者不拒(窗口内的帧):SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧确认帧(收到谁就确认谁),直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。如果向前移动后收到前面窗口序号外的帧,就返回一个ACK,因为可能给发送方发送的确认帧可能没收到从而超时重传了。其他情况,就忽略该帧。
  • SR的运行过程:image-20220303212343539

  • 滑动窗口的长度

    • 发送窗口最好等于接收窗口(大了会溢出,小了没意义)。

    • image-20220303213129765

      ​ n为由n比特确定的多个序号,如有4个序号就是由2比特确定的。

    • 如果滑动窗口选取的过大,分不清是新帧还是旧帧。

  • SR协议重点

    • 对数据帧逐一确认,对于窗口内的收一个确认一个。
    • 只重传出错帧
    • 接收方有缓存
    • 窗口大小公式

九、信道划分介质访问控制

  • 传输数据使用的两种链路

    • 点对点链路:
      • 两个相邻节点通过一个链路相连,没有第三者。
      • 应用:PPP协议,常用于广域网
      • image-20220304224833025
    • 广播式链路:
      • 所有主机共享通信介质
      • 应用:早期的总线以太网、无线局域网,常用于局域网
      • 典型拓扑结构:总线型、星型(逻辑总线型)
      • image-20220304224849249
  • 介质访问控制

    • 介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
    • 介质访问控制有两种方式
      • 静态划分信道(信道划分介质访问控制)
        • 频分多路复用FDM
        • 时分多路复用TDM
        • 波分多路复用WDM
        • 码分多路复用CDM
      • 动态分配信道
        • 轮询访问介质访问控制:令牌传递协议
        • 随机访问介质访问控制
          • ALOHA协议
          • CSMA协议
          • CSMA/CD协议
          • CSMA/CA协议
  • 信道划分介质访问控制

    • 信道划分介质访问控制就是将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
    • 多路复用技术:把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。image-20220304230225390
    • 为了不发生干扰,我们要进行介质访问控制来进行控制。
    • 频分多路复用FDMimage-20220304230708759
      • 用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。
      • 充分利用了传输介质带宽,系统效率较高,由于技术比较成熟,实现也比较容易。
      • 类似于“并行”
    • 时分多路复用TDM image-20220304231136134
      • 将时间划分为一段段等长的时分复用帧(TDM帧)。每个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
      • 类似于“并发”
      • 这种方式的信道划分访问控制的方式信道利用率低,所以就有了改进的时分复用:统计时分复用STDMimage-20220304231725622
    • 波分多路复用WDMimage-20220304232015335
      • 波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
    • 码分多路复用CDM
      • 码分多址(CDMA)是码分复用的一种方式。
      • 1个比特分为多个码片/芯片,每个站点(主机就是站点)被指定一个唯一的m(一般为64位或128位)位的芯片序列
      • 发送1时站点发送芯片序列,发送0时发送芯片序列反码(通常把0写成-1)。
      • 如何让两个站点上的数据“不打架”(互不干扰):多个站点同时发送数据的时候,要求各个站点芯片序列相互正交(规格化内积为0:两个站点的芯片序列对应位先相乘,再相加,最后除以总的位数为0)。
      • 如何合并到一条信道上传输:各路数据在信道中被线性相加(就是对应位加在一起)。
      • 如何分离:合并的数据和源站规格化内积(两个站点的芯片序列对应位先相乘,再相加,最后除以总的位数,得出1数据就是1,得出-1数据就是0)。

十、ALOHA协议

  • 动态分配信道也叫动态媒体接入控制/多点接入,特点是信道并非在用户通信时固定分配给用户的。

  • 随机访问介质访问控制:所有用户可随机发送消息。发送信息时占全部带宽。

  • ALOHA协议分两种

    • 纯ALOHA协议:image-20220307165339749

      • 不监听信道,不按时间槽发送,随机重发。(想发就发)
      • T0代表一个帧从发送开始到发送成功为止的时间,上图中假设每一个站点发送的T0是相同的。
      • 上图中站点2和N-1发生冲突。
      • 如果发生冲突,接收方就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。
      • 发生冲突的解决办法:超时后等一随机时间在重传。
    • 时隙ALOHA协议

      • 思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。(控制想发就发的随意性)
      • 上面所说的时间片对应的就是T0,也叫时间槽
  • ALOHA协议要知道的知识

    • 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
    • 纯ALOHA想发就发,时隙ALOHA只有在时间片段的开始才能发。

十一、CSMA协议

  • CSMA:载波监听多路访问协议(carrier sense multiple access)
  • CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
    • 检测方式:image-20220310231256090
  • MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
  • 协议思想:
    • 发送帧之前,监听信道
    • 监听结果:
      • 信道空闲:发送完整帧
      • 信道忙:推迟发送
    • 针对以上两种结果有3种协议
      • 1-坚持CSMA
        • 坚持指的是对于监听信道忙之后的坚持
        • 1-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道,空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
        • 优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
        • 缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
      • 非坚持CSMA
        • 非坚持指的是对于监听信道忙之后就不继续监听。
        • 非坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道,空闲则直接传输,不必等待。忙则等待一个随机时间这后再进行监听。
        • 优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
        • 缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体利用率降低。
      • p-坚持CSMA
        • p-坚持指的是对于监听信道空闲的处理
        • p-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。忙则等待一个随机的时间之后再进行监听。
        • 优点:既能像非坚持算法那样减少冲突,又通用像1-坚持算法那样减少媒体空闲时间的一种方案。
        • 缺点:发生冲突后还是坚持把数据帧发送完,造成了浪费。
    • 三种CSMA的对比image-20220310233501341

十二、CSMA/CD协议

  • 载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection)

  • CS:载波侦听/监听,每一个站在发送数据之前及发送数据时要检测一下总线上是否有其他计算机在发送数据。

    • 检测方式:image-20220310231256090
  • MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。(总线型网络)

  • CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。(半双工网络)

  • image-20220311223809178

  • 传播时延对载波监听的影响image-20220311224621248

  • 确定碰撞后的重传时机:image-20220311225359603

  • 最小帧长问题image-20220311225654563

    • 只要保证帧的传输时延至少要两倍于信号在总线中的传播时延,即最小帧长。
    • image-20220311230022579

十三、CSMA/CA协议

  • CSMA/CA(carrier sense multiple access with collision avoidance):载波监听多点接入/碰撞避免
  • CSMA/CA应用于无线局域网,而CSMA/CD应用于以太网
  • 无线局域网中用CA不用CD的原因
    • 因为要监听的方向太多,无法做到360度全面检测碰撞。
    • 隐蔽站:当A的C站都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会导致冲突,此时A就相当于C的一个隐蔽站
  • CSMA/CA协议工作原理
    • 发送数据前,先检测信道是否空闲
    • 空闲则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
    • 接收端收到RTS后,将响应CTS(clear to send)[RTS和CTS可以解决隐蔽站的问题]
    • 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)
    • 接收端收到数据帧后,将用CRC(循环冗余检验)来检验数据是否正确,正确则响应ACK帧。
    • 发送端收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)
  • CSMA/CA与CSMA/CD的比较
    • 相同点:
      • CSMA/CA与CSMA/CD机制都从属于CSMA的思路,其核心是”先听在说“。换言之,两个在接入信道之前都必须要进行监听。当发现信道空闲后,才能进行接入。
    • 不同点:
      • 传输介质不同:CSMA/CD用于总线式以太网[有线],而CSMA/CA用于无线局域网[无线]
      • 载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
      • CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。

十四、轮询访问介质访问控制

  • 介质访问控制:

    • 信道划分介质访问控制(MAC Multiple Access Control)协议:
      • 基于多路复用技术划分资源。
      • 网络负载重:共享信道效率高,且公平。
      • 网络负载轻:共享信道效率低
    • 随机访问MAC协议:
      • 用户根据意愿随机发送信息,发送信息时可独占信道带宽。
      • 网络负载重:产生冲突开销
      • 网络负载轻:共享信道效率高,单个结点可复用信道全部带宽
    • 轮询访问MAC协议/轮流协议/轮转访问MAC协议:、
      • 既不产生冲突,又要发送时占全部带宽。
  • 轮询访问MAC协议

    • 轮询协议
      • 主结点轮流“邀请”从属结点发送数据
      • 问题:
        • 轮询开销
        • 等待延迟
        • 单点故障(主结点故障)
    • 令牌传递协议
      • 令牌:
        • 一个特殊格式的MAC控制帧,不含任何信息。
        • 控制信道的使用,确保同一时刻只有一个结点独占信道。
      • 令牌环网无碰撞。
      • 每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
      • 问题:
        • 令牌开销
        • 等待延迟
        • 单点故障
      • 应用于令牌环网(物理星型拓扑,逻辑环型拓扑)
      • 采用令牌传送方式的网络常用于负载较重、通信量较大的网络中,负载重,则令牌的存在意义就大,若负载小,则令牌一直在循环,意义就不是很大了,造成了浪费。

十五、局域网基本概念和体系结构

  • 局域网(Local Area NetWork):

    • 简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。

    • 特点1:覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。

    • 特点2:使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s-10Gb/s)

    • 特点3:通讯延迟时间短,误码率低,可靠性较高。

    • 各站点平等关系,共享传输信道。

    • 多采用分布式控制和广播式通信,能进行广播和组播。

    • 决定局域网的主要因素:网络拓扑、传输介质、介质访问控制方法

      • 主要网络拓扑结构image-20220317090545829

      • 传输介质:

        • 有线局域网:
          • 常用介质:双绞线、同轴电缆、光纤
        • 无线局域网:
          • 常用介质:电磁波
      • 局域网介质访问控制方法:

        • CSMA/CD:常用于总线型局域网,也用于树型网络
        • 令牌总线:常用于总线型局域网,也用于树型网络
          • 令牌总线是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。
        • 令牌环:用于环形局域网,如令牌环网
    • 局域网的分类

      • 以太网:以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD。
      • 令牌环网:物理上采用星型拓扑结构,逻辑上是环形拓扑结构。已不常用。
      • FDDI网(Fiber Distributed Data Interface光纤分布式数据接口):物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
      • ATM网(Asynchronous Transfer Mode):较新型的单元交换技术,使用53字节固定长度的单元进行交换。IEEE 802.8标准。
      • 无线局域网(Wireless Local Area Network[WLAN]):采用IEEE802.11标准,WIFI是无线局域网的一种应用。
    • IEEE 802标准(因为是80年2月份所以叫802标准)

      • IEEE 802系列标准是IEEE 802 LAN/MAN 标准委员会制定的局域网、城域网技术标准(1980年2月成立)。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。
    • MAC子层和LLC子层

      • IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层和物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。image-20220317094030012

十六、以太网

  • 以太网概述

    • 以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。
    • 以太网使用CSMA/CD(载波监听多路访问及冲突检测)技术。
    • 以太网在局域网各种技术中占统治性地位的原因:
      • 造价低廉(以太网网卡不到100元)
      • 是应用最广泛的局域网技术
      • 比令牌环网、ATM网便宜,简单
      • 满足网络速率要求:10Mb/s-10Gb/s
    • 以太网的两个标准:
      • DIX Ethernet V2:第一个局域网产品(以太网)规约。
      • IEEE 802.3:IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(帧格式有一点点改动[相对于DIX Ethernet V2])
  • 以太网提供无连接、不可靠的服务

    • 无连接:发送方和接收方之间无“握手过程”。
    • 不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
    • 以太网只实现无差错接收,不实现可靠传输。
  • 以太网传输介质与拓扑结构的发展

    • image-20220320231343242
  • 10BASE-T以太网

    • 10BAST-T是传送基带信号(数字信号)的双绞线,T表示双绞线,现在10BASE-T采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。
    • image-20220320231758619
  • 适配器与MAC地址

  • 以太网MAC帧

  • 高速以太网

    • 速率>=100Mb/s的以太网称为高速以太网

十七、无线局域网(IEEE 802.11)

  • IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。

    • WIFI就是上面802.11b及802.11g规定的标准
  • 802.11MAC帧头格式

    • RA:代表接收端无线接入点地址

    • TA:代表发送端无线接入点地址

  • 无线局域网的分类:

    • 有固定基础设施无线局域网

    • 无固定基础设施无线局域网的自组织网络

十八、PPP协议及HDLC协议

  • 广域网

    • 广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
    • 广域网的通信子网主要使用分组交换技术,广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。
  • PPP协议的特点

    • 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户用使用拨号电话接入因特网时一般都使用PPP协议。
    • 只支持全双工链路。
  • PPP协议应满足的要求

    • 简单:对于链路层的帧,无需纠错,无需序号,无需流量控制
    • 封装成帧:帧定界符
    • 透明传输:与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
    • 满足多种网络层协议:封装的IP数据报可以采用多种协议
    • 满足多种类型链路:串行/并行,同步/异步;电/光...
    • 差错检测:CRC循环冗余
    • 检测连接状态:链路是否正常工作
    • 最大传送单元:MTU
    • 网络层地址协商:知道通信双方的网络层地址。
    • 数据压缩协商
  • PPP协议不需要满足的要求

    • 不需要纠错
    • 不需要流量控制
    • 不需要对帧编序号
    • 不需要支持多点线路
  • PPP协议的三个组成部分(需要实现的三种功能)

    • 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法
    • 链路控制协议LCP:建立并维护数据链路连接。(身份验证)
    • 网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
  • PPP协议的状态图

    • PPP协议是面向字节的一种协议
  • HDLC协议

    • 高级数据链路控制(High-Level Data Link Control),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的。
    • 数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现。
    • 采用全双工通信
    • 所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。
  • HDLC站

    • 主站:主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等。
    • 从站:主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制。
    • 复合站:主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。
    • 三种数据操作的方式
      • 正常响应方式
      • 异步平衡方式
      • 异步响应方式
  • HDLC的帧格式

  • PPP协议及HDLC协议

    • HDLC、PPP只支持全双工链路
    • 都可以实现透明传输
    • 都可以实现差错检测,但不纠正差错

十九、链路层设备

  • 物理层扩展以太网

    • 信号的传输不能超过100米,超过100米失真会很严重。

    • 上图中的两种方式从物理层扩展以太网

      • 通过光纤的方式。
      • 通过加主干集线器的方式,但这种方式增加了发生冲突的频率,为了解决这个问题,引出链路层扩展以太网。
  • 链路层扩展以太网

    • 网桥和交换机
  • 网桥:根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后在确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。

    • 网桥优点:

      • 过滤通信量,增大吞吐量。
      • 扩大了物理范围
      • 提高了可靠性(一个冲突域中的设备出现故障并不会影响其他冲突域中的设备)
      • 可以互连不同物理层、不同MAC子层和不同速度的以太网
    • 网桥分类:

      • 透明网桥

        • “透明”指以太网上的站点并不知道所发送的帧经过哪几个网桥(对链路层来说网桥是透明的),是一种即插即用的设备--自学习(算法)。
        • 通过自学习算法不断的丰富网桥自己的转发表。
      • 源路由网桥

        • 在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。
        • 方法:源站以广播的方式向欲通信的目的站发送一个发现帧,类比于一个迷宫,源站向目的站发送多个发现帧后,发现帧原路返回,得出多个方案,进行比较,选出最优方案。
  • 多接口网桥--以太网交换机

    • 以太网交换机的两种交换方式
      • 直通式交换机
        • 查完目的地址(6B)就立刻转发
        • 迟延小,可靠性低,无法支持具有不同速率的端口的交换
      • 存储转发式交换机
        • 将帧放入高速缓存,并检查是否正确,正确则转发,错误则丢弃。
        • 延迟大,可靠性高,可以支持具有不同速率的端口的交换
  • 冲突域和广播域

    • 冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单来说就是同一时间内只能有一台设备发送信息的范围。
    • 广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收到这个信号的设备范围称为广播域。
posted @ 2022-03-25 13:46  是韩信啊  阅读(379)  评论(0编辑  收藏  举报