网桥的自学习算法原理

网桥:在数据链路层可以用网桥设备来扩展以太网。网桥工作在数据链路层,它根据MAC 帧的目的地址对收到的帧进行存储转发和过滤。当网桥收到一个数据帧时,并不是向所有的接口转发这个数据帧,而是会进行有条件的转发(网桥会丢弃CRC检验有差错的帧以及帧长过短和过长的无效帧)再根据此帧的目的MAC地址,然后查找转发表(网桥会自己维护转发表,转发表中每一条目都记录了到达某个目的MAC地址的数据帧可以从那个接口进行转发)根据转发表中的条目逐步匹配看该从那个接口转发或是否需要丢弃该数据帧。最简单的网桥只有两个接口(这里所讲的网桥都是两个接口的网桥)。

使用网桥设备的优点:

1,过滤通信量,增大吞吐量(网桥可以隔离碰撞域提高网络的吞吐量)

2,扩大了物理网络的范围(扩展以太网)

3,提供了可靠性(只影响单个网段)

4,可以互连不同的物理层,不同MAC子层和不同速率

使用网桥设备的缺点:

1,使用CMSA/CD算法增加了时延

2,不能进行流量控制,缓存存储空间可能会发生溢出

3,会产生广播风暴

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

1,网桥收到一帧后先进行自学习。查找转发表中与收到数据帧的源地址有无匹配的项目。如果没有,就在转发表中增加一个项目(记录数据帧的源地址,进入网桥的接口和时间)。如果有,则把原来的项目进行更新。

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

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

for example: 如图所示,6个站点通过透明网桥B1和B2连接到一个扩展的局域网上。初始时网桥B1和B2的转发表都为空。假设需要传输的帧序列如下:H2传输给H1;H5传输给H4;H3传输给H5;H1传输给H2;H6传输给H5。请给出这些帧传输完后网桥B1和网桥B2的转发表。假设转发表表项的格式为:[ 站点, 端口 ]。

发送的帧                      B1转发表            B1的处理                          B2转发表              B2的处理

H2--->H1                    H2,1                登记,转发                        H2,1                  登记,转发

H5--->H4                    H5,2                登记,转发                        H5,2                  登记,转发

H3--->H5                    H3,2                登记,丢弃                        H3,1                  登记,转发

H1--->H2                    H1,1                登记,丢弃

H6--->H5                                                                                       H6,2                  登记,丢弃

解释说明:

1,H2主机向H1主机发送帧。连接在同一个局域网上的主机H1和网桥B1都能收到H2主机发送的数据帧。网桥B1收到这个数据帧后,先按源地址H2查找转发表。这时因为网桥B1的转发表为空,于是就把地址H2和收到此帧的接口1 写入到转发表中。这就表示,以后若收到要发给H2的帧,应当从网桥B1的这个接口1 转发出去。接着再按目的地址H1查找转发表。转发表中没有H1的地址,于是通过除收到此帧的接口1 以外的所有接口转发此帧。网桥B2 从其接口1 收到这个转发过来的帧。网桥B2按同样的方式处理收到的帧。网桥B2的转发表中没有H2的地址,因此在网桥B2的转发表中写入地址H2 和接口1 。网桥B2的转发表中没有H1的地址,因此网桥B2会通过除接收此帧的接口1 以外的所有接口转发这个帧。(H1本来就可以直接收到H2发送的数据帧,为什么还要让网桥B1和B2盲目地转发这个帧呢??? 答案是:这两个网桥当时并不知道网络的拓扑结构,因此要通过自学习过程才能逐步弄清所连接的网络拓扑,建立起自己的转发表)

2,H3主机向H5主机发送数据帧。首先看网桥B1,网桥B1从其接口2收到这个数据帧。网桥B1的转发表中没有H3,因此在B1的转发表中写入地址H3 和接口2。再查找目的地址H5。现在网桥B1的转发表中可以查询到H5,其转发的接口是2,和这个帧进入网桥B1的接口一样。于是网桥B1知道,不用自己转发这个帧,H5也能收到H3发送的帧。于是网桥B1把这个帧丢弃,不再继续转发了。再看网桥B2,网桥B2从其借口1 收到这个帧。网桥B2的转发表中没有H3,因此在B2的转发表中写入地址H3 和接口 1。再查找目的地址H5。现在网桥B2的转发表中可以查询到H5,其转发的接口是 2 ,于是网桥B2直接将这个帧从接口2 转发出去。

3,H6主机向H5主机发送数据帧。首先看网桥B2,网桥B2从其接口2 收到这个数据帧。网桥B2的转发表中没有H6,因此在B2的转发表中写入地址H6  和接口 2。再查找目的地址H5。现在网桥B2的转发表中可以查询到H5,其转发的接口是2,和这个帧进入网桥B2的接口一样。于是网桥B2知道,不用自己转发这个帧,H5也能收到H6发送的帧。于是网桥B2把这个帧丢弃,不再继续转发了。再看网桥B1,其根本不会收到H6主机向H5发送的数据帧,所以不会有任何其他操作。

