posts - 63, comments - 37, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 ::  :: 管理

以太网交换原理

Posted on 2006-07-02 17:00 Enjoy Life 阅读(2030) 评论(1)  编辑 收藏 引用 所属分类: 交换与路由

以太网交换原理

本文力求阐明以太网交换原理,并对相关知识作以介绍。

1           以太网交换机相关概念

1.1          传统的电话交换技术

交换概念始于电话交换。传统电话网由传输电路与电话交换机组成,处于网络节点的交换机完成对传输链路的选路与连接。一次长途通话往往要经过发端局、转接局(汇接局)和收端局才能完成。在通话前,电话交换机根据信令将分段的传输链路连接起来,从而形成一条从主叫到被叫的通话电路,通话结束后根据信令拆除这条通路,这种交换方式称为电路交换方式。电路交换的优点是延时小,实时性好;缺点是通话期间主、被叫间的物理电路被该次呼叫所独占,电路利用率低。

1.2          传统的数据交换技术

数据通信对实时性要求不高,故数据通信存在多种交换方式,最早的数据通信是利用已有的电话网加调制解调器完成,这种数据交换方式仍是电路交换方式。现在常见的数据交换方式有数据报方式和分组方式

数据报(报文)交换采用存储/转发方式 。网络节点设备先将途经的数据报完全接收并储存,然后根据数据报所附的目的地址,选择一条合适的传输链路将该数据报发送出去。报文交换不像电路交换,无需预先为通信双方建立一条专用的电路,因此就不存在建立和拆除电路的过程。由于数据报的传送采用接力方式,任何时刻数据报只占用节点间的一条链路,因而提高了传输效率,但这也造成了报文交换的延时非常大,故主要用在电报交换中。

分组交换和数据报交换一样。也采用存储/转发方式,但不像数据报交换是以整个数据报为单位进行传输,而是将用户要发送的数据报分割为定长的一个个数据分组(包),并附上目的地址(或标记),按顺序送分组交换网发送,分组交换可以采用两种不同方式来处理这些分组。

1 )报文传输分组交换

报文传输分组交换与报文交换相似,只是将每一分组都当成一个小报文来独立处理,故报文传输分组交换中每个分组均带有目的地址。网络节点设备对每个分组都要根据网络拓扑和链路负荷情况进行路由选择,因链路负荷是动态的,故一个数据报所包含的各分组,可能通过不同途径到达目的地,分组到达终端的顺序也有可能被打乱,这时要求目的节点或终端负责将分组重新排序、组装为报文。

2 )虚(逻辑)电路传输分组交换

虚电路传输分组交换要求在发送某一群分组前,建立一条双方终端间的虚电路。一旦虚电路建立后,属同一数据报的所有分组均沿这条虚电路传输,通信结束后拆除该虚电路。通过拨号建立的虚电路称为交换型虚电路( SVC );固定连接的虚电路则称为永久型虚电路( PVC )。

虚电路传输分组交换类似电路交换,虚电路传输分组交换通过节点交换机将一段段虚链路连接起来形成一条收发终端间的虚电路。虚电路的 字意味着只有传送分组时才占有物理电路,不传时则让给别的用户使用。这样在一条物理电路上用统计复用方式可同时建立若干条虚电路,提高了线路的利用率。

电路交换与虚电路交换十分相似,都需要在通信前建立一条端到端的物理电路或虚电路,结束通信后拆除这条电路,这种交换方式称为面向连接的交换方式。面向连接的交换方式往往需要在相关连的一群分组头上附加一个标记,节点设备根据该标记进行交换接续。

在报文交换与报文传输分组交换中,交换途经的每个节点需要根据数据报或分组的目的地址重新寻找最佳路由,通信双方在端对端之间并不存在物理或逻辑上的连接。因此也常将报文交换和报文传输分组交换称为面向非连接的交换方式。为了与面向连接的节点交换设备相区别,一般将面向无连接的节点设备称为路由器。

1.3          基于 OSI 参考模型的分层交换机

根据国际标准化组织( ISO )提出了开放系统互联参考模型( OSI-RM )。 OSI 的下四层(物理层、链路层、网络层和传输层)为通信层。通信层可根据层间通信协议进行计算机子网间的连接。从交换就是选路与连接的概念引出了 1 4 层交换的新概念。

1 )一层、二层交换机

OSI 参考模型的第一层为物理层。该层建立在通信物理媒体上,故能够提供物理连接的交换机应为一层交换机,传统的电路交换属一层交换范畴

OSI 参考模型的第二层为链路层。第二层的链路是建立在第一层物理电路基础上的逻辑链路,故按照链路层通信协议提供逻辑(虚)电路连接的交换机为二层交换机。建立在物理( MAC )地址基础上面向连接的分组交换属第二层交换范畴。二层交换机包括 X.25 、帧中继、以太网、 ATM 等节点交换机。

局域网交换机是一种第二层网络设备,它可理解网络协议的第二层如 MAC 地址等。交换机在操作过程中不断的收集资料去建立它本身的地址表,这个表相当简单,主要标明某个 MAC 地址是在哪个端口上被发现的,所以当交换机接收到一个数据封包时,它会检查该封包的目的 MAC 地址 ,核对一下自己的地址表以决定从哪个端口发送出去。而不是象 HUB 那样,任何一个发方数据都会出现在 HUB 的所有端口上 ( 不管是否为你所需 )

局域网交换机的引入,使得网络站点间可独享带宽,消除了无谓的碰撞检测和出错重发,提高了传输效率,在交换机中可并行的维护几个独立的、互不影响的通信进程。在交换网络环境下,用户信息只在源节点与目的节点之间进行传送,其他节点是不可见的。但有一点例外,当某一节点在网上发送广播或多目广播时,或某一节点发送了一个交换机不认识的 MAC 地址封包时,交换机上的所有节点都将收到这一广播信息。不过,一般情况下,交换机提供基于端口的源地址锁定功能,交换机不认识的 MAC 地址封包不会发送到一个源地址锁定的端口。

多个交换机互连 ( 堆叠 ) 形成了一个大的局域网,但不能有效的划分子网。广播风暴会使网络的效率大打折扣。交换机的速度实在快,比路由器快的多,而且价格便宜的多。但第二层交换也暴露出弱点:对广播风暴,异种网络互连,安全性控制等不能有效的解决。因此产生了交换机上的虚拟网技术。

事实上一个虚拟网就是一个广播域。为了避免在大型交换机上进行的广播所引起的广播风暴,可将其进一步划分为多个虚拟网。在一个虚拟网内,由一个工作站发出的信息只能发送到具有相同虚拟网号的其他站点。其它虚拟网的成员收不到这些信息或广播帧。

随着应用的升级,网络规划 / 实施者可根据情况在交换式局域网环境下将用户划分在不同虚拟网上。但是虚拟网之间通信是不允许的,这也包括地址解析 (ARP) 封包。要想通信就需要用路由器桥接这些虚拟网。这就是虚拟网的问题:不用路由器是嫌它慢,用交换器速度快但不能解决广播风暴问题,在交换器中采用虚拟网技术可以解决广播风暴问题,但又必须放置路由器来实现虚拟网之间的互通。

2 )三层路由器

在计算机异构子网间,需要有工作在第三层的路由器进行第二层协议的转换与第三层协议的处理。计算机同构子网的范围受到广播风暴的限制,需将广播域分割成若干部分,并采用路由器将多个同构子网连成一个大网。目前,国际上最大的互联网为 Internet 网( IP 网),该网的一、二层可以是任何物理媒质与计算机网络,而第三层统一采用 IP 协议。 IP 面向无连接,每个 IP 包都附有目的地址( IP 地址),路由器需要对每个 IP 包独立选路。节点路由器并不对节点间提供物理上或逻辑上的连接,故工作在第三层的传统节点设备称为路由器而不称为第三层交换机。

路由器的主要功能是实现路由选择与网络互连 ,即通过一定途径获知子网的拓扑信息与各物理线路的网络特性,并通过一定的路由算法获得达到各子网的最佳路径,建立相应路由表,从而将每个 IP 包跳到跳( hop to hop )传到目的地,其次它必须处理不同的链路协议。 IP 包途经每个路由器时,需经过排队、协议处理、寻址选路等软件处理环节,造成延时加大。同时路由器采用共享总线方式,总的吞吐量受限,当用户数量增加时,每个用户的接人速率降低。

3 )三层交换机(多层交换机)

在网络系统集成的技术中,直接面向用户的第一层接口和第二层交换技术方面已得到令人满意的答案。但是,作为网络核心、起到网间互连作用的路由器技术却没有质的突破。传统的路由器基于软件,协议复杂,与局域网速度相比,其数据传输的效率较低。但同时它又作为网段 ( 子网,虚拟网 ) 互连的枢纽,这就使传统的路由器技术面临严峻的挑战。随着 Internet/Intranet 的迅猛发展和 B/S( 浏览器 / 服务器 ) 计算模式的广泛应用,跨地域、跨网络的业务急剧增长,业界和用户深感传统的路由器在网络中的瓶颈效应。改进传统的路由技术迫在眉睫。在这种情况下,一种新的路由技术应运而生,这就是第三层交换技术:说它是路由器,因为它可操作在网络协议的第三层,是一种路由理解设备并可起到路由决定的作用;说它是交换器,是因为它的速度极快,几乎达到第二层交换的速度。

一个具有第三层交换功能的设备是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单的把路由器设备的硬件及软件简单地叠加在局域网交换机上。

如果利用三层交换机连接不同的以太网子网,实际的操作比较简单。

