第2章 信息交换技术
谈到交换,从广义上讲,任何数据的转发都可以叫做交换。但是传统的、狭义的第2层交换技术,仅包括数据链路层的转发。数据链路层的概念在第1章中的网络七层模型中提及过。
2层交换机主要用在小型局域网中,机器数量在二三十台以下,这样的网络环境下,广播包影响不大,2层交换机的快速交换功能、多个接入端口和低廉价格,为小型网络用户提供了完善的解决方案。
总之,交换式局域网技术使专用的带宽为用户所独享,极大地提高了局域网传输的效率。可以说,在网络系统集成的技术中,直接面向用户的第2层交换技术已得到了令人满意的用户体验。
第3层交换技术是1997年前后才开始出现的一种交换技术,最初是为了解决广播域的问题。经过多年发展,第3层交换技术已经成为构建多业务融合网络的主要力量。
在大规模局域网中,为了减小广播风暴的危害,必须把大型局域网按功能或地域等因素划分成多个小局域网,这样必然导致不同子网间的大量互访,而单纯使用第2层交换技术,却无法实现子网间的互访。
为了从技术上解决这个问题,网络厂商利用第3层交换技术开发了3层交换机,也叫做路由交换机,它是传统交换机与路由器的智能结合。
简单地说,可以处理网络第3层数据转发的交换技术就是第3层交换技术。
从硬件上看,在第3层交换机中,与路由器有关的第3层路由硬件模块,也插接在高速背板/总线上。这种方式使得路由模块可以与需要路由的其他模块间高速交换数据,从而突破了传统的外接路由器接口速率的限制。
3层交换机是为IP设计的,接口类型简单,拥有很强的3层包处理能力,价格又比相同速率的路由器低得多,非常适用于大规模局域网络。
第3层交换技术到今天已经相当成熟,同时,3层交换机也从来没有停止过发展。第3层交换技术及3层交换设备的发展,必将在更深层次上推动整个社会的信息化变革,并在整个网络中获得越来越重要的地位。
交换技术正朝着智能化的方向演进,从最初的第2层交换发展到第3层交换,目前已经演进到网络的第7层应用层的交换。其根本目的就是在降低成本的前提下,保证网络的高可靠性、高性能、易维护、易扩展,最终达到网络的智能化管理。
本章将从交换技术的历史讲起,直到现代交换机的设计等专题。
2.1 交换技术概述
1.电路交换技术的发展
1876年在Bell A.G发明电话以后的很短时间里,人们就意识到应该把电话线集中到一个中心节点上,中心点可以把电话线连接起来,这样就诞生了最早的电话交换技术——人工磁石电话交换机。这种交换机的交换网络就是一个接线台,非常简单,接线由人工控制。但由于人工接续的固有缺点,如接续速度慢、接线员需日夜服务等,迫使人们寻求自动接续方式。
在1889年,Strowger A. B. 发明了第一个由两步动作完成的上升旋转式自动交换机,以后又逐步演变为广泛应用的步进制自动交换机。这种交换机的交换网络由步进接线器组成,主叫用户的拨号脉冲直接控制交换网络中步进选择器的动作,从而完成电话的接续,属于直接控制(direct control)或叫分散控制方式。步进选择器动作范围大,带来的直接后果是接续速度慢、噪音大。直接控制的方式导致组网和扩容非常不灵活。
第一个纵横交换机于1932年投入使用。纵横交换机的交换网络由纵横接线器组成,与步进接线器相比,器件动作范围减小了很多,接续速度明显提高。它采用一种称为“记发器”的特殊电路实现收号控制和呼叫接续,是一种集中控制(indirect control)方式。这种控制方式下的组网和容量扩充灵活。
第二次世界大战后,当整个长距离网络实现自动化时,自动电话占据了统治地位。晶体管的发明刺激了交换系统的电子化,导致了20世纪50年代后期第一个电子交换机的出现。
随着计算机技术的出现,从20世纪60年代开始有了软件控制的交换系统。如1965年,美国开通了世界上第一个用计算机存储程序控制的程控交换机。由于采用了计算机软件控制,用户的服务性能得到了很大发展,如增加了呼叫等待、呼叫转移及三方通话等功能。
模拟信号转换为数字信号的原理随着脉冲编码调制PCM(Pulse Code Modulation)的推出而被人们广泛接受。20世纪70年代,电话语音被编码后传送,出现了数字程控交换机。由于计算机比较昂贵,因此采用了集中控制方式。
数字程控交换在发展初期,有些系统由于成本和技术原因,曾采用过部分数字化,即选组级数字化,而用户级仍为模拟的形式,编/译码器也曾采用集中的共用方式,而非单路编/译码器形式。随着集成电路技术的发展,很快就采用了单路编/译码器和全数字化的用户级交换。
微处理机技术的迅速发展和普及,使数字程控交换普遍采用多机分散控制方式,灵活性高,处理能力增强,系统扩充方便而经济。
软件方面,除去部分软件要注重实时效率,为了与硬件关系密切而用汇编语言编写以外,普遍采用高级语言,包括C语言、CHILL语言和其他电信交换的专用语言。对软件的主要要求不再是节省空间开销,而是可靠性、可维护性、可移植性和可再用性,使用了结构化分析与设计、模块化设计等软件设计技术,并建立和不断完善了用于程控交换软件开发、测试、生产、维护的支持系统。
数字程控交换机的信令系统也从随路信令走向共路信令。
综上所述,到了20世纪80年代中期,交换网络已实现了从模拟到数字、控制系统的单级控制到分级控制,信令系统从随路信令到7号共路信令的转变。
经过一百多年的发展,电路交换技术已非常完善和成熟,是目前网络中使用的一种主要交换技术。传统电话交换网中的交换局,GSM数字移动通信系统的移动交换局,窄带综合业务数字网(N-ISDN)中的交换局,智能网IN(Intelligent Network)中的业务交换点SSP(Service Switching Point)均使用的是电路交换技术。
2.分组交换技术的发展
20世纪60年代初期,欧洲RAND公司的成员Paul Baran和他的助手们为北大西洋公约组织制定了一个基于话音打包传输与交换的空军通信网络*,目的在于提高话音通信网的安全和可靠性。这个网络的工作原理设想是:把送话人的话音信号分割成数字化的一些“小片”,各个小片被封装成“包”,并在网内的不同通路上独立地传输到目的端,最后从包中卸下“小片”装配成原来的话音信号送给受话人。这样,在除目的地之外的任何其他终点,只能窃听到支言片语,不可能是一个完整的语句。另外,由于每个话音小片可以有多条通路到达目的站,因而网络具有抗破坏和抗故障能力。
第一次论述这种分组交换通信网络*的论文发表于1964年。可惜由于当时的技术尤其是数字技术水平所限,并且对语音信号实现复杂处理的器件及大型网络的分组交换、路由选择和流量控制等功能所要求的计算机还十分缺乏和昂贵,因而这种网络*未能实现。
第一个利用这个研究成果的是美国国防部的高级研究计划局ARPA(Advanced Research Project Agency)。当时ARPA在全国范围内的许多大学和实验室安装了许多计算机,进行大量的基础和应用科学研究工作。由于时区、计算中心负荷、专用软件、硬件等差别,他们觉得需要一种能交换数据和共享资源的有效办法。当时世界上还没有任何能实现资源共享的网络,因此ARPA决定致力于开发一个网络,把分组交换技术应用于网络的数据通信。这就是1969年开始组建、1971年投入运营的ARPANET——世界上第一个采用分组交换技术的计算机通信网。
第一代的分组交换机由一台主机和一台接口信息处理机IMP(Interface Message Processor)组成,见图1.22。主机将发送的报文分成多个分组,加上分组头,为每一个分组独立选路,然后将某个输入队列中的分组转移到某个输出队列中并发往目的地。接收端处理过程相反。IMP执行较低级别的规程,例如链路差错控制,以减轻主计算机的负荷。系统中的软件也是ARPANET专用的。受计算机速度的限制,第一代分组交换机每秒只能处理几百个分组。
到1969年12月已经有由4个节点组成的实验性网络被启动。当更多的IMP被安装时,网络增长得非常快,并且很快覆盖了全美国。
3.宽带交换技术的发展
未来网络的发展不会是多个网络,而是用一个统一的宽带网络提供多种业务。这个网络中的关键设备——交换机,也必须能实现多种速率、多种服务要求及多种业务的交换。
使宽带网络成为可能的技术有3种:ATM、宽带IP技术和光交换技术。
ATM是电信界为实现B-ISDN而提出的面向连接的技术。它集中了电路交换和分组交换的优点,具有可信的QoS来保证语音、数据、图像和多媒体信息的传输。它还具有无级带宽分配、安全和自愈能力强等特点。
另一方面以IP协议为基础的Internet的迅猛发展,使IP成为当前计算机网络应用环境中的“既成事实”标准和开放式系统平台。其优点在于:
- 易于实现异种网络互连;
- 对延迟、带宽、QoS等要求不高,适于非实时的信息通信;
- 具有统一的寻址体系,易于管理。
ATM和IP都是发展前景良好的技术,但它们在发展过程中都遇到了问题。
从技术角度看,ATM技术是最佳的,而且ATM过于完善了,其协议体系的复杂性造成了ATM系统研制、配置、管理、故障定位的难度;ATM没有机会将现有设施推倒重来,构建一个纯ATM网。相反,ATM必须支持主流的IP协议才能够生存。
传统的IP网络只能提供尽力而为(best effort)的服务,没有任何有效的业务质量保证机制。IP技术在发展过程中也遇到了路由器瓶颈等问题。
如果把这两种技术结合起来,既可以利用ATM网络资源为IP用户提供高速直达数据链路,发展ATM上的IP用户业务,又可以解决因特网发展中瓶颈问题,推动因特网业务进一步发展。
在支持IP协议时,ATM处于第二层,IP协议处于第三层,这是业界普遍认可的一种网络模型。当网络中的交换机接收到一个IP分组时,它首先根据IP分组中的IP地址通过某种机制进行路由地址处理, 按路由转发。随后,按已计算的路由在ATM网上建立虚电路(VC)。以后的IP分组在此VC上以直通方式传输,从而有效地解决了传统路由器的瓶颈问题,并提高了IP分组转发速度。
随着吉比特(GBit)高速路由器的出现及IP QoS、MPLS等概念的提出,ATM的优势也发生了变化。新的网络模型被提出,IP作为二层处理的呼声日益高涨,甚至有人预测随着MPLS产品的出现及IP QoS问题的解决,对ATM的需求将会日益减少。ATM技术与IP技术在未来骨干网中的地位之争也达到了空前激烈的程度,很多电信运营厂商仍在观望,而更多的厂商则是双管齐下。
尽管在未来谁是主流的问题上有很多分歧,但多数厂商和研究人员均认为ATM技术与IP技术在未来很长一段时间内将共存,并最终融合在一起。目前最看好的是支持两者结合的多协议标记交换(MPLS)技术,它的大部分标准已制定。
对光交换的探索始于20世纪70年代,80年代中期发展比较迅速。首先是在实验室对各种光基本器件进行了技术研究,然后对构成系统进行了研究。目前对光交换所需器件的研究已具有相当水平。在光器件技术推动下,光交换系统技术的研究也有了很大进展。第一步进行电控光交换,即信号交换是全光的,而光器件的控制仍由电子电路完成。目前实用系统大都处于这一水平,相关成果媒体报道得也比较多。第二步为全光交换技术,即系统的逻辑、控制和交换均由光子完成。关于这方面的媒体报道还较少。
随着B-ISDN技术的发展,各国对光交换的关注日益增加。许多国家都在致力于光交换技术的研究与开发,其中美国的ATM贝尔研究所、日本的NEC和NTF、德国的HHI、瑞典的爱立信等研究机构对光交换的研究水平较高,主要涉及6种交换方式,以及光互联、全光同步、光存储器和光交换在B-ISDN中的应用等领域。光交换领域急需研究开发的课题有:光互联、光交换、光逻辑控制及光综合通信网的结构。
我国在“七五”期间就开展了光交换技术的研究,并将光交换技术列为“八五”“九五”期间的高科技基础研究课题。1990年,清华大学实现了我国第一个时分光交换(34Mbps)演示系统。1993年,北京邮电大学光通信技术研究所研制出了光时分交换网络实验模型。
光交换的优点在于,光信号在通过光交换单元时不需经过光电、电光转换,因此它不受检测器、调制器等光电器件响应速度的限制,对比特速率和调制方式透明,可以大大提高交换单元的吞吐量。光交换将是未来宽带网络使用的另一种宽带交换技术。
2.2 数字程控交换
程控交换技术主要指的是通过交换设备在通信网路终端用户之间建立相应的连接,并且通过网络通道实现信息的传递和交流,主要的组成部分包括信号发射源、信号发生终端、信号收取终端、网络传输通道和相应的交换节点。
程控的意思是程序控制,把对交换机的各种控制、方法、步骤都编成程序,存放在存储器中,用程序来控制交换机的各项工作。程控交换是利用计算机软件进行控制的一种交换方式。
与程控相对的概念是布控,(Wider Logic Control,布线逻辑控制)所有控制逻辑用机电或电子元件做在一定的印制板上,通过机架的布线做成。布控交换是利用逻辑电路进行接续控制的一种交换方式。
程控交换机的优越性表现在以下几方面:
- 灵活性大,适应性强;
- 能提供多种新服务性能;
- 便于实现共路信令;
- 操作维护管理功能的自动化;
- 适应现代电信网的发展。
现在常用的交换设备几乎全部都是数字程控交换设备。
2.3 ATM交换
ATM是ITU-T(国际电联电信部)确定的用于宽带综合业务数字网B-ISDN(Broadband Integrated Services Digital Network)的复用、传输和交换模式。信元是ATM特有的分组单元,话音、数据、视频等各种不同类型的数字信息均可被分割成一定长度的信元。它的长度为53字节,分成两部分:5字节的信元头含有用于表征信元去向的逻辑地址、优先级等控制信息;48个字节的信息段用来装载不同用户的业务信息。任何业务信息在发送前都必须经过分割,封装成统一格式的信元,在接收端完成相反操作,以恢复业务数据原来的形式。通信过程中业务信息信元的再现,取决于业务信息要求的比特率或信息瞬间的比特率。
ATM具有以下技术特点:
- ATM是一种统计时分复用技术。它将一条物理信道划分为多个具有不同传输特性的逻辑信道提供给用户,实现网络资源的按需分配。
- ATM利用硬件实现固定长度分组的快速交换,具有时延小、实时性好的特点,能够满足多媒体数据传输的要求。
- ATM是支持多种业务的传递平台,并提供服务质量QoS保证。ATM通过定义不同ATM适配层AAL(ATM Adaptation Layer)来满足不同业务传送性能的要求。
- ATM是面向连接的传输技术,在传输用户数据之前必须建立端到端的虚连接。所有信息,包括用户数据、信令和网管数据都通过虚连接传输。
- 信元头比分组头更简单,处理时延更小。
ATM支持语音、数据、图像等各种低速和高速业务,是一种不同于其他交换方式、与业务无关的全新交换方式。
2.4 以太网交换
以太网是Xerox公司发明的基带LAN标准,它采用带冲突检测的载波监听多路访问协议(CSMA/CD),速率为10Mbps,传输介质为同轴电缆。以太网是在20世纪70年代为解决网络中零散的和偶然的堵塞开发的,而IEEE 802.3标准是在最初的以太网技术基础上于1980年开发成功的。现在,以太网一词泛指所有采用CSMA/CD 协议的局域网。以太网2.0版由数字设备公司(Digital Equipment Corp)Intel公司和Xerox公司联合开发,它与IEEE 802.3兼容。
尽管以太网与IEEE 802.3标准有很多相似之处,但也存在一定的差别。以太网提供的服务对应于OSI参考模型的第一层和第二层,而IEEE 802.3提供的服务对应的OSI参考模型的第一层和第二层的信道访问部分(即第二层的一部分)。IEEE 802.3没有定义逻辑链路控制协议,但定义了几个不同物理层,而以太网只定义了一个物理层。另外,IEEE 802.3的帧格式与以太网II的帧格式也不完全相同,现在的以太网设备一般都兼容这两种帧格式。
从速率等级来看以太网技术经历了10M、100M、千兆和10G以太网4个阶段。目前千兆速率以下IEEE 802.3都已经定义了相关的标准,随着10G以太网技术标准的出台,已经有一些厂商推出了10G以太网设备,比如CISCO和Juniper等。
从应用角度来看,最初以太网技术用于局域网,主要是当时以太网的传输距离仅仅局限在几百米,随着以太网传输距离的扩大,特别是以太网的长距离光纤传输技术的出现,以太网技术应用的范围已经突破局域网的范围,以太网技术已经成为城域宽带接入的一种主要技术。
从技术融合角度来看,由于以太网技术的经济性和技术的简单性,非常方便承载IP业务,因此在数据业务与时分业务的融合中也扮演着非常重要的角色,目前已经有以太网 OVER VDSL,以太网 OVER SDH等几种技术。
网络的七层模型及INTERNET的五层模型之间的对应关系如表2.1所示。
以太网技术标准主要定义了数据链路层和物理层的规范,如图2.1所示。对等技术标准包括令牌环网等。TCP/IP协议本身是与数据链路层和物理层无关的,TCP/IP协议栈可以架构在以太网技术上,也可以是令牌环网上。
2.5 光 交 换
光纤有着巨大的频带资源和优异的传输性能,是实现高速率、大容量传输最理想的物理媒质。随着波分复用(Wavelength Division Multiplexing,WDM)技术的成熟,一根光纤中能够传输几百吉比特/秒(Gbit/s)到太比特/秒(Tbit/s)的数字信息,这就要求通信网中交换系统的规模越来越大,运行速率也越来越高。
光交换和ATM交换一样,是宽带交换的重要组成。
光交换技术是一种光纤通信技术,它是指不经过任何光/电转换,在光域直接将输入光信号交换到不同的输出端。信息的光电交换和光交换的原理示意图如图2.2和图2.3所示。
<p style="text-align:center">![image.png](https://ucc.alicdn.com/pic/developer-ecology/eb2b789754a74e28a7d8f09c34013b0b.png)
随着光器件和波分复用技术的发展及不断成熟,光交换技术将会成为一个核心技术。
2.6 二层交换——交换机原理
交换机(Switch)是一种用于电信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。
交换机的主要功能包括物理编址、网络拓扑结构、错误校验、帧序列及流控。交换机还具备一些新的功能,如对VLAN(Virtual Local Area Network,虚拟局域网)的支持、对链路汇聚的支持,甚至有的交换机还具有防火墙的功能。
首先,我们需要清楚二层交换机和HUB的区别。其实很简单,二层交换机比HUB(多端口转发器,也称集线器)“聪明”。当从网络中收到一个数据帧时,HUB给所有的端口都发一份数据,而交换机只给目的设备连接的那个端口发一份数据。
二层交换是指在LAN中的报文转发,我们结合交换机的工作原理来阐述LAN中的报文转发。
如图2.4所示,从外部网络来一个报文进入LAN中,已知它的目标主机就在这个LAN中,但是它只知道目标主机的IP地址,这样就需要地址解析协议(Address Resolution Protocol,ARP)来帮助它找到目标主机的链路层地址,这时路由器就会发送ARP请求,在LAN中寻找与报文目的IP地址对应的MAC地址及此主机连接的端口。这样,就完成了LAN内的寻址。同时在二层交换机上会有一张MAC地址表来帮助以后报文进行LAN内的转发。
二层交换的特点总结:
- ARP解析可以获得对端MAC地址;
- 交换机学习MAC地址映射。
二层交换的关键数据就是MAC表,MAC表记录了访问指定MAC地址的报文需要交换到哪个端口。MAC是二层交换的核心。
2.7 三层转发——路由器原理
路由器是指用于网络互连的计算机设备,它的主要作用如下:
- 路由(寻径):学习和维护网络拓扑结构知识的机制,产生和维护路由表。
- 交换/转发:数据在路由器内部移动与处理的过程(从路由器一个接口输入,然后选择合适的接口输出,做帧的解封装与封装,并对包做相应处理)。
- 隔离广播,指定访问规则。
- 异种网络互连。
路由设备的工作流程如图2.5所示。
1.直连路由
当接口配置了网络协议地址并状态正常时,接口上配置的网段地址自动出现在路由表中并与接口关联,并随接口的状态变化在路由表中自动出现或消失。IPv4路由表结构示意图如图2.6所示。
2.静态路由
静态路由是一条单向路由,还需要在对方的路由设备上配置一条相反的路由。静态路由示意图如图2.7所示。
默认路由配置示例如图2.8所示。
默认配置路由可以配置在只有一条出口的“根状网络”的出口路由设备上,可以访问“未知的”目的网络。
3.动态路由
动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。动态路由机制的运作依赖路由器的两个基本功能:路由器之间适时的路由信息交换,以及对路由表的维护。
路由协议是运行在路由器上的软件进程,与其他路由器上相同路由协议之间交换路由信息,学习非直连网络的路由信息,并加入路由表,并且在网络拓扑结构变化时能自动调整,维护正确的路由信息。
常见的动态路由协议有以下几个:
- RIP协议:路由信息协议(RIP)是内部网关协议IGP中最先得到广泛使用的协议。RIP是一种分布式的基于距离向量的路由选择协议,是因特网的标准协议,其最大优点就是实现简单,开销较小。
- OSPF协议:OSPF(Open Shortest Path First,开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,IGP),用于在单一自治系统(Autonomous System,AS)内决策路由。
动态路由工作机制如图2.9所示。
路由转发的核心是路由表。
三层IP转发和二层交换有什么区别呢?最主要的区别是它们寻找目的地的关键字不同,二层交换是链路层地址,三层转发是IP地址。链路层地址——MAC地址,通常存在于一个平面地址空间,没有清晰的地址层次,只适合于同一网段内主机的通信。对于不同网络之间的互连通信,考虑到可能使用不同的传输介质,不同的链路层协议,为提供更大的灵活性,通常使用网络层地址——IP地址来寻址通信。
每个路由器中都有一张路由表,这张表可以由用户手动配置,也可以从动态路由协议中学到。该表的索引是IP地址/掩码,每个表项中都存放有下一跳的IP地址和出口。有了这张表,路由器接在收到数据包时就能做到心中有数了。
如图2.10所示,IP地址为192.4.1.1的主机要访问远端IP地址为192.5.1.1的主机。数据包需要先在接入路由器上查找路由,一般情况下接入路由器上路由表项都比较简单,对所有网段的地址都指向其直连的上游设备20.1.1.2.。然后还需在20.1.1.2上查找路由表,找到匹配项192.5.1.0 /24 : 10.1.1.1,就从10.1.1.2所在的接口通过E1链路将数据包发送出去。在10.1.1.1上接收到报文后,检查数据报的目的地址,发现在其直连网段,遂将数据报文正确送到IP地址为192.5.1.1的主机,从而完成一次完整的转发。
IP转发的特点总结:
- 报文逐跳转发;
- 报文的转发单位可以是数据包,也可以是数据流。
2.8 三层交换——三层交换机
三层交换机是二层交换机和路由器在功能上的集成,三层交换机在功能上实现了VLAN的划分、VLAN内部的二层交换和VLAN间路由的功能。
VLAN是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间通信就像在同一个网段中一样,由此得名虚拟局域网。
VLAN工作在OSI参考模型的第2层和第3层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。
传统的交换技术是在OSI网络标准模型中的第二层——数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发。应用第三层交换技术即可实现网络的路由功能,又可以根据不同的网络状况做到最优的网络性能。
三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这个目的服务的,能够做到“一次路由,多次转发”。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。
典型应用:同一个局域网中的各个子网的互联及局域网中VLAN间的路由,用三层交换机来代替路由器;局域网与公网互联之间要实现跨地域的网络访问时,通过专业路由器。
优点:实现局域网内的快速转发。
特点:交换机的信息转发基于硬件转发,路由器的信息转发基于软件转发。三层转发流程如图2.11所示。
(1)源主机→网关,通过ARP获取网关MAC(源主机与目的主机处于不同网段)。
(2)网关→源主机,网关发送ARP应答报文,应答报文中的“源MAC地址”就包含了网关的MAC地址。
(3)源主机→网关,目的MAC使用网关MAC地址,源IP地址使用主机的IP地址,目的IP地址为目的主机的IP地址,发送报文给网关。
(4)网关(交换机)查找转发表(Forward Information Base,FIB)。(查找FIB表的条件:源主机与目的主机的IP地址不在同一网段。FIB表是根据路由表生成的,主要存储的是有效的路由,如果你的路由全部有效,那么FIB表与路由表内容完全一样,这种情况时路由器可以直接转发。路由表是属于控制层,FIB属于转发层。也就是说,路由表是配置时生成的下一跳,这个下一跳不一定直接可达,FIB是转发的,下一跳必须直接可达)。
(5)FIB表Miss,请求CPU查看软件路由表,如果匹配,需要查询目的MAC地址;通过发送ARP包进行查询。
(6)获取目的MAC后,向ARP表中添加对应表项,并转发由源主机到达目的主机的包;同时三层交换机三层引擎结合路由表生成目的主机的三层硬件转发表。
(7)路由器生成硬件转发表完成后,目的主机的数据包根据转发表项进行数据交换;
以上流程适用于不同VLAN(网段)中的主机互访时属于这种情况,这时用于互连的交换机做三层交换转发。这就是“一次路由,多次交换”的原理。
例如,PC A与PC B进行通信的示例如图2.12所示。MAC表如表2.2所示,三层交换机的ARP表如表2.3所示,硬件转发表如表2.4所示,其中,L3-SW的含义是三层交换机。主机PCA的ARP表如表2.5所示。
(1)PC A的IP(1.1.1.2)与目的PC B IP(2.1.1.2)不在同一网段,需通过网关进行中转;PC A检测是否有网关MAC,有则进行转发,没有则先通过ARP获取网关MAC。广播帧组成结构:源MAC(PC A)+目的MAC(IP地址广播,全0)+目的IP(1.1.1.1)+源IP(1.1.1.2)。
(2)L3-SW交换机(网关)接收ARP包,(主机发送消息时将包含目标IP地址的ARP请求广播到网络中的所有主机上,并接收返回消息,以此确定目标的物理地址)确定为请求交换机(网关)自己的MAC地址,然后进行ARP应答,回复交换机(网关)自身的MAC地址;同时进行MAC学习,完成MAC表和ARP表,然后把“PC A IP地址+MAC+端口+VLAN等”的多元组更新至硬件转发表。
(3)PC A收到ARP回复报文,刷新ARP表,同时把要发送数据的目的MAC修改为网关MAC。
?注意:三层转发时,改变的是帧封装后的源和目的MAC地址,原来输入IP包中的“目的MAC地址”作为转发的“下一跳MAC地址”,原来的“源MAC地址”改为三层交换机自身的MAC地址,源和目的IP地址都不变。
(4)L3-SW交换机收包,根据目的IP查询转发表,找寻出接口(端口),找到直接转发;否则进行查询ARP表,找到目的IP对应的网段,然后查找目的IP对应的MAC地址,MISS则查询路由表,查询到直连网段,再查找ARP表获取目的MAC地址,返回MISS。
(5)L3-SW交换机在目的IP所在网段,进行ARP广播,获取目的设备的MAC地址。
(6)L3-SW交换机根据ARP应答报文,更新ARP、MAC、硬件转发表。
(7)L3-SW交换机把PC A要发给PC B的报文转发给PC B,完成第一次通信;第一次通信的第(3)至第(7)步如图2.13所示。PC B、L3-SW交换机的MAC表、L3-SW交换机的ARP表、硬件转发表和PC A表,分别如表2.6至表2.10所示。
(8)后续PC A与PC B进行通信,根据硬件转发表的信息,查询出接口(端口),进行报文转发,完成两台设备间的通信。
为什么有了三层转发,还会发展出三层交换技术呢?原因就是交换比转发要快。交换功能是交换芯片提供的,这个过程不需要CPU的参与,但是转发往往是CPU的实现,CPU由于要干很多事情,所以往往没有时间处理这么多的转发报文,因此从性能上看,相同价位的路由器跟三层交换机相比,交换机的性能更好。当然转发也有硬件实现的,这种情况下自然性能更好,但是成本也高。
2.9 交换机设计开发
2.9.1 交换机的层次定位
当设计一款交换机时,首先要明白自己的交换机需要应用在什么样的网络中,在网络中的层次是什么,这是第一步,也就是说必须从网络的整体来考虑,然后再对局部的交换机进行功能抽象。如图2.14所示为一个典型的校园网网络图。
其中,交换机分为3种:接入交换机、汇聚交换机和核心交换机。
接入交换机:
- 多模式的接入(有线、无线);
- 可以提供本地信息点的数据交换;
- 可以提供VLAN划分功能;
- 实现对于组播功能的支持。
汇聚交换机:
- 连接校园网骨干;
- 完成本区域内的数据交换和路由功能;
- 为接入层提供高速可靠的传输链路。
核心交换机:
- 实现在骨干网络之间的优化传输;
- 保证整个网络的冗余能力、可靠性和高速传输;
- 实现对网络的全面管理。
2.9.2 交换机的硬件设计
交换机的硬件参考图如图2.15所示。
下面对交换机硬件中几个重要部分进行介绍。
1.处理器部分
CPU:交换机的CPU是具有交换能力的CPU,其生产厂家有Marvel、博通。交换芯片是交换机的核心部分,也是交换机成本中的大头,其决定了交换机的路数(能出多少个光口、电口),交换机的吞吐量(每秒钟能够交换的报文数量)。整个交换机架构中使用Marwell公司的98dx3236交换芯片,该芯片内部包含以下主要资源及性能指标:
- 120MPPS的包转发速率;
- 84Gbps的背板带宽;
- 12个可配置的serdes接口,其中,6个可配置为1~10Gbps接口,6个可配置为1~5Gbps接口;
- 内嵌1.5MB的包缓存;
- AlleyCat3:单核,ARM v7,400 MHz;
- PonCat3:双核,ARM v7,800 MHz。
可提供的接口速率及接口类型见表2.11。
2.物理层接口
PHY:以太网PHY是一个芯片,可以发送和接收以太网的数据帧(frame),PHY是Port Physical Layer的缩写。
3.电源部分
电源部分的设计要求是提供稳定的供电,有时候如果端口需要提供POE(端口供电)功能,要求的功率较大。当电源设计不稳定的时候,可能会造成端口数据解析的错误。
4.外设部分
(1)DDR存储
交换机的硬件设计方案使用DDR3作为RAM系统存储,使用单片16bit总线形式,总容量为512MB。
(2)NAND存储
交换机的硬件设计方案使用NAND作为ROM系统存储。
(3)看门狗
交换机的硬件设计方案使用一个硬件看门狗
(4)系统时钟
交换机的硬件设计方案设计中要求系统时钟的数量和种类较多,使用了1个专用时钟芯片,用于产生CPU系统时钟,25MHz的CMOS逻辑系统时钟,100M的PCI_E的差分LVDS逻辑时钟,156.25MHz的用于10Gbps网络的差分PECL逻辑时钟,本次设计将LVDS通过交流耦合电路将LVDS逻辑转变为PECL逻辑。
(5)I2C复用电路
在SFP+部分需要对每个光模块通过I2C总线进行读写访问,需要对I2C总线进行复用,同时通过I2C总线扩展几个IO口对光模块进行收发使能,以及对在位状态进行检查。
(6)LED驱动电路
光模块的状态指示灯需要对交换芯片的IO进行驱动,使用HC251进行驱动控制。
在设计之初,设计人员要确定交换机的交换能力,根据交换机的交换能力选择交换芯片,方能达到不浪费芯片的能力,做到高性价比。
如表2.12所示参数是华为S6300设备的硬件属性。
2.9.3 交换机的软件设计
交换机的功能由硬件和软件共同实现。硬件在芯片确定之后,硬件性能基本就确定了。软件实现的功能则伸缩性很大,取决于研发团队的软件实力。软件能力是交换机功能的另一种体现,由于软件的特性太多,而且软件特性也在不断更新、升级,所以软件开发的工作量很大,是项目研发团队的核心工作之一。
1.MAC协议
MAC(Media Access Control)子层负责完成下列任务:
- MAC地址自动学习和老化:MAC模块的主要功能。
- 静态、动态、黑洞MAC表项刷新:静态MAC用于给一些不支持动态协议的节点使用,比如打印机,动态MAC是常见应用,黑洞MAC用于屏蔽一些攻击源,提供一种网络安全功能。
- MAC FLAPPING检测:支持MAC地址漂移的检测,用于预防攻击的安全目的。
- Sticky MAC,粘性MAC功能,保存配置后重启设备。Sticky MAC地址不会丢失,无须重新学习,解决了端口安全问题。MAC层的代码编写主要还是跟SDK配合。
2.以太网
- 全双工、半双工、自动协商工作方式:自动协商的主要功能就是使物理链路两端的设备通过交互信息自动选择同样的工作参数。自动协商的内容主要包括双工模式、运行速率及流控等参数。一旦协商通过,链路两端的设备就锁定为同样的双工模式和运行速率。
- 端口流量控制:流量控制会从物理层对网络拥塞进行一定的反压(发送一个pause帧),目的是让数据发送方知道你发得太快了,请降低速率以便接收方可以处理。
- Jumbo帧:就是巨型帧的支持能力,通常以太网帧的长度是1520。巨型帧指长度较大的帧,不同厂家的实现不尽相同,一般在9000~12000之间。
- 链路聚合(Trunk)和负载分担:Trunk是一种捆绑技术。将多个物理接口捆绑成一个逻辑接口,这个逻辑接口就称为Trunk接口,捆绑在一起的每个物理接口称为成员接口。Trunk技术可以实现增加带宽、提高可靠性和负载分担的功能。
- LLDP(Link Layer DiscoveryProtocol):LLDP是一种邻近发现协议。它为以太网网络设备如交换机、路由器和无线局域网接入点定义了一种标准的方法,使其可以向网络中其他节点公告自身的存在,并保存各个邻近设备的发现信息。例如,设备配置和设备识别等详细信息都可以用该协议进行公告。
以太网特性的诸多小特性也大多是交换芯片的SDK直接具备的功能,大多数的工作量是调试。
3.VLAN
VLAN(Virtual Local Area Network,虚拟局域网)是将一个物理的LAN在逻辑上划分成多个广播域(多个VLAN)的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接互通,从而将广播报文限制在一个VLAN内。由于VLAN间不能直接互访,因此提高了网络安全性。
VLAN特性是一个在二层组网中相当重要的特性,几乎所有的网络划分都要用到最基本的VLAN特性。
根据对VLAN帧的识别情况,将端口分为4类:
-
Access端口:是交换机上用来连接用户主机的端口,它只能连接接入链路。有如下特点:
- 仅仅允许唯一的VLAN ID通过本端口,这个VLAN ID与端口的PVID(PortDefault VLAN ID,端口默认的VLAN ID)相同。
- 如果该端口收到的对端设备发送的帧是untagged(不带VLAN标签),交换机将强制加上该端口的PVID。
- Access端口发往对端设备的以太网帧永远是不带标签的帧。
-
Trunk端口:是交换机上用来和其他交换机连接的端口,它只能连接干道链路,如图2.16所示。有如下特点:
- Trunk端口允许多个VLAN的帧(带Tag标记)通过。
- 如果从Trunk端口发送的帧带Tag,且Tag与端口默认的VLAN ID相同,则交换机会剥掉该帧中的Tag标记。因为每个端口的PVID取值是唯一的。仅在这种情况下,Trunk端口发送的帧不带Tag。
- 如果从Trunk端口发送的帧带Tag,但是与端口默认的VLAN ID不同,则交换机对该帧不做任何操作,直接发送带Tag的帧。
- QinQ:QinQ(802.1Q-in-802.1Q)端口:是使用QinQ协议的端口。QinQ端口可以给帧加上双重Tag,即在原来Tag的基础上,给帧加上一个新的Tag,从而可以支持多达4094×4094个VLAN,满足网络对VLAN数量的需求。
QinQ有两层标签,外层的标签通常被称做公网Tag,用来存放公网的VLAN ID;内层标签通常被称做私网Tag,用来存放私网的VLAN ID。
按照VLAN的划分方式,可以分为以下几种:
- 基于端口划分:根据交换设备的端口编号来划分VLAN。
- 基于MAC地址划分:根据计算机网卡的MAC地址来划分VLAN。
- 基于子网划分:交换设备根据报文中的IP地址信息划分VLAN。
- 基于匹配策略划分:基于MAC地址、IP地址、接口组合策略划分VLAN,是指在交换机上配置终端的MAC地址和IP地址,并与VLAN关联。只有符合条件的终端才能加入指定VLAN。
VLAN的技术点相当复杂,要实现VLAN的基本功能至少需要实现以上前3种接口,而VLAN的划分方式,需要至少实现一种才能够配置VLAN,从实现角度来说第一种划分最容易实现。
VLAN的特性还有很多,限于篇幅,这里不再展开。
- hybird端口:是Access和Trunk的集合,Hybrid端口untagged tagged对报文的处理过程如下所述。
接收报文时:Hybrid报文在收到数据的时候,先看它是否带VLAN标签,是否允许通过(在untagged和tagged列表中的报文都允许通过,这个就相当于Trunk的allow-pass vlan)。当你给PC1划入vlan10的时候(port hybrid pvid vlan 10),相应的就要放行vlan10(port hybrid untagged vlan 10)。如果报文已经有标签且可以通过,则让报文带着标签通过;如果报文没标签且可以通过,则打上PVID,再让带着PVID标签的报文通过;(以上两点跟Trunk端口一样)如果不在untagged或tagged列表中,则表示不允许通过,丢弃此报文。
发送报文时:如果报文在untagged或tagged列表中,则表示可以从此端口通过,对于untagged列表中的报文,在发送的时候去掉VLAN标签后再从端口发送出去;对于tagged列表中的报文,在发送的时候带着VLAN标签从端口发送出去。
如果报文不在untagged或tagged列表中,表示不从此端口通过。接收报文的时候,可以当做Trunk口来对待;untagged(去标签)和tagged(带标签)只是做到了Trunk是否放行VLAN的需要,和实际打不打标签没有关系。untagged(去标签)和tagged(带标签)只对从端口发送出去的报文起作用(保留标签或去掉标签再发送出去)。在untagged或tagged列表中的VLAN表示可以从本端口发送或者接收;不在untagged或tagged列表中的VLAN表示不可以从本端口发送或接收。
2.9.4 测试环节
产品完成后的测试主要是硬件测试。软件测试在开发阶段应该已经完成。常见的测试方法有:
- 高低温测试:一般使用高低温测试箱进行。高低温测试箱分为交变测试箱和湿热测试箱,两种试验方法都是在高低温测试箱的基础上进行升级拓展。交变测试箱是指可以一次性将需要做的温度、湿度和时间设定在仪表参数内,测试箱会按照设定程序执行;湿热测试箱就是在温度的基础上加湿热系统,这样可以在做温度测试的同时也可以做湿度测试,使试验效果更接近自然气候,模拟出更恶劣的自然气候,从而使被测样品的可靠性更高。
- 端口还回测试:端口还回是指在交换机的一个端口上产生一个输入,然后从一个端口出,使流量形成闭环,这样就能够使每个端口都能够利用这个正向激励达到每个端口的满带宽,从而实现软硬件的测试,如图2.17所示。
- 长稳测试:这个要搭建一个组网环境,进行长时间的流量测试,这种测试至少要一周时间,来测试交换机的稳定性。
2.10 小 结
交换机的设计重点是设计出符合自己需求的交换机,功能做到尽量不浪费硬件的性能,这就要求设计人员对交换产品的软硬件特性要有很深的了解。
2.11 习 题
1.简述交换机的功能与交换原理。
2.简述路由器的功能与路由原理。
3.简述交换机的开发流程。
4.VPN在交换机中的设计要点是什么?
5.简述交换机软件设计流程?