zoukankan      html  css  js  c++  java
  • 网络设备(中继器、集线器、网桥、交换机)

    一、简介:

      理解网络设备的关键在于认识到它们各自工作在哪个层次,因为不同层次的设备使用不同信息(比特串、header)来决定如何进行数据交换。

    二、中继器(Repeater):

      中继器是物理层设备,处理与之相连线缆上的信号。

      出现在线缆上的信号,中继器接收并清理该线缆上的信号,将接收到的信号增强,最后将其放到另一端的线缆上。

      中继器本身只知道自己处理的是用高低电平编码的比特信号。

      在Classic Ethernet中被用于延长信号传输的距离。

    三、集线器(Hub):

      集线器也是物理层设备,集线器有多个输入链路。

      从一条链路输入集线器的数据帧,会从其他所有链路输出。

      如果不同的连路上同时出现数据帧就会发生碰撞。

      接在同一个集线器上的所有链路必须是相同的比特率。

    hub与repeater很相似。

    四、网桥(Bridge):

      网桥是数据链路层设备,用于将多个局域网(LAN)连接组成一个更大、更快的网络。

      网桥通过数据帧的地址进行转发,但它不检查数据帧所载荷的数据,所以可传输处理IP数据包以及其他种类的数据包。

      在很多环境下,有需要将多个LAN进行连接和将一个LAN划分成多个小的LANs的需求。网桥在连接这些LANs的同时应该完全透明,即插即用,不需要任何软硬件的改动或地址配置或下载路由表等等。此外,就Bridged-LAN中的终端设备而言,在这个网桥连接起来的Bridge-LAN中改变接入的位置,就像在单个LAN中一样。实现这些主要使用了两个算法:反向学习算法和生成树算法。

      网桥每个端口是都一个独立的碰撞域(Collision domain),Bridged-LAN的带宽应为所有LAN的带宽之和。做到这一点的关键在于,在没有必要的情况下,不将通信量送到网桥端口上。这样还提高的可靠性,一个LAN中若有一个主机发送大量数据,不会导致整个网络瘫痪。

    1、backward learning algorithm:

      在网桥中有一张表(a big (hash) table),用于列出每一个可能的目的地和它们对应的输出端口。起初,该表是空的,因而此时接收到的的数据帧使用洪泛算法(flooding algorithm):每个到来的发往未知目的地址的数据帧被输出到除输入端口以外的其他所有端口,在学习到一些目的地后,网桥的表中若有当前数据帧目的地址及其对应端口的记录,则只发往该制定端口。

      网桥以混杂模式工作,因而能够看到所有端口输入的数据帧,当从端口1接收到源地址d的数据帧,那么网桥B2就认为目的地址为d的数据包通过端口1一定能够到达d,将scr1和p1条目写入表中。

      由于网络拓扑是动态的,终端设备可能关机和改变接入位置,为了能够处理动态拓扑,每一个表项都记录一个最后一个数据帧到达的时间,每当有数据帧到达就更新对应的时间,网桥中有一个进程负责扫描hash表并清除超时的表项。这样一来,终端机器就可以任意更换接入位置而不用人为介入。这同时也意味着,当一台终端机超过一段时间没有发送数据,那么发往这台终端机的数据帧都将被洪泛处理,直到这台终端机下一次发送数据。

      路由有三个步骤,在网桥上:

        1)若目的地址对应的端口与源端口相同,丢弃该帧;

        2)若目的地址对应的端口与源端口不同,将数据帧发往目的地址对应的端口;

        3)若目的端口未知,则采用洪泛方式;

      该学习算法需要一个专用芯片(special-purpose VLSI chip)来快速查看和更新hash表。此外,网桥仅需要查看数据帧的MAC地址,因而当数据帧头部被解析就可以开始转发数据帧,这样降低了数据帧通过网桥的延迟,也减少了需要缓存的数据帧数量。

     

    2、spanning tree algorithm:

      为提高可靠性,通常在网桥之间条家冗余链路,当一条链路故障时不至于LANs断开连接。这样一来,就在拓扑中引入了环路,如图:

      若A向一个B1、B2都不知道的目的地址发送数据帧,当B1收到F0时,将它的拷贝发送到其余各端口(此处仅考虑连接网桥的端口),于是有了F1、F2。当B2收到F1、F2时,B2不知道F1、F2时相同的数据帧,于是将F1的拷贝发送到其余各端口,产生F4,将F2的拷贝发送到其余各端口,产生F3。因为在目的主机发送数据之前,这个目的地址都是未知的,所以在此之前这些数据包将在环路上一直传播。

      解决的方法是,将网桥看作节点(node),网桥之间的链路看作边(edge),这样形成了一张图(Graph);再由这张图生成一棵所有网桥的遵从的(且覆盖所有网桥)生成树,这样就能避免环路。

      为了建立生成树,所有网桥运行一个分布式算法,每过一段时间,每个网桥向它的邻居广播一个配置信息(a configuration message)并处理它收到的信息。这些消息不再被转发,仅用作建立生成树。

      选择网桥中identifier(基于MAC地址)最小的作为根结点,网桥上保存自己的identifier和根结点的identifier,当交换了足够的信息后,所有结点都认同同一个根结点。然后创建从根结点到其余网桥的最短路径。每个网桥都保存了到根结点的最短路径(我认为时全局的最短路径),然后关闭不再最短路径上的端口。

      当生成树建立以后,该算法继续运行,为了及时探测到拓扑变化并更新生成树。

    五、交换机(switch):

      现代网桥(modern bridge)的别名。网桥在传统以太网(classic Ethernet)时期用于连接多个局域网,因而端口相对较少;现代网络多为点对点(point-to-point)接入,终端机可以直接接入交换机端口,因而交换机的端口相对较多。交换机和网桥非常相似。

     

  • 相关阅读:
    Monte Carlo Primer
    MCCCS Towhee: Pressure
    towhee中计算临界温度和密度- 摘自小木虫
    什么是温度?
    Bennett acceptance ratio
    LAMMPS Polydisperse Packings
    科普 [分子力学总势能(或者LJ势能)能量最小化]
    How to make fix rigid/nvt work compatibly with compute temp/com command, or any other alternative options in non-equilibrium simulations.
    WebDriverWait&expected_conditions
    Selenium自动化测试-unittest单元测试框架使用
  • 原文地址:https://www.cnblogs.com/jasonlixuetao/p/9506902.html
Copyright © 2011-2022 走看看