假设两个使用 IP 协议的站点通过第三层交换机进行通信的过程,发送站点 A 在开始发送时,已知目的站的 IP 地址,但尚不知道在局域网上发送所需要的 MAC 地址。要采用地址解析 (ARP) 来确定目的站的 MAC 地址。发送站把自己的 IP 地址与目的站的 IP 地址比较,采用其软件中配置的子网掩码提取出网络地址来确定目的站是否与自己在同一子网内。若目的站 B 与发送站 A 在同一子网内, A 广播一个 ARP 请求, B 返回其 MAC 地址, A 得到目的站点 B MAC 地址后将这一地址缓存起来,并用此 MAC 地址封包转发数据,第二层交换模块查找 MAC 地址表确定将数据包发向目的端口。若两个站点不在同一子网内,如发送站 A 要与目的站 C 通信,发送站 A 要向 " 缺省网关 " 发出 ARP( 地址解析 ) 封包,而 " 缺省网关 " IP 地址已经在系统软件中设置。这个 IP 地址实际上对应第三层交换机的第三层交换模块。所以当发送站 A " 缺省网关 " IP 地址广播出一个 ARP 请求时,若第三层交换模块在以往的通信过程中已得到目的站 B MAC 地址,则向发送站 A 回复 B MAC 地址;否则第三层交换模块根据路由信息向目的站广播一个 ARP 请求,目的站 C 得到此 ARP 请求后向第三层交换模块回复其 MAC 地址,第三层交换模块保存此地址并回复给发送站 A 。以后,当再进行 A C 之间数据包转发时,将用最终的目的站点的 MAC 地址封包,数据转发过程全部交给第二层交换处理,信息得以高速交换。其指导思想为:一次路由,随后交换。而传统的路由器对每一个数据包都进行拆包、打包的操作,限制了系统的带宽。

在此,第三层交换具有以下突出特点:有机的硬件结合使得数据交换加速;优化的路由软件使得路由过程效率提高;除了必要的路由决定过程外,大部分数据转发过程由第二层交换处理;多个子网互连时只是与第三层交换模块的逻辑连接,不象传统的外接路由器那样需增加端口,保护了用户的投资。

当第三层交换用于异构子网之间的连接时,操作就要复杂得多,主要是涉及到不同链路层协议的转换。在此,第三层均使用 IP 协议,交换机对于接收到的任何一个数据包 ( 包括广播包在内 ) ,都要将该数据包第二层 ( 数据链路层 ) 的信息去掉,得到一个 IP 的数据包,再根据 IP 地址进行从源端到目的端的交换,到达目的端后,再根据目的端的链路层协议打包。比较耗费资源的链路层拆包、打包工作可以由 ASIC 电路完成。

标记交换 tag switching )是 Cisco 公司提出的一种多层交换技术。标记交换将二层交换与三层路由相结合,是一种 IP 包的高速转发技术。标记交换包含控制部分和转发部分。其控制功能由工作在三层的网络边缘路由器完成;转发功能则由一种简单的标记交换机完成。边缘路由器在 IP 流到达时完成对一组 IP 包最佳路由路径的选择和标记的捆绑。

标记交换工作过程是:系统边缘路由器将输入链路帧的 IP 地址映射为简单的标记,然后将帧转化为捆绑了标记的 ATM 信元并送入核心网络,在网络核心由支持标记交换的 ATM 交换机进行标记交换,当消息传到目的地边缘路由器后,去掉信息中的标记,将 ATM 信元转换为帧,继续送接收者。

标记交换采用定长、短小的标记作为索引,简化了转发过程,使转发过程可以直接由硬件实现,其转发速率和吞吐量远高于传统的路由器。

IP 交换 IP Switch )是 Ipsilon 公司提出的另一种多层交换技术。 IP 交换根据 IP 流的业务特征(即端口号),对不同业务的 IP 流采用不同的路由方式。对持续时间长的 IP 流,如 HTTP (超文本传输协议)、 FTP (文件传输协议)等在 ATM 交换机中直接交换;而对业务量小、持续时间短的 IP 流,如 DNS (域名业务)等则采用跳到跳的路由器传递方式,省去了 ATM 连接的附加开销,提高了短 IP 流的传输效率。 IP 交换机同时具有交换和路由两种功能,亦称为交换路由器。

4 )四层交换机

最近,某些网络公司宣称其交换机产品具有四层交换功能。对四层交换的说法目前颇有争议。 OSI 参考模型第四层为传输层, Internet 网上的传输层协议为 TCP 协议。 TCP 协议运行在 IP 协议之上,是面向连接的协议。而 IP 协议是面向无连接,不提供重发、顺序控制、确认等功能,因此 Internet 网的可靠性管理、流量控制、顺序控制等任务都需要 TCP 完成。 Internet 网中的二层交换机和传统路由器将 TCP 报作为透明传输的协议数据单元( PDU )而不作任何处理,故 TCP 面向端对端的连接。在出现四层交换之前, TCP 的处理一般由主机完成。 TCP 的作用是在终端中完成对 IP 流的重发、排序等处理,以便形成一份份完整的 IP 报文上交应用层。

随着一些大型计算机网络的出现,联网设备逐步增多,例如有可能在同一 IP 地址下使用多台服务器代替一台服务器, 这就要求交换机具有向多个联网设备分配负荷的智能交换的能力。二、三层交换机是无能为力的。从均匀负荷出发,某些文章提出了四层交换的概念,实际上,四层即 TCP 层,交换即选路与连接。从层间交换的基本概念出发,四层交换机可以理解为利用 TCP 协议对相同 IP 地址的多个网络终端进行选路与连接的智能交换设备

TCP 报头中为应用层协议如 FTP Telnet HTTP 等规定了整数标识符的端口号,并具有识别应用数据流会话始与终的 “SYN FIN” 标志位。利用端口号与应用会话标志位,四层交换完全有能力从 IP 流中区分出各种业务类型的每一次会话。这样四层交换就可做到根据用户制定的接入规则,将各类业务的 IP 报文均匀分配到各联网设备上。

基于端口地址完成端对端连接的四层交换除了可以做到均匀负荷外,还可对各种应用数据流提供流量控制、带宽分配、优先级处理、安全授权等,以保证端到端数据通信的服务质量( QoS )。

1.4          虚拟局域网

所谓虚拟就是物理上不存在,而被认为或设定成存在。在计算机的各个领域中,无论是科学、工业和商业,近年来 虚拟 这一词已经越来越广泛地被应用了,如 虚拟存储 虚拟功能 虚拟网络 虚拟计算机 等等。 虚拟 这一词是从英语 “virtual” 翻译过来的,在计算机领域内,所谓的虚拟系统除了必要的硬件外,更重要的是往往通过软件或固化了的软件即固件来实现的。

1.4.1           什么是虚拟网络

由于计算机网络的普遍存在,网上用户数逐年增加,网络规模不断扩大;微电子技术的发展,计算机、工作站与服务器的性能提高,大量的应用程序需要越来越多的带宽; CAD CAM 群件的使用,使许多人员可同时在不同地点共同完成一个项目,新的应用不断涌现出来,消除瓶颈、增加带宽、降低时延的要求逐渐突出。

一个机构的调整、人事的调动、必然引起设备和人员的移动,这会迫使网络改变物理连接。同时网络管理人员还要重新对网络进行配置,增加了网络管理的复杂性。经常有某些特别工作组为了特别的项目建立,完成任务后就解散,工作组的成员可以相距甚远,可是需要共享数据库并协作作业,如同在一个局域网上一样。据统计,在一大型企业中,由于人员调动和调整,每年有大约 40 %的终端用户需要改变一次网络配置,因此需要寻找一种方法,既能满足用户对带宽的要求,又能提供灵活的连接,虚拟网络技术应运而生。

虚拟局域网( VLAN )与传统的网络一样,也是由一个物理网络组成,它之所以 ,是因为同一虚网内的用户不一定都连接在同一物理网段上,就是说同一虚网内的用户可以在同一大楼不同的办公室内,也可以在不同的大楼内甚至可以在不同城市工作。是通过软件依照一定的规则动态地建立的,不依赖于物理位置的逻辑工作组的互连体系。

1.4.2           VLAN 的模型、特点与基础

1.4.2.1         VLAN 的模型

一个 VLAN 就是一个逻辑工作组,是一个独立的广播域 ,不管它是定义在一个局域网交换机上还是分布在不同局域网交换机上。信息在同一虚网内像在一个独立网段内交换。交换机支持按端口, IP 地址和协议定义 VLAN 的功能,因此,虚拟网络按基于应用和管理策略定义, VLAN 之间的信息路由采用分布式路由方案,由交换机提供的路由功能实现。

1.4.2.2         VLAN 技术特点

1 VLAN 的覆盖范围不受距离限制。例如 10Base-T 以太网集线器与站点之间的传输距离为 100m ,而 VLAN 的站点可位于城市的不同区域,或不同省份。

2 VLAN 建立在交换网络的基础之上,交换设备包括以太网交换机、 ATM 交换机、宽带路由器等。

3 VLAN 属于 OSI 参考模型中的第 2 层(数据链路层)技术,能充分发挥网络的优势,体现交换网络高速、灵活、易管理等特性, VLAN 是交换网络的灵魂。

4 VLAN 较普通网络有更好的网络安全性。在普通共享式网络中,安全性很难保证,因为用户只要插入到一个活动端口就能访问网段,产生广播风暴。而 VLAN 能有效地防止网络的广播风暴。

5 )借助于网络管理软件,网络管理者能轻松地配置和构建逻辑 VLAN ,避免了构建复杂而昂贵的物理网络,降低网络建设成本。

1.4.2.3         交换是实现 VLAN 的基础

