今天给大家带来什么是路由器交换算法,路由器交换算法的代码是什么,让您轻松解决问题。
1. 接口进程(input interface processor)首先在网络中发现数据包,然后把它传递给“input/output memory”(输入输出内存)2. 接口进程创建一个接到数据的中断。在这个中断过程中,中央处理器决定这个包的类型(一般是IP),如果需要的话就把它拷贝到内存中(processor memory)。最后,处理器把这个包放在一个适当的进入队列中(process’ input queue),同时中断取消。3. 然后调度程序开始启动IP_INPUT进程 www.zhishiwu.com 4. 当IP_INPUT进程启动,它开始从RIB(路由表)中决定下一跳和外出接口,然后查找ARP缓存找到下一跳的MAC地址.(如果缓存中没有对应的地址的话将要进行ARP广播)5. IP_INPUT进程重写包的MAC地址,然后把包的放在合适端口的外出队列中。6. 把包从外出端口的外出队列中拷贝到外出端口的传输队列。7. 外出接口处理器在外出队列中发现这个包然后把这个包传输到网络当中。
1. 接口处理器发现网络中的包,然后把包传递给input/output memory2. 接口处理器创建一个接收中断。在这个中断的过程中,中央处理器决定包的类型(假定是IP类型),然后立即开始交换这个包。3. 处理器开始搜索路由缓存来决定是否这个包的目的地址可达,外出接口是什么以及这个包需要怎么改写MAC才能可达下一跳。4. 然后把包拷贝到外出端口的传输队列或者外出队列(这个根据不同厂商的不同而不同)。这时接收中断取消,处理器继续做刚才没有做完的任务。5. 外出接口处理器发现数据包在传输队列,然后把包传输到网络中。
如上图,这是一颗二叉树,这也是快速交换中的缓存数据结构,快速交换把外出接口信息和需要重写的MAC地址放到二叉树中相应的节点上,而需要转发到的目的地址就是二叉树上节点所代表的地址。那么这样的遍历是如何进行呢?比如给出一个数是4,转化成二进制100,查找从最高位开始,从root节点出发,第一步走向root的右子树,因为100的第一位(最高位)是1,而后走向左子树,再继续向左子树方向走,这个时候就查找到100了。如果这是一个真实的IPV4地址的话,最多需要32次查找便可以找到我们需要的网段是不是很快呢?鉴于IPV4地址的长度原因,快速交换的二叉树深度是32。以上就是快速交换高速缓存中的数据结构,以及查找方法,下面我们看看由此而产生的一些特性,并且找出它的不足。1、由于这个快速缓存是凭空建立的,并没有和路由表以及MAC缓存建立联系,所以当我们想应用快速交换进行查找的时候必须要先进行一次完整的过程交换。2、由于在快速缓存中一个节点对应着一个地址,而且没有指针可以链接各个节点,所以无法实现递归查询。不过这并不影响路由器使用递归查询,因为当每一个新的数据包进来之后都要进行一次进程交换,其间已经完成了递归查询。3、由于节点信息的建立是由路由表和ARP缓存而来,当路由表或者是ARP缓存刷新时,对应的节点应该无效,这时就必须重新建立一个二叉树,在这个过程中 快速交换是无法使用的,只能用传统的进程交换,试想如果这是一个非常大的网络,其网络状态不断变化,这将会大大影响快速交换的效率。通过介绍快速交换,现在解决了一个问题,为什么高速缓存的建立要比直接查找路由表要快速。但是通过分析发现它也不是尽善尽美的,有没有更好的办法呢?我们看下一个交换方式Optimum Switching
在一个典型的高容量的互联网服务供应商的环境,在支持的网络链接到Cisco 7500系列路由器或其他接驳设备的核心汇聚设备的思科12012职系架构检讨。CEF在这些平台在网络核心提供所需的性能和可扩展性,以应对持续增长和不断增加的网络流量。CEF是一种分布式的交换机制,与安装在路由器的接口卡和带宽的线性扩展。5• CEF有两个组件一个叫做FIB(Forwarding Information Base)另一个叫做邻接表(Adjacency Table),这两个表包括了所有的转发信息,而这些转发信息是根据路由表和ARP来构造的。其中FIB表可以看作是RIB(Router Information Base)的镜像,它们是一一对应的,这也就是说相较于快速转发CEF不需要去维护高速缓存,当路由表变化的时候FIB表也会发生变化。邻接表的作用是建 立二层信息表,当一个邻居被发现(从ARP表中)并且获知其二层信息之后,邻接表就把这个信息写入表中并且与第三层的FIB表提前进行关联。
如果以上步骤完成之后,那么当一个数据包入站之后在进行目的地址的查询之后便可以顺利的进行转发,大大节省了CPU的资源,并且可以完全抛弃进程交换。6•CEF简化了查询的步骤,提高了单位时间的工作效率。而且从整体上来看,路由信息和转发信息是分离的,数据包的转发只根据转发信息而不用参照路由信息,可以充分利用专用硬件的功能来达到线速转发,CEF相较于前两种交换方式的改进主要在于对路由信息的“独立化”,而这种独立化带来的优势就是可以进行“预查找”,而不必等到数据包到来是才进行查找。而不受路由变化或者其他因素的干扰,保证了转发的高速高效。这就是CEF能够提速的最关键因素。 三。CEF操作在路由器初始化时,会根据路由器软件配置中的信息构建一张路由选择表(如静态路由、直连路由,以及通过路由选择协议交换动态学习到的路由)。在构建了路由选择表之后,CPU自动创建FIB和邻接表。FIB 和邻近表显示了按照最佳转发方式进行的出现在路由选择表中的数据。与基于通信流的流缓存不同,cEF表是基于网络拓扑。当一个分组进入交换机时,交换机的第3层转发引擎ASIC根据目的网络和最详细的网络掩码澎于最长匹配查找。并且不涉及除路由选择表和预先建立的FIB 表之外的任何软件。此外,一旦路由选择表中发生了变化,所有的cEF 表会立即更新。这使得这个方法是高效的,缓存不会由于路由翻动而无效。CEF 更加适应网络拓扑的变化。CEF在软件形式上实现了路由和交换功能的分离,而并不意味着路由器物理结构上的分离,所以它也可以在一些多层交换机和低端的路由器上实施。它的高速表现在以下方面:以上就是什么是路由器交换算法,路由器交换算法的代码是什么教程,希望本文中能帮您解决问题。
电脑软件相关教程