计算机网络难?看了这个我妈都能学会!(第三章)

第三章 数据链路层

这一层就是为了准确的把来自物理层的数据可靠地传输到相邻节点的网络层上面。
链路:就是从一个结点到相邻结点的物理线路,而中间没有任何其他的交换结点。
数据链路:指把实现通信协议的硬件和软件加到链路上,就构成了链路数据,这一层以为单位进行传输和处理数据。

1.功能

   1.1封装成帧和透明传输

  • 封装成帧:
    在下图中,可以看到在五层标准模型中,每一层都会在数据单元中添加信息,而数据链路层就是负责添加帧头和帧尾,目的就是为了让数据单元能够在链路上以为单位进行传输。
    Alt
    1.帧头和帧尾中包含重要的控制信息。
    2.帧头和帧尾的重要作用之一就是给帧定界

帧定界,就是为了接收方能从物理层传输过来的二进制比特流中区分帧的起始和终止。
下图中以PPP协议的帧为例:Alt

  • 透明传输:
    指数据链路层对上层交付的不管什么比特组合的传输数据没有任何限制,只添加为帧定界的字符。
  • 面向字节的物理链路使用字节填充实现透明传输(如果数据部分中有和帧尾部【帧结束的边界】一样的字符,则通过转义字符区分其为数据还是帧尾)
  • 面向比特的物理链路使用比特填充实现透明传输(这种会在帧头和帧尾给出帧定界的比特长什么样子,然后需要去帧的数据部分查找帧定界。在发送端数据部分只要有5个1就立即填入1个0;接收端收到后,每发现5个1就把后面的0删除)

例题:Alt

   1.2差错控制

  • 差错检测:
    帧在传输过程中遭遇噪声干扰后可能会出现误码(比特1变成0或比特0变成1),因此需要进行检测是否出现了误码。
    所以,发送方会基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾

以下图为例,这是以太网V2的帧的基本组成,检错码就被封装在帧尾FCS中。
Alt
注:图中没有帧定界符,这种协议是用的前导码进行界定,具体讲解可以去搜索相关资料进行了解~

误码率BER:传输错误比特占所传输比特总数的比率。
差错检测码:奇偶校验、循环冗余校验CRC

  1. 奇偶校验:在待发送数据后添加1位奇偶校验位,通过有多少个数据位来判断是否有误码。

这种方法太辣鸡了,现在的数据链路层基本不会用这种方法。

  1. 循环冗余校验CRC:
    收发双方约定好一个生成多项式G(x),发送方基于待发送数据和G(x)计算出冗余码(余数),将其添加到待传输数据后面,接收方就可以通过G(x)来判断数据是否产生误码。

怎么生成多项式?例如:
G ( x ) = x 4 + x 2 + x + 1 = 1 ⋅ x 4 + 0 ⋅ x 3 + 1 ⋅ x 2 + 1 ⋅ x 1 + 1 ⋅ x 0 G(x) =x^4+x^2+x+1=1·x^4+0·x^3+1·x^2+1·x^1+1·x^0 G(x)=x4+x2+x+1=1x4+0x3+1x2+1x1+1x0这个多项式构成的比特串:10110
例题:
Alt
注意:
1.题目中,图中的不是加法,而是通过异或来进行运算,上下为0和1,结果就是1,都为1或0结果就是0;
2.写被除数的时候,需要在后面添加多项式做高次个0,就是图中标红的三个0。

对于接收方如何进行误码判断直接把接收到的数据(发送数据+冗余码/FCS)来除以多项式生成的比特串1101,余数为0则没有产生误码,不为0则说明产生了误码。

▲1.3可靠传输

  • 可靠传输:
    如果接收方根据帧尾的检错码判断这个帧为误码,则会将其丢弃,而可靠传输就是丢弃之后还可以重新收到被丢弃的帧的正确副本。(不可靠传输就是丢弃之后没有任何操作)