为扩展网络达到网间互连的目的,产生了交换机。交换机主要用于 ISO 开放系统互连模型的第 2 层,即数据链路层,通过交换将整个网络连接成一个平面图,而且这个平台可以扩展。不论这个逻辑子网有多大,交换机都能提供子网内部终端之间的连接和通信。交换器的每个端口各连一个共享式的网段,网段之间的通信通过交换机实现。在交换机内具有一个由单播地址( MAC 地址)、网络设备接口以及交换机端口组成的 1-1-1 映射列表。 进一步而言,通过对交换机适当配置后,就有可能把某些网点限制在某些特定的端口上,也可将 HUB 上任何一个端口分配到某个网段上,在物理上不需要作任何实际的改动工作,就可容易地将某个工作组的某个工作站,从逻辑上划分到另外一个部门的工作组中。于是,一个实际意义的虚网就此在交换机体系架构内产生。

通过 802.ID 生成树协议的计算和正常交换操作,交换机自动隔离单播数据流设置完交换机内特定的多播过滤表后,真正的标准 VLAN 得以创建。国际标准的 VLAN 协议 IEEE802.1Q 经过几年的修改已经成熟起来,各厂商在新一代的交换机中增加了对它的支持,使得 VLAN 技术迅速推广应用。

因此,正是由于交换技术的出现,才使 VLAN 技术得以实现,而 VLAN 技术对网络的发展又起着举足轻重的作用。

1.4.3           VALN 划分方式

VLAN 的划分方式大致分成以下几种。

1.4.3.1         基于端口的划分

在此模式中, VLAN 是交换机端口的集合。把同一个交换机的端口分成若干组,每组构成一个 VLAN ,每一组相当于一个交换机,该交换机允许的最多的 VLAN 数目等于交换机的端口数。它不允许一个端口配置多个 VLAN

VLAN 的第二层桥接网络是建立在每个交换机上,第二代端口 VLAN 技术允许跨越多个交换机的多个端口划分 VLAN ,通过交换机互连链路实现跨交换机的虚拟网技术,不同的交换机上的若干个端口可以组成一个 VLAN 。这样做的缺点是极大地浪费昂贵的交换机端口。

按交换机端口划分虚拟网络成员,其配置过程简单明了,是最常用的一种方式。

1.4.3.2         MAC 地址定义

这是按设备的源地址来划分。 MAC 地址是捆绑在网络接口卡上的,所以这种形式的 VLAN 运行用户从一个物理位置移动另一个物理位置,不需要作任何设置就可连入原来的 VLAN ,这种方式独立于网络的高层协议。利用 MAC 地址定义 VLAN 可以看成是基于用户的网络划分手段。这种方法的缺点是所有的用户都必须明确地分配给一个 VLAN ,对于在网络用户多的大型网络中,要求网络管理员把每个用户都一一划分到某个 VLAN ,这实在是困难的,也是不必要的。

1.4.3.3         基于网络层的虚拟网络

按照网络所使用的协议或网络层地址来确定 VLAN 的成员。这种划分方式的好处有: 按传输协议划分网段,特别适合于针对具体应用和服务来组织用户成立虚拟网络的情况。 用户可以在网络内部自由移动而不用重新配置自己的工作站。 这种类型的 VLAN 可以减少由于协议转换而造成的网络延迟。

1.4.3.4         通过 IP 广播组划分

它是指任何属于同一 IP 广播组的网站都属于同一 VLAN 。当 IP 信息包广播到网络上时,它将被传送到一组 IP 地址的受托者那里,任何一个工作站,只要它对该广播信息予以肯定的回答,就会成为该广播组的成员,视为同一虚拟网络的成员,进行面向连接的通信。这种方式能带来巨大的灵活性和可延展性,实现了 VLAN 间的快速、有效的信息交换。

1.5          Spanning Tree

Spanning Tree 是一个维持多网桥和交换机的标准化机制, 支持 IEEE 802.1d 标准,可协调冲突的网桥和交换器。靠自学习了解网桥两边的信息。当网络拓扑结构改变或发生故障时可自动、透明地重新配置网桥和交换器并建立冗余的备份链接。

1. 冗余网桥连接。
用网桥(或交换机,后代称二层设备)连接两个(这里简化,只讨论两个。多个等同)网段,可分割碰撞,提高媒介使用率。同时,我们希望用两个或更多的网桥连接两个网段,以做到当某个网桥发生故障时,网络连接不致中断,那就用下图的方法:

…………..|---------------Port 1--Bridge1--Port 2-------------|
A ………..|Segment1---Port 1--Bridge2--Port 2-------------| ………….B.Segment2

 

主机 A 属于 Segment1 ,主机 B 属于 Segment2, 两个 Segment 之间用两个网桥 Bridge1 Bridge2 连接。

2. 冗余网桥带来的问题。

如果 Bridge1 Bridge2 都工作,那就会出现这样的问题了。假设所有设备的 ARP 表都是空的。

1) A B 发数据,发出一个 ARP 请求。

2) Bridge1 Port1 收到了这个 ARP 请求,一看 ARP 列表,是空的,于是记录下 A Segment1 ,并将该数据包转发到 Segment2 上。

3) 假设 Bridge2 稍慢些收到了 A ARP 请求,一看 ARP 列表,也是空的,于是记录下 A Segment1 ,并将该数据包转发到 Segment2 上。

4) Bridge1 转发到 Segment2 上的数据包被 Bridge2 Port2 看到了,由于数据包上的源 MAC A 的,又是在 Segment2 上被发现的,所以对照旧的 ARP 列表(上面写的 A Segment1 上), Bridge2 认为, A 已经被转移到了 Segment2 上,于是更新 ARP 表,标记 A Segment2 上,并将该数据包转发到 Port1 ,也就是 Segment1 上。

5) 稍晚一些,在第 3 步被 Bridge2 转发到 Segment2 上的数据包被 Bridge1 Port2 收到了,它也做了如第 4 Bridge2 所做的判断,于是, Bridge1 也将 A MAC 记录到 Segment2 上,并将数据包向 Port1 Segment1 上转发。

6) 好,数据包到了 Segment1 ,又做相同运动,回到 Segment2 ,于是两个网桥什么也不做,就只转发这个包,并不断地更新自己的 ARP 表,网络瘫痪。

3. 解决方法。

冗余网桥要做到冗余备份,看样子简单的乘二是不行的了。刚才广播风暴的形成,主要原因是网桥的 ARP 更新机制,但这是网桥的根本,是不能改的,所以,我们希望两个网桥中,只有一个是工作的( Active ),而备份的网桥不参与数据包转发( Forwarding ),就可以避免循环了。

Spanning Tree 的引入

4. Spanning Tree 是数学概念,指任意两点有且只有一条路径连接。就好象树,从根,到干,到枝,到叶,任意两片树叶见只有一条路。那么在 Spanning Tree Protocol 中,首先引入了根( Root )这个概念,和树根一样,它是整个网络拓扑(二层拓扑)的起点。

5. Spanning Tree 的构想。

如果把图一中的 Bridge2 能自动定成热备份,不参与数据包转发,但有监视 Bridge1 的工作状况,当 Bridge1 故障时,能自动代替它的工作,那就能起到我们最初的目的了。

Spanning Tree 的工作原理

7. 网络拓扑如下:
|---B3----|---B1---|---B5---|
|---B4----|---B2---|---B6---|


Seg2----Seg1------Seg3-----Seg4

 

B1, B2 连接 Seg1 Seg3, B3, B4 连接 Seg1 Seg2 ,用 B5, B6 连接 Seg3 Seg4. 每个 B 的左边端口叫 Port1 ,右边的叫 Port2

8. 设计。

通常,管理员把最强壮的网桥设计为根,并放置在网络中央,就如 B1 。次强壮的做为根的备份,与根平行,就如 B2 。需要备份的 Segment 连接,就用两个或更多网桥连接,那么其中一个将成为 Designated Bridge ,也就是工作网桥,而其他的就不转发数据包。

9. 根的选举。

Spanning Tree 根的选举,是网络最开始工作是进行的。通常,管理员将设计的根网桥的 Priority 升高,使它很自然地成为根。网桥开始选举根时,每个网桥都开始广播 BPDU Bridge Protocol Data Unit ),上面有网桥自己的 MAC 地址和 Priority 。当网桥收到别的网桥的 BPDU ,其优先级高于自己的时,就不再发送自己的信息,而是向对面(其他端口)转发该信息。这样,在一定时间后,整个网络就知道谁是跟了。(图中就是 B1 )。

10. Designated Bridge 的选举。

选出根后,根开始发新的 BPDU ,上面包含着每个端口的 Cost 根的每个端口的 Cost 都是 0 ,其他网桥的端口 Cost 都要高与 0 。每个网桥收到根发出的 BPDU 后,就知道根在自己的哪个方向了。比如, B3 知道根在自己的右边,于是,面向根的端口叫 Root Port BPDU 不会向 Root Port 转发的,只向其他方向转发。假如 B3 Port1 (左边端口)的 Cost 20 ,而 B4 Port1 Cost 30 ,那 B3 Segment2 转发的 BPDU cost 就是自己右边 Root Port 收到的 Cost 0 )加上自己左边端口的 Cost 20 ),同时, B4 Segment2 转发的 Cost 0+30=30 。不比不知道,一比吓一跳, B4 Por1 收到 B3 Cost 信息后,就将 Port1 处在 Block 状态,不再转发数据包。同样, B6 Cost 也比 B5 高,那么 B5 将成为 Designated Bridge ,而 B6 处于休息状态。 B2 就更别说了, Port1 Port2 都是 Root Port ,所以它把两端口都 Block 了,并且也知道自己是备份根。好,一段时间后,网络上就选举出了连接各网段的 Designated
Bridge
Spanning Tree 生成了。

11. 故障监测与数的更新

