交换:处理而二层到三层的地址映射,并且把包转换到目的端口 工业界的三种交换方式:
进程交换process switching: 一条数据流的第一个包放到系统缓存中,他的目的地址会拿到路由表中查询对比,路由器的处理器(cpu or process)进行crc校验,重写mac地址,对这条流中其他的包也这样操作,查询路由,重写mac,crc等。显然延迟较大,利用system buffer还有processor 处理每一个包。但是这种方式依旧可以使用,比如在基于每个包的负载分担,或者debug ip packet.
fast switch : 快速交换使用了route cache,路由缓存,存储关于某个数据流的信息,比如目的mac,目的借口等,但是我们只需要为第一个包做process switching, 信息存到cache, 后续不需要其他的包分别做路由处理了。ces cisco express forwarding 思科cef 是一种三层协议,基于硬件,不仅仅是将整个数据存入system buffer,而是将整个路由表,拓扑表,下一跳的地址,mac地址都进行预存,只要路由表中存在的条目,都会提前预读取,当有新的数据请求发送时,不需要cpu查询目的接口,目的mac等,直接从缓存读取。mpls中,标签包查找的就是lfib表; 普通的IP包,查找的表就是cef表,也就是fib。
在ip头前插入一个mpls字段,在前面时一些二层信息,数据在传输过程中,不关心三层数据,只看mpls标签。
mpls一种新的转发机制,根据标签信息进行转发mpls的标签一般对应目的地址(路由前缀mpls以来ip路由以及cef交换(比如运行之前可能需要动态路由协议,学习路由mpls 基于报文头部进行转发mpls可以承载多种三层协议 所有的路由器运行一个路由协议,比如ospf, 学习路由,维护rib以及cef表路由器运行标签分发协议ldp,维护lib表。ldp首先会为rib中的所有路由前缀,本地捆绑一个标签; 把自己捆绑的标签通过ldp通告给邻居。 其实捆绑的本地标签时为了给邻居。路由器更新cef表,维护lfib表。这一条形成的路径就叫lsp:标签交换路径。
支持mpls的路由器,可以理解mpls标签,并且在链路层面对mpls标签包进行交换,有三种类型:
ingress LSRs:收到一个ip包没有标签,在包前插入一个标签,发送数据包。egress LSRs: 收到标签包,移除标签,发送数据包。上述两种数据标签路由器 edge LSRsintermeditae LSRs转发等价类
在转发过程中,具有相同处理方式的一组数据,可 通过地址,隧道,cos等方式标示,通常在一台设备上,对于一个fec分配相同的标签属于一个fec的流量具有相同转发方式,但是并不是拥有相同标签的报文都属于同一个fec,因为这些报文exp值可能不同,执行方式可能不同。决定报文属于哪一个fec的路由器时入站lsr,它对报文进行分类和压入。实际上就是lsr的一个序列。穿越mpls网络或者部分mpls网络的路径。 mpls是一个单项路径,去的时候一条路,回去未必同一条。
多标签: 一般mpls只是处理最顶层标签 标签栈设计时判断是否,根据bos位。
红茶三杯
