计算机网络—— 数据链路层(89):集线器与交换机的区别以太网交换机自学习和转发帧的流程

Posted 大彤小忆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络—— 数据链路层(89):集线器与交换机的区别以太网交换机自学习和转发帧的流程相关的知识,希望对你有一定的参考价值。

8. 集线器与交换机的区别

  早期的总线型以太网最初使用粗同轴电缆作为传输媒体,后来演进到使用价格相对便宜的细同轴电缆。当初认为这种连接方法既简单又可靠,因为在那个时代普遍认为有源器件不可靠,而无源的电缆线才是最可靠的。然而这种使用无源电缆和大量机械接头的总线型以太网,并不像人们想象的那么可靠。后来以太网发展出来了一种使用大规模集成电路可靠性非常高的设备,叫做集线器,并且使用更便宜更灵活的双绞线作为传输媒体,如下图所示。

在这里插入图片描述
  使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议;
  集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站的网卡检测);
  集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作。

在这里插入图片描述
  使用集线器可以对以太网进行扩展,由于集线器只工作在物理层,所以更具体的说法是“使用集线器在物理层扩展以太网”。

在这里插入图片描述
  以太网交换机与集线器的区别:使用集线器互连而成的共享总线式以太网上的某个主机要给另一个主机发送单播帧,该单播帧会通过共享总线传输到总线上的其他各个主机。使用交换机互连而成的交换式以太网上的某个主机要给另一个主机发送单播帧,该单播帧进入交换机后,交换机会将该单播帧转发给目的主机而不是网络中的其他各个主机。很显然,交换机具有明显的优势。

在这里插入图片描述
   ⋄ \\diamond 以太网交换机通常都有多个接口。每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在全双工方式。
   ⋄ \\diamond 以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信,无碰撞(不使用CSMA/CD协议)。
   ⋄ \\diamond 以太网交换机一般都具有多种速率的接口,例如:10Mb/s、100Mb/s、1Gb/s、10Gb/s接口的多种组合。
   ⋄ \\diamond 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
   ⋄ \\diamond 以太网交换机是一种即插即用设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的。
   ⋄ \\diamond 帧的两种转发方式: 1. 存储转发
             2. 直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查帧是否有差错)

  对比集线器和交换机:
  首先对比发送单播帧的情况。下图上半部分是仅使用集线器扩展以太网后发送单播帧的情况,下图下半部分是仅使用交换机扩展以太网后发送单播帧的情况。很显然,交换机具有非常明显的优势。

在这里插入图片描述

  再来对比发送广播帧的情况。下图上半部分是仅使用集线器扩展以太网后发送广播帧的情况,下图下半部分是仅使用交换机集线器还是交换机来扩展以太网,扩展后的以太网中的各主机都属于同一个广播域。仅使用集线器扩展的以太网在逻辑上仍然是共享总线的,并且形成为一个更大的碰撞域。换句话说,参与竞争总线的主机比扩展前的更多了。

在这里插入图片描述
  下面是竞争总线并产生碰撞的一个例子,同样的传输任务在仅使用交换机扩展的以太网上就不会产生碰撞,因此如果仅仅使用集线器来扩展以太网,不仅会扩大广播域还同时扩大了碰撞域。但是,如果使用交换机将原来各自独立的碰撞域连接起来,只会扩大广播域而不会扩大碰撞域,也就是说交换机可以隔离碰撞域。

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

8.1 总结

在这里插入图片描述

8.2 课后练习

  1. 下列网络连接设备工作在数据链路层的是( C )
    A. 中继器  B. 集线器  C. 交换机   D. 路由器
   分析: 交换机工作在数据链路层;集线器工作在物理层。

  2. 下列不能隔离碰撞域的设备是( B )
    A. 网桥  B. 集线器  C. 交换机   D. 路由器
   分析: 集线器不能隔离碰撞域;交换机可以隔离碰撞域。

  3. 10台用户主机通过一台交换机连接成10Mb/s的交换式以太网,每个用户能够占有的带宽是( C )
    A. 1Mb/s  B. 2Mb/s  C. 10Mb/s   D. 100Mb/s
   分析: 10台用户主机通过一台交换机连接成10Mb/s的交换式以太网,每个用户能够占有的带宽是10Mb/s。

  4. 通过集线器连接的一组主机( C )
    A. 组成一个冲突域,但不是一个广播域  B. 组成一个广播域,但不是一个冲突域  C. 既是一个冲突域,又是一个广播域   D. 既不是冲突域,也不是广播域
   分析: 通过集线器连接的一组主机既是一个冲突域,又是一个广播域。

  5. 通过交换机连接的一组主机( B )
    A. 组成一个冲突域,但不是一个广播域  B. 组成一个广播域,但不是一个冲突域  C. 既是一个冲突域,又是一个广播域   D. 既不是冲突域,也不是广播域
   分析: 通过交换机连接的一组主机组成一个广播域,但不是一个冲突域。