B6 为例, Port2 虽然 Block 了,但一直监测网络状态。根定期发送 BPDU ,各 Designated Bridge 都向非 Root Port 连接的 Segment 转发,以表示自己的工作状态正常。假设 B5 发生故障,在规定时间内(好象是两秒), B6 Port2 没有收到 B5 发出的 BPDU ,它就认为 B5 发生故障,并通过 Root Port 发送数据包(这是唯一从 RootPort 发送的网桥信息包 。)各网桥收到信息包后,都会从 RootPort 转发(假如 B6 Root 间还存在其他网桥的话),直到发送到
Root
Root 收到该信息后,立即发送 BPDU ,让所以网桥都停止工作,(因为此时网络拓扑出错),然后再发 Cost ,让网桥从新计算各端口的 Cost ,生成新树。 BPDU 传到 Segment3 B5 已坏,不能转发 Cost B6 Segment4 转发 Cost=30 ,没人有意见,于是, B6 千年的
媳妇熬成了婆,她是终于翻身做了主人了呀,不容易。网络恢复正常。同样,如果 B2 到时间没有听见 Root 发话,就知道他老人家休息了,会发 BPDU ,一声号令,群雄揭竿而起,逐鹿中原,从新推举 Root ,重复第 9 步。

12. 网桥端口的 5 种状态:

1)      Disabled 。被管理员禁用。

2)      Block 。休息,不参与数据包转发。

3)      Listening 。监听。

4)      Learning 。学习 ARP 信息,准备向工作状态转变。

5)      Forwarding 。正常工作,转发数据包。

13. 整个 Spanning Tree 的定型时间大越为 12 秒。

 

1.6          port mirroring

port mirroring 可以把一个端口的流量(发送或接收的包)做成镜象,使该端口正常工作。同时,你应该用其它的仪器(如分析检测仪)去分析这些包,然后,你可把该仪器插入其它端口,让这个口与目的端口做成镜象。镜象口将复制所有在目的端口传输的包,让仪器去分析。这个使产生镜象端口的作用就称端口镜象( port mirroring )。

1.7          SNMP  

SNMP 是简单网络管理协议 Simple Network Management Protocol 的技术规范。 SNMP 是目前最常用的环境管理协议。 SNMP 工作在用户数据报协议( UDP )上, UDP TCP/IP 协议组中的一部分。最新的版本也支持其它的环境。几乎所有的网络设备生产厂家都实现了对 SNMP 的支持。领导潮流的 SNMP 是一个从网络上的设备收集管理信息的公用通信协议 。设备的管理者收集这些信息并记录在管理信息库( MIB )中。这些信息报告设备的特性、数据吞吐量、通信超载和错误等。 MIB 有公共的格式,所以来自多个厂商的 SNMP 管理工具可以收集 MIB 信息,在管理控制台上呈现给系统管理员。

通过将 SNMP 嵌入数据通信设备,如交换机或集线器中,就可以从一个中心站管理这些设备,并以图形方式查看信息。目前可获取的很多管理应用程序通常可在大多数当前使用的操作系统下运行,如 Windows3.11 Windows95 Windows NT 和不同版本 UNIX 的等。
一个被管理的设备有一个管理代理,它负责向管理站请求信息和动作,代理还可以借助于陷阱为管理站提供站动提供的信息,因此,一些关键的网络设备(如集线器、路由器、交换机等)提供这一管理代理,又称 SNMP 代理,以便通过 SNMP 管理站进行管理。

1.8          RMON

远程监控 RMON 是对 SNMP 功能的扩充,对监测和管理交换或局域网特别有用。开发 RMON 目的是为了提供信息流量的统计结果和对很多网络参数进行分析,以便于综合做出网络故障诊断、规划和性能调谐。
RMON
可以提供 SNMP 管理站和监控代理之间的无缝隙多厂家互操作性,此外,它还可为一组 MIB 提供一个标准,去收集 SNMP 无法得到的、丰富的网络统计信息。 RMON 通过采用功能强大的 " 报警组( Alarm Group " 而实现先期的网络诊断,它允许为关键性的网络参数设置阈值,以便自动地将报警信号传送到中央管理控制台。
完全的 RMON 共有九组: 1. 统计 Statistics 2. 历史 History 3. 报警 Alarm 4. 主机统计数 Hosts 5. 主机统计最大值 Host Top N 6. 矩阵 Matrix 7. 过滤存储 Filter 8. 包捕获 Packet Capture 9. 事件 Event 。一般的交换机至少支持 4 组( 1 2 3 9 组) RMON

RMON 对于从远程位置管理交换特别关键,因为交换机的管理信息库( MIB )中的各种信息是以每个端口为基础,而不是以每个设备为基础,如果你使用通常的 SNMP 以端口为基础去监控一个交换,将会产生大量 SNMP 的通信量,由于 RMON 支持着眼于开关的内部,因而其监控工作快而容易

1.9          VTP VLAN Trunking Protocol

VTP 通过网络保持 VLAN 配置统一性 VTP 在系统级管理增加,删除,调整的 VLAN ,自动地将信息向网络中其它的交换机广播。此外, VTP 减小了那些可能导致安全问题的配置。

* 当使用多重名字 VLAN 能变成交叉 -- 连接。

* 当它们是错误地映射在一个和其它局域网, VLAN 能变成内部断开。

VTP 模式

当交换机是在 VTP Server 或透明的模式,能在交换机配置 VLAN 。当交换机配置在 VTP Server 或透明的模式,使用 CLI 、控制台菜单、 MIB (当使用 SNMP 简单网络管理协议管理工作站)修改 VLAN 配置。

一个配置为 VTP Server 模式的交换机向邻近的交换机广播 VLAN 配置,通过它的 Trunk 从邻近的交换机学习新的 VLAN 配置。在 Server 模式下可以通过 MIB CLI ,或者控制台模式添加、删除和修改 VLAN

例如:增加了一个 VLAN VTP 将广播这个新的 VLAN Server Client 机的 Trunk 网络端口准备接收信息。

在交换机自动转到 VTP Client 模式后,它会传送广播信息并从广播中学习新的信息。但是,不能通过 MIB CLI 、或者控制台来增加、删除、修改 VLAN VTP Client 端不能保持 VLAN 信息在非易失存储器中。当启动时,它会通过 Trunk 网络端口接受广播信息,学习配置信息。

VTP 透明的模式,交换不做广播或从网络学习 VLAN 配置。当一个交换机是在 VTP 透明的模式,能通过控制台、 CLI MIB 来修改、增加、删除 VLAN

为使每一个 VLAN 能够使用,必须使 VTP 知道。并且包含在 Trunk port 的准许列表中,一个快速以太网 ISL Trunk 自动为 VLAN 传输数据,并且从一个交换机到另一个交换机。

需要注意的是如果交换在 VTP Server 模式接收广播包含 128 多个 VLAN ,交换自动地转换向 VTP Client 模式。

更改交换机从 VTP Client 模式向 VTP 透明的模式,交换机保持初始、唯一 128VLAN 并删除剩余的 VLAN

传送 VTP 信息

每个交换机用 VTP 广播 Trunk 端口的管理域,定义特定的 VLAN 边界,它的配置修订号,已知 VLAN 和特定参数。在一个 VTP 管理域登记后交换机才能工作。

通过 Trunk VTP Server 向其它交换机传输信息和接收更新。 VTP Server 也在 NVRAM 中保存本 VTP 管理域信息中 VLAN 的列表。 VTP 能通过统一的名字和内部的列表动态显示出管理域中的 VLAN

VTP 信息在全部 Trunk 连接上传输,包括 ISL IEEE802.10 LANE VTP MIB VTP 提供 SNMP 工具,并允许浏览 VTP 参数配置。

VTP 建立共用的配置值和分布下列的共用的配置信息 :

* VLAN IDs ISL

