发表于:2003-07-11 14:54:00
楼主
美国科动控制公司总裁
George Thomas
1 前言
从外部看,交换机与集线器类似,实际上它们的分类是不同的。研究一下OSI,你会注意到七个不同的层对应不同的通讯服务。最底层是物理层,中继器或中继型集线器接收这些信令并在扩展时修复。10BASE5和10BASE-T都是物理层的标准。
物理层上面是数据链路层,它负责处理物理层间往来的帧的实际传送和接收。站点编址(MAC或媒介访问控制)、数据分帧及错误检测都由数据链路层处理。尽管物理层的参照也包括在其中,IEEE802.3标准基本上是数据链路层的标准。网桥工作在数据链路层上。交换机和网桥一样。
上一层是论述数据传送的网络层,它包括了一个以上的数据链接。由IP(流行的互连协议)的互连进行分类。路由器在多重链接中指挥交通。传送单元叫做数据包。交换机通常不工作在这层,但有一个叫做第3层的交换机。实际上这是一个带有交换机功能的路由器。
按硬件分,上一层是应用层。当需要用网关来互连不同的网络和不同的协议时,网关位于该层。网关能获知实际运行的应用而其他的设备如中继器、网桥和路由器则不能。本文的重点是讨论网桥。
2 网桥(交换机)的结构
交换机即网桥,两者可以互换。最初,网桥用两个端口连接两个类似的数据链路以形成一个更大数据链路。如果这种实现没有损失,加上数据链路间的通讯看起来一样,这种网桥叫做透明网桥,你或许认为我们在描述路由器,实际不是。路由器将每一个数据链接看作带有相应网络地址的实际网络。网桥把单个数据链接当作一个更大数据链接或网络的一部分。它不使用网络编址的概念,在多个数据链接中单站点的地址(MAC地址)并不重复。和传统的带有两个端口的网桥不同,交换机有多个端口,通常被称为交换型集线器或交换机。
与中继型集线器不同,交换机的每一个端口和以太网主机适配器上的端口一样,都是以太网的接口。这是因为每一个端口必须以另一个以太网设备身份作用。它必须能接收帧并进行解码、测试帧的完整性、重装并传送以太网帧。但是,每一个端口都不要求有类似于以太网卡那样的MAC地址。每一个交换机端口以混合方式作用,不考虑目标MAC地址即可接收所有帧。传送过程中,以太网端口通过假设它的目标地址伪装成节点设备。因此,交换型集线器的每一个端口并不需要自己的MAC地址,除非网桥有编址要求(生成树算法要求网桥编址)。
以太网碰撞域通过交换机端口对其进行终结。对中继型集线器而言,整个集线器是碰撞域的一部分。对交换机而言,它的好处在于每增加一个交换机,网络的有效范围就扩大一倍。这是因为网络分成了两个不同的数据链接。对于100Mbps的铜缆系统来说,这是很重要的,因为它的碰撞域只有205米。
另一个不同是中继型集线器只能在一种速度下工作,要么10Mbps要么100Mbps。交换型集线器拥有多速端口,能与附属于该端口的设备匹配,叫做自动协商。不同端口允许有不同速度。一些交换机有固定的低速端口(10Mbps),另还有一个或多个连至服务器的高速端口(100Mbps)。
通过在交换机端口上终结碰撞域,可以有效地把网络分成单独的碰撞域。如果只有一个设备附属于交换机端口(一个以太网卡或是另一个交换机端口),这称做网络微化。在这种情况下,可实现全双工工作而不会产生碰撞。但如果交换机端口(多主机适配卡和一个中继集线器)存在一个共享型以太网碰撞域,只允许半双工工作且交换机端口必须与以太网媒介裁决规则相符。
2.1 交换机工作原理
为了理解交换机工作原理,我们假设未对交换机进行编程。我们所讨论的交换机只通过学习方式对操作进行修改。
假设有四个同样的端口。假设端口1的站点A准备传送信息至端口2的站点B。对于中继型集线器或是未学习的交换机,尽管其它站点不是对话的一部分,它们会收听至站点B的传送。这种方式造成了不必要的网络通讯,阻止了其他站点的初始化传送。延迟站点只有侦测到空闲信号才能进行初始化传送。与中继型集线器不同,自学习交换机会注意到端口站点A的源地址,并将端口1与站点A相连这一实际情况输入表格。但是,这时的交换机并不知道站点B位于何处,所以必须传送至所有其他端口。这叫做洪泛。在站点B初始化传送前,交换机获悉站点B与端口2相连。一旦站点A和B的端口分配输入交换机的表格,在两个站点间的所有并发单址发送仅出现在端口1和2。所有的其他端口并不知道正在发生的传送,因而允许端口1和2之外的站点能进行同步的传送。这就是交换机提高吞吐量的原因。
如果站点B移至端口3会出现什么情况?如果站点A与站点B有通讯,根据端口-地址表,会传送至端口2,传送失败。为了找到站点B所连的端口,需要进行传送初始化。之后,交换机会注意到站点B端口分配的变化,在表格中做相应改动。但如果没有站点B的报告,就无法让交换机获知站点B新的位置。这就是为什么交换机表格需要刷新。
刷新是忘却的过程。交换机定时检查表格中的所有站点是否在刷新期限内进行过初始化传送。如果有某个站点没有这么做,则被删去。即站点B将被删除。因此,当站点A对站点B进行初始化传送,由于交换机表格中找不到站点B的入口,就会发送至所有端口,使得站点B能听到站点A。站点B以发送初始化传送来响应站点A,交换机将再次获知站点B的端口分配并写入表格。刷新过程通常每四,五分钟发生一次,这样可以获知没有动静的设备的位置。
2.2 交换机的结构
与中继型集线器不同,交换机允许端口的同步传送进而提高了吞吐量。当然,这是在交换机的工作速度足够快的前提下。做到这些的交换机叫做非阻塞型交换机。如果通讯不能同步,帧需要排队或有丢失现象,叫做阻塞型交换机。
交换机的首要任务是把帧从一个端口可靠传送至另一个端口。第二个任务是在表格中记录它所知的多个源地址的位置。它的最后一个任务是对表作刷新,使站点能重新定位至另外的端口,可以被交换机找到。交换机是否对每一个帧都做这些工作,由处理的通讯量决定。多帧传送时交换机可能会放弃刷新表格,这意味着一些第一次出现的源地址没有记录。一般地,刷新过程只是一个后台过程,时间会随通讯的情况变化。
2.3 数据延迟
交换机对帧进行操作,而中继型集线器对信令进行操作。交换机必须从它的输入端口之一接收完整的帧、观察目的地址、端口分配查找、记录源地址、检验帧是否有错,然后转发帧至指定的端口号。这叫存储-转发。10Mbps下,以太网帧通过交换机的最长允许时间是1.2ms,而发送的最短允许时间仍需要500μs左右。交换机的存储-转发引起了数据延迟。这个延迟时间与中继型集线器进行比较,后者的延迟小于1ms。直通型交换机可以解决这个问题。
由于目的地址紧随以太网帧的前导码,交换机只需用11μs获知帧要传送的端口。交换机会立即将帧传至要求的端口。当然,这是在假设已知输出端口的情况下。如果端口已知,数据延迟可以明显降低,但这种方法仍有问题。
如果输出端口未知,交换机会象存储-转发方式那样进行排队。如果帧损坏,FCS没有验证出,交换机转发的是不完整的帧。这种有缺陷的帧不应该在网络中传播,应该被丢弃。但是在一个可靠的局域网络中,FCS失败的机会很少,因此,这不是一个重要的话题。重要的是碰撞导致的帧残片。这些帧残片长度小于576位,但有可能比前导码和目的地址之和(即112位)要大。因此,在确定帧是否残缺前交换机会错误地转发这些帧。解决的方法就是修改直通方式,即至少收到帧的576位才开始转发。只有这时,帧的转发才真正开始。
有时直通操作并不可行,例如,如果交换机要进行广播、多址发送或目的地址未知的发送,在所有端口的输出队列同时进行即时传送的可能性还很遥远,在这种情况下,还是接收完整的帧并送至端口输出队列等待最终的传送。
2.4 流量控制
高速结构的交换机可以用来处理大容量的同步通讯,但是,通讯方式并不会均匀地分布。通常会有一个主要端口,处理另一端口通讯,这个端口可能连接在服务器上或是主控制器上。如果交换机没有用流量控制机制来限制输入端口的接收,输出端口发生阻塞,没有多余的可用缓冲,帧会被未加提示、简单地丢弃掉。为了避免这个问题,发展了两种流量控制的方法-backpressure和PAUSE。
backpressure用在连接半双工或共享型以太网的交换机端口上,即交换机端口使用以太网内置的碰撞检测和延迟算法来加强段内的碰撞,进而要求附属设备重发数据。当交换机的通讯恢复正常后,backpressure停止工作。
全双工的链接是没有碰撞的,因此backpressure不工作,取代它的是专用于全双工的PAUSE功能。由交换机端口发出的PAUSE帧告诉源设备在一确定的时间内终止发送。这个方案工作与否要看附属的设备能够调用全双工操作并能理解PAUSE帧的含义。
3 IEEE802.1D
IEEE中有一适用于网桥的标准-802.1D。这个标准的标题是:“信息技术—系统间的电信和信息交换-局域网和城域网—一般的规范—第3部分:媒介访问控制网桥”。这个标准谈了网桥(交换机)的使用。在这个标准中有一些参数对实时控制网络的运作有一定影响。
3.1 数据刷新
刷新就是在一定量时间内由于源地址未进行初始化传送,网桥的源地址从表格中移去的时间。标准允许的范围为10s~1,000,000s。但大多数的网桥采用的约定是300s或5分钟。
3.2 网桥发送延迟
规定了交换机引入的最大数据延迟。推荐最大值是1s,实际4s以内都允许,
3.3 FCS校验
要求交换机对帧执行帧校验序列测试,并丢弃残缺帧。为此,交换机必须在转发前接收完整的帧。这意味着标准不允许直通或直