zoukankan      html  css  js  c++  java
  • 网桥与以太网交换机

    网桥(bridge)

    功能:在数据链路层扩展以太网

    特征:

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

    注:IEEE802系列标准把数据链路层分成LLC(Logical Link Control,逻辑链路控制)和MAC(Media Access Control,介质访问控制)两个子层。上面的LLC子层实现数据链路层与硬件无关的功能,比如流量控制、差错恢复等;较低的MAC子层提供LLC和物理层之间的接口

    优点:

    • 过滤通信量
    • 扩大物理范围
    • 提高可靠性
    • 互联不同物理层、不同MAC子层、不同速率的局域网

    缺点:

    • 存储转发增加时延

    在转发帧之前必须执行CSMA/CD算法。若在发送过程中出项碰撞,则必须停止发送和进行退避

    • 在MAC子层没有流量控制功能
    • 具有不同的MAC子层的网段桥接在一起时时延更大
    • 当用户过多时,因传播过多的广播信息有时会引起广播风暴

     


     

    网桥分类为以下三种:

    透明网桥

    “透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的。

    透明网桥是一种即插即用设备,其标准是 IEEE 802.1D。

    目前使用得最多的网桥。

     

    生成树算法(STA):

    有时为了增加网络的可靠性,在使用交换网络时,往往会增加一些冗余链路。此时,在自学习的过程中可能产生环路,为解决此问题,设计了生成树协议STP

    在物理上保持冗余线路,在逻辑上切断某些线路

    STP的基本思想就是生成“一棵树”,树的根是一个称为根桥的交换机,根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。由根桥开始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止一条路径,便构成了循环回路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。

     

    归纳为以下三个步骤:

    选择根网桥

    1.   网桥ID最小

      网桥ID:是一个8Byte的字段,前面2Byte的十进制数为网桥优先级,后6Byte是网桥的MAC地址

    选择根端口

      选择根网桥后,网络中的每台交换机要和根网桥建立关联,此时STP开始选择根端口。每个非根网桥上存在一个根端口,从而选择出一个根端口

    1.   到根路径成本最低
    2.   最小的直连发送方网桥ID
    3.   最小的发送方端口ID

    选择指定端口

      选择玩根网桥和根端口后,一个树形结构初步形成,但是所有链路仍连接在一起,并可以处于活动状态,最后导致环路。为了消除这种可能,STP进行最后计算,在每一个网段上选择一个指定端口

    1.   路径成本最低
    2.   所在交换机网桥ID最小
    3.   所在交换机端口ID最小

    源路由网桥

     

    多接口网桥(以太网交换机)

    转发表(又称交换表、地址表)组成:

    • 源地址
    • 网桥的接口地址
    • 帧进入该网桥的时间

    交换表中的每个项目都设有一定的有效时间。过期的自动被删除

     

    网桥按自学习算法建立转发表

    原理:

    若从主机A发出的帧经过接口1进入某网桥,那么从这个接口出发沿相反方向可把一个帧传送到主机A。

    网桥每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目。在建立转发表时是把帧首部中的源地址写在“地址”这一栏的下面。

    在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口。

    一开始,交换表内容是空的。若A向B发送一帧,从接口1进入交换机,交换机收到帧后,查找交换表,,没有地址信息,接着,交换机吧这个帧的源地址A和接口地址1写入交换表,并向除接口1外的所有接口广播这个帧。C、D将丢弃此帧,只有B收下这个目的地址正确的帧,假定接着从B向A发送一帧,查找交换表,存在A的地址,于是将这个帧通过接口1发送出去,同时转发表中添加(B,2)项目

     

    转发帧时,查找转发表中与收到帧的目的地址有无相匹配的项目
      如没有,则通过所有其他接口(但进入网桥的接口除外)进行转发
      如有,则按转发表中给出的接口进行转发
      若转发表中给出的接口就是该帧进入网桥的接口,则应丢弃这个帧(因为这时不需要经过网桥进行转发)

     

  • 相关阅读:
    GDB 进行调试 使用心得
    libnet发包例子(tcp udp arp广播)
    epoll源码实现分析[整理]
    Linux中的时间和时间管理
    PHP生成压缩文件开发实例
    sql语句删除数据表重复字段的方法
    亿级Web系统搭建——单机到分布式集群
    微信开发之附近商家地理位置计算和腾讯地图坐标转百度地图坐标的方法
    PHP生成订单号(产品号+年的后2位+月+日+订单号)
    (用微信扫的静态链接二维码)微信native支付模式官方提供的demo文件中的几个bug修正
  • 原文地址:https://www.cnblogs.com/zhanghx/p/9748169.html
Copyright © 2011-2022 走看看