早期,随着普及的情况下,当时的硬件技术限制,采用的是最长匹配算法,递归查询的方式,给当时的骨干网发展提出了一个难题,在这种情况下ATM脱颖而出,ATM采用定长的标签,并且只需要维护比路由表小的标签表,便提供更高效率的转发性能和高带宽、QOS功能。但是由于ATM机制太过复杂,设备又非常昂贵,给调试人员带来了很大的困难。在这种情况下,许多产商开始开发研究,把IP和ATM的优势结合的技术,最早由美国一家IPSilon的小公司推出了名为IP Switching,它很好的结合了ATM和IP的优势,随之Cisco(Tag switch)、IBM(ARIS)、3COM(FashtIP)各个产生都推出了自己的技术,为了统一标准 IETF推出了标准化的定义,它就是MPLS。
随着ATM的慢慢退出,和IP的路由转发依靠硬件来完成(比如cisco的CEF),MPLS的优势越来越少,但是MPLS提供的高扩展性非常强,在ISP的发展下,VPN的需求越来越大,而MPLS 正好提供了天然的隧道,而且在流量控制、和多协议方面的支持(IP、IPV6、二层帧头等),那么就产生了MPLS VPN和各种多业务的扩展应用。被运营商大量使用提供不同需求的业务。
MPLS的包结构
Label:20bit 2^0~2^20-1,也就是1048575个标签,0~15做保留
其中0做显示空(NULL,用于QOS 只看EXP 忽略查找LFIB)
3是隐式空(通知次莫跳执行TAG动作)
1 为路由器报警标签 14 是OAM报警
EXP:扩展应用如果是IP包中的3bit为IP precedence
S:栈底位 0与1 1代表1层 0代表多层 (MPLS VPN为二层 MPLE TE two or more)
TTL:防环机制
MPLS在二层的帧头之后,和三层头部之前插入一个字段,,也正因为这样它能优于IP进行快速的转发。这时候除了插入Label字段以外,二层帧头的type字段也需要改变,比如EtherⅡ在没插入之前,type=0x0800,表示上层协议为IP,那么在插入标签以后,type会改变为0x8847(Frame-mode,也就是基于IP的) 还有一个表示为0x888(cell-mode,表示ATM的),我们常用的是frame-mode
MPLS用一个短而定长的标签来封装网络层分组,交换机或路由器根据标签值转发报文。MPLS指的多协议是:可以承载在各种链路层协议上:PPP ATM FR。
FEC:(Forwarding Equivalence Class)转发等价类: FEC是在转发过程中以等价的方式处理一组数据分组。
LSP:(Laber Switching Path)标签交换路径:一个FEC数据流,在不同的节点被赋予确定的标签,数据转发按照这些标签进行,这个路径就成为LSP。
LDP:(Label Distribution protocol,标签分发协议 RFC3036):用于LSR之间分配标签,建立LSP
LSR: 标签交换路由(MPLS 域内路由器)
Edge LSR : IP与MPLS域之间(负责压入与弹出标签)
LDP的建立机制
LDP消息类型: 1、发现消息(Discovery messages) 用于LDP邻居的发现和维持
2、会话消息(Session messages)用于LSP邻居会话的建立、维护和终止
3、通告消息(Advertisement messages) 用于LDP邻居之间的Laber、地址等信息交互
4、通知消息(Notification Messages) 用于向LDP邻居通知事件或者错误。
LDP会话的建立和维护:1、邻居建立:通过互发hello包(UDP/port:646/ip:)
2、建立TCP连接:由地址大的一方主动发起。(TCP/port/:646)
3、会话初始化:由master发出初始化消息,并携带协商参数。由slave检查参数能否接受,如果能则发送初始化消息,并携带协商参数。并发送keepalive消息,master收到后检查参数匹配,匹配上发送keepalive消息互相收到后,会话建立。
4、会话维护:期间收到任何错误消息,会话就断开与T
mpls,多协议标签交换 来自淘豆网m.daumloan.com转载请标明出处.