路由与转发的区别? |
您所在的位置:网站首页 › 转发什么 › 路由与转发的区别? |
如果非要比较路由与转发的区别,那得先来看看路由表与转发表的区别 路由表 (Routing Table) 一句话概括:路由表是给人看的!这好像听起来很奇怪,但仔细想想确实如此,一般路由表的条目是这样的: S 1.1.1.0 255.255.255.0 G1/0 2.2.2.2 想必有点网络基础都能看的懂这个条目的含义,用户界面非常友好,可以方便用户来检查、排错。 如果只有这一张表,看看如何工作? 进程转发 (Process Forward) 假设路由器接收到一个IP包,目的IP= 1.1.1.1,恰好匹配到这条路由,需要将该IP包从G1/0转发出去,下一跳是2.2.2.2,需要将IP包用Ethernet 头封装,可是需要知道2.2.2.2 的MAC,那还要去检查ARP cache是否存在,如果不存在,还需要经过ARP广播去发现对方的MAC,这个过程是很缓慢的,效率低下。这整个过程Cisco命名为进程转发 (Process Forward)。 快速转发CEF (Cisco Express Forward) 既然在转发过程中,需要知道下一跳的MAC、或必要的封装信息(比如PPP),为何要等到包来了之后才去发现下一跳的MAC呢?是否可以未雨绸缪?比如一旦生成路由表,立马就主动发现下一跳的MAC,缓存在ARP Cache 表中,流量来了直接就可以封装了,无需再发ARP广播了。 这是一个好主意,于是Cisco CEF 创建了另外一张表:adjacency table,用于收集二层MAC地址信息,然后再根据routing table + adjacency table 创建 CEF table ,这张表里拥有转发所需要的一切必要信息,甚至把发往下一跳的二层头构建好了,转发时用二层头 + IP包 就可以扔出 G1/0接口了(当然要TTL -1,重新计算IP CRC)。 转发表FIB (Forward Information Base) 以上都是基于软件CPU转发,转发效率低下,相比硬件转发至少一个数量级的差距。所以我们需要将CEF Table 下发到硬件芯片上,硬件芯片只对二进制的0、1敏感,为了提高转发效率需要将CEF Table 转换为硬件友好界面,所以需要CEF Table进行十进制转二进制;此外硬件也不认识接口G1/0,需要用 IfIndex代替 (Interface Index,将所有路由器接口编号,用二进制0、1识别)生成的全新的表:FIB Table,将FIB表下发配置到硬件芯片,然后芯片就静静地等待IP流量的到来… 所以转发表FIB是给硬件芯片看的! 路由表是如何生成的? 路由表或由路由协议(RIP/OSPF/ISIS/BGP)、或静态配置、或直连路由竞争(依据AD值大小)产生,路由表是一切转发表的源头,巧妇难为无米之炊,路由表就是那个米,没有米一切都是浮云,路由表的收敛会触发转发表的更新,所以保证路由表的稳定与快速收敛是关键中的关键。 寻路Routing(最优路径)是路由协议动态进行的,路由协议的输出就是路由表,依据路由表产生硬件转发表,然后硬件转发表负责流量的转发。简图如下:路由协议收集链路LSA / update ---> Routing Table ---> CEF Table ---> FIB Table。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |