计算机网络:数据链路层

第三章 数据链路层

文章目录

  • 第三章 数据链路层
    • 零、考纲内容
    • 一、数据链路层的功能
      • 1.1、为网络层提供服务
      • 1.2、链路管理
      • 1.3、帧定界、帧同步和透明传输
      • 1.4、流量控制
      • 1.5、差错控制
    • 二、组帧
      • 2.1、字符计数法
      • 2.2、字符填充的首位定界符法
      • 2.3、零比特填充的首位标志法
      • 2.4、违规编码法
    • 三、差错控制
      • 3.1、检错编码
        • 3.1.1、奇偶校验码
        • 3.1.2、循环冗余码
      • 3.2、纠错编码
    • 四、流量控制与可靠传输机制
      • 4.1、流量控制、可靠传输与滑动窗口机制
        • 4.1.1、停止-等待流量控制基本原理
        • 4.1.2、滑动窗口流量控制基本原理
        • 4.1.3、可靠传输机制
      • 4.2、单帧滑动窗口与停止-等待协议
      • 4.3、多帧滑动窗口和后退N帧协议(GBN)
      • 4.4、多帧滑动窗口和选择重传协议(SR)
    • 五、介质访问控制
      • 5.1、信道划分介质访问控制
      • 5.2、随机访问介质控制
        • 5.2.1、ALOHA协议
        • 5.2.2、CSMA协议
        • 5.2.3、CSMA/CD协议
        • 5.2.4、CSMA/CA协议
      • 5.3、轮询访问介质访问控制:令牌传递协议
    • 六、局域网
      • 6.1、局域网基本概念和体系结构
      • 6.2、以太网和IEEE 802.3
        • 6.2.1、以太网适配器和网卡
        • 6.2.2、以太网的MAC帧
        • 6.2.3、高速以太网
      • 6.3、拓展的以太网
        • 6.3.1、在物理层拓展以太网
        • 6.3.2、在数据链路层拓展以太网
        • 6.3.3、虚拟局域网
      • 6.4、IEEE 802.11
    • 七、广域网
      • 7.1、广域网的基本概念
      • 7.2、PPP协议
      • 7.3、HDLC协议
    • 八、数据链路层设备
      • 8.1、网桥
      • 8.2、交换机

本文章为计算机网络第三章:数据链路层复习总结。

教材为《计算机网络(第七版)》 — 谢希仁。

部分图片来自课堂PPT;部分图片截取自网络。

如有错误,请指出,谢谢。

第二章:物理层

零、考纲内容

计算机网络:数据链路层_第1张图片

一、数据链路层的功能

数据链路层在物理层提供服务的基础上向网络层提供服务,其主要任务是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

1.1、为网络层提供服务

对于网络层而言,数据链路层的基本任务是将原机器中来自网络层的数据传输到目标机器的网络层。

  1. **无确认的无连接服务。**源机器发送数据帧时不需先建立链路链接,目标机器收到数据帧之后也无需发回确认。丢失的帧交给上层处理。
  2. **有确认的无连接服务。**源机器发送数据帧时不需先建立链路链接,但目标机器收到数据之后不需发回确认。源机器在规定时间内没有收到确认信号时,就重新发送丢失的帧。
  3. **有确认的面向连接服务。**帧传输过程分为三个阶段:建立数据链路、传输帧、释放数据链路。目标机器要对每一帧都进行确认,源机器在收到确认信号时才会发送下一帧。

**注意:**有链接一定要有确认,因此不存在无确认的面向连接的服务。

1.2、链路管理

数据链路层连接的建立、维持和释放过程称为链路管理。主要用于面向连接的服务。在多个站点共享同一物理信道的情况下如何在要求通信的站点间分配和管理信道也属于数据链路层管理的范畴。

1.3、帧定界、帧同步和透明传输

在两个站点之间的传输信息时,必须将网络层的分组封装成帧,以帧的格式进行传输。

封装成帧就是在一段数据的前后分别添加首部和尾部,然后构成了一个帧。首部和尾部的一个重要作用就是进行帧定界

计算机网络:数据链路层_第2张图片

控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT(End Of Transmmission)表示帧的结束。

计算机网络:数据链路层_第3张图片

帧同步指的是接收方应能从接收到的二进制比特流中区分出帧的起始和终止。

如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地“找到帧的边界”,那么就要采取有效的措施解决这个问题,即透明传输。“在数据链路层透明传送数据”表示无论发送什么样的 比特组合的数据,这些数据都能够按照原样没有差错地 通过这个数据链路层。

计算机网络:数据链路层_第4张图片

1.4、流量控制

流量控制即限制发送方的数据流量,使其发送速率不超过接收方的接受能力。这个过程需要通过某种反馈机制使得发送方能够知道接受方能否跟上自己。对数据链路层而言,流量控制控制的是相邻两节点之间数据链路上的流量。

1.5、差错控制

帧在传输过程中可能出现错误:1变成0,0变成1。

用于使发送方确定接收方是否正确收到由其发送的数据的方法称为差错控制。

在一段时间内,传输错误的比特占所传输比特总数的比率称为**误码率BER **(Bit Error Rate)。误码率与信噪比有很大的关系。

在数据链路层传送的帧中,广泛使用了循环冗余检验CRC的检错技术。

二、组帧

数据链路层之所以要把比特组合成帧为单位进行传输,是为了在出错时只重发出错的帧,而不必重发全部数据。为了使接收方能够正确的接收并检查所传输的帧,发送方必须依据一定的规则把网络层递交的分组封装成帧(称为组帧)。组帧主要解决帧定界、帧同步和透明传输等问题。通常有4种方法实现组帧:

2.1、字符计数法

在帧头部使用一个计数字段来标明帧内字符数。目的结点的数据链路层收到字节计数值时,就知道后面跟随的字节数,从而确定帧的结束。但是一旦计数字段出错,接收方就无法判断所传输帧的结束位和下一帧的开始,发生灾难性后果。

2.2、字符填充的首位定界符法

字符填充法使用一些特定的字符来定界一帧的开始和结束。如果数据段出现填充字符,则在填充字符前加上转义字符来加以区分。

2.3、零比特填充的首位标志法

零比特填充法允许数据帧包含任意个数的比特,也允许每个字符的编码包含人一个数的比特,它使用一个特定的比特模式,即01111110来标示一个帧的开始和结束。为了避免数据段中也出现01111110导致误判,发送方的数据链路层在数据段中一旦遇到了连续的5个1时,就立马在之后插入一个0;接收方进行逆操作来还原数据。

零比特填充法很容易由硬件实现,性能优于字符填充法。

2.4、违规编码法

在物理层进行比特编码时,通常采用违规编码法。即借用编码方法中的违规编码序列来定界帧的开始和结束。

目前较常用的组帧方法时比特填充法和违规编码法。

三、差错控制

比特在传输的过程中,优于噪声的缘故,可能产生差错。

差错主要分为两种:

  1. 位错。比特为出错,1可能变为0,0也可能变为1。
  2. 帧错。包括帧丢失、帧重复和帧失序。

通常使用编码技术进行差错控制。差错控制可分为以下两种:

数据链路层的编码和物理层的数据编码不同。物理层的编码针对的是单个比特,解决传输过程中比特的同步等问题。数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程中是否出现了差错。

3.1、检错编码

检错编码都采用冗余编码技术。常见的检错编码有奇偶校验码和循环冗余码。

3.1.1、奇偶校验码

奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。它由n-1位信息元和n位校验元组成。

  1. 奇校验码:在附加一个校验元之后,码长为n的码字中1的个数位奇数。
  2. 偶校验码:在附加一个校验元之后,码长为n的码字中1的个数为偶数。

又分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验。

3.1.2、循环冗余码

在数据链路层传送的帧中,广泛使用了循环冗余检验CRC的检错技术。

循环冗余码(CRC)又称为多项式码,任何一个由二进制数位串组成的代码都可以与一个只含有0和1两个系数的多项式建立一一对应关系。

得定一个 m bit的帧或报文,发送器生成一个 r bit的序列,称为帧校验序列(FCS)

循环冗余校验CRC帧校验序列FCS并不等同:

  1. CRC是一种常用的检错方法,而FCS是添加在数据后面的冗余码。
  2. FCS可以用CRC方法得出,但CRC并非是用来获得FCS的唯一方法。

循环冗余校验的原理:

  • 在发送端,先把数据划分为 组。假定每组k个比特。
  • 在每组M后面再添加供差错 检测用的n位冗余码,然后 一起发送出去。

计算机网络:数据链路层_第5张图片

冗余码的计算:

  • 用二进制的模2运算进行 2 n 2^n 2nM的运算,这相当于在M后面添加了n个0。
  • 得到的(k + n)位的数除以实现选定好的长度为(n + 1)位的除数P,得出的商是Q而余数是R,余数R比比除数P少1位,即R是n位。
  • 将余数R作为冗余码拼接在数据M后面,一起发送出去。

接收端检验:

  • 若得出的余数为0,则判断这个帧没有错误,就接受
  • 余数不为0,则判断这个帧有差错,就丢弃

计算机网络:数据链路层_第6张图片

但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。

只要经过严格的挑选,并使用位数足够多的除数P,那么出现检测不到的差错的概率就很小很小。

计算示例:

计算机网络:数据链路层_第7张图片

注意事项:

  • 仅用循环冗余校验CRC差错检测技术只能做到无差错接受(凡是接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错)。
  • 单纯使用CRC不能实现“无差错传输”和“可靠传输”。
  • 在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
  • 要做到“无差错传输”(即发送什么就收到什么)就必须再加上确认和重传机制。

3.2、纠错编码

在数据通信过程中,解决差错问题的一种方法是在每个要发送的数据块上附加足够的冗余信息,使接收方能够推导出发送方实际送出的应该是什么样的比特串。

最常见的纠错编码是海明码,其实现原理是在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。

海明码的编码原理和过程:

以数据码1010为例。

  1. 确定海明码的位数

    n为有效信息的位数,k为校验码的位数,则信息位n和校验码k应满足
    n + k < = 2 k − 1 ( 若 要 检 测 两 位 错 , 则 需 要 再 加 一 位 校 验 码 , 即 k + 1 位 ) n + k <= 2^k - 1(若要检测两位错,则需要再加一位校验码,即k + 1位) n+k<=2k1(k+1)

    例:

    海明码位数为 n + k = 7 < = 2 3 − 1 n + k = 7 <= 2^3 - 1 n+k=7<=231 成立,则设信息位为 D 4 D 3 D 2 D 1 ( 1010 ) D_4D_3D_2D_1(1010) D4D3D2D1(1010) ,共四位,校验位为 P 3 P 2 P 1 P_3P_2P_1 P3P2P1 ,共三位,对应的海明码为 H 7 H 6 H 5 H 4 H 3 H 2 H 1 H_7H_6H_5H_4H_3H_2H_1 H7H6H5H4H3H2H1

  2. 确定校验位的分布

    规定校验位 P i P_i Pi在海明位号为 2 i − 1 2^{i-1} 2i1的位置上,其余各位为信息位。

    因此,本例中:

    P 1 P_1 P1的海明位号为 2 i − 1 = 2 1 − 1 = 1 2^{i-1} = 2^{1-1} = 1 2i1=211=1,即 H 1 H_1 H1 P 1 P_1 P1

    P 2 P_2 P2的海明位号为 2 i − 1 = 2 2 − 1 = 2 2^{i-1} = 2^{2-1} = 2 2i1=221=2,即 H 2 H_2 H2 P 2 P_2 P2

    P 3 P_3 P3的海明位号为 2 i − 1 = 2 3 − 1 = 4 2^{i-1} = 2^{3-1} = 4 2i1=231=4,即 H 4 H_4 H4 P 3 P_3 P3

    所以海明码各位的分布如下:

    H 7 H_7 H7 H 6 H_6 H6 H 5 H_5 H5 H 4 H_4 H4 H 3 H_3 H3 H 2 H_2 H2 H 1 H_1 H1
    D 4 D_4 D4 D 3 D_3 D3 D 2 D_2 D2 P 3 P_3 P3 D 1 D_1 D1 P 2 P_2 P2 P 1 P_1 P1
  3. 分组以形成校验关系

    每个数据位用多个校验位进行校验,但要满足被校验数据位的海明位号等于校验该数据位的各校验位海明位号之和。另外校验位不需要再被校验。

    D 1 D_1 D1放在 H 3 H_3 H3上,由 P 2 P_2 P2 P 1 P_1 P1校验。3 = 2 + 1;

    D 2 D_2 D2放在 H 5 H_5 H5上,由 P 3 P_3 P3 P 1 P_1 P1校验。5 = 4 + 1;

    D 3 D_3 D3放在 H 6 H_6 H6上,由 P 3 P_3 P3 P 2 P_2 P2校验。6 = 4 + 2;

    D 4 D_4 D4放在 H 7 H_7 H7上,由 P 3 P_3 P3 P 2 P_2 P2 P 1 P_1 P1校验。7 = 4 + 2 + 1;

  4. 校验位取值

    校验位 P i P_i Pi的值为第i组(由该校验位校验的数据位)所有位求异或。

    P 1 = D 1 ⊕ D 2 ⊕ D 4 = 0 ⊕ 1 ⊕ 1 = 0 P_1 = D_1 \oplus D_2 \oplus D_4 = 0 \oplus 1 \oplus 1 = 0 P1=D1D2D4=011=0

    P 2 = D 1 ⊕ D 3 ⊕ D 4 = 0 ⊕ 0 ⊕ 1 = 1 P_2 = D_1 \oplus D_3 \oplus D_4 = 0 \oplus 0 \oplus 1 = 1 P2=D1D3D4=001=1

    P 3 = D 2 ⊕ D 3 ⊕ D 4 = 1 ⊕ 0 ⊕ 1 = 0 P_3 = D_2 \oplus D_3 \oplus D_4 = 1 \oplus 0 \oplus 1 = 0 P3=D2D3D4=101=0

    所以1010对应的海明码为1010010

  5. 海明码的校验原理

    每个校验位分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查,构成k个校验方程。

    S 1 = P 1 ⊕ D 1 ⊕ D 2 ⊕ D 4 S_1 = P_1 \oplus D_1 \oplus D_2 \oplus D_4 S1=P1D1D2D4

    S 2 = P 2 ⊕ D 1 ⊕ D 3 ⊕ D 4 S_2 = P_2 \oplus D_1 \oplus D_3 \oplus D_4 S2=P2D1D3D4

    S 1 = P 2 ⊕ D 2 ⊕ D 3 ⊕ D 4 S_1 = P_2 \oplus D_2 \oplus D_3 \oplus D_4 S1=P2D2D3D4

    如果 S 3 S 2 S 1 S_3S_2S_1 S3S2S1的值为“000”,说明没有出错;否则说明出错,且这个数就为出错的位号。

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

4.1、流量控制、可靠传输与滑动窗口机制

