以太网交换原理
本文力求阐明以太网交换原理,并对相关知识作以介绍。
1
以太网交换机相关概念
交换概念始于电话交换。传统电话网由传输电路与电话交换机组成,处于网络节点的交换机完成对传输链路的选路与连接。一次长途通话往往要经过发端局、转接局(汇接局)和收端局才能完成。在通话前,电话交换机根据信令将分段的传输链路连接起来,从而形成一条从主叫到被叫的通话电路,通话结束后根据信令拆除这条通路,这种交换方式称为电路交换方式。电路交换的优点是延时小,实时性好;缺点是通话期间主、被叫间的物理电路被该次呼叫所独占,电路利用率低。
数据通信对实时性要求不高,故数据通信存在多种交换方式,最早的数据通信是利用已有的电话网加调制解调器完成,这种数据交换方式仍是电路交换方式。现在常见的数据交换方式有数据报方式和分组方式。
数据报(报文)交换采用存储/转发方式
。网络节点设备先将途经的数据报完全接收并储存,然后根据数据报所附的目的地址,选择一条合适的传输链路将该数据报发送出去。报文交换不像电路交换,无需预先为通信双方建立一条专用的电路,因此就不存在建立和拆除电路的过程。由于数据报的传送采用接力方式,任何时刻数据报只占用节点间的一条链路,因而提高了传输效率,但这也造成了报文交换的延时非常大,故主要用在电报交换中。
分组交换和数据报交换一样。也采用存储/转发方式,但不像数据报交换是以整个数据报为单位进行传输,而是将用户要发送的数据报分割为定长的一个个数据分组(包),并附上目的地址(或标记),按顺序送分组交换网发送,分组交换可以采用两种不同方式来处理这些分组。
(
1
)报文传输分组交换
报文传输分组交换与报文交换相似,只是将每一分组都当成一个小报文来独立处理,故报文传输分组交换中每个分组均带有目的地址。网络节点设备对每个分组都要根据网络拓扑和链路负荷情况进行路由选择,因链路负荷是动态的,故一个数据报所包含的各分组,可能通过不同途径到达目的地,分组到达终端的顺序也有可能被打乱,这时要求目的节点或终端负责将分组重新排序、组装为报文。
(
2
)虚(逻辑)电路传输分组交换
虚电路传输分组交换要求在发送某一群分组前,建立一条双方终端间的虚电路。一旦虚电路建立后,属同一数据报的所有分组均沿这条虚电路传输,通信结束后拆除该虚电路。通过拨号建立的虚电路称为交换型虚电路(
SVC
);固定连接的虚电路则称为永久型虚电路(
PVC
)。
虚电路传输分组交换类似电路交换,虚电路传输分组交换通过节点交换机将一段段虚链路连接起来形成一条收发终端间的虚电路。虚电路的
“
虚
”
字意味着只有传送分组时才占有物理电路,不传时则让给别的用户使用。这样在一条物理电路上用统计复用方式可同时建立若干条虚电路,提高了线路的利用率。
电路交换与虚电路交换十分相似,都需要在通信前建立一条端到端的物理电路或虚电路,结束通信后拆除这条电路,这种交换方式称为面向连接的交换方式。面向连接的交换方式往往需要在相关连的一群分组头上附加一个标记,节点设备根据该标记进行交换接续。
在报文交换与报文传输分组交换中,交换途经的每个节点需要根据数据报或分组的目的地址重新寻找最佳路由,通信双方在端对端之间并不存在物理或逻辑上的连接。因此也常将报文交换和报文传输分组交换称为面向非连接的交换方式。为了与面向连接的节点交换设备相区别,一般将面向无连接的节点设备称为路由器。
根据国际标准化组织(
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
)。
所谓虚拟就是物理上不存在,而被认为或设定成存在。在计算机的各个领域中,无论是科学、工业和商业,近年来
“
虚拟
”
这一词已经越来越广泛地被应用了,如
“
虚拟存储
”
、
“
虚拟功能
”
、
“
虚拟网络
”
、
“
虚拟计算机
”
等等。
“
虚拟
”
这一词是从英语
“virtual”
翻译过来的,在计算机领域内,所谓的虚拟系统除了必要的硬件外,更重要的是往往通过软件或固化了的软件即固件来实现的。
由于计算机网络的普遍存在,网上用户数逐年增加,网络规模不断扩大;微电子技术的发展,计算机、工作站与服务器的性能提高,大量的应用程序需要越来越多的带宽;
CAD
/
CAM
群件的使用,使许多人员可同时在不同地点共同完成一个项目,新的应用不断涌现出来,消除瓶颈、增加带宽、降低时延的要求逐渐突出。
一个机构的调整、人事的调动、必然引起设备和人员的移动,这会迫使网络改变物理连接。同时网络管理人员还要重新对网络进行配置,增加了网络管理的复杂性。经常有某些特别工作组为了特别的项目建立,完成任务后就解散,工作组的成员可以相距甚远,可是需要共享数据库并协作作业,如同在一个局域网上一样。据统计,在一大型企业中,由于人员调动和调整,每年有大约
40
%的终端用户需要改变一次网络配置,因此需要寻找一种方法,既能满足用户对带宽的要求,又能提供灵活的连接,虚拟网络技术应运而生。
虚拟局域网(
VLAN
)与传统的网络一样,也是由一个物理网络组成,它之所以
“
虚
”
,是因为同一虚网内的用户不一定都连接在同一物理网段上,就是说同一虚网内的用户可以在同一大楼不同的办公室内,也可以在不同的大楼内甚至可以在不同城市工作。是通过软件依照一定的规则动态地建立的,不依赖于物理位置的逻辑工作组的互连体系。
一个
VLAN
就是一个逻辑工作组,是一个独立的广播域
,不管它是定义在一个局域网交换机上还是分布在不同局域网交换机上。信息在同一虚网内像在一个独立网段内交换。交换机支持按端口,
IP
地址和协议定义
VLAN
的功能,因此,虚拟网络按基于应用和管理策略定义,
VLAN
之间的信息路由采用分布式路由方案,由交换机提供的路由功能实现。
(
1
)
VLAN
的覆盖范围不受距离限制。例如
10Base-T
以太网集线器与站点之间的传输距离为
100m
,而
VLAN
的站点可位于城市的不同区域,或不同省份。
(
2
)
VLAN
建立在交换网络的基础之上,交换设备包括以太网交换机、
ATM
交换机、宽带路由器等。
(
3
)
VLAN
属于
OSI
参考模型中的第
2
层(数据链路层)技术,能充分发挥网络的优势,体现交换网络高速、灵活、易管理等特性,
VLAN
是交换网络的灵魂。
(
4
)
VLAN
较普通网络有更好的网络安全性。在普通共享式网络中,安全性很难保证,因为用户只要插入到一个活动端口就能访问网段,产生广播风暴。而
VLAN
能有效地防止网络的广播风暴。
(
5
)借助于网络管理软件,网络管理者能轻松地配置和构建逻辑
VLAN
,避免了构建复杂而昂贵的物理网络,降低网络建设成本。
为扩展网络达到网间互连的目的,产生了交换机。交换机主要用于
ISO
开放系统互连模型的第
2
层,即数据链路层,通过交换将整个网络连接成一个平面图,而且这个平台可以扩展。不论这个逻辑子网有多大,交换机都能提供子网内部终端之间的连接和通信。交换器的每个端口各连一个共享式的网段,网段之间的通信通过交换机实现。在交换机内具有一个由单播地址(
MAC
地址)、网络设备接口以及交换机端口组成的
1-1-1
映射列表。
进一步而言,通过对交换机适当配置后,就有可能把某些网点限制在某些特定的端口上,也可将
HUB
上任何一个端口分配到某个网段上,在物理上不需要作任何实际的改动工作,就可容易地将某个工作组的某个工作站,从逻辑上划分到另外一个部门的工作组中。于是,一个实际意义的虚网就此在交换机体系架构内产生。
通过
802.ID
生成树协议的计算和正常交换操作,交换机自动隔离单播数据流设置完交换机内特定的多播过滤表后,真正的标准
VLAN
得以创建。国际标准的
VLAN
协议
IEEE802.1Q
经过几年的修改已经成熟起来,各厂商在新一代的交换机中增加了对它的支持,使得
VLAN
技术迅速推广应用。
因此,正是由于交换技术的出现,才使
VLAN
技术得以实现,而
VLAN
技术对网络的发展又起着举足轻重的作用。
VLAN
的划分方式大致分成以下几种。
在此模式中,
VLAN
是交换机端口的集合。把同一个交换机的端口分成若干组,每组构成一个
VLAN
,每一组相当于一个交换机,该交换机允许的最多的
VLAN
数目等于交换机的端口数。它不允许一个端口配置多个
VLAN
。
VLAN
的第二层桥接网络是建立在每个交换机上,第二代端口
VLAN
技术允许跨越多个交换机的多个端口划分
VLAN
,通过交换机互连链路实现跨交换机的虚拟网技术,不同的交换机上的若干个端口可以组成一个
VLAN
。这样做的缺点是极大地浪费昂贵的交换机端口。
按交换机端口划分虚拟网络成员,其配置过程简单明了,是最常用的一种方式。
这是按设备的源地址来划分。
MAC
地址是捆绑在网络接口卡上的,所以这种形式的
VLAN
运行用户从一个物理位置移动另一个物理位置,不需要作任何设置就可连入原来的
VLAN
,这种方式独立于网络的高层协议。利用
MAC
地址定义
VLAN
可以看成是基于用户的网络划分手段。这种方法的缺点是所有的用户都必须明确地分配给一个
VLAN
,对于在网络用户多的大型网络中,要求网络管理员把每个用户都一一划分到某个
VLAN
,这实在是困难的,也是不必要的。
按照网络所使用的协议或网络层地址来确定
VLAN
的成员。这种划分方式的好处有:
①
按传输协议划分网段,特别适合于针对具体应用和服务来组织用户成立虚拟网络的情况。
②
用户可以在网络内部自由移动而不用重新配置自己的工作站。
③
这种类型的
VLAN
可以减少由于协议转换而造成的网络延迟。
它是指任何属于同一
IP
广播组的网站都属于同一
VLAN
。当
IP
信息包广播到网络上时,它将被传送到一组
IP
地址的受托者那里,任何一个工作站,只要它对该广播信息予以肯定的回答,就会成为该广播组的成员,视为同一虚拟网络的成员,进行面向连接的通信。这种方式能带来巨大的灵活性和可延展性,实现了
VLAN
间的快速、有效的信息交换。
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
秒。
port mirroring
可以把一个端口的流量(发送或接收的包)做成镜象,使该端口正常工作。同时,你应该用其它的仪器(如分析检测仪)去分析这些包,然后,你可把该仪器插入其它端口,让这个口与目的端口做成镜象。镜象口将复制所有在目的端口传输的包,让仪器去分析。这个使产生镜象端口的作用就称端口镜象(
port mirroring
)。
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
管理站进行管理。
远程监控
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
)大小
*
帧格式
Port Trunking
即多干路冗余连接,可以理解为:将交换机上的多个端口在物理上连接起来,在逻辑上捆绑(
bundle
)在一起,形成一个拥有较大带宽的端口,组成一个干路。可以均衡负载,并提供冗余连接。
一、背景
路由信息协议
(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
个路由表项。
IEEE802.1p
标准是对网络的各种应用及信息流进行优先级分类的方法。它确保关键的商业应用和时间要求高的信息流优先进行传输,同时又照顾到低优先级的应用和信息流,使它们得到所要求的服务。这个标准对于金融业务、单据处理、网络管理、集成的声音和数据应用、视频会议和分布视像教学等应用是必不可少的标准。
在不同的节点相互之间以不同速度通信的所有通信技术中,流量控制就是一个问题。信息流控制是为了防止网络拥挤及死锁的出现而采取的一种措施。当发至某一接收节点的信息速出了该接收节点的处理或转换文件报文的能力时,就会出现拥挤现象。
试问如果一台高速服务器将数据发送给一个低速客户机,会发生什么事情呢?在经典的共享以太网中,有几种方法可以确保该客户机能跟上来自服务器的数据流量。首先,由于客户机一般都能接收
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
的交换机在高速、大数据量的传输中,使丢包率降至最小。
在区分服务中
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
字段,并以尽力服务或只考虑优先级的方式处理分组。
下面介绍两款以太网交换芯片。通过对这两个芯片的研究,我们可以更具体的了解到以太网交换的实现机理,也可以学习到一些比较有用的硬件实现方法。其中,
L64324
为采用的是存储转发的交换方式,
BCM5605/6
采用的是线速转发(不缓存)的交换方式。
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
接口级连扩展。
L64324
体系结构框图如下图所示:
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
对齐的。
交换模块是
L64324
的核心部分,包括输入缓冲逻辑、地址解析逻辑、干线逻辑、传输描述子生成器、
VLAN
、端口源锁定、端口镜象及
RMON
逻辑。交换模块框图如下:
下面介绍一下
L64324
的存储缓冲器结构、存储器接口、地址解析、基于标签
VLAN
的段口源锁定、远程监控(
RMON
)计数器、
IP
多址阻播以及干线端口功能。
L64324
的存储缓冲器是各端口共享的,缓冲存储器被分为大小为
1536
(
1.5K
)字节的
4K
块,每一块可以存储一个以太网协议数据包。接收到的数据包在输出端口排队,每一个输出端口拥有一个发送描述子环,每一个排队的数据包至少有一个输出端口的一个描述子与其对应。每一个端口的描述子个数由
CPU
控制。描述子指示数据包在缓冲存储器中的位置,描述子环指示数据包的发送顺序。
点对点发送及多点发送的数据包的处理过程基本上是一样的,首先,需要检查是否还有可用的缓冲存储空间以及是否需要进行流量控制。唯一不同的地方是多点传送的数据包可能需要在多个或所有的出口排队。
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
。
L64324
的地址解析是自动进行的,不需要
CPU
专门的介入。
CPU
也可以读取、修改地址表
ARL
中的所有条目,另外
CPU
需要负责维护
ARL
中多点传送的条目。
ARL
可以记录
4K
个地址条目。
当
L64324
收到一个新的数据包时,查看其源地址,如果为一个新的地址,并且还有空闲的条目,就在
ARL
中加入一个新的条目。对于源锁定的端口,不生成新的地址条目。
对于点对点传送(
Unicast
)的条目,
L64324
自动进行地址老化,老化时间间隔可编程,范围在
5
秒到
17
分钟之间。地址表中的多点传送条目是由
CPU
进行添加、删除的。因此不进行老化操作。在对地址表的所有访问中,老化是最低优先级的操作。每一个端口都可以独立的设置是否进行地址老化操作。
ARL
中的每一个单点传送的地址条目都有一个对应的源端口(也将时说具有该地址的主机在那个端口上),每一个端口都有一个源锁定寄存器(
Source Port Locking register
),如果该位置“
1
”,那么当在该端口接收到一个新的数据包时,如果该包的地址段在
ARL
中的条目中的端口域与该端口不匹配,那么该包将被过滤,新的地址条目也不会生成,该包可以送往
CPU
处理,也可以被丢弃。端口源锁定可以用于拒绝没有被授权的站点移动及没被授权的站点。
L64324
可以支持基于标签技术的
VLAN
,可以用于不同
VLAN
之间的信息隔离,起到增加带宽及保密的作用。
L64324
可以支持
32
个
VLAN
。对每个端口
L64324
内部集成专用的逻辑进行输入包中
VLAN
标签的提取,
L64324
内部的交换逻辑利用该标签进行基于
VLAN
的交换。
L64324
中有一个出口滤波器列,包含有对
32
个
VLAN
的端口屏蔽。
L64324
可以增加、删除、修改或传递
VLAN
标签。另外,
L64324
也支持无标签帧,
802.1p
优先级标签帧,
CRC
的重新生成,输入端口处的
PVID
指派。
L64324
的每一个
MAC
均有一组纪录发送接收数据包状态的存储变量,并有相应的指针指向这些变量。
MAC
每接收、发送一个数据包,计数器逻辑根据指针读取对应的计数器变量,对其进行更新操作。大多数的计数器都是
32
位的,也有一些计数器如字节计数器、吉比特端口计数器的位宽要宽一些。同一端口的计数器在内存中连续存放,以方便软件访问。
L64324
也支持
Extended RMON
,可以用以网络流量的估算,每一个端口随机的或者定时的采样一些数据包送到
CPU
进行处理。
端口镜像为网络传输提供了备份通道。此外,还可以用于进行数据流量监测。可以这样理解:在端口
A
和端口
B
之间建立镜像关系,这样,通过端口
A
传输的数据将同时通过端口
B
传输,即使端口
A
处因传输线路等问题造成数据错误,还有端口
B
处的数据是可用的。利用端口镜象可以根据以下策略将特定的码流送到一个选定的端口:
A.
一个限定端口的所有流量;
B.
所有带有指定目的地址货源地址的流量;
C.
所有指定
VLAN
的流量。
交换引擎及发送描述子生成器都要用到端口镜象屏蔽寄存器,交换引擎检查被处理数据包对应端口的端口镜象屏蔽位,如果该位被置“
1
”,那么,该数据包在被送到目的地之所在端口的同时也被送到指定的镜象端口。
IP
多址组播用于同时传发送组播信息到多个客户端以避免进行多个点对点传送,从而减少网络上数据流量。
Internet
组管理协议
(IGMP)
的目的是进一步减少
IP
多值组播所带来的网络流量,其实现方式通过只向有主机申请改组播信息的网段发送对应组播信息的方式来实现的。
IGMP
可以以
VLAN
位单位进行允许及禁止。如果
IGMP
被允许,每一个端口都可以参与
IGMP
,转发或禁止所有
IP
组播信息。
IP
组播数据包的转发不是自动进行的,他们被送到
CPU
,
CPU
在确定转发到哪些端口。当
IGMP
被禁止时,
IP
多址组播数据包及
IGMP
数据包的处理以其它的多点传送数据包是一样的,也要由
ARL
进行滤波。
L64324
支持干路冗余连接,可以将
4
个端口组合起来在两个节点之间形成一个高带宽逻辑连接。
Port Trunking
技术可以在交换机之间或者交换机与服务器连接多条线路,实现负载均衡及线路冗余。当两个交换机之间的一条线路出现故障,传输的数据可以快速自动切换到另外一条线路上进行传输,不影响网络系统的正常工作。
端口接口模块对
L64324
的各端口接口进行控制,端口接口模块的主要功能为数据包的接收、发送及适当的流量控制。
PIM
框图如下:
PIM
从
SMII
接口接收接收并处理快速以太网数据帧,如果该帧没有错误,帧头被提取并送到
SWIM
进行转发该帧所需要的滤波处理。同时,
L64324
中的
DMA
逻辑将该数据包存储到帧缓存中。每个数据包都是先存储再发送的(存储转发)。
SWIM
通过解析该帧的帧头决定该帧对该帧进行单点传送、多点传送、广播或丢弃的操作。
APM
维护并分析各端口的状态变量。根据系统设置,吉比特端口的数据帧可通过
GMII
或
TBI
接口进行接收的,其处理过程与快速以太网端口是一样的。
SWIM
首先决定数据帧有哪一个或几个端口进行发送,然后由
SWIM
的发送队列管理模块(
Transmit Queue Manager (TQM)
)检查是否还有发送该帧所需资源。如果该端口的发送缓冲资源还被有被耗尽,则为其分配一个描述子并将该帧加入到该端口的发送队列中。
每一个端口都有专用的发送队列,并支持高、底两级优先级。每一个优先级对应一个发送队列环,这两个队列环互不相干、独立工作,每一个队列环的长度可以单独定义。如果一个队列的描述子被用光,那么试图加入到该队列的帧将被丢弃,为避免这种情况的数据丢失,可以对数据传输进行流量控制。在缺省情况下,只有当高优先级的队列中所有数据包全部被发送以后才能够处理地优先级队列中的数据包。不过这种策略在某些情况下并不理想,
L64324
的每一个端口都可以设置在每发送(
1-64
)个高优先级数据包后插入一个底优先级包的发送。
L64324
可以设置最长
4
秒的数据包老化时间,精度为
1
毫秒。
当可用的帧缓存资源下降到一个可设定的门限时,
L64324
可进行流量控制。
BCM5605
为
BROADCOM
的以太网交换芯片,支持第
3
层交换,需要外接
HOST CPU
,
DEMO
板使用
MOTOROLA POWERPC 8240
,通过
PCI
总线连接。
BCM6506
与
BCM5605
类似,但不支持第
3
层交换。
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
的端口送出。
IEEE 802.1p
规定了
0~7
共
8
级优先级,优先级
7
为最高优先级,优先级信息由
VLAN
标签头的
3
比特的优先级域承载。
基于每个输出端口,
BCM5605
支持
4
个等级的服务。对于带
VLAN ID
的包,可以将
8
个优先级映射到
4
个等级之一,也可以根据其它可定义的滤波机制将输入包映射到一个服务等级上。对于一个没有
VLAN
标签的包,可以根据目的地址在
ARL
中的位置或某种滤波机制的结果映射到一个服务等级。
数据包被映射到
4
个服务等级的队列后,输出策略有以下几种:
严格基于优先级调度:只有所有高优先级包移出以后,优先级服务队列中的数据包才背移出。这种调度策略可能导致底优先级数据包长时间的资源缺乏。
基于权重的轮循策略:为每个服务等级分配一个最小的带宽,带宽的分配可以基于允许的连续发送的包的个数。
基于权重及最大延迟的轮循策略:对于实时系统,每一个服务等级中的包的最大延迟也时刻已定义的。
当多个端口或多个流向一个端口发送数据包时有可能会产生阻塞,这会引起输入端口到其它端口数据包的丢失,引起“线路头阻塞”。
BCM5605
提供两种策略用于
HOL
阻塞的控制:
Packet-Based HOLB
,
Cell-Based HOLB
。分别限制每个端口数据包所用
memory
大小或者每个端口输出队列的包的最大个数。每个端口输出队列包的最大个数为
1024
,由该端口支持的各服务等级均分。
BCM5605
支持数据包的老化机制,丢弃在数据包缓冲区停留时间过长的数据包。数据爆驻留时间上限可编程,最大约
1
秒。
输入数据包被输入端口打上时间标签,当输出端口发送该数据包时,先检查该包年龄,如果超过系统设定年龄上限,该包被丢弃,并将对应的系统管理计数器加一。
BCM5605
提供处理“背压”的机制,以实现对数据包传输灵活的流量控制。系统根据一个端口输入包所占的存储空间来检测“背压”。存储空间的阀值可编程,当阀值达到时,进行流量控制:
802.3x
流量控制:如果该端口工作在全双工模式下,使用
802.3x
流量控制,有交换机发送由
802.3x
定义的
PAUSE
帧,阻止源端继续在一个指定的时间段内发送数据。
发送干扰信号:如果该端口工作在全双工模式下,交换机可以在该端口产生一次冲突,从而达到使源端暂停发送的目的。
在实施流量控制以后,如果仍然接收到该端口的数据,交换机会丢弃这些数据包,当数据包数量降到阀值一下,输入包又重新被处理。对全双工端口,交换机会再发送一个
PAUSE
帧,将对应的要求暂停发送的时间设置为
0
。对全双工端口,停止发送冲突信号。
连续的、高速率的数据流量会在网络上泛滥成灾,比如说,当一个网络接口卡出现问题时,它可能会不停的发送点对点、广播或者多址阻播的数据包。
BCM5605
提供一些机制进行包流量控制,用以防止数据包泛滥到其它的端口,
BCM5605
可以监视
3
种包的流量,阀值可以对每个端口分别编程。
3
种包为:
1
:目的地址查询失败(
Destination Lookup Failure (DLF)
),
2
:
Broadcast Packets
,
3
:
Multicast Packets
。每个端口,这
3
种数据包分别拥有一个计数器,当在一个指定的时间间隔内,如果某一个计数器的计数超过阀值,这后续的对应类型的数据包将被丢弃。
port mirroring
可以把一个端口
(mirrored port)
的流量(发送或接收的包)做成镜象,使该端口正常工作。同时,你可以用其它的仪器(如分析检测仪)去分析这些包,然后,你可把该仪器插入其它端口
(mirrored to port)
,让这个口与目的端口做成镜象。镜象口将复制所有在目的端口传输的包,让仪器去分析。这个使产生镜象端口的作用就称端口镜象(
port mirroring
)。端口镜象的类型可编程,由于下几种:
只镜象输入数据包;
只镜象输出数据包;
只镜象输出一个特定
L3
地址(如
IP
地址)的数据包;
只镜象通过一个可定义的
L2~L7
滤波器的数据包。
BCM5605
支持
IEEE802.1p
规范
中的流量级别和动态多路广播过滤。
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
进行处理
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
处理。
对每个端口,在输出数据帧时,可选择的去除标签头部。
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
数据包的输入输出端口逻辑。
可以将最多
8
个端口邦定为一个逻辑端口,一片
BCM5605
中可同时建立
6
组邦定,端口邦定可用以在交换机之间提供高的通讯带宽,邦定的各端口均衡负载并定义为全双工模式。通过邦定端口可以提高吞吐率、增加系统带宽、作为干线端口的冗余、均衡干线端口的负载。在数据包分发到邦定的各端口时,其分发策略可以根据
MAC
地址或者
IP
地址进行编程。
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
对数据流档案的处理由硬件完成,不影响具体码流的处理速度。
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
)根据前文所述的调度策略对交通进行调度。
第
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
层交换。
通过干线连接,
BCM5605
最多可实现
30
个模块的堆叠。每一个模块以一片
BCM5605
为核心,有自己的数据包缓冲存储器,也可以有自己专用的
CPU
,构成一个完整的交换模块。每个模块独立的进行地址学习及老化。吉比特端口用作干线连接,也可以用作常规的吉比特端口。通过干线连接,可以将多个
BCM5605
连接在一起,就像一个芯片一样。
下面是推荐的两种堆叠方式。
3
小结
以太网交换所涉及到的知识面较广,内容较多。理论上,交换就是选路及连接,不同的交换理论实际上就是在选路及连接上采用了不同的策略。相信随着
Internet
网络技术的飞速发展,必定会不断涌现出各种新的交换技术与新的交换概念。在硬件交换芯片方面,也不停的有新的方案推出。
INTEL
、
MOTOROLA
等公司所推出的网络处理器具有良好的可编程性,而且对网络处理有大量的硬件支持,也可以用以构筑以太网交换系统,而且可以得到更高的灵活性,可维护性、可升级性。以上内容只是关于以太网交换的一些比较表层的东西。更深入、更详细、更具体的内容需要进一步的研究。