其中比特差错只是传输差错中的一种,还包括分组丢失、分组失序以及分组重复,这三种错误一般出现在数据链路层上层,可靠传输也可以在其他各层实现。-

可靠传输的实现比较复杂,开销比较大,是否使用可靠传输取决于应用需求。

下面进行介绍三种可靠传输的实现机制:
注:以下三种方法可应用到各层之中。
停止-等待协议SW:
发送窗口大小=1,接收窗口大小=1。
Alt
1.接收方检测到数据分组有误码时,将其丢弃并等待发送方的超时重传。但对于误码率较高的点对点链路,为使发送方尽早发送,也可给发送方发送NAK分组
2.为了让接收方能判断所受到的数据分组是否有重复,需要给数据分组编号,分组只需要一个比特编号0和1就够了。
3.为了让发送方能够判断所收到的ACK分组是否有重复,需要给ACK分组编号,还是一个比特编号0和1。数据链路层一般不会出现ACK分组迟到的情况,所以在数据链路层中可以不用给ACK分组编号。
4.超时计时器设置重传时间一般选为略大于“发送方到接收方的平均往返时间RTT”

关于信道利用率U计算:
Alt
一般情况下, T A T_A TA时间较短,可以忽略不计。
当往返时延RTT远大于数据帧发送时延 T D T_D TD时(例如使用卫星链路),信道利用率非常低

为了解决SW协议信道利用率很低的缺点,就诞生了回退N帧协议GBN选择重传协议SR,在这两种协议工作过程中,因发送窗口和接收窗口不断先去向前滑动,因此又都称为滑动窗口协议

回退N帧协议GBN:
发送窗口大小>1,接收窗口大小=1。
下面分别对发送方和接收方进行解析此协议:
发送方:

  • 发送窗口尺寸 W T W_T WT取值范围是1< W T W_T WT 2 n 2^n 2n-1,其中n是构成分组序号的比特数量。
    • W T W_T WT = 1,则为停止-等待协议SW
    • W T W_T WT > 2 n 2^n 2n-1,则为导致接收方无法分辨新、旧数据分组