流量控制的基本方法是由接收方控制发送方发送数据的速率,常见的方法有两种:停止-等待协议和滑动窗口协议。

4.1.1、停止-等待流量控制基本原理

发送方每发送一帧,都要等到收到接收方的应答消息之后,在发送下一帧;接收方每收到一帧,都要发送应答消息,通知发送方可以发送下一帧。

4.1.2、滑动窗口流量控制基本原理

发送端和接收端分别设定发送窗口和接收窗口。

**发送窗口:**实质是发送缓存,包含已经发送出去但尚未接收到确认的帧序号以及还能发送的帧序号。

窗口大小 W T W_T WT无需等待确认应答,就可持续发送的数据的最大值

当发送窗口之内没有可发送的帧(即全是已发送但未收到确认的帧)时,发送方就会停止发送,直到收到确认信息后是发送窗口开始移动,有了新的可发送帧之后,才开始继续发送。

计算机网络:数据链路层_第8张图片

**接受窗口:**实质是接收缓存,包含期望接收的帧序号。

在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。若接收到的数据帧落在接受窗口之外,则一律将其丢弃。

在连续ARQ协议中,接受窗口的大小 W R = 1 W_R = 1 WR=1

只有当收到的帧的序号与就收窗口一致时才能接受该帧。否则,就丢弃它。

每当收到一个序号正确的帧,接受窗口就向前滑动一个帧的位置。同时发送该帧的确认信号。

计算机网络:数据链路层_第9张图片

滑动窗口的重要特性:

  • 只有在接受窗口向前滑动时(与此同时发送了确认),发送窗口才有可能向前滑动。
  • 收发两端的窗口按照以上的规律不停的向前滑动,因此这种协议又称为滑动窗口协议。
  • 当发送窗口和接受窗口的大小都为1时,就是停止等待协议。
  • **过程:**接受窗口前后沿向前滑动➡️接收方发送确认➡️发送方收到确认➡️发送窗口后沿向前移动➡️发送窗口前沿依据 W T W_T WT限制向前滑动
  • 结论:接受方的接受速度控制发送方的发送速度。

4.1.3、可靠传输机制

数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。

  • 确认是一种无数据的控制帧,使得接收方可以让发送法知道哪些内容被正确接收,有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为稍待确认
  • 超时重传指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到接收方的确认帧,就重新发送该数据帧,直到收到确认帧为止。

自动重传请求(Auto Repeat reQuest,ARQ)通过接收方请求发送方重传出错的数据帧来回复出错的帧。传统自动重传请求分为三种:

  1. 停止等待协议(Stop-and-Wait)ARQ
  2. 后退N帧协议(Go-Back-N)ARQ
  3. 选择重传协议(Selective Repeat)ARQ

所有ARQ协议窗口宽度应满足 W T + W R < = 2 n W_T+W_R<=2^n WT+WR<=2n

4.2、单帧滑动窗口与停止-等待协议

在停止等待协议中,发送站发送单个帧之后必须等待确认帧,在接收方的确认帧到达发送方之前,发送方不能发送其他数据帧。

计算机网络:数据链路层_第10张图片

停止等待协议的四种情况:

  1. 正常情况:继续发送下一帧。
  2. 数据帧出错:接收方通过差错检测技术检查到数据帧在传输过程中出现差错,将其丢弃,发送方在计时器满时仍未收到确认帧,将再次发送相同的帧,直到成功收到确认帧为止。
  3. 数据帧丢失:数据帧在传输过程中丢失,接收方没有收到数据,更不会发送确认帧,发送方在计时器满之后重发该帧,直到收到确认帧。
  4. 确认帧丢失:数据帧正确但接收方的确认帧在传输过程中丢失,发送方未收到确认帧,将重发该帧。接收方在收到相同的数据帧之后,将丢弃该帧,并重新发送确认帧。

计时器的时间一般可选为略大于“从发完数据帧到收到确认帧所需的平均时间”。

解决重复帧问题——序号机制

使每一个帧带上不同的发送序号。每发送一个新的数据帧就把它的发送序号加1。若接收方收到了序号相同的数据帧,这时就丢弃重复帧,并且同时向发送方重新发送确认帧。

帧的编号问题:

对于停止等待协议,由于每发送一个数据帧就停止等待,因此用一个bit来编号就足够了。

数据帧的发送序号以0和1交替的方式出现在数据帧中。

确认帧带有序号,ACKn表示:第n-1号帧已经收到,现在期望收到第n号帧。

计算机网络:数据链路层_第11张图片

停止等待协议的优点是比较简单,缺点是通信信道的利用率不高,信道还远远没有被数据比特填满。为了克服这一缺点,就产生了后退N帧协议和选择重传协议。

4.3、多帧滑动窗口和后退N帧协议(GBN)

发送方无需在收到上一个帧的ACK后才能开始发送下一帧,而是可以连续发送帧。当接收方检测出失序之后,就会要求发送方重发最后一个正确接收的数据帧之后所有未被确认的帧;或者当发送方发送了N个帧之后,发现某一个帧在计时器超时之后仍未返回确认帧,则判定该帧丢失或出错,发送方将重发该帧及之后的帧。