* 仿效 LAN 的名字( ATM LANE

* IEEE802.10 SAID 值( FDDI

* VLAN 中最大的传输单元( MTU )大小

* 帧格式

1.10      Port Trunking

Port Trunking 即多干路冗余连接,可以理解为:将交换机上的多个端口在物理上连接起来,在逻辑上捆绑( bundle )在一起,形成一个拥有较大带宽的端口,组成一个干路。可以均衡负载,并提供冗余连接。

1.11      路由信息协议 (RIP)

一、背景

路由信息协议 (RIP) 是以跳数作为 metric 的距离向量协议 RIP 广泛用于全球因特网的路由,是一种内部网关协议 (interior gateway protocol) ,即在自治系统内部执行路由功能。外部网关路由协议 (exterior gateway protocol) ,如边缘网关协议( BGP ),在不同的自治系统间进行路由。 RIP 的前身是 Xerox 协议 GWINFO ,后来的版本 routed (发音为 /rutdi/ )封装在 1982 年伯克利标准发布 Unix (即 BSD 中)。 RIP 本身发展成因特网路由协议,有些协议族使用了 RIP 的变种,例如: AppleTalk 路由表维护协议( RTMP )和 Banyan VINES 路由表协议( RIP )就是基于 IP 版的 RIP 的。 RIP 最新的增强版是 RIP2 规范,它允许在 RIP 分组中包含更多的信息并提供了简单的认证机制。

IP RIP 在两个文档中正式定义: RFC 1058 1723 RFC 1058(1988) 描述了 RIP 的第一版实现, RFC 1723(1994) 是它的更新,允许 RIP 分组携带更多的信息和安全特性。

本文简单介绍 RIP 的基本能力和特性,包括路由更新过程, RIP 路由 metric ,路由稳定性和计时器。

二、路由更新

RIP 以规则的时间间隔及在网络拓扑改变时发送路由更新信息。当路由器收到包含某表项的更新的路由更新信息时,就更新其路由表:该路径的 metric 值加上 1 ,发送者记为下一跳。 RIP 路由器只维护到目的的最佳路径(具有最小 metric 值的路径)。更新了自己的路由表后,路由器立刻发送路由更新把变化通知给其它路由器,这种更新是与周期性发送的更新信息无关的。

三、 RIP 路由 metric

RIP 使用单一路由 metric (跳数)来衡量源网络到目的网络的距离。从源到目的的路径中每一跳被赋以一个跳数值,此值通常为 1 当路由器收到包含新的或改变的目的网络表项的路由更新信息,就把其 metric 值加 1 然后存入路由表,发送者的 IP 地址就作为下一跳地址。

RIP 通过对从源到目的的最大跳数加以限制来防止路由环,最大值为 15 。如果路由器收到了含有新的或改变的表项的路由更新信息,且把 metric 值加 1 后成为无穷大(即 16 ),就认为该目的网络不可到达。

四、 RIP 的稳定性

为了适应快速的网络拓扑变化, RIP 规定了一些与其它路由协议相同的稳定特性。例如, RIP 实现了 split-horizon hold-down 机制来防止路由信息的错误传播。此外, RIP 的跳数限制也防止了无限增长而产生路由环。

五、 RIP 计时器

RIP 使用了一些计时器以控制其性能,包括路由更新计时器、路由超时和路由清空的计时器。路由更新计时器记录周期性更新的时间间隔,通常为 30 秒,每当该计时器重置时增加小的随机秒数以防止冲突。每个路由表项都有相关的路由超时计时器,当路由超时计时器过期时,该路径就标记为失效的,但仍保存在路由表中,直到路由清空计时器过期才被清掉。

六、 RIP 分组格式

下面描述 IP RIP IP RIP2 的分组格式。

1 RIP 分组格式

命令 -- 表示该分组是请求还是响应。请求分组要求路由器发送其路由表的全部或部分。响应分组可以是主动提供的周期性路由更新或对请求的响应。大的路由表可以使用多个 RIP 分组来传递信息。

版本号 -- 指明使用的 RIP 版本,此域可以通知不同版本的不兼容。

-- 未使用。

地址族标志 (AFI)-- 指明使用的地址族 RIP 设计用于携带多种不同协议的路由信息。每个项都有地址族标志来表明使用的地址类型, IP AFI 2

地址 -- 指明该项的 IP 地址。

metric-- 表示到目的的过程中经过了多少跳数(路由器数)。有效路径的值在 1 15 之间, 16 表示不可达路径

注:在一个 IP RIP 分组中最多可有 25 AFI 、地址和 metric 域,即一个 RIP 分组中最多可含有 25 个地址项。

2 RIP2 分组格式

RIP2 规范 (RFC1723) 允许 RIP 分组包含更多的信息,并提供了简单的认证机制,如下图。

命令 -- 表示该分组是请求还是响应。请求分组要求路由器发送其路由表的全部或部分。响应分组可以是主动提供的周期性路由更新或对请求的响应。大的路由表可以使用多个 RIP 分组来传递信息。

版本 -- 指明使用的 RIP 版本,在实现 RIP2 或进行认证的 RIP 分组中,此值为 2

未使用 -- 值为 0

地址族标志 (AFI)-- 指明使用的地址族。 RIP 设计用于携带多种不同协议的路由信息。每个项都有地址族标志来表明使用的地址类型, IP AFI 2 。如果第一项的 AFI 0xFFFF ,该项剩下的部分就是认证信息。目前,唯一的认证类型就是简单的口令。

路由标记 -- 提供区分内部路由(由 RIP 学得)和外部路由(由其它协议学得)的方法。

IP 地址 -- 指明该项的 IP 地址。

子网掩码 -- 包含该项的子网掩码。如果此域为 0 ,则该项不指定子网掩码。

下一跳 -- 指明下一跳的 IP 地址。

metric-- 表示到目的的过程中经过了多少跳数(路由器数)。有效路径的值在 1 15 之间, 16 表示不可达路径。

注:在一个 IP RIP 分组中最多可有 25 AFI 、地址和 metric 域,即一个 RIP 分组中最多可含有 25 个地址项。如果 AFI 指明为认证信息,则只能有 24 个路由表项。

1.12      802.1p 优先级标记,多队列

IEEE802.1p 标准是对网络的各种应用及信息流进行优先级分类的方法。它确保关键的商业应用和时间要求高的信息流优先进行传输,同时又照顾到低优先级的应用和信息流,使它们得到所要求的服务。这个标准对于金融业务、单据处理、网络管理、集成的声音和数据应用、视频会议和分布视像教学等应用是必不可少的标准。

1.13      全双工流控技术

在不同的节点相互之间以不同速度通信的所有通信技术中,流量控制就是一个问题。信息流控制是为了防止网络拥挤及死锁的出现而采取的一种措施。当发至某一接收节点的信息速出了该接收节点的处理或转换文件报文的能力时,就会出现拥挤现象。

试问如果一台高速服务器将数据发送给一个低速客户机,会发生什么事情呢?在经典的共享以太网中,有几种方法可以确保该客户机能跟上来自服务器的数据流量。首先,由于客户机一般都能接收 10Mbps 数据,通常其共享介质才是真正的瓶颈;其次,如果客户机的数据已超过其处理能力和要求服务器停止发送数据,它可以通过产生一次冲突或假装要发送数据而仅仅访问信道本身,这样就可自动地阻止服务器进一步发送数据。

利用这种方法,共享以太网就具有一种内部的流量控制方法。同样,如果有多个站试图通过一个共享局域网发送数据,该局域网就会非常繁忙,网络将会饱和,这里,以太网本身就会表现出所谓的拥塞控制。最后一种措施是如果在服务器和客户机之间丢失了数据,协议就会采取相应措施,以确保重发。

l         半双工流量控制

桥接式或交换式以太网利用一种内部的方法去处理速度不同的站之间的传输问题,它采用一种所谓的 " 背压( bockpressure " 概念。例如,如果一台高速 100Mbps 服务器通过交换机将数据发送给一个 10Mbps 的客户机,该交换机将尽可能多地缓冲其帧,一旦交换机的缓冲器装满,它就通知服务器停止发送。

有两种方法可以达到这一目的:交换机可以强行制造一次与服务器的冲突,使得服务器退避;或者,交换机通过插入一次 " 载波检测 " 使得服务器的端口保持繁忙,这样就能使服务器感觉到好象开关要发送数据一样。利用这两种方法,服务器都会在一段时间内停止发送,从而允许交换机去处理积聚在它的缓冲器中的数据。

Accton 公司为解决网络的拥塞和死锁,在 ES2007-TX ES2008-TX/TF ES3008-TX ES3508 ES2024 ES3508A 等交换器中采用了独特的背压流量控制技术防止网络的拥塞和数据包的丢失。这种类型的拥塞控制是具体针对半双工端口的。

l         全双工流量控制

在全双工环境中,服务器和交换机之间的连接是一个无碰撞的发送和接收通道,没有碰撞检测不允许交换机去产生一次冲突而使得服务器停止发送,服务器将一直发送到交换机的帧缓冲器溢出, 因此, IEEE 制定了一个组合的全双工流量控制标准 802.3x

IEEE802.3x 标准定义了一种新方法,在全双工环境中去实现流量控制。交换机产生一个 PAUSE 帧,将它发送给正在发送的站,只要该帧从接收站发出,发送站就会暂停或中断其发送。 PAUSE 帧利用一个众所周知的组播地址 ,它是不会被网桥和交换机转发的(与 IEEE802.1d 桥接标准一致),这就意味着 PAUSE 帧不会产生附加信息量。这是一种非常灵巧而功能很强的技术,具有一些其它的未来好处,例如,利用新的 MAC 控制层可以发送优先帧。前面讨论的自动协商模式也作了修改,增加了 1 位,表示该站具有流量控制功能。让我们再次看一看前面的例子,以了解 802.3x 标准作了那些修改:

1.                  加电时,服务器 NIC 和开关检查它们是否都具有全双工能力,并将发送方式调整为全双工。

2.                  自动协商脉冲也会告诉这两个设备,它们都具有全双工能力。

3.                  服务器利用它的发送通道(也是交换机的接收通道)开始发送。

4.                  交换机接收帧,并转发到 10Mbps 客户机,但速度慢得多。

5.                  当交换机的内部缓冲器快装满时,它就通过其发送通道(服务器的接收通道)开始将 PAUSE 帧发送到服务器 NCI ,从而停止服务器的发送。

6.                  交换机将其缓冲器中的数据传送到较慢的客户机,直到其内部缓冲器可以再次接收数据为止。

7.                  一旦缓冲器腾空,交换机就停止发送 PAUSE 帧,服务器就重新开始发送。

l         Accton 的全双工流控技术

Accton ES3524/ES3024 ,及 ES2026/2526 中采用了内部流控和外部流控分别处理的流控方法,实现了全双工流量控制。

外部流控:当输入队列超过交换机端口控制的阈值时,由于每端口都是 10/100Mbps 自适应。当对口为半双工时,采取基于流控的载波时序技术,即等待 48 位时间片,然后发送一个 14400 位的时序报文( 101010… ), …… 反复这样等待和发送,直至输入队列低于阈值时才停止发送。这样发送方在收到这样的载波时序信号时停止发送,直至解除警戒。当对口为全双工时,发送一个 PAUSE 帧( XON/XOFF )来抑制流量超载,满足 IEEE 802.3x 流量控制标准。

内部流控:当交换机的输出队列超过端口控制器的阈值时,无论在半 / 全双工模式下,发送一个 STALL 命令给交换机以抑制发送,当流量队列计数低于阈值时端口控制器发送一个 UNST 命令,交换机在收到该命令后,继续发送。

所谓信息流控制 ( 简称流控 ) 就是调整发送信息的速率,使接收节点能够及时处理它们的一个过程。从网络用户看来,信息流控制是一种阻止不能在预定时间内提供给对方用户的信息进入网络的方法。

流控的另一目的是使业务量均匀地分配给各网络节点。因此,即使网络在正常工作情况下,流控也能减小信息的传递时延,并能防止网络的任何部分 ( 相对于其余部分来说 ) 处于过负荷状态。

由于全双工流控是一种新技术,目前市面上很少有符合 802.3x 的设备。 Accton 的交换机 ES3024 ES3524 ES2026 ES2526 均在主板上集成了全双工流控的芯片,使符合 IEEE802.3x ,使得 Accton 的交换机在高速、大数据量的传输中,使丢包率降至最小。

1.14      区分服务

在区分服务中 IETF 重新定义了 IPv4 TOS 域,改称它为 DS Differentiated Service )域。 TOS 域的 3 个优先级比特可定义 8 个优先级状态。 IETF 区分服务工作组提出将比特数扩展到 6 个,有 64 个可用的状态。这 6 个比特称为区分服务码点 (DSCP Differentiated Service Code Points) 。如下图所示。 DSCP 的比特位图用来对应路由器的每一个转发处理(即每一个中继点行为 PHB Per-Hop Behavior )。在网络的核心节点处,路由器根据分组上的 DS 码点用相应的 PHB 对其进行转发。

图:        IEEE 802.1p/Q 标记的 MAC 帧和 IP 分组头中的 COS 域与 DS

区分服务是由综合服务 (Int-serv ) 发展而来的,它采用了 IETF 的基于 RSVP 的服务分类标准,抛弃了分组流沿路节点上的资源预留。 区分服务将会有效地取代跨越大范围的 RSVP 的使用。区分服务区域的主要成员有:核心路由器、边缘路由器、资源控制器( BB Bandwidth Broker )。在区分服务中,网络的边缘设备对每个分组进行分类、标记 DS 域,用 DS 域来携带 IP 分组对服务的需求信息。在网络的核心节点上,路由器根据分组头上的 DS 码点( Code Point )选择码点所对应的转发处理。资源控制器 BB 配置了管理规则,为客户分配资源,它可以通过服务级别协定 SLA Service Level Agreement )与客户进行相互协调以分享规定的带宽。

       区分服务将 6 比特的码点空间分成 3 个部分:“ xxxxx0 ”用于标准行为;“ xxxx11 ”用于本地实验;“ xxxx01 ”也可用作本地实验,但当将来第一部分的码点耗尽时,也可用于标准行为(这里的 x 为“ 1 ”或“ 0 ”)。为了与当前流行的 COS 服务兼容,区分服务定义了码点“ xxx000 为等级选择器码点,用这种码点标记的分组可接受由前 3 个比特决定的优先级服务。因此,也可以说 COS 是区分服务定义的服务行为集中的一个子集。

