路由器和交换机都属于转发设备,但是它们的位置以及所担负的责任完全不同。交换机就是局域网内的一个“精确分发中心”,它位于数据链路层,并且利用MAC地址表来实现毫秒级的数据包传输,在同一个子网上进行高效的通信;而路由器则是跨网络的“智能路径选择器”,它处于网络层之上,并且通过IP地址和动态/静态路由表来进行寻址、NAT转换以及策略控制等工作,负责子网之间的连接、互联网出口的选择以及网络安全边界等等重要任务。两者分别处在OSI模型的不同层次上,在硬件结构、处理方式以及典型的安装位置等方面都有各自独立的工作范围,目前很多企业的网络系统里会同时用到三层交换机和路由器这两种设备——三层交换机用来做VLAN之间的快速传输,路由器则守住网络出口这一道关口。

按照工作的层次来分析一下转发逻辑的不同之处
交换机按照OSI模型的数据链路层标准工作,在它的工作中主要就是做“查表转发”的事情:当交换机启动之后就会自动地学习到各个端口所对应的MAC地址,并且建立和保持一个MAC地址表;然后接收到数据帧的时候只对其中的目标MAC地址进行分析,并且从这个表里找到相应的记录之后就把它发送到指定的目的端口上——整个过程都是用专用的ASIC芯片来完成的,平均时延小于10微秒;而路由器则处于第三层即网络层的位置上,要做的第一件事就是把以太网帧完整的解封装出来,并从中抽取出行为数据包的部分以及校验一下它的头部信息之后再依据目的地IP地址去查找路由表——这个过程需要用到Trie树或者CAM算法来进行加速,并且还要确定下一个跳转的接口、通过ARP解析出目标主机的MAC地址并且给新的数据包加上一个新的帧头——整个操作的时间大概在几十微秒到几百毫秒之间。
从典型的使用场景来分析功能范围
接入层交换机一般为千兆非网管型,主要用来实现同一VLAN内的PC、打印机和摄像头之间的通信;如果汇聚层使用的是三层交换机,并且开启了SVI接口的话,在不同的VLAN之间就可以进行基于IP地址的路由转发了,但是只限于局域网内的互相访问,并没有向外发布路由信息的功能也没有做任何NAT转换也没有设置任何防火墙规则。路由器则必须放在网络出口的位置上,比如连接到ISP的光纤猫的WAN口处来完成PPPoe拨号、DHCP服务器分配、端口映射等工作,所有的这些操作都不能通过普通的二层交换机来实现。
从硬件实现的角度来看,性能和能力的选择
第二层交换机使用的是高性能的ASIC芯片来实现高速的数据包转发功能,并且没有CPU参与到报文处理的过程中去,因此不能够运行路由算法;第三层交换机虽然集成了路由模块,但是仍然主要依靠硬件来进行数据包的转发工作,在进行VLAN之间的路由信息同步的时候可以使用RIP或者OSPF这样的简单协议,但是对于规模较大的路由信息则无法处理掉,比如BGP4中几十万个前缀的信息就需要用到路由器上的通用多核CPU和专门的网络处理器一起工作才能完成。
所以两者不是谁比谁高一个层次的问题,而是一个分工合作的关系:交换机负责的是在局域网内部怎样才能把数据送到目的地最快的速度;路由器则要做的就是当需要跨越不同网络的时候应该选择什么样的路径,并且保证数据传输的安全和合法。



留言 · 0
还没有留言,说点什么吧
写留言