第三章:数据链路层

3.1 数据链路层概述

  • 链路(Link)

    是指从一个节点到相邻节点的一段物理线路(有线或无线),而中间无任何其他的交换节点。

  • 数据链路(Data Link)

    当在一条链路上传送数据时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

    这些协议通过计算机中的网络适配器 (俗称网卡)和其相应的软件驱动程序实现。

    一般的网络适配器都包含了物理层和数据链路层这两层的功能。

  • 帧(Frame)

    是数据链路层对等实体之间在水平方向进行逻辑通信的协议数据单元PDU。

  • 封装成帧

    发送方应用层将待传输的应用层协议数据单元交付给运输层,运输层为其添加一个运输层首部,使之封装为运输层协议数据单元,将其交付给网络层。

    网络层为其添加一个网络层首部,使之封装为网络层协议数据单元,将其交付给数据链路层。

    数据链路层给上层交付下来的协议数据单元PDU添加帧首部和帧尾部,这称为封装成帧。

  • 最大传送单元MTU

    为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。

    考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU。

  • 帧定界

    接收方根据帧首部和尾部的标志字段可以识别出帧的开始与结束。

    标志字段称为帧定界符。

  • 透明传输

    如果在帧的数据载荷部分恰好出现了与帧首部和尾部中的标志字段取值相同的数据,接收方的数据链路层会出现帧定界的错误。如果不解决上述问题,则数据链路层就会对上层交付的PDU的内容有所限制,即PDU中不能包含帧定界符。

    如果能够采取措施,不管所传输的数据是什么样的比特组合,都能够在链路上传送,就好像数据链路层不存在一样,就称其为透明传输。

  • 差错检测

    实际通信链路并非理想情况,因此会出现误码。

    接收方根据发送方添加在帧尾部中的检错码,可以检测出帧是否出现误码。

  • 可靠传输与不可靠传输

    • 不可靠传输服务

      收到有误码的帧,直接丢弃,其他什么也不做;未收到发送方发送的帧,也不进行任何处理。

    • 可靠传输服务

      实现发送方发送什么,接收方最终都能正确收到。

3.2 透明传输

  • 实现透明传输的两种方法

    面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。

    面向比特的物理链路使用比特填充的方法实现透明传输。

    • 字节填充

      在发送帧之前,对帧的数据部分进行扫描,每出现一个帧定界符或转义字符,就在其前面插入一个转义字符。

      转义字符是一种特殊的控制字符,其长度为1个字节,十进制值为27。

    • 比特填充

      由于比特序列01111110作为PPP的定界符,因此做出如下处理:

      发送方:

      对帧的数据部分进行扫描 (一般由硬件实现),只要发现5个连续的比特1,则立即填充1个比特0。

      接收方:

      对顿的数据部分进行扫描(一般由硬件实现),只要发现5个连续的比特1,则立即删除1个比特0。