总之, DS 域将决定路由器对分组的处理。通过在网络的边界对分组设置 DS 域以及接纳控制功能可以实现一系列的服务:有保证的服务、高价服务( premium service )和尽力服务。有保证的服务是为那些即使在网络拥塞时也能够享受可靠服务的客户提供的;高价服务的延时和延时抖动都很小,主要是为那些峰值速率恒定的实时数据流提供的,它适合于 IP 电话、视频会议或虚拟专用网中的虚拟租用线。区分服务是可以逐步推广、渐进采用的。不支持区分服务的路由器可简单地忽略分组的 DS 字段,并以尽力服务或只考虑优先级的方式处理分组。

2           芯片介绍

下面介绍两款以太网交换芯片。通过对这两个芯片的研究,我们可以更具体的了解到以太网交换的实现机理,也可以学习到一些比较有用的硬件实现方法。其中, L64324 为采用的是存储转发的交换方式, BCM5605/6 采用的是线速转发(不缓存)的交换方式。

2.1          L64324

L64324 LSI 公司的单片 24 10/100M 以太网加 2 1000M 以太网交换器。 L64324 含有 1 ARM7C 处理器,每个口有前端 MAC ,流量控制符合 IEEE802.3X ,优先级排队符合 IEEE802.1P VLAN 符合 IEEE802.1Q L64324 MAC 支持 4K 个地址, ARM 处理器有 4K 的指令数据 CACHE 96 位的 SDRAM 控制器可工作于 125MHZ ,提供 SMII/GMII/MII/TBI 等接口,可通过 GMII 接口级连扩展。

2.1.1           体系结构

L64324 体系结构框图如下图所示:

2.1.2           内嵌的 ARM7 处理模块 (APM)

ARM7 处理器为 3 层流水线处理, 32 RISC 体系结构,系统时钟为 62.5MHz ,工作频率 31.25MHz ,能力大概为 50MIPS L64324 ARM7 处理器集成了 4K CASH ,指令、数据共享。由于 ARM7 是一种标准的工业级 CPU ,配套的可先用的工具较多,大多数主流的 RTOS 也对其有支持。支持 JTAG 在线调试。 ARM7 Advanced System Bus(ASB) 可直接接外部 SDRAM FLASH ASB 还拥有 Address Table 接口,可以访问 L64324 内部所集成的计数器、 4K 统一的 CASH MAC 控制 / 状态管理。 ARM7 Advanced Peripheral Bus(APB) 连接 2 1655 UART 、时钟、中断控制器、 GPIO 端口及看门狗时钟。 ARM7 模块功能框图如下:

CPU 存储空间的布局主要考虑到进行交换处理的方便性,该地址空间可以寻址到字节,其编址方式使得每联系的 96 字节进行一次 BANK 切换。数据总线宽度为 12 字节 96 位。指令地址希必须是 32 位对齐的数据访问可以是字节、 16-bit 32-bit 对齐的。

2.1.3           交换模块( Switch Module ---SWIM

交换模块是 L64324 的核心部分,包括输入缓冲逻辑、地址解析逻辑、干线逻辑、传输描述子生成器、 VLAN 、端口源锁定、端口镜象及 RMON 逻辑。交换模块框图如下:

下面介绍一下 L64324 的存储缓冲器结构、存储器接口、地址解析、基于标签 VLAN 的段口源锁定、远程监控( RMON )计数器、 IP 多址阻播以及干线端口功能。

2.1.3.1         存储缓冲器体系结构

L64324 的存储缓冲器是各端口共享的,缓冲存储器被分为大小为 1536 1.5K )字节的 4K 块,每一块可以存储一个以太网协议数据包。接收到的数据包在输出端口排队,每一个输出端口拥有一个发送描述子环,每一个排队的数据包至少有一个输出端口的一个描述子与其对应。每一个端口的描述子个数由 CPU 控制。描述子指示数据包在缓冲存储器中的位置,描述子环指示数据包的发送顺序。

点对点发送及多点发送的数据包的处理过程基本上是一样的,首先,需要检查是否还有可用的缓冲存储空间以及是否需要进行流量控制。唯一不同的地方是多点传送的数据包可能需要在多个或所有的出口排队。

