首页 > 精选 > 笑傲江湖之三层交换(很生动值得一读)

笑傲江湖之三层交换(很生动值得一读)


网优雇佣军微信号:hr_opt
通信路上,我们一起走!


这篇文章是华为中研所的研发人员写的,生动传神,通俗易懂,且不乏幽默。每段后面都有技术介绍,我认为写的确实有意思,与大家分享笑傲江湖之三层交换篇

令狐冲十四岁那年进入华山,那年岳琳珊八岁,岳不群白天给两人指点剑法,晚上令狐冲给小师妹讲故事哄她入睡。后来,岳不群陆续收了劳德诺,陆大有等徒弟,又忙于修炼紫霞神功,就没有时间指点徒弟。于是他做了一个HUB,从此华山派实现教育电子化,岳不群在网上同时给每个徒弟授课,这种方法很快在五岳剑派内部推广。为了在五岳剑派之间互连,嵩山派掌门左冷禅研制出路由器,使得五岳剑派之间可以互联互通。令狐冲晚上就通过网络给小师妹讲故事。

很快,岳琳珊已经十六岁,变成了一个亭亭玉立的小姑娘了。令狐冲发现自己的目光总是不由自主的在小师妹身上停留,每次和小师妹在一起的时候,总能听到自己强烈的心跳声,经过了一段时间的茶饭不思后,终于有一天晚上,令狐冲在网上给小师妹发了一首情意绵绵的诗:你是风儿我是沙,你是蜜蜂我是花,你是梳子我是头发,你是牙膏我是牙刷。第二天,华山派开例会,令狐冲怀着忐率不按的心情来到了会议室,发现小师妹红着脸躲在师父后面,而其它的师弟都在偷偷朝自己笑,开完会,一个调皮的师弟就过来叫牙刷师兄,赶紧蒙面逃走。问陆大有,才知道是劳德诺用一个叫NetXRay的工具把自己在网上的大作全抓了出来。令狐冲悔恨万分,于是,闭门研究RFC,成功的研制出LanSwitch。它能够识别设备MAC地址,这样,令狐冲发送给小师妹的数据只有她一个人能够收到。令狐冲晚上可以在网上放心的给小师妹讲故事,偶尔手痒还能敲几句平时心里想又说不出口的话来过瘾,然后,红着脸想象小师妹看到后的表情。
// LanSwitch是二层交换设备,它可以理解二层网络协议地址MAC地址。二层交换机在操作过程中不断的收集资料去建立它本身的地址表,这个表相当简单,主要标明某个MAC地址是在哪个端口上被发现的,所以当交换机接收到一个数据封包时,它会检查该封包的目的MAC地址,核对一下自己的地址表以决定从哪个端口发送出去。而不是象HUB那样,任何一个发方数据都会出现在HUB的所有端口上(不管是否为你所需)。这样,LanSwitch在提高效率的同时,也提高了系统的安全性。//

接下来的一年,岳不群大量招收门徒,华山派得以极大的壮大,所使用的LanSwitch也多次级连。但门徒中难免鱼龙混杂,当时华山派一批三、四代弟子崇拜万里独行田伯光,成立了一个田协,经常广播争论比赛八百米还是一千米很合理的问题;,;更让令狐冲受不了的是,随着师父年龄的增大,变得越来越罗嗦,每句话都要重复二十遍,然后在网上广播。令狐冲想和小师妹,陆大有等人专门使用一个广播域,但如果另外使用一个LanSwitch的话,师父肯定不会同意,于是,他修改了LanSwitch的软件,把小师妹,陆大有等人和自己划成一个虚拟网(VLAN),其它人使用另外的VLAN,广播包只在VLAN内发送,VLAN间通过路由器连接。岳不群也深受田协,,但为与左冷禅抗争,用人之际,只能隐忍,知道了这件事,大为高兴,但仍为令狐冲私自修改软件一事,罚他到思过崖面壁一年,一年之内不得下山。 华山派内重新使用VLAN进行子网划分,分为五个子网,师父和师娘,小师妹还有林平之在一个VLAN,;田协弟子用一个VLAN,其它弟子用一个VLAN,而思过崖上也有单独的一个VLAN。令狐冲到了思过崖,并不难过,终于,世界安静了,依靠左冷禅的路由器,令狐冲还可以每天在网上给小师妹讲故事,聊天。
// 局域网交换机的引入,使得网络节点间可独享带宽,但是,对于二层广播报文,二层交换机会在各网络节点上进行广播;同时,对于二层交换机无法识别的MAC地址,也必须在广播域内进行广播。当多个二层交换机级连时,二层交换网络上的所有设备都会收到广播消息。在一个大型的二层广播域内,大量的广播使二层转发的效率大大减低,为了避免在大型交换机上进行的广播所引起的广播风暴,需要在一个二层交换网络内进一步划分为多个虚拟网(VLAN)。在一个虚拟网(VLAN)内,由一个工作站发出的信息只能发送到具有相同虚拟网号(VLANID)的其他站点,其它虚拟网(VLAN)的成员收不到这些信息或广播帧。采用虚拟网(VLAN)可以控制网络上的广播风暴和增加网络的安全性。不同虚拟网(VLAN)之间的通信必须通过路由器进行。//

