路由器与交换机的工作原理
计算机网络往往由许多种不同类型的网络互连连接而成。如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种“互连”并没有什么实际意义。因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机是可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网、互连网。
将网络互相连接起来要使用一些中间设备(或中间系统),ISO的术语称之为中继(relay)系统。根据中继系统所在的层次,可以有以下五种中继系统:
1.物理层(即常说的第一层、层L1)中继系统,即转发器(repeater)。
2.数据链路层(即第二层,层L2),即网桥或桥接器(bridge)。
3.网络层(第三层,层L3)中继系统,即路由器(router)。
4.网桥和路由器的混合物桥路器(brouter)兼有网桥和路由器的功能。
5.在网络层以上的中继系统,即网关(gateway).
当中继系统是转发器时,一般不称之为网络互联,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。高层网关由于比较复杂,目前使用得较少。因此一般讨论网络互连时都是指用交换机和路由器进行互联的网络。本文主要阐述交换机和路由器及其区别。
交换机和路由器
“交换”是今天网络里出现频率最高的一个词,从桥接到路由到ATM直至电话系统,无论何种场合都可将其套用,搞不清到底什么才是真正的交换。其实交换一词最早出现于电话系统,特指实现两个不同电话机之间话音信号的交换,完成该工作的设备就是电话交换机。所以从本意上来讲,交换只是一种技术概念,即完成信号由设备入口到出口的转发。因此,只要是和符合该定义的所有设备都可被称为交换设备。由此可见,“交换”是一个涵义广泛的词语,当它被用来描述数据网络第二层的设备时,实际指的是一个桥接设备;而当它被用来描述数据网络第三层的设备时,又指的是一个路由设备。
我们经常说到的以太网交换机实际是一个基于网桥技术的多端口第二层网络设备,它为数据帧从一个端口到另一个任意端口的转发提供了低时延、低开销的通路。
由此可见,交换机内部核心处应该有一个交换矩阵,为任意两端口间的通信提供通路,或是一个快速交换总线,以使由任意端口接收的数据帧从其他端口送出。在实际设备中,交换矩阵的功能往往由专门的芯片(ASIC)完成。另外,以太网交换机在设计思想上有一个重要的假设,即交换核心的速度非常之快,以致通常的大流量数据不会使其产生拥塞,换句话说,交换的能力相对于所传信息量而无穷大(与此相反,ATM交换机在设计上的思路是,认为交换的能力相对所传信息量而言有限)。
虽然以太网第二层交换机是基于多端口网桥发展而来,但毕竟交换有其更丰富的特性,使之不但是获得更多带宽的最好途径,而且还使网络更易管理。
而路由器是OSI协议模型的网络层中的分组交换设备(或网络层中继设备),路由器的基本功能是把数据(IP报文)传送到正确的网络,包括
1.IP数据报的转发,包括数据报的寻径和传送;
2.子网隔离,抑制广播风暴;
3.维护路由表,并与其他路由器交换路由信息,这是IP报文转发的基础。
4.IP数据报的差错处理及简单的拥塞控制;
5.实现对IP数据报的过滤和记帐。
路由器---所谓路由就是指通过相互连接的网络把信息从源地点移动到目标地点的活动。一般来说,在路由过程中,信息至少会经过一个或多个中间节点。通常,人们会把路由和交换进行对比,这主要是因为在普通用户看来两者所实现的功能是完全一样的。其实,路由和交换之间的主要区别就是交换发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换在移动信息的过程中需要使用不同的控制信息,所以两者实现各自功能的方式是不同的。
交换机---交换(switching)是按照通信两端传输信息的需要,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应路由上的技术统称。广义的交换机(switch)就是一种在通信系统中完成信息交换功能的设备。
在计算机网络系统中,交换概念的提出是对于共享工作模式的改进。我们以前介绍过的HUB集线器就是一种共享设备,HUB本身不能识别目的地址,当同一局域网内的A主机给B主机传输数据时,数据包在以HUB为架构的网络上是以广播方式传输的,由每一台终端通过验证数据包头的地址信息来确定是否接收。也就是说,在这种工作方式下,同一时刻网络上只能传输一组数据帧的通讯,如果发生碰撞还得重试。这种方式就是共享网络带宽。
交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部MAC地址表中。
使用交换机也可以把网络“分段”,通过对照MAC地址表,交换机只允许必要的网络流量通过交换机。通过交换机的过滤和转发,可以有效的隔离广播风暴,减少误包和错包的出现,避免共享冲突。
交换机在同一时刻可进行多个端口对之间的数据传输。每一端口都可视为独立的网段,连接在其上的网络设备独自享有全部的带宽,无须同其他设备竞争使用。当节点A向节点D发送数据时,节点B可同时向节点C发送数据,而且这两个传输都享有网络的全部带宽,都有着自己的虚拟连接。假使这里使用的是10Mbps的以太网交换机,那么该交换机这时的总流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB时,一个HUB的总流通量也不会超出10Mbps。
总之,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址
说明二层交换机、三层交换机和路由器的基本工作原理和三者之间的主要区别。
1.二层交换技术
二层交换机是数据链路层的设备,它能够读取数据包中的MAC地址信息并根据MAC地址来进行交换。
交换机内部有一个地址表,这个地址表标明了MAC地址和交换机端口的对应关系。当交换机从某个端口收到一个数据包,它首先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的,它再去读取包头中的目的MAC地址,并在地址表中查找相应的端口,如果表中有与这目的MAC地址对应的端口,则把数据包直接复制到这端口上,如果在表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
二层交换机就是这样建立和维护它自己的地址表。由于二层交换机一般具有很宽的交换总线带宽,所以可以同时为很多端口进行数据交换。如果二层交换机有N个端口,每个端口的带宽是M,而它的交换机总线带宽超过N×M,那么这交换机就可以实现线速交换。二层交换机对广播包是不做限制的,把广播包复制到所有端口上。
二层交换机一般都含有专门用于处理数据包转发的ASIC (Application specific Integrated Circuit)芯片,因此转发速度可以做到非常快。
2.路由技术
路由器是在OSI七层网络模型中的第三层——网络层操作的。
路由器内部有一个路由表,这表标明了如果要去某个地方,下一步应该往哪走。路由器从某个端口收到一个数据包,它首先把链路层的包头去掉(拆包),读取目的IP地址,然后查找路由表,若能确定下一步往哪送,则再加上链路层的包头(打包),把该数据包转发出去;如果不能确定下一步的地址,则向源地址返回一个信息,并把这个数据包丢掉。
路由技术和二层交换看起来有点相似,其实路由和交换之间的主要区别就是交换发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层。这一区别决定了路由和交换在传送数据的过程中需要使用不同的控制信息,所以两者实现各自功能的方式是不同的。
路由技术其实是由两项最基本的活动组成,即决定最优路径和传输数据包。其中,数据包的传输相对较为简单和直接,而路由的确定则更加复杂一些。路由算法在路由表中写入各种不同的信息,路由器会根据数据包所要到达的目的地选择最佳路径把数据包发送到可以到达该目的地的下一台路由器处。当下一台路由器接收到该数据包时,也会查看其目标地址,并使用合适的路径继续传送给后面的路由器。依次类推,直到数据包到达最终目的地。
路由器之间可以进行相互通讯,而且可以通过传送不同类型的信息维护各自的路由表。路由更新信息主是这样一种信息,一般是由部分或全部路由表组成。通过分析其它路由器发出的路由更新信息,路由器可以掌握整个网络的拓扑结构。链路状态广播是另外一种在路由器之间传递的信息,它可以把信息发送方的链路状态及进的通知给其它路由器。
3.三层交换技术
一个具有第三层交换功能的设备是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单的把路由器设备的硬件及软件简单地叠加在局域网交换机上。
从硬件上看,第二层交换机的接口模块都是通过高速背板/总线(速率可高达几十Gbit/s)交换数据的,在第三层交换机中,与路由器有关的第三层路由硬件模块也插接在高速背板/总线上,这种方式使得路由模块可以与需要路由的其他模块间高速的交换数据,从而突破了传统的外接路由器接口速率的限制。在软件方面,第三层交换机也有重大的举措,它将传统的基于软件的路由器软件进行了界定。
其做法是:
对于数据包的转发:如IP/IPX包的转发,这些规律的过程通过硬件得以高速实现。
对于第三层路由软件:如路由信息的更新、路由表维护、路由计算、路由的确定等功能,用优化、高效的软件实现。
假设两个使用IP协议的机器通过第三层交换机进行通信的过程,机器A在开始发送时,已知目的IP地址,但尚不知道在局域网上发送所需要的MAC地址。要采用地址解析(ARP)来确定目的MAC地址。机器A把自己的IP地址与目的IP地址比较,从其软件中配置的子网掩码提取出网络地址来确定目的机器是否与自己在同一子网内。若目的机器B与机器A在同一子网内,A广播一个ARP请求,B返回其MAC地址,A得到目的机器B的MAC地址后将这一地址缓存起来,并用此MAC地址封包转发数据,第二层交换模块查找MAC地址表确定将数据包发向目的端口。若两个机器不在同一子网内,如发送机器A要与目的机器C通信,发送机器A要向“缺省网关”发出ARP包,而“缺省网关”的IP地址已经在系统软件中设置。这个IP地址实际上对应第三层交换机的第三层交换模块。所以当发送机器A对“缺省网关”的IP地址广播出一个ARP请求时,若第三层交换模块在以往的通信过程中已得到目的机器C的MAC地址,则向发送机器A回复C的MAC地址;否则第三层交换模块根据路由信息向目的机器广播一个ARP请求,目的机器C得到此ARP请示后向第三层交换模块回复其MAC地址,第三层交换模块保存此地址并回复给发送机器A。以后,当再进行A与C之间数据包转发进,将用最终的目的机器的MAC地址封装,数据转发过程全部交给第二层交换处理,信息得以高速交换。既所谓的一次选路,多次交换。
第三层交换具有以下突出特点
有机的硬件结合使得数据交换加速;
优化的路由软件使 得路由过程效率提高;
除了必要的路由决定过程外,大部分数据转发过程由第二层交换处理;
多个子网互连时只是与第三层交换模块的逻辑连接,不象传统的外接路由器那样需增加端口,保护了用户的投资。
1、交换机的定义
局域网交换机拥有许多端口,每个端口有自己的专用带宽,并且可以连接不同的网段。交换机各个端口之间的通信是同时的、并行的,这就大大提高了信息吞吐量。为了进一步提高性能,每个端口还可以只连接一个设备。
为了实现交换机之间的互连或与高档服务器的连接,局域网交换机一般拥有一个或几个高速端口,如100MB以太网端口、FDDI端口或155MB ATM端口,从而保证整个网络的传输性能。
2、交换机的特性
通过集线器共享局域网的用户不仅是共享带宽,而且是竞争带宽。可能由于个别用户需要更多的带宽而导致其他用户的可用带宽相对减少,甚至被迫等待,因而也就耽误了通信和信息处理。利用交换机的网络微分段技术,可以将一个大型的共享式局域网的用户分成许多独立的网段,减少竞争带宽的用户数量,增加每个用户的可用带宽,从而缓解共享网络的拥挤状况。由于交换机可以将信息迅速而直接地送到目的地能大大提高速度和带宽,能 保护用户以前在介质方面的投资,并提供良好的可扩展性,因此交换机不但是网桥的理想替代物,而且是集线器的理想替代物。
与网桥和集线器相比,交换机从下面几方面改进了性能:
(1)通过支持并行通信,提高了交换机的信息吞吐量。
(2)将传统的一个大局域网上的用户分成若干工作组,每个端口连接一台设备 或连接一个工作组,有效地解决拥挤现像。这种方法人们称之为网络微分 段(Micro一segmentation)技术。
(3)虚拟网(VirtuaI LAN)技术的出现,给交换机的使用和管理带来了更大 的灵活性。我们将在后面专门介绍虚拟网。
(4)端口密度可以与集线器相媲美,一般的网络系统都是有一个或几个服务器,而绝大部分都是普通的客户机。客户机都需要访问服务器,这样就导致服务器的通信和事务处理能力成为整个网络性能好坏的关键。
交换机就主要从提高连接服务器的端口的速率以及相应的帧缓冲区的大小,来提高整个网络的性能,从而满足用户的要求。一些高档的交换机还采用全双工技术进一步提高端口的带宽。以前的网络设备基本上都是采用半双工的工作方式,即当一台主机发送数据包的时候, 它就不能接收数据包,当接收数据包的时候,就不能发送数据包。由于采用全双工技术,即主机在发送数据包的同时,还可以接收数据包,普通的10M端口就可以变成20M端口,普通的100M端口就可以变成200M 端口,这样就进一步提高了信息吞吐量。
3、交换机的工作原理
传统的交换机本质上是具有流量控制能力的多端口网桥,即传统的(二层) 交换机。把路由技术引入交换机,可以完成网络层路由选择,故称为三层交换,这是交换机的新进展。交换机(二层交换)的工作原理交换机和网桥一样,是工作在链路层的联网设备,它的各个端口都具有桥接功能,每个端口可以连接一个LAN或一台高性能网站或服务器,能够通过自学习来了解每个端口的设备连接情况。所有端口由专用处理器进行控制,并经过控制管理总线转发信息。
同时可以用专门的网管软件进行集中管理。 除此之外,交换机为了提高数据交换的速度和效率,一般支持多种方式。
(1)存储转发
所有常规网桥都使用这种方法。它们在将数据帧发柱其他端口之前,要把收到的帧完全存储在内部的存储器中,对其检验后再发往其他端口,这样其延时等于接收一个完整的数据帧的时间及处理时间的总和。如果级联很长时,会导致严重的性能问题,但这种方法可以过滤掉错误的数据帧。
(2)切入法:
这种方法只检验数据帧的目标地址,这使得数据帧几乎马上就 可以传出去,从而大大降低延时。
其缺点是:错误帧也会被传出去。错误帧的概率较小的情况下,可以采用切入法以提高传输速度。而错误帧的概率较大的情况下,可以采用存储转发法/以减少错误帧的重传。
4、交换机的配置
我们下面以Cisco公司的Catlystl900交换机为例,介绍交换机的一般配置过程。
对一台新的Catlystl900交换机,使用它的缺省配置就可以工作了。这因为它是一种将软件装在FlashMemory中的硬件设备,当加电时,它首先要进行一系列自检,对所有端口进行测试之后,交换机就处于工作状态。这时它的交换表是空的,它可以通过自学习来了解各个端口的设备连接情况,并将设备的 MAC地址记录在交换表中,当有信息交换时,交换机就根据交换表来进行数据转发。
但为了便于对它进行网络管理,Catlystl900交换机自己有一个MAC地址,这样就可以为它分配一个IP地址和屏蔽码。网络管理员须通过交换机的串口接一台终端或仿真终端,才能为它指定一个IP地址,其缺省值是0.0.0.0。指定IP地址以后,网络管理员就可以通过网络进行远程管理了。Catlystl900交换机的配置界面是菜单形式,缺省配置下,它的所有端口都属于同一个VLAN,很多情况下都不需要作什么修改。
(1)将微机串口通过RS一232电缆与Cata1yst1900的Console口连接,运行仿真终端软件,Catalyst 1900 启动后。
(2)回车后,进入主菜单。
(3)按“S”键,进入系统配置菜单:(配置系统名,位置,日期)。
(4)在主菜单中按“N”键进入网络管理菜单。
(5)配置IP地置。
(6)配置SNMP参数。
5、交换机的种类
交换机是数据链路层设备,它可将多个物理LAN网段连接到一个大型网络上,与网络类似交换机传输和溢出也是基于MAC地址的传输。由于交换机是用硬件实现的,因此,传输速度很快。传输数据包时,交换机要么使用存储---转发交换方式,要么使用断---通交换方式。目前有许多类型的交换机,其中包括ATM交换机,LAN交换机和不同类型的WAN交换机。
ATM交换机
ATM(Asynchronous Transfer Mode)交换机为工作组,企业网络中枢以及其它众多领域提供了高速交换信息和可伸缩带宽的能力。ATM交换机支持语音,视频和文本数据应用,并可用来交换固定长度的信息单位(有时也称元素)。企业网络是通过ATM中枢链路连接多个LAN组成的。
局域网交换机
LAN交换机用于多LAN网段的相互连接,它在网络设备之间进行专用的无冲突的通信,同时支持多个设备间的对话。LAN交换机主要是用于高速交换数据帧。通过LAN交换机将一个0Mbps以太网与一个100Mbps 以太网互联。
路由器工作原理
传统地,路由器工作于OSI七层协议中的第三层,其主要任务是接收来自一个网络接口的数据包,根据其中所含的目的地址,决定转发到下一个目的地址。因此,路由器首先得在转发路由表中查找它的目的地址,若找到了目的地址,就在数据包的帧格前添加下一个MAC地址,同时IP数据包头的TTL(Time To Live)域也开始减数,并重新计算校验和。当数据包被送到输出端口时,它需要按顺序等待,以便被传送到输出链路上。
路由器在工作时能够按照某种路由通信协议查找设备中的路由表。如果到某一特定节点有一条以上的路径,则基本预先确定的路由准则是选择最优(或最经济)的传输路径。由于各种网络段和其相互连接情况可能会因环境变化而变化,因此路由情况的信息一般也按所使用的路由信息协议的规定而定时更新。
网络中,每个路由器的基本功能都是按照一定的规则来动态地更新它所保持的路由表,以便保持路由信息的有效性。为了便于在网络间传送报文,路由器总是先按照预定的规则把较大的数据分解成适当大小的数据包,再将这些数据包分别通过相同或不同路径发送出去。当这些数据包按先后秩序到达目的地后,再把分解的数据包按照一定顺序包装成原有的报文形式。路由器的分层寻址功能是路由器的重要功能之一,该功能可以帮助具有很多节点站的网络来存储寻址信息,同时还能在网络间截获发送到远地网段的报文,起转发作用;选择最合理的路由,引导通信也是路由器基本功能;多协议路由器还可以连接使用不同通信协议的网络段,成为不同通信协议网络段之间的通信平台。
一般来说,路由器的主要工作是对数据包进行存储转发,具体过程如下:
第一步:当数据包到达路由器,根据网络物理接口的类型,路由器调用相应的链路层功能模块,以解释处理此数据包的链路层协议报头。这一步处理比较简单,主要是对数据的完整性进行验证,如CRC校验、帧长度检查等。
第二步:在链路层完成对数据帧的完整性验证后,路由器开始处理此数据帧的IP层。这一过程是路由器功能的核心。根据数据帧中IP包头的目的IP地址,路由器在路由表中查找下一跳的IP地址;同时,IP数据包头的TTL(Time To Live)域开始减数,并重新计算校验和(Checksum)。
第三步:根据路由表中所查到的下一跳IP地址,将IP数据包送往相应的输出链路层,被封装上相应的链路层包头,最后经输出网络物理接口发送出去。
简单地说,路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳传输路径,并将该数据包有效地传送到目的站点。由此可见,选择最佳路径策略或叫选择最佳路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用。上述过程描述了路由器的主要而且关键的工作过程,但没有说明其它附加性能,例如访问控制、网络地址转换、排队优先级等。
ARP全称 地址解析协议在局域网内信息是以帧传输的。要记住地址就要有一个ARP缓存表,大概是几分钟刷新一次我忘记了。保存的就是当前局域网内与你连接的机器的IP和MAC的地址。ARP—a就可以查看到这个表。第一个是IP。第二个是网卡地址。第三个是连接类型。
交换机如何学习MAC地址的?
假设一个交换机刚刚启动,MAC表完全是空的,局域网内有两台主机PC1和PC2,IP地址为192.168.0.1和192.168.0.2:那么交换机接到1端口的PC1的第一个数据帧,因为PC1只知道PC2的IP地址而不知道PC2的MAC地址,所以源IP地址为192.168.0.1源MAC地址是0000-0000-0001,目标IP地址为192.168.0.2而目标MAC地址是FFFF-FFFF-FFFF(此报文为ARP请求报文,是二层广播报问),交换机首先将源MAC地址和相对应的端口记录在MAC表中,然后把这个数据帧从所有活动的端口转发出去,;假设PC2在2端口接收到数据帧对数据进行回应时,则目标MAC地址为0000-0000-0001源MAC地址为0000-0000-0002。此时交换机收到数据帧后,首先学习PC2的MAC地址和对应端口到MAC表,然后查找MAC地址表中是否有PC1的MAC地址,发现目标MAC地址对应端口1,则将此数据帧由交换机的1端口转发出去。此时PC1和PC2的MAC地址都已记录在交换机MAC表中,数据在开始正常转发。所以,交换机在转发数据帧的过程,就是查找目标MAC地址,学习源地址的过程,希望能理解!