近年来随着Inte.NET/Intranet的迅猛发展和B/S计算模式的广泛应用,跨地域、跨网络的业务急剧增长,业界和用户深感传统的路由器在网络中的瓶颈效应。
而三层交换机既可操作在网络协议的第三层,起到路由决定的作用,又具有几乎达到第二层交换的速度,且价格相对较低。
一时间,三层交换机将取代路由器成为网络界最流行的话题。但事实果真如此吗?
传统的路由器在网络中有路由转发、防火墙、隔离广播等作用,而在一个划分了VLAN以后的网络中,逻辑上划分的不同网段之间通信仍然要通过路由器转发。
由于在局域网上,不同VLAN之间的通信数据量很大,这样,如果路由器要对每一个数据包都路由一次,随着网络上数据量的不断增大,它将成为瓶颈。而第三层交换技术就是将路由技术与交换技术合二为一的技术。
在对第一个数据流进行路由后,它将会产生一个mac地址与IP地址的映射表,当同样的数据流再次通过时,将根据此表直接从二层通过而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率。
路由器的转发采用最长匹配的方式,实现复杂,通常使用软件来实现。而三层交换机的路由查找是针对流的,它利用CACHE技术,很容易采用ASIC实现,因此,可以大大节约成本,并实现快速转发。
但从技术上讲,路由器和三层交换机在数据包交换操作上存在着明显区别。路由器一般由基于微处理器的引接执行数据包交换,而三层交换机通过硬件执行数据包交换。因此与三层交换机相比,路由器功能更为强大,像NAT、VPN等功能仍无法被完全替代。
处于同一个局域网中的各子网的互联,可以用三层交换机来代替路由器,但局域网必须与公网互联以实现跨地域的网络,这时路由器就不可缺少。一个完全构建在交换机上的网络会出现诸如碰撞、堵塞以及通信混乱等问题。使用路由器将网络划分为多个子网,通过路由所具备的功能来有效进行安全控制策略,则可以避这些问题。
三层交换机现在还不能提供完整的路由选择协议,而路由器则具备同时处理多个协议的能力。当连接不同协议的网络,像以太网和令牌环的组合网络,依靠三层交换机是不可能完成网间数据传输的。除此之外,路由器还具有第四层网络管理能力,这也是三层交换机所不具备的。
所以,三层交换机并不等于路由器,也不可能完全取代路由器。
--------------------------------------------------------------------------------------------
三层交换机与路由器的主要区别
之所以有人搞不清三层交换机和路由器之间的区别,最根本就是三层交换机也具有“路由”功能,与传统路由器的路由功能总体上是一致的。虽然如此,三层交换机与路由器还是存在着相当大的本质区别的,下面分别予以介绍。
1. 主要功能不同
虽然三层交换机与路由器都具有路由功能,但我们不能因此而把它们等同起来,正如现在许多网络设备同时具备多种传统网络设备功能一样,就如现在有许多宽带路 由器不仅具有路由功能,还提供了交换机端口、硬件防火墙功能,但不能把它与交换机或者防火墙等同起来一样。因为这些路由器的主要功能还是路由功能,其它功 能只不过是其附加功能,其目的是使设备适用面更广、使其更加实用。这里的三层交换机也一样,它仍是交换机产品,只不过它是具备了一些基本的路由功能的交换 机,它的主要功能仍是数据交换。也就是说它同时具备了数据交换和路由由发两种功能,但其主要功能还是数据交换;而路由器仅具有路由转发这一种主要功能。
2. 主要适用的环境不一样
三层交换机的路由功能通常比较简单,因为它所面对的主要是简单的局域网连接。正因如此,三层交换机的路由功能通常比较简单,路由路径远没有路由器那么复杂。它用在局域网中的主要用途还是提供快速数据交换功能,满足局域网数据交换频繁的应用特点。
而路由器则不同,它的设计初哀就是为了满足不同类型的网络连接,虽然也适用于局域网之间的连接,但它的路由功能更多的体现在不同类型网络之间的互联上,如 局域网与广域网之间的连接、不同协议的网络之间的连接等,所以路由器主要是用于不同类型的网络之间。它最主要的功能就是路由转发,解决好各种复杂路由路径 网络的连接就是它的最终目的,所以路由器的路由功能通常非常强大,不仅适用于同种协议的局域网间,更适用于不同协议的局域网与广域网间。它的优势在于选择 最佳路由、负荷分担、链路备份及和其他网络进行路由信息的交换等等路由器所具有功能。为了与各种类型的网络连接,路由器的接口类型非常丰富,而三层交换机 则一般仅同类型的局域网接口,非常简单。
3. 性能体现不一样
从技术上讲,路由器和三层交换机在数据包交换操作上存在着明显区别。路由器一般由基于微处理器的软件路 由引擎执行数据包交换,而三层交换机通过硬件执行数据包交换。三层交换机在对第一个数据流进行路由后,它将会产生一个MAC地址与IP地址的映射表,当同 样的数据流再次通过时,将根据此表直接从二层通过而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率。同时,三层交 换机的路由查找是针对数据流的,它利用缓存技术,很容易利用ASIC技术来实现,因此,可以大大节约成本,并实现快速转发。而路由器的转发采用最长匹配的 方式,实现复杂,通常使用软件来实现,转发效率较低。
正因如此,从整体性能上比较的话,三层交换机的性能要远优于路由器,非常适用于数据交换频繁的局域网中;而路由器虽然路由功能非常强大,但它的数据包转发 效率远低于三层交换机,更适合于数据交换不是很频繁的不同类型网络的互联,如局域网与互联网的互联。如果把路由器,特别是高档路由器用于局域网中,则在相 当大程度上是一种浪费(就其强大的路由功能而言),而且还不能很好地满足局域网通信性能需求,影响子网间的正常通信。
综上所述,三层交换机与路由器之间还是存在着非常大的本质区别的。无论从哪方面来说,在局域网中进行多子网连接,最好还选用三层交换机,特别是在不同子网 数据交换频繁的环境中。一方面可以确保子网间的通信性能需求,另一方面省去了另外购买交换机的投资。当然,如果子网间的通信不是很频繁,采用路由器也无可 厚非,也可达到子网安全隔离相互通信的目的。具体要根据实际需求来定。
附网络协议融合文档
协议融合
TCP/IP满足了Internet范围的网络通信,FC满足了后端存储的专用高速公路,而SCSI不适合Internet的通信。这就如同火车或者汽车,同样是运输货物,但是它们都适应了不同的需要。
对于SCSI而言,如果要跨越大范围的通信,就要将其承载到TCP/IP上,形成了ISCSI协议。TCP不用关心SCSI协议的什么,只需要封装和传输。
同样的道理,以太网是面向无连接的,没有握手过程,也没有终端认证机制,没有NCP(PPP用来协商上层参数的),而PPP却有,所以PPP适合ISP对接入终端进行认证。但是PPP不如以太网广泛,所以可以融合成为PPPoE。
网络通信协议的四级结构
网络通信协议一般可以分为:Payload 层、信息表示层、交互逻辑层、寻址层
其中最重要的是交互逻辑层
Payload层
payload指的是与本协议逻辑无关的最终数据,它可以是最终应用的数据,也可以是另一种协议的信息表示层+Payload
协议A封装了协议B的 “信息表示层+Payload数据”,可以说协议A封装了协议B,或者A承载了B,或者说B is over A( BoA )
而AmB则是一种彻底的协议转换,而不是仅仅做隧道封装,描述一种协议被Map到另一种协议。
信息表示层
信息表示层是附加到Payload数据之外的一段数据,是协议开销。就如同在信封上的姓名一样
比如运行在通信双方的通信协议用来交互各自的状态,比如信封上的姓名等。
交互逻辑层
交互逻辑层其实就是运行在通信双方协议系统上的动作程序代码逻辑,它根据对方传送来的信息表示层数据作出动作。返回自己的信息表示层。
交互逻辑层是协议的设计思想,是协议的灵魂。
寻址层
寻址层顾名思义是找到目标的一套编址和寻址机制。不同协议的寻址层可以互相映射翻译。
总结一下,
- Payload和信息表示层就是报文要承载的部分,
- 交互逻辑是协议的规范,规定了协议如何进行交互。
- 寻址层是协议的编址方式,用于区分不同的节点。
协议融合的三种方式
协议与协议相互作用有三种方式:
- 调用:一种协议完全利用另一种协议
- 隧道封装(Tunnel):一种协议将另一种协议完整打包
- 映射(Map):一种协议对另一种协议进行翻译,只将原来协议的Payload层数据提取,重新打包到新的协议数据包中。这种方式最彻底
下面将就这几种方式进行一一讲解。
调用
因为协议自身没有某些功能,所以需要调用其他协议的某些功能。
比如
- TCP需要调用IP,因为TCP没有寻址的功能。IP调用以太网,因为IP没有链路传输的功能。
- IP调用PPP:就是上层协议为了达到通信目的,使用另一种协议来服务。
隧道
将一种协议的完整数据包(包括Payload和协议开销)作为另一种协议的Payload进行封装。
也就是说协议转换的设备只是将数据包通通打包即可,不需要关心内层协议是什么。此时需要与上面的调用进行区别,如果一种协议在某方面的功能,另一协议没有实现,就是调用。比如IPoE,IP没有链路层功能,所以是IP协议调用底层的以太网协议。不过值得注意的是IP与以太网之间的编址逻辑是映射而不是使用关系,因为我们是把IP地址映射到MAC地址上的。
Tunnel主要用于内层协议和外层协议都在某方面有相似的功能,但是在某些条件下,外层协议更优秀的情况下。比如用船来装火车箱,这样就可以在水路上走了。或者说还可以用于伪装内层存协议。
ISCSI 和PPPoE是典型的Tunnel。何以见得,在ISCSI中,TCP/IP可以实现寻址和传输保障,而SCSI协议也可实现寻址和传输保障。他们都可以实现同样的功能,但是在两种协议融合以后,SCSI协议的寻址传输保障功能就不用了,完全只使用TCP/IP的。
上面还说过Tunnel另一个作用是伪装,也就是两种协议实现的功能、适用 的环境都相同,但是我们还是可以通过隧道进行伪装,这样对外就可以屏蔽内部细节。比如IP协议中的GRE(通用路由封装)
那么这种伪装有什么作用呢?它将IP协议承载到IP协议本身上面,因为多封装了一层,可以使得一些不能在公网路由的IP包,封装到可以在公网进行路由的IP包里面。
这又有什么用呢?比如总部和分支不在一个地方,所以中间可能会跨越Internet网络,但是我们又希望总部和分支在一个内网下。此时有两种方案:
- 使用专线,也就是向运营商租用专用网络,好处是稳定,缺点是太贵。
- 直接使用Internet网络。但是我们知道,Internet网络的IP地址和企业内部的IP地址完全不同。那么此时Tunnel就有用了,可以在内网报文外面再封装一层,这样两端就像在一个内网里面一样,经过Internet的时候,使用公网地址封装内网的IP包,还可以对IP包进行加密、反修改等,这就形成了IPSec
下面举一个例子来说明Tunnel的过程,同样以寄信为例
- 寄信人将信件(Payload)装入信封(表示层数据)
- 填好收信人的地址、邮编等(通信协议的信息表示层、寻址层)
- 交给邮局(网络交换路由设备)
- 物流业借助水陆空等“链路层”。建立了自己的流程体系(协议交互逻辑)
- 用户可把信件封装到邮政普通的信封直接发,也可以封装到快递公司的信封发送,
- 把邮政协议Tunnel到快递公司的可以获得快速、优质的服务。
若A快递公司在北京没有送货机构,但是青岛需要向北京送货?
可以让有送货机构的B快递公司代送,到目的地以后B的送货员剥开了信封,用户收到了快递A的信封,以为是A送过来的,这就是伪装。
映射关系
Map比Tunnel更复杂,更融合。
Map就是将一种协议逻辑翻译成另一种协议逻辑,Payload数据完全不变。
内层的Payload层在Map里面不会改动,因为只有两端的通信应用程序才能理解。
比如A将青岛地区的送货外包给B,但是表面上必须保持A的原样。
起初:客户信件放入A信封,再封装成B,这就是Tunnel。
现在:
- 让B的取件人了解寄件人提供的信息,取代了A公司的角色,用户按照A公司的协议将信封头信息告诉取件人。
- 取件人直接将信件装入了B的信封,但是将A的信封头转换为了B的信封头。
- B转发以后,送货员将B的信封头转换为A的信封头。
不过两端的用户感受不到,因为中间是有B完成的。
Map方式最大的好处在于开销变小。
比如IP地址必须要映射到MAC地址才能享受以太网服务