Alt

  • 发送方未收到接收方的确认,需要把自己的发送窗口的多个数据分组全部发送出去;
  • 只有收到分组确认时,发送窗口才能向前相应滑动;
  • 当收到多个重复确认时,可在重传计时器超时前尽早开始重传,由具体实现决定;
    (这一点具体可以百度,解释起来比较麻烦,狗头保命🐶
  • 发送方如果已发送的数据分组产生超时发送(没收到确认分组),其后续在发送窗口内已经发送的数据分组也必须全部重传,这就是回退N帧

接收方:

  • 接收窗口尺寸 W R W_R WR取值为1,只能按序接收数据分组。
    Alt
  • 接收方只接收序号落在接收窗口正确且无误码的数据分组,收到后再向前滑动一个位置,同时也会给发送方发送相应的确认分组(为了减小开销,也会采用累计确认或捎带确认
    • 在收到正确无误的数据分组的最后一个再发送确认分组,这叫累积确认
    • 在接收方有数据分组要发送时才对之前按序接收且无误码的数据分组进行捎带确认;(相当于接收方变成发送方,顺带把确认分组连同数据分组一起发送过去)
  • 如果收到了未按序到达的数据分组,先将其以及之后的数据分组全部丢弃,然后对最近根据最近接收的数据分组发送确认分组;
    Alt

考题中,如果说发送方收到了哪一个帧的确认分组,例如收到了0、2、3号帧的确认,即说明接收方收到了0~3号,其中1号帧丢失了不要紧,如果收到了3号帧,那么就一定收到了 0~3号帧

这种协议因连续发送数据帧而提高了信道利用率,但当通信线路质量不好时,出现错误时会把原本没有出现错误的数据帧也要重传,这也会导致信道利用率很低

选择重传协议SR:
发送窗口大小>1,接收窗口大小>1。
Alt
这种协议的优点就是遇到错误的数据帧,不需要像GBN协议一样重传数据,只需要进行缓存。

例如图中,接收方5号帧没有收到,但是已经收到6号分组了,这时候就对6号帧进行缓存,等接收到了5号分组之后,再将6号正式接收。

下面分别对发送方和接收方进行解析此协议:
发送方:

  • 如果收到了ACK分组,则发送方将被确认的帧标记为已接收,如果该帧是窗口的下届(最左边那个),则窗口向前移动到最小序号的未确认帧处
  • 每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。

接收方:

  • 将确认一个正确接收的帧而不管其是否按序。失序的帧将会缓存,并返回给发送方一个该帧的确认帧,直到收到窗口下届(最左边的帧),然后向前移动滑动窗口到最小序号的未确认帧处。

发送窗口数最好等于接收窗口。(大了会溢出,小了没意义)
W T m a x W_{Tmax} WTmax= W R m a x W_{Rmax} WRmax= 2 n − 1 2^{n-1} 2n1

2.应用

2.1两种链路/信道

▲2.1.1介质访问控制(MAC地址协议

概念:采取一定措施,使两对节点之间的通信不会发生相互干扰的情况。
此控制划分为两类:静态划分信道、动态分配信道

静态划分信道:

  • 信道划分 介质访问控制
    Alt
    关于怎么进行复用分用,有以下四种方法:

    • 频分多路复用FDM
      根据用户在同样的时间占用不同的带宽(频率带宽)资源进行区分。

    例如上图中, A 1 A_1 A1 B 1 B_1 B1 C 1 C_1 C1的频率带宽为 f 1 f_1 f1 f 2 f_2 f2 f 3 f_3 f3

    • 时分多路复用TDM
      将时间划分为一段段等长的时分复用帧(TDM)。每一个用户在一个TDM中占用固定序号的时间间隔,轮流占用信道。

    例如:下图中每一个TDM有四个用户A、B、C、D,每一个用户占用相同的时间轮流占用信道。
    Alt

    • 波分多路复用WDM
      在一根光纤中传输不同波长(频率)的光信号。
    • 码分多路复用CDM
      这里我自认为不太好解释,但是还是蛮重要的
      具体参考可以去看,科大教书匠 计算机网络微课P30.

    这里记忆,FDM是频率frequency,TDM是时间time,WDM是waveform,CDM是代码code,通过单词首字母进行记忆。

动态分配信道:
特点: 信道并非在用户通信时固定分配给用户。

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

    • ALOHA协议
      (这种协议比较原始,基本不会考)
      • 纯ALOHA协议
        思想:不监听信道,不按时间槽发送,随机重发。(想发就发

        如果在同一时间有两个数据发送就会产生冲突,那么发送方就在超时后等一随机时间重传。
      • 时隙ALOHA协议
        思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等待下一个时间片开始时刻再发送。 Alt时间片(时间槽)T0:规定数据帧的长度。
        特点: 每一个站点在发送数据帧的时候,只能在一个时间片的开始进行发送(如果此时想发送,并没有到时间片开始)就需要等到时间片开始再发送。

        1.如果发送过程很成功,未发生冲突。
        2.发送过程发送冲突,这个站点就会在时隙之后(经过一个T0之后)发送方发现出现冲突(因为接受方没有返回确认帧),发送方判定发送过程中出现冲突。

        遇到冲突状况,需要进行超时重传,只能在一个时间片(时隙)的开始进行重传。

        总结:纯ALOHA协议发送成功率低,且比时隙ALOHA吞吐量更低,效率更低;纯ALOHA想发就发,时隙ALOHA只能在时间片段开始时才能发。
    • CSMA协议
      CS: 载波帧听/监听,每一个站在发送数据前要检测一下总线上是否有其他计算机在发送数据(先听后说)。
      MA: 多点接入,表示许多计算机以多点接入的方式连接在一根总线上。

      协议思想: 先监听信道,根据监听结果,再发送数据。

      监听结果:
      监听结果分为空闲和忙两种状态,下面有三种CSMA思想来解释怎么处理这两种状态:

      1-CSMA思想:监听信道,如果空闲则直接传输,不必等待;忙则一直监听,直到空闲马上传输。如果有冲突,则等待一个随机长的时间再监听,重复上述过程。

      不坚持CSMA思想:监听到信道忙之后,就不继续监听, 等待一个随机时间重新进行监听。

      p-坚持CSMA思想:空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输;忙则持续监听直到信道空闲再重复上述操作;若冲突则等到下一个时间槽开始再监听并重复上述操作。

    为了方便理解,给出一个买奶茶的例子帮助理解:Alt
    第一种就是到了就买,没到就排队等;第二种是没人排队才买;第三种是没人排队有概率买,有人排队就等。

    我们发现,p-坚持比前两种思想更好一些,其既能像非坚持那样减少冲突,又可以像1-坚持那样减少媒体空闲时间。

    但是在发送冲突后还是要坚持把数据帧发送完,因其没有检测冲突的过程,就会重复发送数据,这样就造成了数据浪费,所以就诞生了CSMA/CD协议

    • CSMA/CD协议
      这里的CS和MA和上面的CSMA协议意思相同。
      CD: 碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化,判断信道是否空闲,空闲就发送数据,一旦检测到碰撞,立即停止发送,再等待时机,重新再发。(边听边说

      如何产生碰撞: 这里举一个主机A和B,如果A发送数据给B但数据还未到达B,B在检测信道有一定时间没有数据传过来,就以为信道是空闲的,此时B就会发送数据,那么此时两者发送的数据就会产生碰撞,碰撞之后,两者的数据都会产生错误(就像水和沙子混到了一起),双方在接收到错误的数据后,就会等待一个随机时间重发。

      传播时延对载波监听的影响: 只需要记住,发送端检测发送时间为2 τ \tau τ- δ \delta δ,其中 τ \tau τ单程端到端的传播时延,关于 δ \delta δ,只需要记住是会根据接收端发送数据的时间决定,所以 δ \delta δ趋近于0时,发送端检测发送时间最迟为2 τ \tau τ,也称为争用期2 τ \tau τ

    δ \delta δ趋近于0的时候,即为接收方刚开始发送的时候。所以只要经过了2 τ \tau τ的时间还没检测到碰撞,那么就一定不会发送碰撞

    由于发生碰撞之后,就需要等待一个时间进行重传,如果时间选择不合适就会导致无限重传,所以需要确定碰撞后的重传时机
    截断二进制指数规避算法:

    1. 确定基本退避(推迟)时间为争用期2 τ \tau τ
    2. 定义参数k,代表重传次数,但k不超过10,一旦超过10,就一直等于10。
    3. 从离散的整数集合 [0,1,…, 2 k 2^k 2k-1] 中随机取出一个数r,k为重传次数,重传所需退避时间就是r倍的基本退避时间,即为r×2 τ \tau τ
    4. 如果重传次数达到16次还未成功,则说明网络太拥挤,抛弃此帧并向高层报告出错。

      最小帧长问题:
      如果一个站点发送了很短的帧,发生了碰撞,由于帧太小,导致发送完毕后才检测到发送了碰撞,就没有办法停止发送,所以需要对帧的长度有一个最小值。
      帧的传输时延至少要两倍于信号在总线中的传播时延。

    由于 帧长( b i t ) 数据传输速率 \frac{帧长(bit)}{数据传输速率} 数据传输速率帧长(bit ⩾ \geqslant 2 τ \tau τ,所以
    最小帧长 =2 τ \tau τ×数据传输速率

    • CSMA/CA协议
      CA: 碰撞避免。当在无线局域网时,由于不能做到100%的碰撞检测,因此需要进行碰撞避免。
      工作原理:
    1. 发送数据之前,检测信道是否空闲。
    2. 空闲则发出RTSRTS包括发送端地址、接收端地址、下一份数据将持续发送时间等信息;忙则等待。(表示我要给你发送数据了)
    3. 接收端收到RTS后,将返回CTS(表示我收到了你的请求,并且同意了你的请求)
    4. 发送端收到CTS,开始发送数据帧,同时进行预约信道(发送方告诉其他站点自己要传多久数据)。
    5. 接收端收到数据后,通过CRC检验数据,正确则返回ACK帧
    6. 发送端收到ACK后,就可以进行下一次发送,若没有收到就重传直至到规定的重发次数为止(采用二进制指数规避算法来确定随机的推迟时间)。

    CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】。

  • 轮询访问 介质访问控制(考的较少)

    我们前面了解了信道划分MAC协议随机访问MAC协议,这两种协议在不同状态的网络负载下也有不同的特点:
    信道划分MAC协议:
    1.网络负载重:共享信道效率高,且公平。
    2.网络负载轻:共享信道效率低。

    随机访问MAC协议:
    1.网络负载重:产生冲突开销。
    2.网络负载轻:共享信道效率高,单个结点可利用信道全部带宽。

    轮询MAC协议就是结合上面两种协议的特点,做到既不发生冲突,又在发送时占全部带宽。

    • 轮询协议
      主结点轮流邀请从属结点发送数据。
      (主结点轮流去问从属结点是否要发送数据,对方说要发生,就等对方发送;不发生就去问下一个结点)
      缺点:一直轮流询问开销比较大;靠后的主机有等待延迟;会发生单点故障,即一个站点发生故障会影响多个站点。
    • 令牌传递协议
      Alt
      令牌: 一个特殊格式的MAC控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个结点独占信道
      以上图为例,工作原理:
    1. 令牌在线路中不停的移动,直到有一个主机要发送数据。
    2. 令牌的状态会从空闲改为
    3. 目的主机收到后,就会把数据复制一份给自己,然后再让令牌发送出去,直到发送数据的那个重新收到自己发送的数据
    4. 发送端重新收到后,就检查数据,错误就重传,没错就把令牌的状态改为空闲
    5. 由于数据太长的话就会导致其他结点等待时间较长,所以设置了一个最大时间,超过时间之后,就把令牌给下一个要发送的,令牌轮到自己的时候,再把剩下的数据发完

      这种协议通常应用于令牌环网(物理上是星型拓扑结构,逻辑上是环形拓扑结构), 常用于负载较重、通信量较大的网络中。
    2.1.2局域网(广播式)

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

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

  1. 拓扑结构:
    Alt
    由上图对四种拓扑结构的介绍可知,总线型是最适合局域网的拓扑结构。
  2. 传输介质:
    有线局域网:双绞线、同轴电缆、光纤
    无线局域网:电磁波
  3. 介质访问控制(MAC)
  • CSMA/CD 常用于总线型局域网
  • 令牌总线 常用于总线型局域网
    它是把总线型网络中的各个工作站按一定顺序,如按接口地址大小排列成一个逻辑环。只有令牌持有者才能控制总线和发送信息的权力。
  • 令牌环 常用于环形局域网

局域网分类:

  1. ▲以太网(Ethernet)
    这是应用最广泛的局域网,符合IEEE802.3系列标准规范。逻辑上是总线型拓扑结构,物理上是星型拓扑结构,使用CSMA/CD
  2. 令牌环网
    逻辑上是环形拓扑结构,物理上是星型拓扑结构。由于造价较高且有单点故障的原因,现在基本不怎么使用。
  3. FDDI网
    逻辑上是环形拓扑结构,物理上是双环拓扑结构,传输介质使用光纤。(了解即可)
  4. ATM网
    较新型的单元交换技术,使用53字节固定长度单元交换。(了解即可)
  5. 无线局域网(WLAN)
    采用IEEE 802.11系列标准规范,传输介质为电磁波,WiFi是属于无线局域网中的一种。

IEEE 802标准:
这是IEEE 802 LAN/MAN标准委员会制定的局域网。

IEEE 802标准有很多种类,其中只有四种会考到:
IEEE 802.3:记住和以太网有关就行。
IEEE 802.5:和令牌环网有关的。
IEEE 802.8:和光纤技术咨询组有关,涉及到了FDDI网。
IEEE 802.11:和无线局域网有关的。

考研中最常考的局域网就是以太网,下面对其进行详细解释:

以太网:

  1. 提供无连接、不可靠服务。
    无连接:发送方和接收方之间无“握手过程”。
    不可靠:对差错帧直接丢弃,纠正交由高层负责。
  2. MAC地址:硬件地址,全球唯一的48位二进制地址。(题目中涉及到物理地址,一般是指MAC地址
  3. 10BASE-T以太网:采用无屏蔽双绞线(UTP),传输速率为10Mb/s,采用曼彻斯特编码CSMA/CD介质访问控制
  4. 100BASE-T以太网:在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议
  5. 吉比特以太网:在光纤或双绞线上传送1Gb/s信号。
  6. 10吉比特以太网:在光纤上传送10Gb/s信号。

100BASE-T以太网、吉比特以太网、10吉比特以太网均为高速以太网(传送速率 ⩾ \geqslant 100Mb/s)

大纲新增考点:VLAN基本概念及原理

传统路由器有三个缺点:

  1. 缺乏流量隔离:当一个主机发送消息,会跨越整个机构网络,造成网络泛洪(MAC地址查找错误);
  2. 管理用户不便:如果要使主机在不同组件移动,必须要改变物理布线,十分麻烦;
  3. 路由器成本较高:传统局域网会使用很多路由器,开销较大。


所以就诞生了VLAN来解决上述问题。

VLAN虚拟局域网,是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,每一个VLAN都是单独的广播域/子网。
Alt
注:VLAN划分是打破物理的,不是通过硬件方式实现,上图中16个主机,任意两个都可以划分到一个VLAN当中。

对于如何实现主机之间的通信,需要借助路由器和三层交换机:
Alt

    2.1.3广域网(点对点)

概念:跨越很大的物理范围,几十公里到几千公里,能连接多个城市或国家形成国际性的远程网络。
广域网的通信子网主要使用分组交换技术。它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。

下图就为广域网的模型,白色的矩形是节点交换机。
Alt

应用:因特网(世界范围最大的广域网)等。

相关协议:PPP协议,HDLC协议(考研已删除)。

PPP协议:点对点协议(Point-to-Point),这是目前使用最广泛的数据链路层协议,只支持全双工链路

  1. 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
  2. 链路控制协议LCP:建立并维护数据链路连接。
  3. 网络控制协议NCP:PPP协议支持多种网络层协议,每种不同的网络协议都要有一个对应的NCP来配置,为网络层协议建立和配置逻辑连接。
    Alt

关于HCLD协议的详细介绍 ,可看王道教学视频: 王道考研——广域网及相关协议.

2.2 链路层设备——交换机

由于物理层设备的传输距离限制,需要对局域网进行扩大,所以就用到了链路层设备:网桥&交换机(网桥是计算机的前身,现在基本都是使用交换机)

关于网桥部分(考纲已删除),其核心功能和交换机类似,学习这一小块内容可以加深对交换机的理解。详细介绍可看王道教学视频: 王道考研——链路层设备.

我们知道,两台主机之间通信,需要通过线路进行连接,但多个主机时,主机的端口数量有限,就会用到集线器来进行管理,但是集线器端口数量也是有限的,于是就用到了交换机来代替集线器,交换机内部有交换机转发表,记录了各个主机的MAC地址,这样大大提高了主机之间通信的效率和设备成本的降低。

接下来介绍交换机,分为直通式交换机和存储转发式交换机。
直通式交换机:查完目的地址就立刻转发,延迟小可靠性低,无法支持具有不同速率的端口的交换。
存储转发式交换机:将帧放入高速缓存,并检查是否正确,正确则转发,反之丢弃。延迟大可靠性高,可以支持不同速率的端口的交换。

接下来关于物理层、链路层、网络层的作用范围,这里给出冲突域和广播域的概念:
Alt

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值