MPLS --- 多协议标签交换
包交换 --- 所谓包交换,数据组成数据包,在各个网络节点中不断传递,最终到达目标。
(可以简单的理解为是三层转发的过程)
其实,我们对于包交换的转发方式并不是很满意,主要是因为他的转发效率太低:
- 完成过程需要查两张表 --- 路由表,ARP缓存表
- 路由表的匹配原则 --- 最长匹配原则
- 递归查找 --- 在一定情况下,设备需要递归查找出接口或者下一跳。
- IPV4头部是可变长头部 --- 则处理头部信息时必须依靠软件来处理。相较而言,交换机的二层转发可以基于硬件来实现(通过使用支持二元运算的硬件芯片。如:CAM),这样,即使MAC地址表中的条目数量很多,也可以在短时间内完成匹配动作,效率要远高于路由表的软件查找。
标签交换
在二层和三层封装之间,添加一个和路由条目存在映射关系的标签,之后,维护一张 记录对应关系和转发接口表。携带标签的数据来到设备上,将先看到标签,之后,基于维护的表进行转发,不看三层的IP数据。因为标签本身短小而且定长,所以其转发效 率应该高于包交换。
但是标签交换需要给数据包中先打上标签,之后到达目标之前,还需要弹出标签,因为标签只是在传输过程中提高转发效率的手段。因为有这些动作的存在,所以,标签交换转发效率的提升相较于包交换并不明显。
因为标签交换的转发效率提升并不是很明显,所以,我们在数据转发上又继续研发改进包交换。包交换至今,存在3次大的变更。
- 进程交换 --- process switching --- 最早的包交换,就是每个数据包到设备上需要 先根据IP地址查询路由表,之后,在查看ARP缓存表实现转发。
- 快速包交换 --- Fast switching --- 基于流的包交换 --- 一次路由,多次交换 --- 一 股数据流来到设备上,只需要针对数据流中的第一个数据包进行路由查询过程,之后, 将数据包的特征(一般使用五元组来标识数据流)及转发方式记录在缓存中,之后,数 据流中的其他数据包来到设备上,将直接比对缓存中的特征,比对上则直接按照转发方 式进行转发,而不需要所有数据包都进行路由过程,可以大大的提高转发效率。
- 思科的特快交换 --- Cisco Express Forwading --- 简称CEF,其思路就是将路由表和ARP缓存表中的内容进行预读取,之后都记录在CEF表中。并且该表支持硬件转发。
虽然CEF是思科的私有技术,但是,各大厂商也根据其思路设计出了属于自己的特 快交换技术。华为在进行数据转发时,使用的就是FIB(转发信息数据库),该表 就是可以支持硬件处理的转发表
MPLS --- 和包交换共同发展的一个标签交换技术。因为标签交换中的标签需要很路由信息相 关,MPLS作为多协议标签交换技术,可以识别并兼容多种三层协议(IPV4,IPV6…),其兼 容性较强。
MPLS主要应用于三大领域
- 用于解决BGP的路由黑洞问题。
- MPLS VPN
- MPLS TE --- 流量工程 --- 简单理解为控制流量转发的路径