• 网络--Linux Bridge(网桥基础)


    a. 网桥的工作原理初识

    缓存:网桥首先会对收到的数据帧进行缓存并处理;

    学习:当帧经过网桥,网桥首先在网桥表中查找帧的源MAC地址如果该地址不在网桥表中,则将有该MAC地址及其所对应的网桥端口信息加入(逆向学习法);

    过滤:判断入帧的目标节点是否位于发送这个帧的网段中(同一端口中) ,如果是,网桥就不把帧转发到网桥的其他端口;

    转发:如果帧的目标节点位于另一个网络,网桥就将帧发往正确的网段 (向另一端口转发) ;

    每个桥维护了一个基于MAC地址的过滤数据库,网桥根据这个数据库,把收到的帧往相应的局域网(端口)进行转发。

    在过滤数据库中,列出了每个可能的目的地(目的MAC地址),以及它属于哪一条输出线路(一个端口号,即表示转发给哪个LAN),每个表项还有一个超时设置。

    可以及时学习改变了的地址;

    转发如果在表中找到目标地址,则直接转发给该目的MAC地址对应的端口;

    转发如果在表中找不到目标地址,则按扩散的办法将该数据发送给与该网桥连接的除发送该数据的网段外的所有网段

    以混杂方式工作(接收连接到该网桥的局域网上传送的所有帧)。

    b. 网桥的工作过程

    假设桥在端口x上接收到一个MAC帧,有如下规则

    1. 查询网桥表中包的源MAC;如果没有,将该MAC地址及其所对应的网桥端口信息加入;如果有,继续下一步;

    2. 查询过滤数据库,确定该目的MAC地址是否在除[端口x]外的其它端口中;如果目的MAC地址在端口x内,不进行转发;

    3. 在转发时,如果目的MAC地址在过滤数据库中的某个端口y中,确定端口y是否处在阻塞或转发状态(生成树协议)。【在以后的生成树算法中我们可以看到,一个端口可能有时候是阻塞的,以防止它接收或发送帧】如果端口y是非阻塞的,把该帧通过端口y转发到它所连接的LAN中。

    4. 在转发时,如果目的MAC地址没有找到,把该帧往除了它所到来的端口外的所有端口发送,即进行转发(扩散)。

    c. 网桥的场景解析

    图片.png

    学习:站点A给B发送数据,网桥通过察看帧的源地址了解到A在端口1,过滤数据库中加入<A,1>。

    转发:网桥并不知道B在何处,因此把帧向所有其它端口(即端口2和3)进行扩散。(网桥连接的所有端口,除端口1)

    转发:B收到A发过来的帧之后,可能会进行回应,即B发送数据给A,这个时候网桥察看源地址了解到B在端口2上,加入表项<B,2>,同时帧的目的地址A在过滤数据库中存在,并且在端口1上,因此B发回给A的帧向端口1转发

    过滤:现在站点C向A发送数据,由于A、C和网桥连接到同一个集线器上,网桥也会收到该帧,察看源地址C,记录C在端口1,加入表项<C,1>,同时目的地址A在过滤数据库中并且所在的端口正是收到该帧的端口,因此不进行转发。

    老化:过滤数据库表项的TTL每秒都增加,超过某个值则从数据库中清除,一般缺省的TTL设置为300秒。老化主要是考虑到网桥的内存有限、节点移动的情况。

  • 相关阅读:
    TCP流量控制,拥塞控制原理
    Java数组--求一个数组中连续m个数的和最大的数组组合
    一次使用IDEA编写JDK动态代理Class数组中有关泛型的问题
    Java数组--一个整型数组,给定一个定数,求数组中两个数的和与定数相等
    Java基础知识--Stream接口的理解与应用
    JSAP107
    JSAP106
    JSAP105
    JSAP104
    JSAP103
  • 原文地址:https://www.cnblogs.com/pipci/p/13021094.html
Copyright © 2020-2023  润新知