(一)网桥

网桥是一个layer 2设备,能够连接两个不同的网段.

如图

H1 H2位与同一个LAN H3 H4位于同一个LAN,如果H1想要和H3进行通信,这个时候就要通过网桥来帮忙。

几个LAN用网桥连接起来的叫做一个BLAN,可以把整个连接起来的看成一个逻辑上的LAN,这个LAN上的主机,可以像普通LAN上的主机一样互相通信。

网桥的功能:

1- 数据的转送和过滤

2- 网桥的地址学习

3-解决LAN上的回路的问题  (回路会网路更可靠,但是会导致重复接受数据,会造成地址学习的错误)

网桥自学习算法

DMAC是目标MAC地址,SMAC是源MAC地址,大抵意思是 比如现在从路由器的X端收到一个数据,先判断一下目标MAC地址有没有在该路由器的转发表里面,如果不在里面,则在除了X端口的转发广播,寻找这个设备在哪里;如果在转发表里面,则判断目标MAC地址是不是属于端口X,如果是则过滤掉这个数据,如果不是就从对应的端口转发出去。

接下来是网桥的学习,看一下源MAC在不在转发表,如果已经在转发表里面了,看一下转发表里面的源MAC地址以前对应的端口是不是x,如果是x就不改,如果不是x就改成x;如果没有就记录下来。

(二)802.1D生成树协议 (解决回路问题)

STP协议中定义了根桥(Root Bridge)、根端口(Root Port)、指定端口(Designated Port)、路径开销(Path Cost)(每一个端口都一个PC)等概念,目的就在于通过构造一棵自然树的方法达到裁剪冗余环路的目的,同时实现链路备份和路径最优化

根桥就是标识号最小的网桥

STP的目标

对于每一个网桥,他可以找到一个从它到根桥的最短路径,最短路径对应的那个网桥的端口成为根端口(R PORT)。

对于每一个LAN,由一个指定端口(D PORT)代理他,从这个LAN有一个最短路径到达根桥

最终把不是D PORT 和R PORT的端口都给block掉,即某一个LAN与它的连线断掉,这样就形成了一个生成树。(这样就可以解决回路的问题)

STP工作:

1.当路由器打开的时候,所有的端口都处于Listening状态,每个网桥都会认为自己是根网桥,然后都每隔两秒就向外发送一次自己的BPDU,如果收 到的BPDU的BID比自己的小,则停止转发自己的BPDU,开始转发更优的BPDU,如果比自己的BID大或者和自己的BID相等,则丢弃该BPDU。 等到都扩散完毕之后开始各项的选举,这时候每个BID最小的网桥成了根网桥,各个网桥通过收到的BPDU来确定根端口和指定端口。首先看COST值,然后 再看邻居的BID,再然后看对端端口的PID,指定端口也首先看COST,然后看两端网桥的BID。剩下的成为非指定端口,转到blocking状态。这 个状态总共持续15s(转发延迟),之后进入learning状态。

2.进入Learning状态之后,填写MAC地址表,经过15s(转发延迟)之后进入Forwarding状态。

3.进入Forwarding状态之后,开始转发数据,并且同时接受转发来自于根的BPDU,维护拓扑。这时只有根网桥发BPDU,其他网桥都只是转发BPDU。

4.当一个新的网桥加入的时候,端口状态是Learning,新的交换机认为自己是根网桥开始发送BPDU,也接收对端的BPDU,然后进行进行进一步的竞 选,若竞选成功,则网络格局就重新变化了,造成网络断开,若竞选失败则计算根端口指定端口和非指定端口。(30s可以完成)

如果其中里面有网桥断掉,或者有LAN断掉。如果有端口他定期收不到根桥的BPDU,他就会TIME OUT,把原来block的PORT给叫起来,改变一下生成树的结构。

如果坏掉太厉害了,可能会分成几个部分的spanning tree,几个结构只能在一个BLAN中互相通信,有些主机就不能通信了。