3.3 差错检测

  • 比特差错

    实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。

  • 误码率BER

    在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。

  • 检错方法:

    • 奇偶校验:

      在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数 (偶校验)。

      如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;

      如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码 (漏检)。

      在这里插入图片描述

    • 循环冗余校验CRC:

      收发双方约定好一个生成多项式G(x);

      发送方基于待发送的数据和生成多项式计算出差错检测码(将其添加到待传输数据的后面一起传输;

      接收方通过生成多项式来计算收到的数据是否产生了误码。

      在这里插入图片描述

        • 计算过程:

          做“除法”即进行异或运算。

          注意不要忽略多项式中系数为0的项。

          在这里插入图片描述

      • 特点:

        检错码只能检测出顿在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。

        想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。纠错码的开销比较大,在计算机网络中较少使用。

        循环冗余校验CRC有很好的检错能力 (漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。

        检错重传方式纠正传输中的差错或者丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。

3.4 可靠传输

  • 可靠传输的阻碍:

    比特差错只是传输差错中的一种,传输差错还包括分组丢失、分组失序以及分组重复。

    • 举例: 在这里插入图片描述
      • 分组丢失:

        主机H6给主机H2发送的分组到达了路由器R5,由于此时R5的输入队列快满了,R5根据自己的分组丢弃策略将该分组丢弃,这是一种分组丢失的情况。

      • 分组失序:

        主机H6依次给主机H2发送了三个分组,但并未按照发送顺序依次到达H2。

      • 分组重复:

        主机H6给主机H2发送的分组由于某些原因在网络中滞留了,没有及时到达H2。这可能造成H6对该分组的超时重发。

        重发的分组到达H2,一段时间后,滞留在网络中的那个分组又到达了H2,造成分组重复的传输差错。

  • 可靠传输的情况:

    一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。

    无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。

  • 可靠传输的选择性实现:

    如果网络接口层是802.11无线局域网,则要求数据链路层实现可靠传输。

    如果网络接口层是以太网,则不要求数据链路层实现可靠传输。

    运输层TCP协议向其上层提供面向连接的可靠传输服务,运输层UDP协议向其上层提供无连接、不可靠传输服务。

    网际层IP协议向其上层提供无连接、不可靠的传输服务。

    在这里插入图片描述

  • 三种可靠传输实现机制:

    • 概述:

      这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中。

    • 停止-等待协议SW:
      • 情况讨论:

        收发双方基于互联网进行通信,纵坐标为时间。

        • 情况A:收到误码 发送否认分组
          • 收发过程:

            1.发送方给接收方发送数据分组。

            2.接收方收到后对其进行差错检测,发现没有误码,则接受该数据分组,并给发送方发送确认分组 (ACK)。

            3.发送方收到对所发送数据分组的确认分组后再次发送数据分组。

            4.这个数据分组在传输过程中出现了误码,接收方检测到误码后丢弃该数据分组,并给发送方发送否认分组(NAK)。

            5.发送方收到对所发送数据分组的否认分组后就明白了之前所发送的数据分组出现了差错而被对方拒绝,于是立刻重传该数据分组。

            6.这个数据分组没有出现误码,接收方返回确认分组 (ACK)。

            在这里插入图片描述

        • 情况B:针对数据分组丢失,采用超时重传
          • 概述:

            如果发送方给接收方发送的数据分组在传输过程中丢失,不采取任何措施,那么发送方就会一直处于等待状态。

            为了解决这个问题,可以在发送方发送完一个数据分组时,启动超时计时器。

            如果到了超时计时器所设置的重传时间,仍收不到对方任何ACK或NAK,那么就重传原来的数据分组。

            一般可以将重传时间设置为略大于从发送方到接收方的平均往返时间 (RTT)。

          • 收发过程:

            1.发送方给接收方发送数据分组,但该数据分组在传输过程中丢失。

            2.超过重传时间后,发送方仍然没有收到任何ACK或NAK,于是超时重传之前的数据分组。

            3.接收方正确接收重传数据分组后给发送方发送ACK。

            4.发送方收到ACK后发送下一个数据分组。

            5.接收方正确接收数据分组后发送方发送ACK。

            在这里插入图片描述

        • 情况C: 避免分组重复 进行分组编号
          • 概述:

            如果接收方发送的ACK在传输过程中丢失,会造成发送方的超时重传。这样接收方就会收到两个重复的分组。为了避免分组重复这种传输错误,必须给每个分组带上序号。

            对于停止-等待协议,由于每发送一个数据分组就停止等待,因此只要保证每发送一个新的数据分组的发送序号与上次发送的数据分组序号不同。所以只需一个比特进行编号。

          • 收发过程:

            1.发送方给接收方发送数据分组0

            2.接收方正确接收数据分组0后给发送方发送ACK,但该ACK在传输过程中丢失

            3.发送方未收到数据分组0的ACK或NAK,触发超时重传,于是重传数据分组0

            4.接收方正确接收数据分组0发现该数据分组重复,于是丢弃重复分组,并给发送方发送ACK发送方正确接收数据分组0的ACK后,发送下一个数据分组1

            5.接收方正确接收数据分组1后,给发送方发送ACK.

            在这里插入图片描述

        • 情况D: 针对ACK迟到 进行ACK编号
          • 概述:

            如果接收方针对数据分组0所发送的ACK在传输过程中未能及时到达,这会导致发送方对数据分组0进行超时重传。

            在重传过程中发送方收到那个迟到的数据分组0的ACK,于是就会发送数据分组1,接收方在收到重传的数据分组0后发现这是一个重复的数据分组,将其丢弃,并针对数据分组0发送ACK。

            但现在问题出现了:发送方如何能确认这个ACK到底针对的是哪数据分组?发送方有可能会误认为这是针对数据分组1的ACK。

            为了解决这个问题,对ACK分组进行编号。

          • 收发过程:

            1.发送方发送数据分组0

            2.接收方正确接收数据分组0后,发送ACK0

            3.ACK0未能在重传时间内到达,发送方重传数据分组0

            4.迟到的ACK0现在到达,发送方发送数据分组1

            5.接收方收到重传的数据分组0,发现分组重复,于是丢弃分组,并发送ACK0

            6.接收方收到数据分组1后,发送ACK1

            7.发送方收到ACK0,发现ACK分组重复,于是忽略ACK0

            8.发送方收到ACK1后,发送下一个数据分组0 (注意该数据分组0和上一个数据分组0不是同一个)

            9.接收方正确接收后,给发送方发送相应的确认分组。

            在这里插入图片描述

      • 注意事项:

      在这里插入图片描述

      • 停止等待协议的信道利用率:

        在这里插入图片描述
        在这里插入图片描述

    • 回退N帧协议GBN:
      • 概述:
        在这里插入图片描述
      • 情况讨论:
        • 概述:

          采用n个比特给分组编序号,序号范围是0到( 23-1)。本例假设采用3个比特给分组编序号, 则序号范围是0~7。

          发送方需要维护一个发送窗口WT,在未收到接收方确认分组的情况下,发送方可将序号落入WT内的所有数据分组连续发送出去。

          采用n个比特给分组编序号,则WT的取值范围是1 < W (2n-1)。本例假设采用3个比特给分组编序号,则WT的取值范围是2~7,本例取WT= 5

          接收方需要维护一个接收窗口Wr,只有正确到达接收方 (无误码)且序号落入Wr内的数据分组才被接收方接收。

          Wr的取值只能是1,这一点与停止-等待协议是相同的。

          接收方每正确收到一个序号落入接收窗口的数据分组,就将接收窗口向前滑动一个位置这样就有一个新的序号落入接收窗口。

          与此同时,接收方还要给发送方发送针对该数据分组的确认分组。

          发送方每收到一个按序确认的确认分组,就将发送窗口向前滑动一个位置,这样就有一个新的序号落入发送窗口,序号落入发送窗口内的数据分组可继续被发送。

          在回退N帧协议的工作过程中,发送方的发送窗口和接收方的接收窗口按上述规则不断向前滑动,是一种连续ARQ协议。因此,这类协议又称为滑动窗口协议。

        • 情况A:无传输差错
          • 收发过程:

            1.发送方将序号落在发送窗口内的0-4号数据分组依次连续发送出去 , 经过互联网传输正确无误地到达了接收方。

            2.接收方按序接收,每接收1个接收窗口就向前滑动1个位置,并给发送方发送针对所接收数据分组的确认分组。0-4号确认分组经过互联网传输正确到达发送方。

            3.发送方每接收1个确认分组, 发送窗口就向前滑动1个位置,这样就有新的序号落入了发送窗口。

            4.发送方将收到确认的数据分组从缓存中删除。

            5.接收方从接收缓存中尽快取走已正确接收到的数据分组。

          • 情况A的信道利用率:

            在无传输差错的情况下回退N帧协议的信道利用率比停止-等待协议的信道利用率有显著提高。

            提高的程度取决于发送窗口的大小。

        • 情况B :超时重传、回退N帧的情况
          • 收发过程:

            1.发送方将序号落入发送窗口内的0~4号数据分组依次连续地发送出去,它们经过因特网的传输按序到达接收方。

            2.2号数据分组在传输过程中产生了误码,接收方按序接收0号和1号数据分组。

            接收窗口向前滑动两个位置,并给发送方发送0号确认分组和1号确认分组。

            接收方通过2号数据分组中的检错码检测出2号数据分组中有误码,将其丢弃,接收窗口不能向前滑动。

            由于3号和4号数据分组的序号未落入接收窗口,因此接收方将它们丢弃,接收窗口不能向前滑动。

            另外,接收方每收到一个未按序到达的数据分组,除将其丢弃外,还给发送方发送针对最近已按序接收的数据分组的确认分组。

            在本例中,接收方会发送两个针对1号数据分组的重复确认。

            3.发送方收到0号和1号确认分组,就将发送窗口向前滑动两个位置,这样就有新的序号5和6落入发送窗口。

            发送方现在可将5号和6号数据分组依次发送出去。

            发送方收到针对1号数据分组的两个重复确认,就知道接收方并未按序正确接收2号数据分组以及有两个序号未落入接收窗口的数据分组被丢弃。

            4.接收方收到5号和6号数据分组,由于它们的序号未落入接收窗口,因此被接收方丢弃,接收窗口不能向前滑动,并且会发送两个针对1号数据分组的重复确认。

            5.发送方又收到针对1号数据分组的两个重复确认。

            至此,发送方已经收到了针对1号数据分组的四个重复确认,发送方就知道接收方并未按序接收2号数据分组,到目前为止已有四个序号未落入接收窗口的数据分组被丢弃。

            发送方此时可立即重传2号数据分组,即在2号分组的重传计时器超时前就提早进行重传。(发送方收到几个重复确认就开始重传,可由具体实现决定。)

            假设发送方收到4个重复确认时仍然不会立刻重传,当2号数据分组发生超时,发送方就将序号落入发送窗口内的超时的2号数据分组和其后已发送的3~6号数据分组全部重传。

          • 总结:

            回退N帧即 一旦出错就需要退回去重传已发送过的n个数据分组。

            回退N帧协议的接收方采用累积确认方式。接收方不必对收到的每一个数据分组都发送一个确认分组,而是可以在收到几个序号连续的数据分组后,对按序到达的最后一个数据分组发送确认分组。接收方何时发送累积确认分组,由具体实现决定。

            确认分组ACK n 表明序号为n及之前的所有数据分组都已正确接收。

            • 累积确认的优缺点:

              优点 :

              减少向网络中注入确认分组的数量

              即使确认分组丢失,也可能不必重传数据分组

              缺点 :

              不能向发送方及时准确地反映出接收方已正确接收的所有数据分组的数量

          • 情况B的信道利用率:

            一个数据分组的差错就可能引起大量数据分组的重传。

            在信道质量较差(容易出现误码)的情况下,回退N顿协议的信道利用率并不比停止-等待协议的信道利用率高。

    • 选择重传协议SR:
      • 概述:

        为了进一步提高性能,可设法只重传出现误码的数据分组。

        因此,接收窗口的尺寸大小应该大于1(一般和发送窗口取值相同),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组。等到所缺分组收齐后再一并送交上层,这便是选择重传协议。

        选择重传协议为了使发送方仅重传出现差错的分组,所以接收方不能再采用累积确认,而需要对每个正确收到的数据分组逐一确认。

      • 收发过程:

        假设本例采用3个比特给分组编序号,则序号范围是0~(23-1)。

        接收窗口WR 取最大值23-1,即WR = 4。

        发送窗口WT 能取到的最大值也为23-1,即WT=4。

        1.发送方将序号落入发送窗口内的0~3号数据分组连续发送给接收方。

        2.0号数据分组在传输过程中出现误码,接收方将其丢弃。

        接收方将失序但正确到达接收方且序号落入接收窗口内的1到3号数据分组进行缓存,并给发送方发送相应的1~3号确认分组。

        接收方缓存的1到3号确认分组暂时不能交付给上层。

        由于还未收到序号落入接收窗口内的0号数据分组,因此接收窗口不能向前滑动。

        3.发送方收到失序的1~3号确认分组后 , 并不能向前滑动发送窗口,但要记录1到3号数据分组已被确认。

        4.0号分组被超时重传,正确到达接收方。接收方正确接收序号落入接收窗口内的0号数据分组,并给发送方发送0号确认分组。

        接收方现在可将接收窗口向前滑动4个位置 , 序号4~7落入接收窗口内。

        5.0号分组正确到达发送方,发送方收到后将发送窗口向前滑动4个位置,这样序号4-7就落入发送窗口内。

        现在发送方就可以将4-7号数据分组连续发送出去,并将发送缓存中序号被移出发送窗口的数据分组删除。

        6.接收方尽快将序号被移出接收窗口的数据分组取走。

    • 为什么发送窗口尺寸不能超过上限:
      • 回退N帧协议:

        对于上面的例1,采用3个比特给分组编号,WT最大值为7,这里我们将WT设置为8,会出现如下情况:

        发送方将序号落在发送窗口内的0-7号这8个数据分组依次连续发送出去,经过互联网传输后正确无误地达到了接收方。

        接收方按序接收,给发送方发累积确认ACK7。假设ACK7在传输过程中丢失,这将导致发送方的超时重传,重传的0-7号数据分组到达接收方。

        这就造成:

        接收方重复接收分组,无法分辨新旧分组,进而会产生分组重复这种差错。

      • 选择重传协议SR:

        对于上面的例2,当我们将发送窗口取5时 :

        发送方将序号落入发送窗口内的0~4号数据分组连续发送给接收方。

        这些分组按序到达接收方,接收方接收后给发送方发送相应的确认分组。接收窗口向前滑动4个位置,序号5、6、7、0落入接收窗口内。

        假设0号确认分组在传输过程中丢失,而1到4号确认分组确认到达发送方,发送方收到失序的1到4号确认分组并不能向前滑动发送窗口,但要记录1到4号数据分组已被确认。

        0号数据分组会被超时重传。当0号数据分组正确到达接收方时,由于它落入接收窗口内,接收方再次重复接收了0号数据分组。即:

        造成接收方重复接收分组,它无法分辨新旧分组,进而会产生分组重复这种差错。

      • 从滑动窗口的角度对比停止-等待协议、回退N帧协议和选择重传协议:

        在这里插入图片描述

3.5 点对点协议PPP

  • 概念 :

    点对点协议是目前使用最为广泛的点对点数据链路层协议。

  • 应用 :

    1.一般用户需要通过连接到某个因特网服务提供者ISP才能接入因特网,用户计算机与ISP通信时所使用的数据链路层协议通常就是PPP协议。

    2.广泛应用于广域网路由器之间的专用线路。

  • 从网络体系结构的角度看点对点协议的组成 :

    PPP是数据链路层协议,它将上层交付下来的协议数据单元PDU封装成帧。

    为了支持不同的网络层协议,PPP协议包含一套网络控制协议NCPs、链路控制协议LCP用于建立、配置以及测试数据链路的连接。

    PPP协议能在多种类型的点对点链路上运行,如:面向字节的异步链路、面向比特的同步链路。

在这里插入图片描述

  • PPP协议帧格式:
    在这里插入图片描述

          注:根据协议字段的取值来判断是什么数据报。
    
  • PPP透明传输:

    • 面向字节的异步链路使用字节填充来实现透明传输:
      在这里插入图片描述
    • 面向比特的同步链路使用零比特填充来实现透明传输:
      在这里插入图片描述
  • PPP差错检测:

    [RFC1662]文档的附录部分给出了FCS的计算方法的C语言实现,使用的是查表法。

    接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;否则,就丢弃这个帧。

    使用PPP的数据链路层,向上提供的是不可靠数据传输服务。

  • PPP协议工作状态:

    以用户主机拨号接入因特网服务提供者ISP的拨号服务器的过程为例 :

    PPP链路的开始和结束状态都是静止状态。

    用户PC与ISP的拨号服务器之间并不存在物理层连接。

    当检测到调制解调器的载波信号并建立物理层连接后,PPP就进入链路的建立状态。

    在建立状态下,链路控制协议LCP开始协商一些配置选项。若协商成功,则进入鉴别状态;协商失败,则退回静止状态。所协商的配置选项包括最大帧长、鉴别协议等。

    可以不使用鉴别,也可以使用口令鉴别协议PAP或者挑战握手鉴别协议CHAP。

    若通信双方无需鉴别或鉴别身份成功即进入网络状态;若鉴别失败,即进入终止状态。

    进入网络状态后,PPP链路的两端通过互相交换网络层特定的NCP分组进行NCP配置。如果PPP链路的上层使用的是IP协议,则使用IP控制协议IPCP来对PPP链路的每一端配置IP模块,如分配IP地址。

    NCP配置完成后,就进入打开状态。只要链路处于打开状态,双方就可以进行数据通信。

    当出现故障或链路的一端发出终止请求时,就进入终止状态。当载波停止后就回到静止状态。
    在这里插入图片描述

3.6 以太网

  • 定义:

    局域网的英文全称是“Local Area Network”,缩写为“LAN”,是指在某一个区域内由多台计算机互联成的计算机组。

    两种比较重要的局域网是以太网和无线局域网。

    以太网可以看成是一种实现局域网通信的技术标准,是目前最广泛的局域网技术。

  • 发展历史:

    以太网以曾经被假想的电磁波传播介质以太来命名。

    以太网目前已经从传统的共享式以太网发展到交换式以太网。

在这里插入图片描述

    • 100BASE-T 以太网:
      在这里插入图片描述
    • 吉比特以太网:

      也称为千兆以太网。

      主要特点有:

      速率为1000Mb/s (1Gb/s)

      使用IEEE802.3的格式(与010Mb/s和100Mb/s以太网相同)

      支持半双工方式(使用CSMA/CD协议)和全双工方式(不使用CSMA/CD协议)

      • 半双工方式通信时:

        使用到载波延伸和分组突发两种机制。

        • 载波延伸:
          • 目的:

            将争用期增大为512字节的发送时间而保持最小帧长仍为64字节。

          • 方法:

            当发送的MAC帧的长度不足512字节时,就在MAC帧尾部填充一些特殊字符,使MAC帧的长度增大到512字节。

        • 分组突发:

          当有很多短帧要连续发送时,只将第一个短帧用载波延伸的方法进行填充,而其后面的一系列短帧不用填充就可一个接一个地发送,它们之间只需空开必要的帧间最小间隔即可。

          就形成了一连串分组的突发,当累积发送1500字节或稍多一些为止。

      • 全双工方式通信时:

        不使用CSMA/CD协议,也不会使用载波延伸和分组突发。

    • 10吉比特以太网 (10GE):
      • 定义 :

        万兆以太网并不是将千兆以太网的速率简单地提高了10倍。万兆以太网的目标是将以太网从局域网范围(校园网或企业网)扩展到城域网与广域网,成为城域网和广域网的主干网的主流技术之一。

      • 特点 :

        速率为10Gb/s

        使用IEEE 802.3标准的格式(与10Mb/s100Mb/s和1Gb/s以太网相同)

        保留IEEE 802.3标准对以太网最小帧长和最大帧长的规定。这是为了用户升级以太网时,仍能和较低速率的以太网方便地通信。

        只工作在全双工方式而不存在争用媒体的问题,因此不需要使用CSMA/CD协议,这样传输距离就不再受碰撞检测的限制。

        增加了支持城域网和广域网的物理层标准。

      • 用途 :

        万兆以太网交换机常作为千兆以太网的汇聚层交换机,与干兆以太网交换机相连,还可以连接对传输速率要求极高的视频服务器、文件服务器等设备。

    • 40/100吉比特以太网:

      在这里插入图片描述

    • 共同点:
      在这里插入图片描述
  • 网络适配器(网卡):

    • 定义:

      要将计算机连接到以太网,需要使用相应的网络适配器,网络适配器一般简称为“网卡”。

      无论使用共享总线的共享式以太网,还是使用集线器的共享式以太网,都需要使用网卡。

    • 与其他部件的通信方式:

      在计算机内部,网卡与CPU之间的通信,一般是通过计算机主板上的I/0总线,以并行传输方式进行。

      网卡与外部以太网(局域网)之间的通信,一般是通过传输媒体(同轴电缆、双绞线电缆、光纤)以串行方式进行的。

    • 相关部件:

      网卡除了要实现物理层和数据链路层功能,其另外一个重要功能就是要进行并行传输和串行传输的转换。由于网络的传输速率和计算机内部总线上的传输速率并不相同,因此在网卡的核心芯片中都会包含用于缓存数据的存储器。

      在确保网卡硬件正确的情况下,为了使网卡正常工作,还必须要在计算机的操作系统中为网卡安装相应的设备驱动程序。驱动程序负责驱动网卡发送和接收帧。

    • 工作方式:

      网卡从网络上每收到一个无误码的,就检查帧首部中的目的MAC地址,按以下情况处理:

      (1)如果目的MAC地址是广播地址 (FF-FF-FF-FF-FF-FF),则接受该帧。

      (2)如果目的MAC地址与网卡上固化的全球单播MAC地址相同,则接受该帧。

      (3)如果目的MAC地址是网卡支持的多播地址,则接受该帧。

      (4) 除上述(1) (2) 和(3) 情况外,丢弃该帧。

      网卡还可被设置为一种特殊的工作方式:混杂方式。

      工作在混杂方式的网卡,只要收到共享媒体上传来的帧就会收下,而不管目的MAC地址是什么。

      对于网络维护和管理人员,这种方式可以监视和分析局域网上的流量,以便找出提高网终性能的具体措施。

      嗅探器 (Sniffer)就是一种工作在混杂方式的网卡,再配合相应的工具软件 (WireShark)可以作为一种非常有用的网络工具来学习和分析网络。

      混杂方式就像一把“双刃剑”,黑客常利用这种方式非法获取网络用户的口令。

  • MAC地址:

    点对点信道的数据链路层不需要使用地址。

    当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址。

    在每个主机发送的帧的首部中,都携带有发送主机(源主机)和接收主机(目的主机)的数据链路层地址。由于这类地址是用于媒体接入控制 (Medium Access Control,MAC)的,因此被称为MAC地址。

    MAC地址一般被固化在网卡的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址。

    MAC地址有时也被称为物理地址。不要被物理地址中的“物理二字误导,误认为物理地址属于网各体系结构中物理层的范畴,物理地址属于数据链路层范畴。

    • MAC地址与网卡的关系:

      一般情况下,普通用户计算机中往往会包含两块网卡:一块是用于接入有线局域网的以太网卡,另一块是用于接入无线局域网的Wi-Fi网卡。

      每块网卡都有一个全球唯一的MAC地址,交换机和路由器往往具有更多的网络接口,所以会拥有更多的MAC地址。

      综上所述,MAC地址是对网络上各接口的唯一标识而不是对网络上各设备的唯一标识。

    • IEEE 802局域网的MAC地址格式:

      这种地址标识符称之为扩展的唯一标识符EUI,对于48比特的MAC地址,可称为EUI-48。

      EUI-48由48个比特构成,每8个比特为1个字节。从左至右依次为第一、第二、第三、第四、第五和第六字节。

    前三个字节为组织唯一标识符OUI,也称为公司标识符。生产网络设备的厂商需要IEEE的注册管理机构申请一个或多个OUI。

    后三个字节为网络接口标识符。由获得OUI的厂商随意分配。

      • 地址表示方法:

      在这里插入图片描述

      • 地址分类:

        第一字节的b0位和b1位的不同取值对应了不同类型的MAC地址。

        第一字节b0位,当它为0时,代表单播地址,当它为1时,代表多播。

        第一字节b1位,当它为0时,代表全球管理,当它为1时,代表多播本地管理。

        因此,有四种类型的MAC地址。分别是:

        00开头的全球单播地址:由厂商生产网络设备时固化在设备中。

        01开头的全球多播地址:交换机、路由器等标准网络设备所支持的多播地址。

        10开头的本地单播地址:由网络管理员分配,优先级高于网络接口的全球单播地址。

        11开头的本地多播地址:可由用户对网卡编程实现,以表明其属于哪些多播组。若本地多播地址中的剩余46比特为“全1”(即FF-FF-FF-FF-FF-FF),就是广播地址。

        • 举例说明单播、多播、广播地址的作用:
          • 单播MAC地址:

          在这里插入图片描述

          主机B将该单播帧发送出去,在帧首部中的目的地址字段填入主机C的MAC地址、源地址字段填入自己的MAC地址,主机A和C都会收到该单播帧。

          主机A发现该单播帧的目的MAC地址和自己的MAC地址不匹配,于是丢弃该帧。

          主机C发现该单播帧的目的MAC地址和自己的MAC地址相匹配,于是接受该帧。

          • 广播MAC地址:
            主机B将该广播帧发送出去,在帧首部中的目的地址字段填入广播地址、源地址字段填入自己的MAC地址,主机A和C都会收到该广播帧且接受。
          • 多播MAC地址:

          在这里插入图片描述

          四个交换机连接形成环路,这样做的目的是为了提高网络的可靠性。然而,环路会造成广播帧在其中永久兜圈的严重问题。为解决该问题,交换机之间会交互一种特殊的帧,即BPDU(网桥协议数据单元)。各交换机根据BPDU中的一些参数按照生成树协议所使用的生成树算法,最终某些交换机会阻塞自己的某些接口,从而破除环路。BPDU首部中的目的地址就是生成树协议STP专用的多播MAC地址。

          除了上述专用的全球多播MAC地址外,还有一种用于在以太网上进行IP多播的多播MAC地址,这类地址由IP多播地址映射而来。

      • 地址发送顺序:

        字节发送顺序: 从第1字节到第6字节。

        字节内的比特发送顺序: 从b0到b7。

        在这里插入图片描述

    • 随机MAC地址技术:

      全球单播MAC地址就如同身份证上的身份证号码,具有唯一性,它往往与用户个人信息绑定在一起。因此,用户应尽量确保自己拥有的全球单播MAC地址不被泄露。

      为了避免用户设备连接Wi-Fi热点时MAC地址泄露的安全问题,目前大多数移动设备都已经采用了随机MAC地址技术。

  • 使用共享总线的共享式以太网:

    • 定义:

      在以太网的发展初期,人们普遍认为“无源的电缆线比有源器件可靠”,因此将多个站点连接在一条总线上来构建共享总线以太网。

      共享总线以太网具有天然的广播特性,即使总线上某个站点给另一个站点发送单播帧,表示帧的信号也会沿着总线传播到总线上的其他各站点。

    • 产生的问题:

      当某个站点在总线上发送帧时总线资源会被该站点独占。此时,如果总线上的其他站点也要在总线上发送帧,就会产生信号碰撞。

      当两个或多个站点同时使用总线发送帧时,就会产生信号碰撞。

      因此,共享式以太网产生的问题是如何协调总线上的各站点争用总线。

    • CSMA/CD协议

      使用细同轴电缆的共享总线型以太网、使用集线器和双绞线的星型拓扑的共享式以太网的物理拓扑不相同,但工作逻辑相同。

      网络中的各站点都使用CSMA/CD协议来共享(争用)网络资源。

      • 基本原理:
        在这里插入图片描述
      • 强化碰撞措施:

        发送帧的站点一旦检测到碰撞,除了立即停止发送帧外,还要再继续发送32比特或48比特的人为干扰信号,以便有足够多的碰撞信号使所有站点都能检测出碰撞。

      • 缺点:

        载波监听检测到总线空闲,但总线并不一定空闲。使用CSMA/CD协议的共享总线以太网上的各站点,只是尽量避免碰撞并在出现碰撞时做出退避后重发的处理,但不能完全避免碰撞。

        在使用CSMA/CD协议时,由于正在发送帧的站点必须“边发送帧边检测碰撞”因此站点不可能同时进行发送和接收,也就是不可能进行全双工通信,而只能进行半双工通信 (双向交替通信)。

      • 争用期
        • 定义: 在这里插入图片描述

    在这里插入图片描述

        • 规定数值及其计算: 在这里插入图片描述
      • 最小帧长和最大帧长
        • 最小帧长
          在这里插入图片描述
        • 最大帧长

        在这里插入图片描述

          • 帧变长的优点

            帧的数据载荷的长度应远大于帧首部和尾部的总长度,提高帧的传输效率。

          • 帧变长的缺点

            帧过长会导致总线一直繁忙或者接收方缓冲区满的问题。

      • 退避算法
        • 定义

          在使用CSMA/CD协议的共享总线以太网中,正在发送帧的站点一边发送帧一边检测碰撞,当检测到碰撞时就立即停止发送,退避一段随机时间后再重新发送。

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

          共享总线以太网中的各站点采用截断二进制指数退避算法来选择退避的随机时间。

          如果连续多次发生碰撞,就表明可能有较多的站点参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大 (即动态退避),因而减小产生碰撞的概率。

          当重传达16次仍不能成功时,就表明同时打算发送帧的站点太多,以至于连续产生碰撞,此时应放弃重传并向高层报告。

          • 计算方法:

            退避时间 = 基本退避时间✖️随机数 r
            在这里插入图片描述

      • 理想情况下的信道利用率:

        在这里插入图片描述

      • 如何提高信道利用率:
        在这里插入图片描述
  • 使用集线器的共享式以太网:

    • 发展历史:

      早期的传统以太网是使用粗同轴电缆的共享总线以太网,后来发展到使用价格相对便宜的细同轴电。

      认为这种连接方法既简单又可靠,因为在那个时代普遍认为有源器件不可靠,而无源的电缆线才是最可靠的,实践证明并不像人们想象的那么可靠,若总线上的某个机械连接点接触不良或断开,则整个网络通信就不稳定或彻底断网。

    • 集线器:
      • 定义:

        在使用细同轴电缆的共享总线以太网之后,以太网发展出来了一种使用大规模集成电路来替代总线、并且可靠性非常高的设备,叫作集线器。

        站点连接到集线器的传输媒体也转而使用更便宜、更灵活的双绞线电缆。

      • 特点:

        使用集线器的以太网虽然物理拓扑是星型的,但在逻辑上仍然是一个总线网。总线上的各站点共享总线资源,使用的还是CSMA/CD协议。

        集线器只工作在物理层,它的每个接口仅简单地转发比特,并不进行碰撞检测。

        碰撞检测的任务由各站点中的网卡负责。

        集线器一般都有少量的容错能力和网络管理功能。例如若网络中某个站点的网卡出现了故障而不停地发送帧,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网能正常工作。

    • 举例:10BASE-T

      IEEE于1990年制定了10BASE-T星型以太网的标准802.3i,这种以太网是局域网发展史上重要的里程碑。

      10BASE-T以太网的通信距离较短,每个站点到集线器的距离不能超过100m。

      10BASE-T中的“10”指的是传输速率为10Mb/s,BASE指的是采用基带信号进行传输,T指的是采用双绞线作为传输媒体。

      IEEE 802.3以太网还可使用光纤作为传输媒体,相应的标准为10BASE-F,“F” 表示光纤。光纤主要用作集线器之间的远程连接。

  • 共享式以太网的扩展:

    • 在物理层扩展以太网:
      • 方法一:转发器

        共享总线以太网中两站点之间的距离不能太远,否则它们之间所传输的信号就会衰减到使CSMA/CD协议无法正常工作。

        在早期广泛使用粗同轴电缆或细同轴电缆共享总线以太网时,为了提高网络的地理覆盖范围,常用的是工作在物理层的转发器。

        IEEE 8023标准规定,两个网段可用一个转发器连接起来,任意两个站点之间最多可以经过三个网段。
        在这里插入图片描述

      • 方法二:光纤和光纤调制解调器

        在10BASE-T星型以太网中,可使用光纤和一对光纤调制解调器来扩展站点与集线器之间的距离。

        这种扩展方法比较简单,所需付出的代价是: 为站点和集线器各增加一个用于电信号和光信号转换的光纤调制解调器,以及它们之间的一对通信光纤。

        信号在光纤中的衰减和失真很小,因此使用这种方法可以很简单地将站点与集线器之间的距离扩展到1000m以上。

      在这里插入图片描述

      • 方法三:多级星型以太网

        以太网集线器一般具有8-32个接口,如果要连接的站点数量超过了单个集线器能够提供的接口数量,就需要使用多个集线器,这样就可以连接成覆盖更大范围、连接更多站点的多级星型以太网。

        采用多个集线器连接而成的多级星型以太网,在扩展了网络覆盖范围和站点数量的同时,也带来了一些负面因素。

        在物理层扩展的共享式以太网仍然是一个碰撞域,不能连接太多的站点,否则可能会出现大量的碰撞,导致平均吞吐量太低。

        在这里插入图片描述

    • 在数据链路层扩展以太网:
      • 方法一 :网桥

        网桥工作在数据链路层(包含其下的物理层) ,具备属于数据链路层范畴的相关能力,而线器仅工作在物理层。

        网桥可以识别帧的结构,可以根据帧首部中的目的MAC地址和网桥自身的帧转发表来转发或丢弃所收到的帧。

        • 主要结构

          使用网桥将两个使用集线器的共享式以太网互连起来,这会形成一个覆盖范围更大、站点数量更多的以太网,而原来那两个共享式以太网分别成为这个更大的以太网的一个网段并且各自是一个独立的碰撞域。

          转发表是网桥转发帧的依据,里面记录有网桥知道的各主机的MAC地址与自己各接口的对应关系。

        • 举例说明网桥转发帧的工作流程

          在这里插入图片描述

          假设主机A给D发送单播帧,该单播帧被集线器转发给主机B、C以及网桥。

          主机B和C中的网卡根据该单播帧首部中的目的MAC地址可知不是发送给自己的帧,于是丢弃。

          网桥从自己的接口1收到该单播帧后,在转发表中查找主机D的目的MAC地址D,根据查找结果可知应从接口2转发该帧,于是就把该帧从接口2转发给另一个网段,使主机D收到该帧。

          D中的网卡根据该单播帧首部中的目的MAC地址可知,是发送给自己的帧,故接收。

          E、F中的网卡根据该单播帧首部中的目的MAC地址可知,不是发送给自己的帧,故丢弃。

        • 举例说明网桥丢弃帧的工作流程
          在这里插入图片描述

        主机A给C发送单播帧,该单播帧被集线器转发给主机B、C以及网桥。

        B丢弃该帧,C接收该帧。

        网桥从接口1收到该单播帧后,在转发表中查找后发现应从接口1转发该帧。

        由于网桥也是从接口1收到该帧(即表明主机C和主机A在同一个网段,主机C可以直接接收该帧而不需要网桥的转发),因此网桥丢弃该帧。

        • 举例说明网桥转发广播帧的工作流程
          在这里插入图片描述

          假设主机A发送一个广播帧,目的MAC地址为全F。该广播帧被集线器转发给主机B、C以及网络,主机B、C中的网卡会接受该帧。

          网桥从自己的接口1收到该广播帧,不用查找转发表,而是会通过除接收该帧的接口以外的其他接口转发该广播帧。

        • 基本工作原理

        在这里插入图片描述

        • 举例:透明网桥

          透明网桥通过自学习算法建立转发表。

          透明网桥中的“透明”,是指以太网中的各站点并不知道自己所发送的帧将会经过哪些网桥的转发,最终到达目的站点。也就是说,以太网中的各网桥对于各站点而言是看不见的。

          透明网桥的标准是IEEE 802.1D,它通过一种自学习算法基于以太网中各站点间的相互通信逐步建立起自己的转发表。

          • 自学习和转发帧的流程

            网桥收到帧后进行登记 (即自学习),登记的内容为帧的源MAC地址和进入网桥的接口号。

            网桥根据帧的目的MAC地址和网桥的转发表对帧进行转发,包含以下三种情况:

            1.明确转发:网桥知道应当从哪个接口转发帧。

            2.盲目转发:网桥不知道应当从哪个接口转发帧,只能将其通过除进入网桥的接口外的其他所有接口转发。

            3.弃:网桥知道不应该转发该帧,将其丢弃。

            • 注意:

              (1)如果网桥收到有误码的帧则直接丢弃。

              (2)如果网桥收到一个无误码的广播帧,则不用进行查表,而是直接从除接收该广播帧的接口外转发该广播帧。

              (3)转发表中的每条记录都有其有效时间,到期自动删除。 这是因为各站点的MAC地址与网桥接口的对应关系并不是永久性的,例如某个站点更换了网卡,其MAC地址就会改变。

        • 生成树协议STP
          • 产生背景

            为了提高以太网的可靠性,有时需要在两个以太网之间使用多个透明网桥来提供冗余链路。

            在增加冗余链路提高以太网可靠性的同时,却给网络引入了环路。网络中的广播帧将在环路中永久兜圈,造成广播帧充斥整个网络,网络资源被白白浪费,而网络中的主机之间无法正常通信。

            为了避免广播帧在环路中永久兜圈,透明网桥使用生成树协议(STP) 。

          • 具体内容

            不管网桥之间连接成了怎样复杂的带环拓扑,网桥之间通过交互网桥协议单元 (BPDU),找出原网络拓扑的一个连通子集 (即生成树),在这个子集里整个连通的网络中不存在环路。

            当首次连接网桥或网络拓扑发生变化时(人为改变或出现故障)网桥都会重新构造生成树,以确保网络的连通。

  • 交换式以太网:

    • 以太网交换机
      • 定义 :

        网桥的接口数量很少,通常只有2~4个,一般只用来连接不同的网段。

        1990年面世的交换式集线器 (Switching Hub),实质上是具有多个接口的网桥,常称为以太网交换机或二层交换机。“二层”是指以太网交换机工作在数据链路层(包括物理层)。

      • 与网桥的相同点 :

        交换机自学习和转发帧的流程与网桥相同。

        交换机也使用生成树协议STP,来产生能够连通全网但不产生环路的通信路径。

      • 接口的连接情况:

        交换机的每个接口可以连接计算机,也可以连接集线器或另一个交换机。

        当交换机的接口与计算机或交换机连接时,可以工作在全双工方式,并能在自身内部同时连通多对接口,使每一对相互通信的计算机都能像独占传输媒体那样,无碰撞地传输数据,这样就不需要使用CSMA/CD协议了。

        当交换机的接口连接的是集线器时,该接口就只能使用CSMA/CD协议并只能工作在半双工方式。

        现在的交换机和计算机中的网卡都能自动识别上述两种情况,并自动切换到相应的工作方式。

        交换机一般都具有多种速率的接口,例如10Mb/s、100Mb/s、1Gb/s甚至10Gb/s的接口,大部分接口支持多速率自适应。

      • 交换方式:

        一般的交换机都采用“存储转发”方式,为了减小交换机的转发时延,某些交换机采用了直通交换方式。

        • 优点:

          采用直通交换方式的交换机,在接收帧的同时就立即按帧的目的MAC地址决定该帧的转发接口,然后通过其内部基于硬件的交叉矩阵进行转发,而不必把整个帧先缓存后再进行处理。

          直通交换的时延非常小。

        • 缺点:

          直通交换不检查差错就直接将帧转发出去,有可能会将一些无效帧转发给其他主机。

    • 交换式以太网定义:

      仅使用交换机 (而不使用集线器)的以太网就是交换式以太网。

    • 交换式以太网与其他以太网的区分:

      在这里插入图片描述
      在这里插入图片描述

  • 共享式以太网与交换式以太网的对比:

    • 对帧的转发情况

      集线器只工作在物理层,它并不能识别帧首部中的目的MAC地址,因为这属于数据链路层的范畴。不管集线器收到的是单播帧,还是广播帧,集线器仅仅是将表示帧的信号从其他所有接口转发出去。

      交换机工作在数据链路层,它可以识别帧的结构,从帧首部中提取出目的MAC地址,然后查找自己的转发表。根据查表结果,对帧进行明确转发或盲目转发或丢弃。

    • 多对主机间同时通信的情况

      假设主机A给B发送单播帧的同时,主机C给D也发送单播帧,对于使用集线器的共享式以太网,必然会产生碰撞,遭遇碰撞的帧传播到网络中的各主机后被丢弃。

      对于使用交换机的交换式以太网,由于交换机对收到的帧进行存储转发,并且能实现多对接口的高速并行交换,因此不会产生碰撞。

  • 使用集线器和交换机扩展共享式以太网的区别

    两个独立的共享式以太网,它们各自既是一个独立的广播域,也是一个独立的碰撞域。若使用集线器将这两个独立的共享式以太网连接起来,则会形成一个具有更大广播域和碰撞域的共享式以太网。
    在这里插入图片描述

    若用交换机将这两个独立的共享式以太网连接起来则形成一个具有更大广播域但原本独立的两个碰撞域仍被交换机隔离的以太网。
    在这里插入图片描述

3.7 以太网的MAC帧格式

  • 以太网帧的分类:

    以太网的MAC帧格式分为DIX Ethernet V2的格式和IEEE 802.3的帧格式。这两种标准的MAC帧格式的差别很小,仅“类型”字段有差别,因此很多人并没有严格区分这两种标准。

  • 以太网MAC帧各字段的作用:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 以太网MAC帧的长度:

    为满足以太网最小帧长为64字节的规定,除去帧首部和尾部共18字节,数据载荷字段的最小长度应为46字节。当数据字段的长度小于46字节时,数据链路层就会在数据载荷字段的后面插入相应数量的填充字节以确保MAC帧的长度不小于64字节。

    数据载荷的最大长度被限制为1500B,以太网V2的MAC帧最大长度为1518B。

  • 前导码:

    物理层在发送MAC帧之前还要在其前面添加8字节的前导码,前导码中前7个字节为前同步码,作用是使接收方时钟同步。之后的1字节为帧开始符,表明其后面跟着的就是以太网帧。

  • 无效MAC帧的类型及其处理方式:

    接收方可能收到的无效MAC帧包括以下几种:

    1.MAC帧的长度不是整数个字节。

    2.通过MAC帧的FCS字段的值检测出帧有误码。

    3.MAC帧的长度不在64~1518字节之间。

    接收方收到无效的MAC帧时,就简单将其丢弃,以太网的数据链路层没有重传机制。

3.8 虚拟局域网VLAN

  • 虚拟局域网VLAN的诞生背景:

    将多个站点通过一个或多个以太网交换机连接起来就构建出了交换式以太网,交换式以太网中的所有站点都属于同一个广播域。随着交换式以太网规模的扩大,广播域也相应扩大。

    巨大的广播域会带来一系列问题:

    • 广播风暴:

      一个由多个以太网交换机互连而成的交换式以太网,每个以太网交换机上都连接了多个主机,形成了一个巨大的广播域。假设网络中的某个主机要给另一个主机发送一个数据帧,但它在自己的ARP高速缓存表中查不到目的主机的MAC地,它首先要发送ARP广播请求来获取目的主机的MAC地址。该ARP广播请求会被封装到广播帧中传遍整个网络,网络中的其他所有主机都会收到该广播帧,这种情况就是广播风暴。

      广播风暴会浪费网络资源和各主机的CPU资源。

    • 安全问题:

      巨大的广播域难以管理和维护,带来潜在的安全问题。

  • 使用广播的情况:

    TCP/IP协议栈中的很多协议都会使用广播 : 地址解析协议ARP、
    路由信息协议RIPv1、动态主机配置协议DHCP。

    NetBEUI: Windows下使用的广播型协议

    IPX/SPX: Novell网络的协议栈

    Apple Talk:Apple公司的网络协议栈

  • 分割广播域的方法:

    有使用路由器可以隔离广播域虚拟局域网技术两种方法,第一种方法成本较高。

    • 虚拟局域网:
      • 定义:
        虚拟局域网(VLAN)是一种将局域网内的站点划分成与物理位置无关的逻辑组的技术,一个逻辑组就是一个VLAN,VLAN中的各站点具有某些共同的应用需求。
      • 举例:

        1楼、2楼、3楼分别拥有一个局域网,将它们通过另外一个交换机互连成一个更大的局域网,那么原来的每个局域网都成为现在这个局域网的一个网段,网络中的各主机属于同一个广播域,根据需求我们将某些主机划分VLAN1、VLAN2等,实现了广播域的划分。

        在这里插入图片描述

      • 特点:

        属于同一VLAN的站点之间可以直接进行通信,而不同VLAN中的站点之间不能直接通信。

        网络管理员可对局域网中的各交换机进行配置来建立多个逻辑上独立的VLAN。

        连接在同一交换机上的多个站点可以属于不同的VLAN,而属于同一VLAN的多个站点可以连接在不同的交换机上。

        虚拟局域网VLAN并不是一种新型网络,它只是局域网能够提供给用户的一种服务。

      • 实现机制:

        虚拟局域网VLAN有多种实现技术,最常见的就是基于以太网交换机的接口来实现VLAN。这就需要以太网交换机能够实现以下两个功能:

        1.能够处理带有VLAN标记的帧,也就是IEEE 802.1Q帧。

        2.交换机的各接口可以支持不同的接口类型,不同接口类型的接口对帧的处理方式有所不同。

        • IEEE 802.1Q帧:
          • 构成:

            VLAN标签字段由标签协议标识符TPID、优先级PRI、规范格式指示符CFI、虚拟局域网标识符VID四部分构成。

            在这里插入图片描述

          • 各字段作用:

            标签协议标识符TPID:长度为16比特,其值固定为0x8100,表示该帧是IEEE 802.1Q帧

            优先级PRI: 长度为3比特,取值范围是0-7,值越大优先级越高。当网络阻塞时,设备优先发送优先级高的802.1Q帧。

            规范格式指示符CFI: 长度为1比特,取值为0表示MAC地址以规范格式封装,取值为1表示MAC地址以非规范格式封装。对于以太网,CF的取值为0。

            虚拟局域网标识符VID: 长度为12比特,取值范围是0-4095,其中0和4095保留不使用。VID是802.1Q帧所属VLAN的编号,设备利用VID来识别帧所属的VLAN。广播帧只在同一VLAN内转发,这样就将广播域限制在了一个VLAN内。

          • 处理流程:

            802.1Q帧一般不由用户主机处理,而是由以太网交换机来处理:

            当交换机收到普通的以太网MAC帧时,会给其插入4字节的VLAN标签使之成为802.1Q帧,该处理简称为“打标签”。

            当交换机转发802.1Q帧时,可能会删除其4字节的VLAN标签使之成为普通的以太网MAC帧,该处理简称为“去标签”。

            交换机转发802.1Q帧时也有可能不进行“去标签”处理,是否进行“去标签”处理取决于交换机的接口类型。

            • 交换机的接口类型:

              根据接口在接收帧和发送帧时对帧的处理方式的不同,以及接口连接对象的不同,以太网交换机的接口类型一般分为Access和Trunk两种。

              当以太网交换机上电启动后,若之前未对其各接口进行过VLAN的相关设置,则各接口的接口类型默认为Access,并且各接口的缺省VLANID为1,即各接口默认属于VLAN1。

              对于思科交换机,接口的缺省VLANID称为本征VLAN (Native VLAN)。

              对于华为交换机,接口的缺省VLANID称为端口VLANID (Port VLANID),简记为PVID。交换机的每个接口有且仅有一个PVID。

在这里插入图片描述

在这里插入图片描述

        • 举例说明VLAN中帧的转发流程:
          • 情况一:

          在这里插入图片描述
          主机A、B、C、D分别连接在以太网交换机的一个接口上。交换机首次上电启动后,默认配置各接口属于VLAN1,即各接口的PVID值等于1,默认配置各接口的类型为Access。

          假设主机A发送一个广播帧,该广播帧从交换机的接口1进入交换机,由于接口1的类型是Access,因此它会对接收到的未打标签的普通以太网MAC帧打标签,即插入4字节的VLAN标签。VLAN标签中的VID值等于接口1的PVID值1。

          交换机对打了标签的该广播帧进行转发。由于该广播帧中的VID值与交换机接口2、3和4的PVID值都等于1,因此交换机会从这三个接口对该广播帧去标签、转发。

          • 情况二:

        在这里插入图片描述

        主机A、B、C、D分别连接在以太网交换机的一个接口上,应用需求是将主机A和B划归为VLAN2,而将主机C和D划归为VLAN3。这样VLAN2和VLAN3中的广播帧不会相互传送到对方的领域。

        为了实现这样的应用,可以对交换机进行配置,创建VLAN2和VLAN3,将接口1和2划归到VLAN2,接口3和4划归到VLAN3。

        假设主机A发送了一个广播帧,该广播帧从交换机的接口1进入交换机,由于接口1的类型是Access,因此,它会对接收到的未打标签的普通以太网帧MAC帧打标签,标签中VID值为2。交换机会从接口2对该广播帧进行去标签转发。

          • 情况三:

      在这里插入图片描述

      两台以太网交换机和多台主机互连形成一个交换式以太网,应用需求是将主机A、B、E和F划归到VLAN1,而将主机C、D、G和H划归到VLAN2。默认情况下Trunk接口的PVID值为1,若互连的Trunk接口的PVID值不相等,可能出现转发错误。

      因为交换机1的接口5是Trunk类型,所有该广播帧还会从交换机1的接口5转发出去。由于接口5的PVID值与该广播帧中的PVID值都等于1,因此交换机1会从接口5对该广播帧进行去标签转发,即交换机1将该广播帧以普通以太网MAC帧的形式转发给了交换机2。

          • 情况四:

      在这里插入图片描述
      因为交换机1的接口5是Trunk类型,所以该广播帧还会从交换机1的接口5转发出去。由于接口5的PVID值为1,这与该广播帧中的PVID值2不相同,因此交换机1会从接口5对该广播帧直接转发。

3.9 802.11无线局域网

  • 定义:

    802.11无线局域网是目前应用最广泛的无线局域网之一,人们更多地将其简称为Wi-Fi (Wireless Fidelity,无线保真度)。

  • 分类:

    802.11无线局域网可分为以下两类 : 有固定基础设施的、无固定基础设施的。

    固定基础设施是指预先建立的、能够覆盖一定地理范围的、多个固定的通信基站。

    802.11无线局域网使用最多的是它的固定基础设施的组网方式。

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

      在这里插入图片描述

      • 组成

        采用星型网络拓扑,位于其中心的基站被称为接入点(AP)。802.11无线局域网的最小构件,称为基本服务集(BSS)。在一个BSS中,包含有一个AP和若干个移动站。

        本BSS内各站点之间的通信以及与本BSS外的站点之间的通信,都必须经过本BSS内的AP进行转发。

        网络管理员需要为AP分配一个最大32字节的服务集标识符 (SSID)和一个无线通信信道,SSID实际上就是使用该AP的802.11无线局域网的名字。

        一个BSS所覆盖的地理范围,称为基本服务区,其英文缩写词为BSA,一个BSA的直径不超过100m。一个BSS可以是孤立的,也可以通过一个分配系统(DS)与其他BSS连接,这样就构成了一个扩展的服务集 (ESS)。

        分配系统(DS)通过以太网、点对点链路或其他无线网络实现。

        服务集(ESS)还可为无线用户提供到其他非802.11无线局域网的接入。

      • 工作流程

        假设BSS1中的移动站A要给BSS2中的移动站B发送数据,则必须经过AP1、 DS、AP2,最终将数据转发到移动站B。若移动站A从BSS1漫游到BSS2,(漫游是指移动台在离开自己注册登记的服务区域,移动到另一服务区后,移动通信系统仍可向其提供服务的功能。移动台是移动通信网中移动用户使用的设备,可以分为车载型、便携型和手持型。)

        在漫游过程中,移动站A的接入点从BSS1中的AP1改为BSS2的AP2,移动站A和B之间的通信仍可以保持。

        在这里插入图片描述

      • 服务

        802.11标准并没有定义实现漫游的具体方法,仅定义了以下一些基本服务。

        • 关联服务

          移动站与接入点AP建立关联的方法有以下两种:被动扫描和主动扫描。

          • 被动扫描

            AP会周期性地发出信标帧,信标帧中包含服务集标识符SSID、AP的MAC地址所支持的速率、加密算法和安全配置等参数。而移动站被动等待接收信标帧。

          • 主动扫描

            移动站主动发出探测请求帧,然后等待来自AP的探测响应帧。

        • 重建关联服务

          如果一个移动站要把与某个接入点AP的关联转移到另一个AP,就可以使用重建关联服务。

        • 分离服务

          若要终止关联服务,就应使用分离服务。

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

      在这里插入图片描述

      • 组成

        无固定基础设施的802.11无线局域网,这种网络也称为自组织网络(ad hoc Network)。

        自组织网络并没有预先建立的固定基础设施(例如基站或接入点AP),它是由一些对等的移动站点构成的临时网络,数据在自组织网络中被多跳存储转发。

      • 工作原理

        自组织网络中的某个源站 A 和目的站 E ,它们之间的通信需要经过移动站B、移动站C以及移动站D的存储转发,最终到达目的站E。移动站B、C、D成为了移动站A与E之间通信的转发站。

        转发站需要具备路由功能,自组织网络有其特定的路由选择协议,一般不能和因特网直接相连,需要通过网关或协议转换器,接入到因特网。

      • 优点

        自组织网络组网方便,不需要基站,并且具有非常好的生存性,这使得自组织网络在军用和民用领域都有很好的应用前景。

      • 缺点

        802.11无线局域网的ad hoc 模式允许网络中的各站点在其通信范围内直接通信, 即支持站点间的单跳通信,而标准中并没有包括多跳路由功能。因此,802.11无线局域网的ad hoc 模式应用较少。

  • 物理层:

    802.11无线网卡一般会被做成多模的,以便能适应多种不同的物理层标准。

  • 数据链路层:CSMA/CA协议

    • 产生背景:
      • 1. 传输介质不同

        对于802.11无线局域网,其使用无线信道传输数据,与共享总线以太网使用有线传输介质不同。

        在无线通信中,并非所有的站点都能够听见对方。而 “所有站点都能够听见对方” 正是实现CSMA/CD协议必备的基础。

        因此802.11无线局域网不能简单照搬CSMA/CD协议。

      • 2. 不能采用“碰撞检测CD”

        无线信道的传输环境复杂且信号强度的动态范围非常大,在802.11无线网卡上接收到的信号强度远远小于发送信号的强度。

        因此,如果要在802.11无线网卡上实现碰撞检测,对硬件的要求非常高。

      • 3. 存在隐蔽站和暴露站的问题

        即使能够在硬件上实现碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站和暴露站的问题),会出现无法检测到碰撞和误检的情况。

        • 无线传输的范围:
          • 传输范围:

            指对发送站而言,可以成功接收其发出去的帧的通信范围。

            无线传输时,信号会衰减,衰减到一定程度将无法接收,因此存在传输范围。

          • 侦听范围:

            指对发送站而言,可以检测到传输信号的范围。

            侦听范围比传输范围广 ,因为只要能侦听到有信号存在即可。但有可能衰减太严重,即使侦听到也无法还原信号。

          • 干扰范围:

            指对接收站而言,此范围内节点发送帧将干扰接收方的接收,并导致丢帧。

        • 隐蔽站:
          在这里插入图片描述

          在理想情况下,无线电波的传播范围是以发送站为圆心的一个圆形面积。从覆盖范围可知,A无法检测到B发送的信号,B也无法检测到A发送的信号。

          假设A和B同时向接入点AP发送数据,必然会产生碰撞。

          根据无线信道的信号传播特点,碰撞信号的强度比较弱。即使分别传播到了A和B,A和B也无法检测到极度微弱的碰撞信号。

          这种问题就称为隐蔽站问题,即 : 由于距离太远而导致站点无法检测到 “ 竞争对手 ” 的存在。

        • 暴露站:

      在这里插入图片描述

      B正在向A发送数据。

      C想向D发送数据,但是发现它的侦听范围内有B正在发送,误认为自己不能给D发送,因为信道正忙。

      但实际上D在B的干扰范围之外,C可以给D发送数据。

      这种问题就称为暴露站问题,即 : 指由于侦听到其他站点的发送,误以为介质忙导致不能发送。

    • 定义:

      CSMA/CA,即 : 载波监听多址接入/碰撞避免。

      CSMA/CA协议仍然采用CSMA/CD协议中的CSMA,以“ 先听后说 ”的方式来减少碰撞的发生,但是将“碰撞检测CD”改为了“碰撞避免CA”。

      尽管CA表示碰撞避免,但并不能避免所有的碰撞,而是尽量减少碰撞发生的概率。

    • 工作原理:
      • 相关术语:
        • 分布式协调功能(DCF) :

          DCF是分布式协调功能 (Distributed Coordination Function) 的英文缩写词,DCF方式是802.11定义的默认方式 (必须实现)。

          在DCF方式下没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权。

        • DCF帧间间隔(DIFS):

          DIFS是指DCF帧间间隔,长度为128μs。

          在DCF方式中,DIFS用来发送数据帧和管理帧。

        • 短帧间间隔(SIFS) :

          短帧间间隔(SIFS) 的长度为28μs,它是最短的间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧等。

        • 持续时间:

          帧首部中的“持续时间”字段的值指出源站要占用信道的时间 (包括目的站发回确认帧所需的时间)。

        • 网络分配向量(NAV) :

          NAV指出完成这次帧的传送且信道转入空闲状态所需的时间。

      • 工作流程:

        如图所示,横坐标为时间,纵坐标表示 802.1 无线局域网中的各站点。

        在这里插入图片描述

        假设信道是空闲的,源站要发送它的第 1个数据帧,若检测到信道空闲,则在等待 DIFS 间隔后才能发送。等待DIFS间隔是考虑到可能有其他的站有高优先级的帧要发送。

        目的站若正确收到该帧,则经过SIFS间隔后,向源站发送确认帧ACK。

        若源站在重传计时器设置的超时时间内没有收到ACK,就必须重传之前已发送的数据帧,直到收到ACK为止;或者经过若干次的重传失败后放弃发送。

        当某个站检测到正在信道中传送的帧首部中的“持续时间”字段时,就调整自己的网络分配向量(NAV) 。

        在 NAV 这段时间内,若其他站也有帧要发送,就必须推迟发送,在 NAV 这段时间结束后再经过一个 DIFS 间隔,然后还要退避一段随机时间后,才能发送帧。

      • 涉及机制:
        • 虚拟载波监听机制
          • 具体内容

            1. 将NAV设计为完成这次帧的传送且信道转入空闲状态所需的时间,其站会将NAV倒数至零,相当于一个定时器。当NAV不为零,表明媒介处于忙碌状态,当NAV为零,表明媒介处于闲置状态。这就是CSMA/CA中的虚拟载波监听机制。

            2. RTS帧和CTS帧都会携带通信需要持续的时间,这与之前介绍过的数据帧可以携带通信所需持续时间的虚拟载波监听机制是一样的。因此使用RTS帧和CTS帧进行信道预约,也属于虚拟载波监听机制。

          • 优点

            除RTS和CTS会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制。

            由于利用虚拟载波监听机制,站点只要监听到RTS、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题。

          • 举例

            如下图,A和C互为隐蔽站。

            A在给B发送数据帧之前,可以使用RTS帧来预约信道,尽管C收不到该RTS帧,但是C可以收到B发送给A的CTS帧。

            这样C就知道了信道将被占用多长时间,在这段时间内C不会争用信道。

            在这里插入图片描述

        • 退避算法
          • 退避随机时间的原因

            当某个站在发送帧时,很可能有多个站都在监听信道并等待发送帧。一旦信道空闲,这些站几乎同时发送帧,产生碰撞。

            为了避免上述情况,所有要发送帧的站检测到信道从忙转为空闲后,都要执行退避算法。这样不仅可以减少发生碰撞的概率,还可避免某个站长时间占用无线信道。

          • 何时使用退避算法

            不使用退避算法 :

            当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧 , 则不使用退避算法。

            必须使用退避算法 :

            在发送数据帧之前检测到信道处于忙状态时。

            在每一次重传一个数据帧时。

            在每一次成功发送后要连续发送下一个帧时。( 这是为了避免一个站点长时间占用信道。)

          • 具体内容

            在执行退避算法时,站点为退避计时器设置一个随机的退避时间。

            当退避计时器的时间减小到零时,就开始发送数据。

            当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过帧间间隔DIFS后,继续启动退避计时器。

            在时隙编号{ 0,1,…,22+i - 1 }中随机选择一个,然后乘以基本退避时间 ( 也就是一个时隙的长度 ) 就可以得到第 i 次退避的退避时间。

            这样做是为了使不同站点选择相同退避时间的概率减少。当时编号达到255时,(对应于第6次退避),就不再增加了。

          • 举例

            如下图所示,A、B、C、D、E为5个无线站点,横坐标为时间。
            在这里插入图片描述 假设A正在占用无线信道发送帧,在其发送过程,B、C、D也要发送帧,载波监听时发现信道忙,所以退避。

            根据退避算法选择出一个随机的退避时间,并在每个时隙对信道进行一次检测。当检测到信道由忙状态转为空闲状态,且经过帧间间隔DIFS后,退避计时器开始倒计时。

            假设C的退避时间最短,当C的退避计时器到时间后,C立即开始发送帧。此时,信道由空闲状态转为忙状态。

            当B和D检测到信道忙之后,就冻结各自剩余的退避时间。

            假设在C占用无线信道发送帧的过程中,E也要发送帧,于是进行载波监听,发现信道忙,需要退避。根据退避算法选择出一个随机的退避时间,并在每个时隙对信道进行一次检测。

            当检测到信道由忙状态转为空闲状态,且经过帧间间隔DIFS后,退避计时器开始倒计时。

        • 信道预约机制
          • 三种选择

            802.11无线局域网仍为用户提供了以下三种选择 :

            使用RTS帧和CTS帧。

            只有当数据帧的长度超过某个数值时才使用RTS帧和CTS帧。

            不使用RTS帧和CTS帧。

          • 相关术语:
            • RTS帧:

              RTS帧是短的控制帧,它包括源地址、目的地址和本次通信 (包括目的站发回确认帧所需的时间)所需的持续时间。

            • CTS帧:

              CTS帧是短的响应控制帧,它也包括本次通信所需的持续时间 (从RTS帧中将此持续时间复制到CTS帧中)。

          • 工作流程:

            源站在发送数据帧之前先发送一个短的控制帧,称为请求发送(RTS)帧,若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制,称为允许发送(CTS)帧。

            源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧。若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK。

            除源站和目的站的其他各站,在收到CTS帧或数据帧后就推迟访问信道。这样就确保了源站和目的站之间的通信不会受到其他站的干扰。

            若RTS帧发生碰撞,源站就不可能收到CTS帧,源站会执行退避算法重传RTS帧。

          • 优点:

            使用RTS帧和CTS帧进行信道预约会带来额外的开销。

            但由于RTS帧和CTS帧都很短,发生碰撞的概率、碰撞产生的开销以及本身的开销都很小。对于一般的数据帧其发送时延往往远大于传播时延 (因为是局域网) ,碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的。

            使用RTS/CTS帧可以解决暴露站问题。暴露站问题指的是当一个节点发送数据时,其他节点也可能会同时发送数据,导致冲突。发送节点发送一个请求发送(RTS帧)给接收节点,接收节点回复一个清除发送(CTS帧)给发送节点,告诉发送节点其他节点将不会发送数据,就可以避免冲突。

3.10 802.11无线局域网的MAC帧

  • 分类:

802.11无线局域网的MAC帧分为三种类型: 数据帧、控制帧、管理帧。

  • 三种类型的MAC帧对比:
    在这里插入图片描述

  • 802.11无线局域网的数据帧格式

    帧头中包含有相关控制信息和地址信息。

    数据部分主要用来存放上层交付下来的待传送的协议数据单元。

    帧尾用于存放检验序列,采用CRC检验码。
    在这里插入图片描述

    • 帧头中的帧控制字段
      • 去往DS和来自DS字段

        DS是分配系统的英文缩写词。去往DS和来自DS控制位用于控制帧头中地址1~地址4这四个字段的内容和使用情况。

        在这里插入图片描述

        注意:802.11帧中必须要携带AP的MAC地址,而以太网中却不需要携带AP的MAC地址。

        以太网中AP与透明网桥一样,对各站点是透明的。因此以太网帧中就不需要指出AP的MAC帧地址。

        在802.11无线局域网中在站点的信号覆盖范围内,可能有多个AP共享同一个物理信道,但站点只能与其中一个AP建立关联,因此802.11帧中就必须携带AP的MAC地址以明确指出转发该帧的AP。

      • 类型和子类型控制位

        类型和子类型控制位用于区分不同类型的帧。802.11共有数据帧、控制帧和管理帧三种类型。 而每种类型又分为若干种子类型。

      • WEP控制位

        有线等效保密WEP控制位用于指示是否使用了WEP加密算法。

        WEP表明使用在无线信道上的这种加密算法效果上可以和在有线信道上进行通信一样保密。

      • 持续期字段

        用于实现CSMA/CA的虚拟载波监听和信道预约机制。在数据帧、RTS帧和CTS帧中用该字段指出将要持续占用信道的时长。

      • 序号控制字段

        用来实现802.11的可靠传输,对数据帧进行编号。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值