接受方只按序接收数据帧。如出现差错,虽然丢弃了这些不按序的无差错帧,但应重复发送已发送过的最后一个 确认帧(防止确认帧丢失)。

计算机网络:数据链路层_第12张图片

注意:

  • 发送方在发送完一个数据帧之后都要设置该帧的计时器,再收到确认帧之后将该计时器清零;若超时需要重发,仍需重新设置计时器。
  • 后退N帧协议的接受窗口的大小为1;当用n个比特进行编号时,那么发送窗口的大小应满足 1 < W T < 2 n − 1 1 < W_T < 2^n - 1 1<WT<2n1

信道利用率:

由于每个数据帧都必须包括一定的控制信息(如帧的序号、地址、同步信息以及其他的一 些控制信息),所以即使连续不停地发送数据帧,信道利用率(即扣除全部的控制信息后 的数据率与信道容量之比)也不可能达到 100 %。

当出现差错时(这是不可避免的),数据帧的不断重传将进一步使信道利用率降低。 若数据帧的帧长取得很短,那么控制信息在每一帧中所占的比例就增大,因而额外开销 增大,这就导致信道利用率的下降。

最佳帧长

若帧长取得太长,则数据帧在传输过程中出错的概率就增大,于是重传次数将增大,这 也会使信道利用率下降。

由此可见,存在一个最佳帧长,在此帧长下信道的利用率最高。

4.4、多帧滑动窗口和选择重传协议(SR)

接收方可加大接受窗口,先收下发送序号不连续但仍处于接受窗口内的那些数据,等到所缺序号的数据帧收到后再一并交个主机。

选择重传ARQ协议可避免重复传送那些本来已经正确到达接收端的数据帧。但我们付出的代价是在接收端要设置具有相当容量的缓存空间。

对于选择重传ARQ协议,若用 n 比特进行编号,则接收窗口的最大值应满足: W R < = 2 n / 2 W_R <= 2^n/2 WR<=2n/2

五、介质访问控制

介质访问控制的主要任务是:为使用介质的每个结点隔离来自同一信道上的其他结点所传送的信号,以协调活动节点的传输。用来决定广播信道中信道分配的协议属于数据链路层的一个子层:介质访问控制MAC(Medium Access Control)子层

常见的介质访问控制方法有信道划分介质访问控制、随机访问介质访问控制和轮询访问介质访问控制。前者属于静态划分信道的方法,后两者属于动态划分信道的方法。

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

点我跳转,文章的最后一节

5.2、随机访问介质控制

随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户能够根据自己的意愿随机的发送信息,占用信道全部速率。在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧冲突(碰撞),导致所有冲突用户的发送均以失败告终。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞的通过。这些规则就是随机访问介质访问控制协议,常见的协议有:ALOHA协议、CSMA协议、CSMA/CD协议和CSMA/CA协议,它们的核心思想都是:胜利者通过争用获得信道,从而获得信息的发送权。因此,随机访问介质访问控制协议又称为争用型协议

随机访问介质访问控制实质上时一种将广播信道转化为点到点信道的行为。

5.2.1、ALOHA协议

ALHOA协议是Additive Link On-Line HAwaii system的缩写,它是夏威夷大学早期研制的随机接入系统。分为纯ALOHA协议时隙ALOHA协议两种。

  1. 纯ALOHA协议

    基本思想是:当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据(想发就发)。如果在一段时间内未收到确认,那么该站点就认为在传输过程中发生了冲突。发送站点需要**等待一段时间(随机)**后再发送数据,直至发送成功。

    假设网络负载( T 0 T_0 T0时间内所有站点发送成功的和未成功而重传的帧平均值)为G,则纯ALOHA网络的吞吐量S( T 0 T_0 T0时间内成功发送的平均帧数)为 S = G e − 2 G S=Ge^{-2G} S=Ge2G。当 G = 0.5 G=0.5 G=0.5时, S = 0.5 G e − 1 ≈ 0.184 S=0.5Ge^{-1}\approx 0.184 S=0.5Ge10.184,为吞吐量S可能达到的最大值。由此可见,纯ALOHA网络的吞吐量很低。

  2. 时隙ALOHA协议

    时隙ALOHA协议把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙(Slot),规定只能在每个时隙开始时才能发送一个帧。从而避免了用户发送数据的随意性,减少了数据产生冲突的可能性(冲突只发生在时隙的起点,冲突发生时只浪费一个时隙,一旦某个站占用时隙并发送成功,则在该时隙内不会出现冲突),提高了信道的利用率。

    计算机网络:数据链路层_第13张图片

    时隙ALOHA网络的吞吐量S与网络负载G的关系是 S = G e − G S=Ge^{-G} S=GeG。当 G = 1 G=1 G=1时, S = e − 1 ≈ 0.368 S=e^{-1}\approx0.368 S=e10.368

    由此可见,时隙ALOHA网络比纯ALOHA网络的吞吐量大了1倍。