但是幸福永远是短暂的,接下来总是无尽的烦恼。随着整个五岳剑派势力的增大,路由器的速度越来越慢。令狐冲发现每次给小师妹讲故事时,小师妹的回答总是珊珊来迟,而且话也很少,总是"嗯","噢"或者"我听着呢"。终于有一天,路由器再也PING不通了,令狐冲三天没有得到小师妹的消息,对着空空的显示屏,再也忍不住,在一个下着雪的晚上,偷偷下山找小师妹,到了小师妹窗前,发现小师妹正在网上和小林子热烈的聊天,全没注意一边的自己,内心一阵酸痛,回到思过崖,大病一场。病好后潜心研究,终于有一天,做出来一个路由器,这时,令狐冲发现,此时华山派已经有了三十个VLAN,路由器必须为每个VLAN分配一个接口,接口不够用,而且,两个子网内通过路由器的交换速度远远低于二层交换的速度。
// 二层交换机划分虚拟子网后,就出现了一个问题:不同虚拟子网之间的转发需要通过其它路由器来实现。二层交换机的不同VLAN节点间的转发需要通过路由器设备来实现大大浪费了端口,而路由器的高成本,低效率又使它无法满足大量子网情况下的三层转发需求,三层交换的概念就在这种情况下被提了出来。//

这天晚上,令狐冲心灰意懒,借酒消愁,这时,一个黑影出现在他的面前,原来是一个道风仙骨的老人,正是风清扬。风清扬听了令狐冲的疑惑,说:路由器接口不够,把路由器做在LanSwitch内部不就可以了;交换速度慢,是因为路由器查找的是网段路由,而LanSwitch直接查MAC对应出端口,当然速度快。为什么不能直接根据IP地址查到出端口呢?令狐冲一听,大为仰慕,但还是不明白,IP地址那么多,而且经常变化,如何能够直接查到出端口呢?风清扬说:
"你先坐下,让我来问你,华山派有多少弟子?"
"一万六千左右。"
"你全知道他们住哪里吗?"
"不知道。"
"岳不群要你找一个不知道住哪里的人,如何去找?"
"查华山派电话号码查询系统,找到他的地址,然后去找他。"
"如果你回来后再让你找这个人,又如何去找?"
"如何.... ,查华山派电话号码查询系统,找到他的地址,然后去找他。"
"你不知道到这个人的地址吗?"
"知道,但师父说,华山派的地址那么多,而且经常变化,不用知道地址。"
"岳不群这小子,把徒弟都教成木头了!我问你,你自己认为应该如何找?"
"直接去找!"
"好!你这人还不算太苯。那你知道了一个人的地址后,是不是永远记住了?"
"有的人记住了。其它的都忘了。"
"为什么忘了?"
"因为我记不了那么多人,而且一段时间没有去找他。"
"华山派电话号码查询系统里的地址是如何获得的?"
"我在空旷处大喊一声他的名字,他听到后就会来找我,告诉我他的地址。"
风清扬又问了大把类似脑筋急转弯的问题,然后风清扬说:"现在你明白根据IP地址直接查出端口的道理了吗?等到你明白这个道理,你自然会做出三层交换机来",令狐冲仔细回忆了今天的话,终于明白了和二层转发由MAC地址对应到出端口的道理一样,三层转发也可以直接由IP地址对应到出端口,IP地址的路由可以通过ARP来学习,同样需要老化。这样,VLAN间转发除第一个包需要通过ARP获得主机路由外,其它的报文直接根据IP地址就能够查找到出端口,转发速度远远高于路由器转发的速度。抬头看时,风清扬已经走了。一年后,令狐冲下思过崖,成功的推出Quidway8016路由交换机。实现了VLAN间的互通,并且与嵩山,黑木崖等路由器实现互通。
// 三层交换机是在二层交换机的基础上增加三层交换功能,但它不是简单的二层交换机加路由器,二而是采用了不同的转发机制。路由器的转发采用最长匹配的方式,实现复杂,通常使用软件来实现,。而三层交换机的路由查找是针对流的,它利用CACHE 技术,很容易采用 ASIC实现,因此,可以大大的节约成本,并实现快速转发。很多文章会提及三层交换机和路由器的区别,一般的比较是三层交换机又快又便宜。这些话没有错,但场合是汇聚层。我们看到,在汇聚层,面向三层交换机直接下挂的主机,因为能够获得其主机路由,所以三层交换机能够实现快速查找;而对于通过其它路由器连接多个子网后到达的主机,三层交换机和路由器的处理是一样的,同样采用最长匹配的方法查找到下一跳,由下一跳路由器进行转发。因此,通常的组网方式是在骨干层使用GSR,汇聚层使用三层交换机。当然,对于一个小型的城域网,也可以直接拿三层交换机组网,不需要GSR。//