2.1.3.2         存储器接口( Memory Interface

L64324 的存储器接口用于数据包缓存及程序代码、数据的存储。可以外接 64Mbits 128Mbits 100 125MHz SDRAM 。推荐使用 3 125MHz 32 位宽的 64Mbits SDRAM ,构成 96-bit 的数据访问总线,总的存储带宽位 125MHz*96bits=12Gbits/s

为了最大化系统带宽,存储器对 SDRAM 的寻址经过特殊安排以使得数据包可以用到所有的 SDRAM BANK 。由一个 4K*12 的存储器索引指针 用于对存储器的寻址,数据包的缓存空间总共为 12K 行,每行 512 字节,共 512*12K=6M 字节。数据包存储空间可寻址到字节。剩余的 18M 字节存储空间为 ARM7 处理器的代码及数据区。

L64324 内部的智能仲裁机制使得对各端口及 CPU 的存储分配能够得到最优化的系统带宽。(具体如何实现?)

L64324 FLASH 接口是 SDRAM 接口的一个子集。 SDRAM 接口的底 30 位数据线与 FLASH 接口时分复用。 SDRAM FLASH 的访问互斥进行。可用的 FLASH 3.3V 8-bit 位宽的 1 2 4 8Mbyte 速度为 70 90 120ns FLASH

2.1.3.3         地址解析

L64324 的地址解析是自动进行的,不需要 CPU 专门的介入。 CPU 也可以读取、修改地址表 ARL 中的所有条目,另外 CPU 需要负责维护 ARL 中多点传送的条目。

ARL 可以记录 4K 个地址条目。

L64324 收到一个新的数据包时,查看其源地址,如果为一个新的地址,并且还有空闲的条目,就在 ARL 中加入一个新的条目。对于源锁定的端口,不生成新的地址条目。

对于点对点传送( Unicast )的条目, L64324 自动进行地址老化,老化时间间隔可编程,范围在 5 秒到 17 分钟之间。地址表中的多点传送条目是由 CPU 进行添加、删除的。因此不进行老化操作。在对地址表的所有访问中,老化是最低优先级的操作。每一个端口都可以独立的设置是否进行地址老化操作。

2.1.3.4         端口源锁定

ARL 中的每一个单点传送的地址条目都有一个对应的源端口(也将时说具有该地址的主机在那个端口上),每一个端口都有一个源锁定寄存器( Source Port Locking register ),如果该位置“ 1 ”,那么当在该端口接收到一个新的数据包时,如果该包的地址段在 ARL 中的条目中的端口域与该端口不匹配,那么该包将被过滤,新的地址条目也不会生成,该包可以送往 CPU 处理,也可以被丢弃。端口源锁定可以用于拒绝没有被授权的站点移动及没被授权的站点。

2.1.3.5         VLAN

L64324 可以支持基于标签技术的 VLAN ,可以用于不同 VLAN 之间的信息隔离,起到增加带宽及保密的作用。 L64324 可以支持 32 VLAN 。对每个端口 L64324 内部集成专用的逻辑进行输入包中 VLAN 标签的提取, L64324 内部的交换逻辑利用该标签进行基于 VLAN 的交换。 L64324 中有一个出口滤波器列,包含有对 32 VLAN 的端口屏蔽。 L64324 可以增加、删除、修改或传递 VLAN 标签。另外, L64324 也支持无标签帧, 802.1p 优先级标签帧, CRC 的重新生成,输入端口处的 PVID 指派。

2.1.3.6         RMON Extended RMON

L64324 的每一个 MAC 均有一组纪录发送接收数据包状态的存储变量,并有相应的指针指向这些变量。 MAC 每接收、发送一个数据包,计数器逻辑根据指针读取对应的计数器变量,对其进行更新操作。大多数的计数器都是 32 位的,也有一些计数器如字节计数器、吉比特端口计数器的位宽要宽一些。同一端口的计数器在内存中连续存放,以方便软件访问。 L64324 也支持 Extended RMON ,可以用以网络流量的估算,每一个端口随机的或者定时的采样一些数据包送到 CPU 进行处理。

2.1.3.7         端口镜象

端口镜像为网络传输提供了备份通道。此外,还可以用于进行数据流量监测。可以这样理解:在端口 A 和端口 B 之间建立镜像关系,这样,通过端口 A 传输的数据将同时通过端口 B 传输,即使端口 A 处因传输线路等问题造成数据错误,还有端口 B 处的数据是可用的。利用端口镜象可以根据以下策略将特定的码流送到一个选定的端口:

A.      一个限定端口的所有流量;

B.      所有带有指定目的地址货源地址的流量;

C.      所有指定 VLAN 的流量。

交换引擎及发送描述子生成器都要用到端口镜象屏蔽寄存器,交换引擎检查被处理数据包对应端口的端口镜象屏蔽位,如果该位被置“ 1 ”,那么,该数据包在被送到目的地之所在端口的同时也被送到指定的镜象端口。

2.1.3.8         IGMPv2

IP 多址组播用于同时传发送组播信息到多个客户端以避免进行多个点对点传送,从而减少网络上数据流量。 Internet 组管理协议 (IGMP) 的目的是进一步减少 IP 多值组播所带来的网络流量,其实现方式通过只向有主机申请改组播信息的网段发送对应组播信息的方式来实现的。 IGMP 可以以 VLAN 位单位进行允许及禁止。如果 IGMP 被允许,每一个端口都可以参与 IGMP ,转发或禁止所有 IP 组播信息。 IP 组播数据包的转发不是自动进行的,他们被送到 CPU CPU 在确定转发到哪些端口。当 IGMP 被禁止时, IP 多址组播数据包及 IGMP 数据包的处理以其它的多点传送数据包是一样的,也要由 ARL 进行滤波。

2.1.3.9         Port Trunking

L64324 支持干路冗余连接,可以将 4 个端口组合起来在两个节点之间形成一个高带宽逻辑连接。 Port Trunking 技术可以在交换机之间或者交换机与服务器连接多条线路,实现负载均衡及线路冗余。当两个交换机之间的一条线路出现故障,传输的数据可以快速自动切换到另外一条线路上进行传输,不影响网络系统的正常工作。

2.1.4           Port Interface Module (PIM)

端口接口模块对 L64324 的各端口接口进行控制,端口接口模块的主要功能为数据包的接收、发送及适当的流量控制。 PIM 框图如下:

2.1.4.1         接收

PIM SMII 接口接收接收并处理快速以太网数据帧,如果该帧没有错误,帧头被提取并送到 SWIM 进行转发该帧所需要的滤波处理。同时, L64324 中的 DMA 逻辑将该数据包存储到帧缓存中。每个数据包都是先存储再发送的(存储转发)。 SWIM 通过解析该帧的帧头决定该帧对该帧进行单点传送、多点传送、广播或丢弃的操作。 APM 维护并分析各端口的状态变量。根据系统设置,吉比特端口的数据帧可通过 GMII TBI 接口进行接收的,其处理过程与快速以太网端口是一样的。

2.1.4.2         发送

SWIM 首先决定数据帧有哪一个或几个端口进行发送,然后由 SWIM 的发送队列管理模块( Transmit Queue Manager (TQM) )检查是否还有发送该帧所需资源。如果该端口的发送缓冲资源还被有被耗尽,则为其分配一个描述子并将该帧加入到该端口的发送队列中。

每一个端口都有专用的发送队列,并支持高、底两级优先级。每一个优先级对应一个发送队列环,这两个队列环互不相干、独立工作,每一个队列环的长度可以单独定义。如果一个队列的描述子被用光,那么试图加入到该队列的帧将被丢弃,为避免这种情况的数据丢失,可以对数据传输进行流量控制。在缺省情况下,只有当高优先级的队列中所有数据包全部被发送以后才能够处理地优先级队列中的数据包。不过这种策略在某些情况下并不理想, L64324 的每一个端口都可以设置在每发送( 1-64 )个高优先级数据包后插入一个底优先级包的发送。 L64324 可以设置最长 4 秒的数据包老化时间,精度为 1 毫秒。

2.1.4.3         802.3x 流量控制

当可用的帧缓存资源下降到一个可设定的门限时, L64324 可进行流量控制。

2.2          BCM5605/BCM5606

BCM5605 BROADCOM 的以太网交换芯片,支持第 3 层交换,需要外接 HOST CPU DEMO 板使用 MOTOROLA POWERPC 8240 ,通过 PCI 总线连接。 BCM6506 BCM5605 类似,但不支持第 3 层交换。

2.2.1           地址管理

BCM5605 内部建立了管理 MAC 地址所需要的表格,地址表( ARL )可以记录 8191 MAC 地址。 MAC 地址的学习是自动进行的,当 BCM5605 收到数据包时,查看其源地址 ( VLAN ID) 是否在 ARL 中,如果不在 ARL 中,则将该地址加入 MAC 地址表,同时纪录对应的端口。 CPU 也可以更新、添加表项。通常情况下,地址学习是根据 MAC 地址进行的。在一定时间内不使用的表项被自动删除。当一个站点从一个端口移动到另外一个端口时, BCM5605 先删除旧的 ARL 条目,再加入新的 ARL 条目。

BCM5605/6 中, ARL 表有三个同步的备份,供各端口同步使用。

目的站点的 MAC 地址及 VLAN ID VLAN ID 可以是在输入帧中、也可以是在芯片内部的 VLAN 表中)被用于搜索该数据包的输出端口,如果找到匹配的条目,则该数据包从对应端口送出,如果没有找到匹配的端口,则产生一次“目的查找失败”的错误计数,然后将该包从所有属于该 VLAN 的端口送出。

2.2.2           服务等级

IEEE 802.1p 规定了 0~7 8 级优先级,优先级 7 为最高优先级,优先级信息由 VLAN 标签头的 3 比特的优先级域承载。

基于每个输出端口, BCM5605 支持 4 个等级的服务。对于带 VLAN ID 的包,可以将 8 个优先级映射到 4 个等级之一,也可以根据其它可定义的滤波机制将输入包映射到一个服务等级上。对于一个没有 VLAN 标签的包,可以根据目的地址在 ARL 中的位置或某种滤波机制的结果映射到一个服务等级。

数据包被映射到 4 个服务等级的队列后,输出策略有以下几种:

严格基于优先级调度:只有所有高优先级包移出以后,优先级服务队列中的数据包才背移出。这种调度策略可能导致底优先级数据包长时间的资源缺乏。

基于权重的轮循策略:为每个服务等级分配一个最小的带宽,带宽的分配可以基于允许的连续发送的包的个数。

基于权重及最大延迟的轮循策略:对于实时系统,每一个服务等级中的包的最大延迟也时刻已定义的。