5.2.2、CSMA协议

载波侦听多路访问CSMA(Carrier Sense Multiple Access)协议的思想是:若每个站点在发送前都先帧听一下公用信道,发现信道空闲之后再发送,则就会大大降低冲突的可能,从而提高信道的利用率。它与ALOHA协议的区别是多了一个载波侦听装置。

CSMA协议分为三种:

  1. 1-坚持CSMA

    1-坚持CSMA(1-persistent CSMA)的思想是:一个结点要发送数据时,首先帧听信道;如果信道空闲,那么立即发送数据;如果信道忙,那么等待,同时继续帧听直至信道空闲;如果发生冲突,那么随机等待一段时间后,再重新开始帧听信道。

    传播延迟对1-坚持CSMA协议的性能影响较大。结点A开始发送数据时,结点B正好也有数据要发,但是结点A发出的数据还未到达结点B,结点B帧听到信道空闲,也开始发送数据,结果就发生了冲突;还有如果结点A正在发送数据,结点B与结点C也准备发送数据,帧听到信道忙,就都开始继续帧听,结果当结点A一发送完毕,结点B和结点C都会立即发送数据,同样也会导致发生冲突。

  2. 非坚持-CSMA

    非坚持CSMA(No-persistent CSMA)的基本思想是:一个结点要发送数据时,首先帧听信道;如果信道空闲,那么立即发送数据;如果信道忙,那么放弃帧听,等待一个随机时间后再重复上述过程。

    非坚持CSMA协议在帧听到信道忙后就放弃帧听,但会增加数据在网络中的平均延迟。

  3. p-坚持CSMA

    p-坚持CSMA(p-persistent CSMA)用于时分信道,基本思想是:一个结点要发送数据时,首先帧听信道,如果信道忙,就持续帧听,直至信道空闲;如果信道空闲,那么以概率 p p p发送数据,以概率 1 − p 1-p 1p推迟到下一时隙;这个过程一直持续到数据发送成功或因其他结点发送数据而检测到信道忙为止,若是后者,则等待下一个时隙在重新开始帧听。

三种类型的CSMA协议比较:

信道状态 1-坚持 非坚持 p-坚持
空闲 立即发送数据 立即发送数据 以概率 p p p发送数据,以概率 1 − p 1-p 1p推迟到下一个时隙
继续坚持帧听 放弃帧听,等待一个随机的时间后帧再帧听 持续帧听,直至信道空闲

5.2.3、CSMA/CD协议

载波侦听多路访问/碰撞检测CSMA/CD(Carrier Sense Multiple Access With Collision Detection)协议是CSMA协议的改进方案,适用于总线型网络或半双工网络环境。“碰撞检测”:边发送边帧听,即适配器边发送数据边检测信道上信号电压的变化情况(当几个站点同时发送数据时,总线上的信号电压摆动值会因为互相叠加而增大),以判断是否自己在发送数据的同时其他站点也在发送数据。工作流程可简单概括为:“先听后发,边听边发,冲突停发,随机重发”。

计算机网络:数据链路层_第14张图片

CSMA/CD协议中总线的传播延迟影响很大。如下图所示,在 t = 0 t=0 t=0时A检测到线路空闲,开始发送数据,B同时也检测到线路空闲,在 t = τ − ξ t=\tau-\xi t=τξ 时,由于A发送的数据还未到达B,因此B检测线路为空,开始发送数据,再经过 ξ / 2 \xi/2 ξ/2 之后,即 t = τ − ξ / 2 t=\tau-\xi/2 t=τξ/2 时,A的数据和B的数据发生碰撞;在 t = τ t=\tau t=τ 时B检测到碰撞,停止发送;在 t = 2 τ − ξ t=2\tau-\xi t=2τξ 时A也检测到碰撞,停止发送数据。

计算机网络:数据链路层_第15张图片

由此可知,A在 2 τ 2\tau 2τ 之后必定会知道自己所发送的帧是否发生碰撞,因此我们把以太网端到端的往返时间 2 τ 2\tau 2τ 称为争用期只有在争用期这段时间内没有检测到碰撞,才能确定这次发送不会发生冲突。

为了确保发送站在发送数据的同时能够检测到发出去的帧是否发生碰撞,那么就有必要设置一个帧的最小长度,任何站点再收到比最小帧长还小的帧时,应将其当作无效帧丢弃。最小帧的计算公式为:
最 小 帧 长 = 总 线 传 播 时 长 ∗ 数 据 传 输 率 ∗ 2 最小帧长=总线传播时长*数据传输率*2 =线2

以太网规定取51.2 μ s \mu s μs为争用期的长度,最短帧长为64B。

CSMA/CD协议采用二进制指数退避算法来解决碰撞问题。算法如下:

  1. 确定基本退避时间,一般取争用期长度;
  2. 定义参数 k k k,等于重传次数,但不超多10,即 k = m i n ( 重 传 次 数 , 10 ) k=min(重传次数,10) k=min(,10) 。当重传次数超过10次之后, k k k 就一直等与10不再增大;
  3. 从离散的整数集合中 [ 0 , 1 , ⋯   , 2 k − 1 ] [0,1,\cdots,2^k-1] [0,1,,2k1] 中随机取出一个数 r r r ,重传等待时间就为 2 r τ 2r\tau 2rτ
  4. 当重传次数超过16次之后,说明网络太拥挤,认为此帧永远无法正确发送,抛弃次帧并向高层报告出错。