附:网络技术基础之二三层交换技术与路由技术对比
局域网络的出现,迄今为止已经经历了三十多年,在这三十多年的发展历程中,从最初的无线技术ALOHA引出CSMA/CD核心技术,直到快速以太网(802.3u)及现代的GE(802.3z)10GE以太网技术的出现,不断的推陈出新。这就引发了一个问题,对于一个具体的网络,因为可选择的组网方式的多样化,如何选择一种好的组网技术成为困惑。
对于用户来说,在减低成本的前提下,保证网络的高可靠性,高性能,易维护,易扩展,与采用何种组网技术密切相关;对于设备厂商来说,在保证用户的网络功能实现的基础上,如何能够取的更为可观的利润,采用组网技术的优劣,也是提高利润的其中一个手段。
目前技术的发展,可以说直接面向用户的第一层接口和第二层交换技术已经日趋成熟,它们的发展现状令人满意,所以说选择的重点不在这个层次。但是,作为网络的核心,起网间互连作用的路由器技术却没有实质性的突破。于是一种新的路由技术应运而生----三层交换技术,说它是路由技术,因为它工作在网络协议的三层;说它是交换技术,交换速度特别快,几乎可以达到二层交换速度。
在这些技术选择的权衡中,二层交换+路由组网与三层交换组网的选择是一个焦点问题,二层交换机、三层交换机和路由器这三种技术究竟谁优谁劣,它们各自适用在什么环境?为了解答这问题,我们先从这三种技术的工作原理入手。