2.2.3           线路头阻塞( Head of line blocking

当多个端口或多个流向一个端口发送数据包时有可能会产生阻塞,这会引起输入端口到其它端口数据包的丢失,引起“线路头阻塞”。

BCM5605 提供两种策略用于 HOL 阻塞的控制: Packet-Based HOLB Cell-Based HOLB 。分别限制每个端口数据包所用 memory 大小或者每个端口输出队列的包的最大个数。每个端口输出队列包的最大个数为 1024 ,由该端口支持的各服务等级均分。

2.2.4           数据包的老化

BCM5605 支持数据包的老化机制,丢弃在数据包缓冲区停留时间过长的数据包。数据爆驻留时间上限可编程,最大约 1 秒。

输入数据包被输入端口打上时间标签,当输出端口发送该数据包时,先检查该包年龄,如果超过系统设定年龄上限,该包被丢弃,并将对应的系统管理计数器加一。

2.2.5           背压流量控制

BCM5605 提供处理“背压”的机制,以实现对数据包传输灵活的流量控制。系统根据一个端口输入包所占的存储空间来检测“背压”。存储空间的阀值可编程,当阀值达到时,进行流量控制:

802.3x 流量控制:如果该端口工作在全双工模式下,使用 802.3x 流量控制,有交换机发送由 802.3x 定义的 PAUSE 帧,阻止源端继续在一个指定的时间段内发送数据。

发送干扰信号:如果该端口工作在全双工模式下,交换机可以在该端口产生一次冲突,从而达到使源端暂停发送的目的。

在实施流量控制以后,如果仍然接收到该端口的数据,交换机会丢弃这些数据包,当数据包数量降到阀值一下,输入包又重新被处理。对全双工端口,交换机会再发送一个 PAUSE 帧,将对应的要求暂停发送的时间设置为 0 。对全双工端口,停止发送冲突信号。

2.2.6           包流量控制

连续的、高速率的数据流量会在网络上泛滥成灾,比如说,当一个网络接口卡出现问题时,它可能会不停的发送点对点、广播或者多址阻播的数据包。

BCM5605 提供一些机制进行包流量控制,用以防止数据包泛滥到其它的端口, BCM5605 可以监视 3 种包的流量,阀值可以对每个端口分别编程。

3 种包为: 1 :目的地址查询失败( Destination Lookup Failure (DLF) ), 2 Broadcast Packets 3 Multicast Packets 。每个端口,这 3 种数据包分别拥有一个计数器,当在一个指定的时间间隔内,如果某一个计数器的计数超过阀值,这后续的对应类型的数据包将被丢弃。

2.2.7           端口镜象( Port Mirroring

port mirroring 可以把一个端口 (mirrored port) 的流量(发送或接收的包)做成镜象,使该端口正常工作。同时,你可以用其它的仪器(如分析检测仪)去分析这些包,然后,你可把该仪器插入其它端口 (mirrored to port) ,让这个口与目的端口做成镜象。镜象口将复制所有在目的端口传输的包,让仪器去分析。这个使产生镜象端口的作用就称端口镜象( port mirroring )。端口镜象的类型可编程,由于下几种:

只镜象输入数据包;

只镜象输出数据包;

只镜象输出一个特定 L3 地址(如 IP 地址)的数据包;

只镜象通过一个可定义的 L2~L7 滤波器的数据包。

2.2.8           IEEE802.1p 支持

BCM5605 支持 IEEE802.1p 规范 中的流量级别和动态多路广播过滤。

2.2.9           IEEE802.1D ——生成树的支持

BCM5605 提供一些完全兼容 IEEE802.1D 规范的特性,这些特性可以用以生成树的支持。特性如下:

生成树状态位:在基于端口的 VLAN 中, CPU 可以设定一个端口为一个特定的生成树状态,具体的设定操作由该端口所收到的特定的数据包触发。生成树状态有:

A.      Disabled 。被管理员禁用;

B.      Block 。休息,不参与数据包转发;

C.      Listening 。监听;

D.     Learning 。学习 ARP 信息,准备向工作状态转变;

E.      Forwarding 。正常工作,转发数据包。

如果一个实体标记为静态的任命桥( Designated Bridge ),如果该实体在规定的时间内不发送 BPDU Bridge Protocol Data Unit ),该端口也不会去争夺任命桥( Designated Bridge )的权利。

ARL 中的地址条目进行命中监视,如果一个条目在生成树生存期内不被命中,该地址条目被删除。

所有非保留地址均可自动学习。

0X0180C2000000 0X180C2000010 及从 0X180C2000020 0X180C200002F 的保留地址段的数据包被送到 CPU 进行处理

2.2.10       IEEE802.1Q VLAN 支持

BCM505 提供以下一些特性以支持符合 IEEE802.1Q VLAN

基于端口的 VLAN 表:用于识别一个没有标签头部或者带有优先级标签头部( VLAN ID = 0 )的帧属于哪一个 VLAN ,在基于端口的 VLAN 中同一个端口的所有成员都是同一个 VLAN 的成员。

基于 802.1Q VLAN 表:从标签头部提取 VLAN ID ,以确定 VLAN 成员。

丢弃无标签头部及带优先级标签头部的数据帧(可选)。

利用 VLAN ID 、源地址、目的地址进行 ARL 的搜索。

识别 GVRP 地址帧( 0X01-80-C2-00-00-21 ),并将对应帧送 CPU 处理。

对每个端口,在输出数据帧时,可选择的去除标签头部。

2.2.11       IP Multicasting

BCM5605 支持一下工业标准的 IP Multicasting 协议:

Distance Vector Multicast Routing Protocal (DVMRP)

Protocol-independent Multicast---Dense Mode (PIM—DM)

Protocol-independent Multicast---Sparse Mode (PIM—SM)

Multicast Open Shortest Path First (MOSPF)

对上述协议的支持主要以下列硬件相关:

A.      IP multicast 表;

B.      专用于处理 IP multicast 数据包的输入输出端口逻辑。

2.2.12       干路冗余连接端口邦定( Trunking or Port Bunding

可以将最多 8 个端口邦定为一个逻辑端口,一片 BCM5605 中可同时建立 6 组邦定,端口邦定可用以在交换机之间提供高的通讯带宽,邦定的各端口均衡负载并定义为全双工模式。通过邦定端口可以提高吞吐率、增加系统带宽、作为干线端口的冗余、均衡干线端口的负载。在数据包分发到邦定的各端口时,其分发策略可以根据 MAC 地址或者 IP 地址进行编程。

2.2.13       快速的滤波处理器

BCM5605 支持很大范围内的滤波策略,允许交换应用程序根据数据保中的特定的协议部分进行滤波。可以根据从第 2 层到第 7 层的协议部分构筑滤波器,可以为每个端口构筑不同的滤波器。

滤波器为两层结构。滤波器掩码部分:用于定义进行滤波的数据区域。规则表部分:定义滤波项目。可以定义 16 个滤波器,每一个滤波器包括一个 64 字节的滤波掩码用于从数据包首部 80 字节范围内的偏移量开始的任意协议段的滤波匹配。对 10/100-Mbps 端口规则表有 256 个条目,对 10/100/1000-Mbps 端口规则表有 128 个条目。

根据一个数据包的分类结果及滤波是否匹配或部分匹配,可以对该包采取如下的一系列操作,或者下列操作的组合。

A.      插入 802.1p 标签首部;

B.      映射到 4 个服务等级之一;

C.      修改标签首部中的 IP TOS (IP Type Of Service) 部分;

D.     CPU 生成一个拷贝;

E.      丢弃该数据包;

F.      将该包从一个端口送出。

G.     发送该包的一个拷贝到镜象端口( mirrored to port )。

BCM5605 可以跟踪 1024 个数据流并纪录其档案,通过内部计数器可以监视及调整这些数据流的流量。使用“漏桶( leaky bucket )算法” BCM5605 可以根据对应数据流的滤波结果及档案情况做出相应处理。漏桶算法在每固定的间隔时间增加数据流的“信用值( credits )”,而对应数据流每收到一个字节都将消耗一定数量的“信用值”,在一个流的信用值被用光前,该流所接收到的数据包被认为是预约带宽以内的流量( in-profile ),否则接收到的数据包被认为是超出预约带宽的流量( out-of-profile )。当发生拥塞时可以选择相应的操作,如丢弃 out-of profile 的数据包等。 BCM5605 对数据流档案的处理由硬件完成,不影响具体码流的处理速度。

2.2.14       区分服务

BCM5605 支持“区分服务( DiffServ )”, IETF(Internet 工程任务阻 ) 希望能够利用 IP 头部的 Type of Service (TOS) 字段在 IP 下提供可升级的服务质量 (QoS)

根据 IETF 定义的 DiffServ ,运用一下技术,可以构筑不同的网络服务:

在网络边缘设置 IP 头部的相应位;

根据 IP 头部相应位的值决定对应包如何传输;

根据对每一种服务所设定的策略,在网络边缘对不同标记的数据包作相应处理。

当支持区分服务类型时,快速滤波处理器( FFP )可以根据滤波匹配情况或者根据输入包的 DSCP IP 头部定义一个新的区分服务码点 (DSCP Differentiated Service Code Points) 。利用这个功能, BCM5605 可以将多个类的服务综合为一个类,也可以将一个类进一步细分为多个类。

DiffServ 表对进入四个服务等级队列的数据包进行计数,交通调度管理器( TSM )根据前文所述的调度策略对交通进行调度。

2.2.15       3 层的 IP 交换

3 层交换就象超高速路由器一样,利用硬件处理第 3 层的数据传递。传统的交换是在第 2 层进行操作的。当数据包需要从一个 VLAN 传递到另一个 VLAN 时,带第 3 层数据转发功能的交换机更象一个路由器。利用第 3 层交换的方便指出在于能够在一个交换机内部进行线性的路由,而不需要在外面在增加一个路由器。

VLAN 的不同子网连接到同一个交换机上时, BCM5605 所提供的第三层交换功能时得他们之间的数据交换变得非常便利。通过 CPU 可以预先设定(动态设定)一个缺省的路由器用于转发所有的数据包。如果转发功能没有设定,所有需要转发到源段子网的数据包的转发工作均需要由 CPU 完成。

利用 BCM5605 进行第 3 IP 交换需要一定的前提条件,在第 2 层交换中,所有交换工作完全由硬件完成, CPU 具本上没有负荷。在第 3 层交换中, CPU 要处理一些列重要工作,完成下述功能:

A.      运行 RIP RIP2 OSPF NLSP 以及其它路由协议,生成路由表;

B.      运行 ARP 协议,解析 IP 地址,生成及维护 ARP 表;

C.      设置 L3 表, L3 接口表,确省路由表,以及 ARL 表中各条目的 L3 交换标志,这些条目用于第 3 层交换。

2.2.16       堆叠功能( Stacking

通过干线连接, BCM5605 最多可实现 30 个模块的堆叠。每一个模块以一片 BCM5605 为核心,有自己的数据包缓冲存储器,也可以有自己专用的 CPU ,构成一个完整的交换模块。每个模块独立的进行地址学习及老化。吉比特端口用作干线连接,也可以用作常规的吉比特端口。通过干线连接,可以将多个 BCM5605 连接在一起,就像一个芯片一样。

下面是推荐的两种堆叠方式。

 

 

3           小结

 

 

以太网交换所涉及到的知识面较广,内容较多。理论上,交换就是选路及连接,不同的交换理论实际上就是在选路及连接上采用了不同的策略。相信随着 Internet 网络技术的飞速发展,必定会不断涌现出各种新的交换技术与新的交换概念。在硬件交换芯片方面,也不停的有新的方案推出。 INTEL MOTOROLA 等公司所推出的网络处理器具有良好的可编程性,而且对网络处理有大量的硬件支持,也可以用以构筑以太网交换系统,而且可以得到更高的灵活性,可维护性、可升级性。以上内容只是关于以太网交换的一些比较表层的东西。更深入、更详细、更具体的内容需要进一步的研究。

Feedback

# re: 以太网交换原理[未登录]  回复  更多评论   

2009-09-02 09:03 by jack
不错,谢谢楼主!!!
只有注册用户登录后才能发表评论。