5.2.4、CSMA/CA协议

在有线网络中,CSMA/CD很有效,但在无线网络中,不能照搬CSMA/CD,特别是碰撞检测部分。因此,802.11定义了广泛应用于无线局域网中的CSMA/CA协议,将碰撞检测改为碰撞避免(Collision Avoidance,CA)(并不是真正的避免,而是尽量降低碰撞发生的概率)。

5.3、轮询访问介质访问控制:令牌传递协议

在轮询访问中,用户不能随便地发送信息,而要通过一个集中控制的监控器,以循环的方式轮询每个结点,再决定信道的分配。当某结点使用信道时,其他结点不能使用信道。典型的轮询介质访问控制协议时令牌传递协议,主要用在令牌环网中。

轮询介质访问控制既不共享时间,也不共享空间,实际上是在随机介质访问控制的基础上,限定了有权力发送数据的结点只有一个。

六、局域网

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

**局域网(Local Area Network,LAN)**是指在一个较小的地理范围内,将各种设备通过各种连接介质互相连接起来,组成资源和信息共享的计算机互连网络。

主要特点有:

  1. 网络为一个单位所有,且地理范围和站点数目有限;
  2. 所有站点共享较高的总带宽;
  3. 较低的时延和较低的误码率;
  4. 各站关系平等;
  5. 能进行广播和组播。

局域网的特性主要由三个要素决定:拓扑结构、传输介质、介质访问控制方式

常见的局域网拓扑结构主要由四类:星形结构、环形结构、总线型结构、星形和总线型结合的复合形结构。

主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。

数据链路层的两个子层:逻辑链路控制 LLC (Logical Link Control)子层、媒体接入控制 MAC (Medium Access Control)子层。与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的。所以以后一般不考虑 LLC 子层。

计算机网络:数据链路层_第16张图片

6.2、以太网和IEEE 802.3

以太网的两个标准:

  1. DIX Ethernet V2是世界上第一个局域网产品(以太网)的规约。
  2. IEEE 802.3是第一个IEEE的以太网标准。

DIX Ethernet V2标准与IEEE的802.3标准只有很小的差别,因此可以将802.3局域网简称为“以太网”。

严格说来,“以太网”应当是指符合DIX Ethernet V2标准的局域网。

6.2.1、以太网适配器和网卡

以太网常用的传输介质有:粗缆、细缆、双绞线、光纤。

计算机与外界局域网的连接是通过网络接口板实现。

网络接口板又称为通信适配器(adapter)或网络接口卡NIC (Network Interface Card),或“网卡”。每块网卡都有一个唯一编码,称为介质访问控制地址MAC

适配器的重要功能:1.进行串行/并行转换。2.对数据进行缓存。3.在计算机的操作系统安装设备驱动程序。4.实现以太网协议。

计算机通过适配器和局域网进行通信:

计算机网络:数据链路层_第17张图片

6.2.2、以太网的MAC帧

每块网络适配器都有一个地址,称为MAC地址,也称为物理地址;MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡),其中高24位为厂商代码,低24位为厂商自行分配的网卡序列号。。

一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。

在这里插入图片描述

6.2.3、高速以太网

速率达到或超过100Mb/s的以太网称为高速以太网

  1. 100BASE-T以太网

    在双绞线上传送100Mb/s基带信号的星形拓扑结构以太网,既支持全双工方式,有支持半双工方式,在全双工模式下不使用CSMA/CD协议。

  2. 吉比特以太网

    又称千兆以太网,允许在 1 Gb/s 下全双工和半双工两种方式工作。在半双工方式下使用 CSMA/CD 协议(全双工方式不需要使用 CSMA/CD 协议)。

  3. 10吉比特以太网

    10 吉比特以太网只工作在全双工方式。也不使用 CSMA/CD 协议。

  4. 使用高速以太网进行宽带接入

    以太网接入的重要特点是它可提供双向的宽带通信,并且可根据用户对带宽的需求灵活地进行带宽升级。

    采用以太网接入可实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率和降低了传输的成本。

6.3、拓展的以太网

6.3.1、在物理层拓展以太网

用多个集线器可连成更大的局域网。

用集线器组成更大的局域网都在一个碰撞域中。

优点:

  • 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
  • 扩大了局域网覆盖的地理范围。

缺点:

  • 碰撞域增大了,但总的吞吐量并未提高。
  • 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。

集线器在转发帧时,不对传输媒体进行检测。

网桥在转发帧之前必须执行CSMA/CD算法。

6.3.2、在数据链路层拓展以太网

数据链路层拓展以太网使用的是网桥。

网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。
网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口 。

优点:

  • 过滤通信量。
  • 扩大了物理范围。
  • 提高了可靠性。
  • 可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网。