9. 以太网交换机自学习和转发帧的流程

  ■ 以太网交换机工作在数据链路层(也包括物理层)。
  ■ 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
  ■ 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
  下图所示是以太网交换机自学习和转发帧的流程的例子。

在这里插入图片描述
  例: 以太网交换机进行转发决策时使用的PDU地址是( A )
     A. 目的物理地址  B. 目的IP地址  C. 源物理地址  D. 源IP地址
    分析: PDU(Protocol Data Unit)的意思是协议数据单元,它是计算机网络体系结构中对等实体间逻辑通信的对象。
        以太网交换机工作在数据链路层(也包括物理层),它接收并转发的PDU通常称为帧。以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
        MAC地址又称为硬件地址或物理地址。请注意,不要被“物理”二字误导认为物理地址属于物理层范畴,物理地址属于数据链路层范畴。

9.1 总结

  ■ 以太网交换机工作在数据链路层(也包括物理层)。
  ■ 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
  ■ 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信以太网交换机通过自学习算法自动逐渐建立起帧交换表。
  ■ 以太网交换机自学习和转发帧的流程:
    1. 收到帧后进行登记。登记的内容为帧的源MAC地址及进入交换机的接口号;
    2. 根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有以下三种情况:
     ⋄ \\diamond 明确转发:交换机知道应当从哪个(或哪些)接口转发该帧(单播,多播,广播)。
     ⋄ \\diamond 盲目转发:交换机不知道应当从哪个端口转发帧,只能将其通过除进入交换机的接口外的其他所有接口转发(也称为泛洪)。
     ⋄ \\diamond 明确丢弃:交换机知道不应该转发该帧,将其丢弃。
  ■ 帧交换表中的每条记录都有自己的有效时间,到期删除。原因如下:
     ⋄ \\diamond 交换机的接口改接了另一台主机;
     ⋄ \\diamond 主机更换了网卡。

9.2 课后练习

  1. 以太网交换机的自学习是指( A )
    A. 记录帧的源MAC地址与该帧进入交换机的端口号
    B. 记录帧的目的MAC地址与该帧进入交换机的端口号
    C. 记录数据包的源IP地址与该数据包进入交换机的端口号
    D. 记录数据包的目的IP地址与该数据包进入交换机的端口号
   分析: 以太网交换机的自学习是指记录帧的源MAC地址与该帧进入交换机的端口号。

  2. 假设交换机的转发表是空的,当交换机收到某个单播帧后,会将该帧( B )
    A. 丢弃  B. 泛洪  C. 从接收该帧的端口再转发该帧  D. 从另外的某个端口转发该帧
   分析: 泛洪是交换机和网桥使用的一种数据流传递技术,将从某个接口收到的数据流向除该接口之外的所有接口发送出去。假设交换机的转发表是空的,当交换机收到某个单播帧后,会将该帧泛洪。

  3. 在下图中,假设交换机的转发表是空的,主机H2给H3发送一个单播帧,则能收到该单播帧的主机有( D )

在这里插入图片描述
    A. 仅H3   B.仅H1和H3   C. 仅H4和H3  D. H1、H3、H4

以上是关于计算机网络—— 数据链路层(89):集线器与交换机的区别以太网交换机自学习和转发帧的流程的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络 王道考研2021 第三章:数据链路层 -- 数据链路层的设备(网桥以太网交换机)冲突域&广播域&网段

马哥Linux网络班作业

Linux学习第八周作业

物理层数据链路层网络设备工作原理

Python之网络编程

计算机网络-----数据链路层