加入收藏 | 设为首页 | 会员中心 | 我要投稿 济宁站长网 (https://www.0537zz.cn/)- 行业智能、边缘计算、专有云、AI硬件、5G!
当前位置: 首页 > 站长资讯 > 动态 > 正文

华为云三款重磅新品C位亮相

发布时间:2021-02-13 14:47:45 所属栏目:动态 来源:互联网
导读:在图10-9中给出了一个带有冗余拓扑(交换环路)的交换式网络。如果不在网络中采取一些2层协议机制来阻止网络环路,此网络就会遇到前面所讨论过的问题:广播风暴、多帧复制以及MAC表不稳定。 2. 警告 警告:应该注意,图10-9 中的网络在不使用STP的情况下有时也是

在图10-9中给出了一个带有冗余拓扑(交换环路)的交换式网络。如果不在网络中采取一些2层协议机制来阻止网络环路,此网络就会遇到前面所讨论过的问题:广播风暴、多帧复制以及MAC表不稳定。

2. 警告

警告:应该注意,图10-9 中的网络在不使用STP的情况下有时也是可以运行的,当然它工作起来会非常地缓慢。这个示例清楚地展示了交换环路所能造成的危害。最糟糕的是,一旦网络运转起来,要想找出问题的根源会超級困难!

二、生成树术语

在详细描述STP在网络中的运行机制之前,我们首先来学习一些基本概念和术语,并且还要掌握。这些内容与第2层交换式网络的关联。

(1) 根桥:根桥是指拥有最佳桥 ID的网桥。对于STP来说,关键就是要为网络中所有的交换机推选出一个根桥,并使根桥成为该网络中最重要的点。而网络中所有其他决策一比如哪个端需要阻塞以及哪个端口需要配置为转发模式——都需要基于与根桥的关系进行选择。一旦网络中的根桥被选举出来,所有其他的网桥都需要确定一个通往根桥的单一路径。通往根桥的最佳路径上的端口就被称为根端口。

(2) BPDU:指网络中所有交换机都需要 相互交换的、用于根交换机选举的信息,这些信息也会用于网络的后续配置。每台交换机都会对桥协议数据单元(BPDU)内的参数进行比较,并将从邻居收到的BPDU放人自己的BPDU中,然后再将其传送给其他邻居。

(3) 桥ID:STP使用桥ID跟踪网络中的所有交换机。桥ID由桥优先级(默认情况下所有思科交换机的优先级都为32 768)和桥MAC地址共同决定。在网络中拥有最小桥ID的网桥将成为根桥。

(4) 非根桥:指除了根桥外的所有网桥。非根桥会与所有的网桥交换BPDU,并在所有交换机上更新STP拓扑数据库,以防止环路并对链路失效提供保障措施。

(5) 端口开销:当两台交换机间存在多条链路时,端口开销用于确定最佳路径。一条链路的开销取决于链路的带宽。

(6) 根端口 :根端口是指与根桥直接相连的链路所在的端口,或者是通往根桥路径开销最低的端口。如果存在连接到根桥的多条链路,那么只有检查每条链路的带寬才能确定根端口,此时最低开销的端口是根端口。如果上行的多台交换机开销均相同,那么就使用带有较低通告的桥ID的那个桥。当多条链路连接到同一台设备时,就使用上行交换机上连接到最低端口号的端口。

(7) 指定端口:指定端口是专门指定的,通过其根端口到达根桥开销最低的端口。指定端口会被标记为转发端口。

(8) 非指定端口:非指定端口是指开销比指定端口高的端口。确定根端口和指定端口后剩下的端口就是非指定端口。非指定端口将被设置为阻塞状态,不能进行转发。

(9) 转发端口:转发端口指能够进行数据帧转发的端口, 它可以是根端口或指定端口。

(10) 阻塞端口:阻塞端口是指不能转发帧的端口, 设置阻塞端口是为了避免环路。然而,阻塞端口会始终监听BPDU帧并丢弃其他所有帧。

三、生成树的操作

正如前面所讲的,STP 的任务就是要找出网络中所有的链路,关闭任何冗余链路,从而阻止网络环路的出现。

为了做到这一点,STP 首先选举一个根桥, 根桥可以通过所有的端口完成对数据的转发,并且它是该STP域中所有设备的参考点。一旦所有的交换机都同意将某台交换机选为根桥,每个网桥就必须找出属于它自己的一个并且也是唯一个分派的根端口。任意两台交换机之间的链路必须要有一个而且只能有一个指定端口,该端口位于能够提供到根桥最大带寬的链路上。

注意, 一个网桥可以通过多个其他网桥到达根桥,也就是说这一路径可能不是最短路径,但一定是最快(具有最大带寬)路径,这一点很重要。

 

框架设计

框架设计是基于造轮子的需求场景下的路径。它包含了:

  • 抽象。语言如何进行抽象
    • 支持 OO。
    • 不支持 OO。如何使用诸如于 Rust Trait 完成类似的工作
  • 语言无关。如何进行跨语言的设计支持。如:
    • 语言无关的数据格式。
  • 模块化开发。如何完成跨团队、跨业务模块的代码、服务共享。
  • 包管理/依赖管理。如如何构建,并发布到制品仓库,实现复用。

框架设计从理论上来说是稍微复杂一些。至于有没有必要,就看你想学习到什么程度了。

语言练习

语言练习是《如何同时学会两门编程语言?》模式之下的一种路径方式,相对会陡峭一下。

  1. 编写其它语言/DSL 的解析器。
  2. 使用其它语言编写该语言的解析器。
  3. 使用该语言解析该语言。

嗯,是不是有点意思了。从场景上来说,当我们拿到了一个语言的 AST,然后就可以尝试去做一些高端的事情。如我在 Coca 里做的自动化重构、架构可视化等等。

领域特定编程

领域特定编程是在该语言擅长的场景下,做该语言擅长的事情。如 Rust 里的

  1. 跨平台
  2. WASM
  3. 一门应用跨端运行
  4. 系统级编程
  • 结合系统接口,如获取用户输入,并修改输出。

这依赖于我们识别场景,并知晓出什么时候才是合适的场合。

其它

没有银弹,如果有的话,那就不需要人类了。


(编辑:济宁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读