zoukankan      html  css  js  c++  java
  • CISCO快速转发

    CISCO快速转发

    路由器最基本的功能是在网络中转移报文,这种报文的转移基于一张转发表完成的。路由器对于每一种转发报文的协议都有一张独立的转发表,这些协议可能包括IP,IPX,AppleTalk,MPLS等。

    有3种基本的方式实现转发:
    进程交换
    干扰交换
    ASIC(通用集成电路)
    没有查到干扰交换的具体内容,不做介绍。

    进程交换是所有交换方式中最慢的一种。当通过路由器交换报文的时候,CISCO IOS进程会将报文复制到CPU缓存,并在IP路由表中进行查找。查到后进行一些管理性处理,包括改TTL,重新计算CRC。整个过程由中央CPU监控,没有其他的基于硬件的帮助。

    快速转发
    快速转发会创建一张按需转发表,对于去往每个目的地的一个报文实行进程交换,通过中央CPU完成,然后创建一个IP快速交换路由缓存。这个缓存不是永久的,它有一些计时器管理,只要有报文转发,这些条目就会存在,如果经过一段时间没有报文转发,条目将被删除以释放空间。
    下图就是一个IP快速交换路由缓存的示例:

    可以看出,对于每一个prefix都有一些参数:老化时间,接口,下一跳和第二层重写信息。这张图中你看到的二层信息是0F000800。其中,0F00是表明使用HDLC封装,0800是IPv4的协议号。

    CEF交换
    虽然有了快速交换,使得交换报文变的快速。但是到达每个目的的第一个报文依旧要实行进程交换,这样就很麻烦。而且,当目的地变的多起来的时候,时间的消耗就变得非常明显。避免这个问题的解决办法就是预先创建交换信息表。
    这个CEF交换表就是根据路由表创建的,路由表发生变化的时候它相应的也会变化。

    组成CEF的两个组件
    CEF由两张表组成:
    CEF邻接表和CEF转发表

    邻接表:
    邻接表用于MAC或者第二层信息的重写。第二层信息能通过ARP,ATM,FrameRelay的映射状态等方式学到。下图中就有对应的第二层字段以及这些字段是如何被学习到的。

    CEF表:
    也叫FIB,用于进行3层的转发决策。路由表中关于转发比较核心的内容如:IP前缀,递归的下一跳,出站接口会记录在CEF表中。但是非核心的东西比如管理距离和度量值就被CEF表忽略了。


    当报文进入路由器的时候,路由器将报文的二层信息剥掉。在CEF表中查找相关的IP地址,进行转发决策。决策结果会指向邻接表的一条条目。在邻接表中找回二层需要重写信息,构建新的二层头部,转发到对应的下一跳接口。通过这两张表,CEF同时扮演了第3层查找和第2层帧重写的角色

  • 相关阅读:
    区分浏览器的刷新与关闭(网上查到,记录一下)
    echarts中设置markPoint
    Vue自定义指令,ref ,sync,slot
    手动封装on,emit,off
    数组的一些操作
    ES6-字符串扩展-padStart(),padEnd()
    MongoDB 数据库
    新地方
    使用echarts踩过的一些坑
    IE无法访问vue项目
  • 原文地址:https://www.cnblogs.com/cyrusxx/p/12824329.html
Copyright © 2011-2022 走看看