PS:在网桥的转发表中写入的信息除了地址和接口外,还有帧进入该网桥的时间。网桥中德接口管理软件周期性的扫描转发表中的项目。只要在一定时间以前登记的都要删除。这样就使得网桥中的转发表能反映当前网络的最新拓扑状态。还有一点网桥是一种工作在数据链路层的网络设备,它能对于接收到的数据帧进行有条件的转发并且能隔离冲突域。

时间: 2024-10-24 21:46:08

网桥的自学习算法原理的相关文章

Adaboost算法原理分析和实例+代码(简明易懂)

Adaboost算法原理分析和实例+代码(简明易懂) [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/70995333     本人最初了解AdaBoost算法着实是花了几天时间,才明白他的基本原理.也许是自己能力有限吧,很多资料也是看得懵懵懂懂.网上找了一下关于Adaboost算法原理分析,大都是你复制我,我摘抄你,反正我也搞不清谁是原创.有些资料给出的Adaboost实例,要么是没有代码,要么省略很多步骤,让初学者

FP Tree算法原理总结

在Apriori算法原理总结中,我们对Apriori算法的原理做了总结.作为一个挖掘频繁项集的算法,Apriori算法需要多次扫描数据,I/O是很大的瓶颈.为了解决这个问题,FP Tree算法(也称FP Growth算法)采用了一些技巧,无论多少数据,只需要扫描两次数据集,因此提高了算法运行的效率.下面我们就对FP Tree算法做一个总结. 1. FP Tree数据结构 为了减少I/O次数,FP Tree算法引入了一些数据结构来临时存储数据.这个数据结构包括三部分,如下图所示: 第一部分是一个项

分布式memcached学习(四)—— 一致性hash算法原理

    分布式一致性hash算法简介 当你看到"分布式一致性hash算法"这个词时,第一时间可能会问,什么是分布式,什么是一致性,hash又是什么.在分析分布式一致性hash算法原理之前,我们先来了解一下这几个概念. 分布式 分布式(distributed)是指在多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务. 以一个航班订票系统为例,这个航班订票系统有航班预定.网上值机.旅客信息管理.订单管理.运价计算等服务模块.现在要以集中式(集群,cluster)和分布

POJ1523(求连用分量数目,tarjan算法原理理解)

SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7406   Accepted: 3363 Description Consider the two networks shown below. Assuming that data moves around these networks only between directly connected nodes on a peer-to-peer basis, a

Kmeans聚类算法原理与实现

Kmeans聚类算法 1 Kmeans聚类算法的基本原理 K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一.K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类.通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果. 假设要把样本集分为k个类别,算法描述如下: (1)适当选择k个类的初始中心,最初一般为随机选取: (2)在每次迭代中,对任意一个样本,分别求其到k个中心的欧式距离,将该样本归到距离最短的中心所在的类: (3)利用

【转】两种非对称算法原理:RSA和DH

转自:http://blog.chinaunix.net/uid-7550780-id-2611984.html 两种非对称算法原理:RSA和DH 虽然对称算法的效率高,但是密钥的传输需要另外的信道.非对称算法RSA和DH可以解决密钥的传输问题(当然,它们的作用不限于此).这两个算法的名字都是来自于算法作者的缩写,希望有朝一日能够出现用中国人命名的加密算法.非对称算法的根本原理就是单向函数,f(a)=b,但是用b很难得到a. RSA算法 RSA算法是基于大数难于分解的原理.不但可以用于认证,也可

Canny边缘检测算法原理及其VC实现详解(一)

转自:http://blog.csdn.net/likezhaobin/article/details/6892176 图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值.图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的,同时也是图象分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量.检测和定位,自从1959提出边缘检测以来,经过五十多年

排序算法原理及实现

算法一:直接插入排序 算法实现原理:就是计算一个新元素是应该放在哪里?每次进来一个都会进行和原来顺序进行重新组合. 代码实现:Java public int[] testInsertionSort(int[] data){ // this methord is very easy. for(int i = 1;i < data.length;i++){ int temp = data[i]; int j =i; while(j>0 && data[j-1]>temp){

Bagging与随机森林算法原理小结

在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合.本文就对集成学习中Bagging与随机森林算法做一个总结. 随机森林是集成学习中可以和梯度提升树GBDT分庭抗礼的算法,尤其是它可以很方便的并行训练,在如今大数据大样本的的时代很有诱惑力. 1.  bagging的原理 在集成学习原理小结中,我们给Bagging画了下面一张原理图. 从上图可以看出,