缺点:

  • 存储转发增加了时延。
  • 在MAC 子层并没有流量控制功能。
  • 具有不同 MAC 子层的网段桥接在一起时时延更大。
  • 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴

交换机:

交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。
正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。

下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧,主机 B 回应该帧向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 2 的映射。

计算机网络:数据链路层_第18张图片

6.3.3、虚拟局域网

虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。

例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。

计算机网络:数据链路层_第19张图片

使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网。

6.4、IEEE 802.11

IEEE 802.11 是无线局域网的一系列协议标准,包括802.11a和802.11b等。

802.11的MAC层采用CSMA/CA协议进行介质访问控制。冲突避免要求每个发送站在发送之前先帧听信道。如果信道空闲,那么结点就可以发送帧;发送站在发送完一帧之后,必须在等待一个短的时间间隔,检查接收站是否发回帧的确认ACK。如果没收到ACK,则说明自此发送没有碰撞,发送成功;如果在规定时间内没有收到确认,那么表示发生冲突,发送失败,进行重发。

无线局域网可分为两大类:固定基础设施无线局域网和无固定设施无线局域自组织网络。

七、广域网

7.1、广域网的基本概念

广域网通常是指覆盖范围很广(远超一个城市范围)的长距离网络。广域网是因特网的核心部分,其任务是长距离运送主机所发送的数据。连接广域网各结点交换机的链路都是高速链路,它可以是几千千米的光缆线路,也可以是长达几万千米的点对点卫星链路。

广域网不等于互联网,互联网可以连接不同类型的网络(既可以是局域网,也可以连接广域网)。

计算机网络:数据链路层_第20张图片

广域网中的一个重要问题时路由选择和分组转发。路由选择协议负责搜索分组从某个结点到目的结点的最佳传输路由。分组是通过转发表进行转发的。

PPP协议和HDLC协议是目前最常用的两种广域网数据链路层控制协议。

7.2、PPP协议

PPP(Point-to-Point Protocol)是使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上。采用字节填充方法。只支持全双工链路。

PPP协议的特点:

互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。

PPP协议不需要的功能:

纠错、流量控制、序号、多点线路、半双工和单工链路

PPP协议的组成:

  1. 一个将IP数据报封装到串行链路的方法;
  2. 链路控制协议LCP(Link Control Protocol);
  3. 网络控制协议NCP(Network Control Protocol)。

PPP协议的帧格式:

  • PPP帧的首部和尾部分别为4个字段和2个字段。
  • 标志字段F = 0x7E(符号“0x”表示后面的字符是用十六进制表示。十六进制的7E的二进制表示是01111110)。
  • 地址字段A只置为0xFF。地址字段实际上并不起作用。
  • 控制字段C通常置为0x03。
  • PPP是面向字节的,所有的PPP帧的长度都是整数字节。

计算机网络:数据链路层_第21张图片

PPP协议的工作状态:

  • 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
  • PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
  • 这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
  • 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

可见,PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络 层的内容。

计算机网络:数据链路层_第22张图片

7.3、HDLC协议

高级数据链路控制协议HDLC(High-Level Data Link Control)是ISO制定的面向比特的数据链路层协议。采用0比特插入法。

HDLC适用于链路的两种基本配置:非平衡配置和平衡配置

  1. 非平衡配置的特点是由一个主站控制整个链路的工作。
  2. 平衡配置的特点是链路两端的两个站都是复合站,每个复合站都可以平等地发起数据传输,而不需要得到对方复合站的允许。

站:

HDLC有3中站类型:主站、从站和复合站。主站负责控制链路的操作,主站发出的帧为命令帧;从站受控于主站,按主站的命令进行操作,发出的帧为响应帧。有些站即有主站的功能,又有从站的功能,称为复合站。

数据操作方式:

  1. **正常响应方式。**这是一种非平衡结构操作方式,即主站向从站传输数据,从而响应传输,但从站只有在收到主站的许可后,才进行响应。
  2. **异步平衡方式。**平衡结构操作方式,每个复合站都可以进行对另一个站的数据传输。
  3. **异步响应方式。**非平衡结构操作方式,从站即使未收到主站的允许,也可进行传输。

HDLC帧:

计算机网络:数据链路层_第23张图片

标志字段F(Flag)为6个连续1加上两边各一个0共8 bit。 “01111110”。在接收端只要找到标志字段就可确定一个帧的位置。

八、数据链路层设备

8.1、网桥

网桥分为:

  1. 透明网桥(选择的不是最佳路由):按照自学习算法填写转发表,按转发表转发。
  2. 源路由网桥(选择的是最佳路由):先发送发现帧,按返回结果转发。

**特点:**把两个或多个以太网通过网桥连接在一起变成一个网段。

8.2、交换机

**特点:**实质上就是一个多端口网桥。

交换方式:

  1. 直通式:帧在接收后只检查目的地址,几乎能马上就被传出去。
  2. 存储转发:先将接收到的帧缓存到高速缓存器,检查数据正确性。

你可能感兴趣的:(计算机网络)