(一) 二层交换技术
二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。具体的工作流程如下:
(1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
(2)再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
(3)如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
(4)如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。
从二层交换机的工作原理可以推知以下三点:
(1)由于交换机对多数端口的数据进行同时交换,这就要求具有很宽的交换总线带宽,如果二层交换机有N个端口,每个端口的带宽是M,交换机总线带宽超过N×M,那么这交换机就可以实现线速交换;
(2)学习端口连接的机器的MAC地址,写入地址表,地址表的大小(一般两种表示方式:一为BEFFER RAM,一为MAC表项数值),地址表大小影响交换机的接入容量;
(3)还有一个就是二层交换机一般都含有专门用于处理数据包转发的ASIC (Applica tion specific Integrated Circuit)芯片,因此转发速度可以做到非常快。由于各个厂家采用ASIC不同,直接影响产品性能。
以上三点也是评判二三层交换机性能优劣的主要技术参数,这一点请大家在考虑设备选型时注意比较。

(二)路由技术
路由器工作在OSI模型的第三层---网络层操作,其工作模式与二层交换相似,但路由器工作在第三层,这个区别决定了路由和交换在传递包时使用不同的控制信息,实现功能的方式就不同。工作原理是在路由器的内部也有一个表,这个表所标示的是如果要去某一个地方,下一步应该向那里走,如果能从路由表中找到数据包下一步往那里走,把链路层信息加上转发出去;如果不能知道下一步走向那里,则将此包丢弃,然后返回一个信息交给源地址。
路由技术实质上来说不过两种功能:决定最优路由和转发数据包。路由表中写入各种信息,由路由算法计算出到达目的地址的最佳路径,然后由相对简单直接的转发机制发送数据包。接受数据的下一台路由器依照相同的工作方式继续转发,依次类推,直到数据包到达目的路由器。
而路由表的维护,也有两种不同的方式。一种是路由信息的更新,将部分或者全部的路由信息公布出去,路由器通过互相学习路由信息,就掌握了全网的拓扑结构,这一类的路由协议称为距离矢量路由协议;另一种是路由器将自己的链路状态信息进行广播,通过互相学习掌握全网的路由信息,进而计算出最佳的转发路径,这类路由协议称为链路状态路由协议。
由于路由器需要做大量的路径计算工作,一般处理器的工作能力直接决定其性能的优劣。当然这一判断还是对中低端路由器而言,因为高端路由器往往采用分布式处理系统体系设计。

(三)三层交换技术
近年来的对三层技术的宣传,耳朵都能起茧子,到处都在喊三层技术,有人说这是个非常新的技术,也有人说,三层交换嘛,不就是路由器和二层交换机的堆叠,也没有什么新的玩意,事实果真如此吗?下面先来通过一个简单的网络来看看三层交换机的工作过程。
组网比较简单
使用IP的设备A------三层交换机-----使用IP的设备B
比如A要给B发送数据,已知目的IP,那么A就用子网掩码取得网络地址,判断目的IP是否与自己在同一网段。
如果在同一网段,但不知道转发数据所需的MAC地址,A就发送一个ARP请求,B返回其MAC地址,A用此MAC封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC地址表,将数据包转发到相应的端口。
如果目的IP地址显示不是同一网段的,那么A要实现和B的通讯,在流缓存条目中没有对应MAC地址条目,就将第一个正常数据包发送向一个缺省网关,这个缺省网关一般在操作系统中已经设好,对应第三层路由模块,所以可见对于不是同一子网的数据,最先在MAC表中放的是缺省网关的MAC地址;然后就由三层模块接收到此数据包,查询路由表以确定到达B的路由,将构造一个新的帧头,其中以缺省网关的MAC地址为源MAC地址,以主机B的MAC地址为目的MAC地址。通过一定的识别触发机制,确立主机A与B的MAC地址及转发端口的对应关系,并记录进流缓存条目表,以后的A到B的数据,就直接交由二层交换模块完成。这就通常所说的一次路由多次转发。

以上就是三层交换机工作过程的简单概括,可以看出三层交换的特点:
(1)由硬件结合实现数据的高速转发。
这就不是简单的二层交换机和路由器的叠加,三层路由模块直接叠加在二层交换的高速背板总线上,突破了传统路由器的接口速率限制,速率可达几十Gbit/s。算上背板带宽,这些是三层交换机性能的两个重要参数。
(2)简洁的路由软件使路由过程简化。
大部分的数据转发,除了必要的路由选择交由路由软件处理,都是又二层模块高速转发,路由软件大多都是经过处理的高效优化软件,并不是简单照搬路由器中的软件。

结论:
二层交换机用于小型的局域网络。这个就不用多言了,在小型局域网中,广播包影响不大,二层交换机的快速交换功能、多个接入端口和低谦价格为小型网络用户提供了很完善的解决方案。
路由器的优点在于接口类型丰富,支持的三层功能强大,路由能力强大,适合用于大型的网络间的路由,它的优势在于选择最佳路由,负荷分担,链路备份及和其他网络进行路由信息的交换等等路由器所具有功能。
三层交换机的最重要的功能是加快大型局域网络内部的数据的快速转发,加入路由功能也是为这个目的服务的。如果把大型网络按照部门,地域等等因素划分成一个个小局域网,这将导致大量的网际互访,单纯的使用二层交换机不能实现网际互访;如单纯的使用路由器,由于接口数量有限和路由转发速度慢,将限制网络的速度和网络规模,采用具有路由功能的快速转发的三层交换机就成为首选。
一般来说,在内网数据流量大,要求快速转发响应的网络中,如全部由三层交换机来做这个工作,会造成三层交换机负担过重,响应速度受影响,将网间的路由交由路由器去完成,充分发挥不同设备的优点,不失为一种好的组网策略,当然,前提是客户的腰包很鼓,不然就退而求其次,让三层交换机也兼为网际互连。

源于网络,作者不详

友情链接