带你认识路由器:路由器的两个平面和三张表
目录
一、路由器的两个平面
1、控制平面
2、转发平面
二、路由器的三张表
1、IP路由表
2、FIB表
3、快速转发表
首先认识一下路由器的结构:控制平面和转发平面,以及转发路由的依据:路由表。
一、路由器的两个平面
路由器在网络中相当于快递站,用来转发数据包。而路由器除了转发数据外,还要能够计算以及学习路由,例如动态路由协议就是在启用协议之后让路由器自主计算并学习路由。
为了使转发效率更高,路由器系统定义了控制平面和转发平面,来将两种功能分离。
1、控制平面
路由器的控制平面承担了路由计算和学习部分,例如协议报文的收发、协议表项的计算、维护等都属于控制平面的范畴。控制平面不会转发数据,在控制平面计算好路由后,会生成路由表项,并下发到转发平面。
因为控制平面涉及到计算等功能,一般由CPU进行。
2、转发平面
路由器的转发平面承担着数据报文的封装、转发功能,例如数据报文的接受、解封装、封装、转发等都属于转发平面的范畴。
转发平面一般由专门的转发芯片来进行,不过对于一些初级的网络设备,没有专门的转发芯片,这时候会由操作系统将CPU和内存划分给不同的进程,让专门的进程来负责转发。
二、路由器的三张表
路由器在内部规定了三张表,来引导路由转发,分别是IP路由表、FIB表和快速转发表。
1、IP路由表
IP路由表是路由器最初始的一张表,也是最大的一张表,它囊括了已激活的(Active)和未被激活的(Inactive)所有路由表项。
匹配路由时,会因为路由的优先级从而导致有些路由项暂时不会被用到,这种路由称为Inactive路由。例如路由器接收到一条目的地址为192.168.1.2的数据包,查找路由表后,发现有两条192.168.1.0/24路由可以匹配,一条的优先级为100,而另一条的优先级为120,那么优先级120的路由项会被定义为Inactive路由,不会添加到目前在用的路由表上,使用命令 display ip routing-table 是看不到优先级为120的路由的,因为这条命令只是用来查看路由表中当前激活路由的摘要信息,但是这条路由确实存在于路由表中,使用命令 display ip routing-table verbose 即可看到IP路由表中的所有路由及其详细信息。
相关命令:
display ip routing-table // 查看当前使用的路由摘要
display ip routing-table verbose //查看完整的路由表信息
display ip routing-table [目的IP地址] //查看指定目的IP地址的路由信息
因为路由器在匹配路由时,是一条一条进行的,当用IP路由表进行匹配时,即使是Inactive路由,也会被匹配一次,这种无效匹配减慢了路由器转发的工作效率。所以有了FIB表。
2、FIB表
FIB(Forwarding Information Base)表,又称转发表。FIB表项来自于IP路由表,它会将IP路由表中的Active路由导过来,作为系统转发的依据。因为FIB表中只有已激活路由,那么参照FIB表来匹配,可以有效加快转发速率。
FIB表与IP路由表是同步更新的。当系统的控制平面发现新的路由信息时,会根据新的路由信息更新IP路由表,生成新的Active路由,然后更新FIB表。
相关命令:
display fib // 查看FIB转发信息
display fib [目的IP地址] //查看指定目的IP地址的FIB信息
3、快速转发表
虽然FIB表显著增加了转发速率,但是仍然和IP路由表一样,在查找路由时,需要一条一条地匹配,都是CPU在内存中查找数据。而快速转发表不需要经过CPU,而是直接在高速缓存区cache中进行(涉及到计算机组成原理的知识,读者只需明白在内存中查找数据对于计算机而言是很慢的,而cache是不需要访问内存的,所以很快)。
快速转发表用在一段数据流的转发中。通常用五元组来表示一个数据流:
而快速转发表则是基于五元组来转发,因为同一段数据流中每一个数据报文的五元组是一样的,当知道了该数据流的五元组后,可以直接进行转发。
快速转发流程为:首先路由器接收到数据流的第一个报文,在cache中查找快速转发表,但是因为是第一个报文,所以快速转发表中没有相关信息,于是CPU在内存中查找FIB表中的路由表项进行转发,同时系统会记录报文的五元组,并在cache中生成相应的快速转发信息。在收到后续的报文时,便依据快速转发表转发,不需要CPU在内存中查找,速率更快。
相关命令:
ip fast-forwarding [inbound | outbound] //允许接口在入方向或出方向进行快速转发
display ip fast-forwarding cache // 查看目前的快速转发表
reset ip fast-forwarding cache //清除快速转发缓存
快速转发表默认只存在30s。
当路由器转发数据时,会先查看快速转发表,如果没有再查看FIB表,一般不会用到IP路由表,因为FIB表是从IP路由表导出的,假如FIB表中没有,那么IP路由表中也没有。
带你认识路由器:路由器的两个平面和三张表相关推荐
- 华为路由器:ospf协议三张表及邻居建立过程
说明:本篇接上一篇继续讲解 拓扑图 为了方便,我把R1/2/3/4/5的router id改成了回环网卡的IP. ospf协议三张表 邻居表(neighbortable) OSPF用邻居机制来发现和维 ...
- postgresql中连接两张表更新第三张表(updata)
目录 前言 准备数据库和表 表1 表2 最终员工表 SQL语句 扩展:with语句 前言 在工作中可能会遇到需要结合两张表的数据来添加到第三张表,或者说是第三张表数据有误,需要覆盖更新,本章通过举例来 ...
- oracle 三张表差集,oracle交集并集差集 oracle取两张表并集
交集.差集.并集的图文说明? 海中的知己就像世界上的邻居. 一封家信抵一万金. 野火无止境,春风再起. 当月亮出来的时候,鸟儿会在春天的小溪里歌唱.当柳树长到清江的高度时,就会听到朗江上的歌声. 飘红 ...
- 使用hibernate映射oracle两个表空间的表,Hibernate每个具体类一张表映射(使用XML)
在每个具体类一个表中,数据库中将有三个表但彼此之间没有关系(关联). 根据具体类策略将表格映射到表有两种方法. 由union-subclass元素指定 通过自我为每个类创建表 我们来了解映射的层次结构 ...
- MySQL 两张表数据合并
有一个需求, 需要从数据库中导出两张表的数据到同一个excel中 鉴于是临时的业务需求, 直接使用Navicat 进行查询并导出数据. 数据涉及到三张表 CREATE TABLE `bigdata_q ...
- 用计算机连接路由器,用路由器怎么连接两台电脑
很多人使用路由器都是连接一台电脑使用,但如果电脑多了,例如像是两台电脑,这个时候用路由器怎么连接两台电脑?下面是学习啦小编整理的用路由器连接两台电脑的方法,供您参考. 用路由器连接两台电脑的方法 1. ...
- 【计算机网络】为什么一个路由器会有两个wifi信号
起因 今天家里换了路由器,突然出现了两个一样的wifi,只是一个后面多了个"5G",二者密码相同. 就感觉很神奇嘛,所以查了一下资料,做一下分享. 本文并非原创,但还是希望能帮助到 ...
- 两个路由器连接的两种连接方法
两个路由器连接的两种连接方法 第一台为A路由器,第二台为B路由器.前提是A路由器已经设置好能正常上网 . 方法1:WAN口连接.任意一台电脑连接B路由的LAN口(二个路由先不要连接,因为你的TP-LI ...
- 华为路由器ospf连通两个路由
华为路由器ospf连通两个路由 R1: <Huawei>dis cu [V200R003C00] #snmp-agent local-engineid 800007DB0300000000 ...
最新文章
- 大型网站应用中MySQL的架构演变史
- 【Kotlin】Kotlin 中使用 ButterKnife ( 仅用于适配 Kotlin 语言 | 不推荐新项目使用 )
- java程序员的NodeJS初识篇
- sessionbean entitybean 区别
- BZOJ 2566 xmastree(树分治+multiset)
- 人工智能笔记11 --强化学习
- Java 编程问题:八、函数式编程-基础和设计模式
- 基于QT的网络嗅探器实现(网络安全课程设计)
- 效率倍增,5 个提高生产力的 Jupyter notebook插件
- 牛市股票还会亏钱?——外观模式。
- 1362: [蓝桥杯2018初赛]第几个幸运数(简单题)
- DAO 为什么难以实现问责制的去中心化
- 装ubuntu+win10双系统时出现的问题
- 【机器学习】模型评估-手写数字集模型训练与评估
- 如何快速搞一个导播系统?
- centos7 编译安装ffmpeg + x264 + acc + yasm
- 系统动力学模型_典型海洋生态系统动力学模型构建、应用及发展入选2020年经典中国国际出版工程...
- js中的valueOf和toString
- 【论文泛读80】通过滚动交互预测文本可读性
- 互联网行业的发展趋势和挑战
热门文章
- JAVA毕设项目慧学IT精品课程网站(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
- 三星 android截屏快捷键,安卓手机怎么截图 各大品牌快捷键截屏大集合
- 关于uart串口接收端乱码问题
- 无线网络不能连线玩红警2问题的解决
- 一看吓一跳:13亿中国人都会用错的成语
- html get请求方法,获取Get请求字符串
- RAR压缩包忘记密码,如何删除?
- 浅谈Android中的MVP与动态代理的结合
- Linux mem 2.2 内核地址空间布局详解
- 使用python打王者荣耀赚金币