(一)网桥

网桥是一个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. 浏览器与go语言的websocket通信

    简介WebSocket是HTML5一种新的协议.顾名思义,它在服务器和浏览器之间建立了全双工通信. 需求背景区块链测试系统web前端平台需要动态接收后端发送的状态信息改变一次测试session过程的状 ...

  2. SAP函数 CS_WHERE_USED_MAT 反查上层BOM

    遇到用户要根据下层物料反查最上层BOM物料是什么. 试了一下,通过函数 CS_WHERE_USED_MAT 来查询,但是只能往上查询一层,类似事务码CS15的效果.如果要找最上层物料,需要自己写迭代进 ...

  3. 20155222 c语言实现pwd命令

    20155222 c语言实现linux的pwd命令 1.学习pwd命令在Linux层次结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录.然 ...

  4. Noip前的大抱佛脚----考场配置

    (global-linum-mode t) (global-set-key (kbd "RET") 'newline-and-indent) (setq default-tab-w ...

  5. 【HNOI2014】画框

    题面 题解 这又是一种套路啊233 将\(\sum a_i\)和\(\sum b_i\)分别看做\(x\)和\(y\),投射到平面直角坐标系中,于是就是找\(xy\)最小的点 于是可以先找出\(x\) ...

  6. Redis学习之路(一)之缓存知识体系

    转自:https://www.unixhot.com/page/cache 缓存分层 缓存分级 内容 内容简介/主要技术关键词 用户层 DNS 浏览器DNS缓存 Firefox默认60秒,HTML5的 ...

  7. 洛咕 P2465 [SDOI2008]山贼集团

    裸的状压dp. 设f[i][j]表示在i字数内放j集合的分部,直接sb转移. // luogu-judger-enable-o2 #include<bits/stdc++.h> #defi ...

  8. GDC快讯,腾讯CMatrix布局云游戏B端领域

    2019年3月20日-22日, GDC游戏开发者大会(Game Developers Conference,以下简称GDC)于旧金山召开.每年的GDC大会上,来自世界各地,数以万计的游戏开发者们都会分 ...

  9. 自动化jenkins报:ModuleNotFoundError: No module named 'common'

    直接执行脚本是没有问题,报如下错误: 你已经在run.py脚本加路径了为什么还会报这个错呢,就是你加的路径,应该在所有的包上面,才不会报这个错,如下: 注:以下是我的解决方法仅作参考.如果我的发表的内 ...

  10. Python+Selenium UI自动化测试环境搭建及使用

    一什么是Selenium ? Selenium 是一个浏览器自动化测试框架,它主要用于web应用程序的自动化测试,其主要特点如下:开源.免费:多平台.浏览器.多语言支持:对web页面有良好的支持:AP ...