网桥 以及 IEEE802.1D 生成树协议的更多相关文章

  1. STP-1-802.1D生成树协议及改进

    第一个 IEEE 标准化的STP也常称为“ 传统”STP,最初在802. 1D中进行了描述. 之后得到了改进,发布在所谓的修正案中:快速 STP( RSTP),在修正案802. 1w 中描述了它的标准 ...

  2. 生成树协议stp

    生成树协议应用的原因是从逻辑上阻塞交换机在物理上形成的环路.大家都知道交换机工作在二层,也就是数据链路层,根据mac地址识别主机,对三层网络无法识别,因此交换机不能隔离广播.但是在日常的工作中,为了达 ...

  3. STP 生成树协议 RSTP 快速生成树

    STP(Spanning Tree Protocol)是生成树协议的英文缩写 该协议可应用于在网络中建立树形拓扑,消除网络中的环路,并且可以通过一定的方法实现路径冗余,但不是一定可以实现路径冗余.生成 ...

  4. s4-7 生成树协议

    Spanning Tree :为了可靠,采用冗余结构:但是透明网桥 会产生无休止循环的问题 冗余交换拓扑可能带来的问题  广播风暴  多帧传送  MAC地址库不稳定 生成树协议  STP:sp ...

  5. STP:生成树协议解决网络冗余问题

    STP(Spanning Tree Protocol)是生成树协议的英文缩写,可应用于计算机网络中树形拓扑结构建立,主要作用是防止网桥网络中的冗余链路形成环路工作.但某些特定因素会导致STP失败,要排 ...

  6. 第2层交换和生成树协议(STP)__第2层的3种交换功能

    地址学习(Address Learning):第2层交换机和网桥能够记住在一个接口上所收到的每个帧的源设备硬件地址,而且它们会将这个硬件地址信息输入到被称为转发/过滤表的MAC数据库中. 转发/过滤决 ...

  7. 生成树协议(STP)

    一.交换网络环路的产生 1.广播风暴的形成 2.多帧复制 3.MAC地址表紊乱 二.STP简介 STP-Spanning Tree Protocol(生成树协议) 逻辑上断开环路,防止广播风暴的产生 ...

  8. 生成树协议(STP)的精髓知识

    STP生成树协议   1.STP介绍 2.STP生成树算法 1.STP  -   Spanning tree protocol (生成树协议)是逻辑上断开环路,防止广播风暴的产生.当线路故障,阻塞接口 ...

  9. MSTP-多生成树协议

    多生成树协议MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定义的一种新型生成树协议.简单说来,STP/RSTP是基于端口的,PVST+是基于VLA ...

随机推荐

  1. sqli-labs学习(less-1-less-4)

    学习sqli-labs之前先介绍一些函数,以便于下面的payload看的懂 group_concat函数 将查询出来的多个结果连接成一个字符串结果,用于在一个回显显示多个结果 同理的还有 concat ...

  2. Onvif获取rstp地址GetCapabilities能力时,出现error 4或者52的的解决方法

    在获取Onvi能力soap_call___tds__GetCapabilities的接口中有时候会出现error:4或者52的情况,是因为在soapC.c中用不到extension,所以我们必须得把它 ...

  3. Scala 方法和函数

    package com.bigdata // /** Scala 方法和函数:Scala中既有函数也有方法,大多数情况下我们都可以不去理会他们之间的区别. * * 方法:Scala 中的方法跟 Jav ...

  4. WPF RichTextBox 自定义文字转超链接

    搬运自StackOverflow private void AddHyperlinkText(string linkURL, string linkName, string TextBeforeLin ...

  5. 【转】SVG与HTML、JavaScript的三种调用方式

    原文:https://www.cnblogs.com/guohu/p/5085045.html SVG与HTML.JavaScript的三种调用方式 一.在HTMl中访问SVG的DOM 1 2 3 4 ...

  6. 20155229 2016-2017-2 《Java程序设计》第九周学习总结

    20155229 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBaseConnectivity)即java数据库连接 ...

  7. 2017-2018-2 《网络对抗技术》 20155322 Exp3 免杀原理与实践

    #2017-2018-2 <网络对抗技术> 20155322 Exp3 免杀原理与实践 [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实 ...

  8. 10 ORM 多表操作 查询

    1.子查询:基于对象的跨表查询 def query(request): """ 跨表查询: 1.基于对象查询 2.基于双下划线查询 3.聚合.分组查询 4. F Q 查询 ...

  9. 在Docker中安装和部署MongoDB集群

    此文已由作者袁欢授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在Docker中安装mongodb 采用的mongodb镜像:https://registry.hub.doc ...

  10. python中面向对象_类_对象的概念与定义

    1. 面向对象的概念,面向对象是一种编程思想. 是对现实世界中一类事物的抽象,在编程中可以理解为是一种建立现实世界事物的模型 2.  面向对象和面向过程的区别: 面向过程关注的是完成工作的步骤. 面向 ...