网桥和交换机

一、网桥与交换机的联系与区别

联系:网桥与交换机都基于帧地址进行路由。

区别:网桥每个端口连接两个或者多个LAN。交换机 工作在数据链路层(データリンク層) ,交换机的每个端口连接一台计算机。

二、工作原理

当网桥刚刚接到以太网上的时候,其转发表是空的,这时若网桥收到一个帧,它将怎样处理呢?网桥将按照 自学习(Self learning) 算法处理收到的帧(这样就逐步建立转发表),并按照转发表把帧转发出去。这种自学习的算法并不复杂,因为: 若从某个站A发出的帧从接口x进入了某网桥,那么从这个接口沿相反方向一定可以把一个帧传送到A。 所以网桥只要每收到一个帧,就记录下其 源地址(Src.Address)进入网桥的接口( Src. Port),作为转发表中的一个项目。(注:转发表中并没有“源地址”这一栏,而只有“地址”这一栏。)在建立 转发表(学習テーブル) 时是把帧首部中的源地址写在“地址”这一栏的下面。在 转发帧(Forwarding) 时,则是根据收到的帧首部中的目的地址来转发的。这时就把“地址”栏下已经记录的源地址当作目的地址,把记录下的进入进口当作转发接口来转发。

网桥的自学习和转发帧的一般步骤:

  1. 网桥收到一帧后先进行 自学习 (Self learning) 。过程为查找转发表中与收到的帧的 源地址 (Src.Address) 有无相匹配的项目,以决定由哪个端口进行转发。如有,则把原有的项目进行更新。如没有,则向所有端口转发,这一过程称为 泛洪(Flooding) 。当收到回应后,交换机会“学习”到了一个新的mac与端口的对应关系,就在 **MAC-交换机端口映射表( 学習テーブル )**中增加一个项目( 源地址进入的端口时间 )。
  2. 转发帧(Forwarding) 。查找转发表中与收到的帧的目的地址有无相匹配的项目。如没有,则通过所有其他接口(进入网桥的接口除外)。如有,则按转发表中给出的接口进行转发。但应注意,若转发表中给出的接口就是该帧进入网桥的接口,则应丢弃这个帧(因为这个帧不需要网桥进行转发)。

透明网桥还使用了一个生成树算法,即互连在一起的网桥在进行彼此通信后,就能找出原来的网络拓扑的子集。在这个子集里,整个连通的网络中不存在回路,即在任何两个站间只有一条路径。