路由器工作原理浅析
2015-10-15 19:33
239 查看
路由器是TCP/IP模型上处于第三层网络层的设备,他是实现异构网络互联的关键器件。
路由器必须完成两个基本功能:路由处理和数据包转发处理。
路由处理:是路由器控制层面的工作,路由选择:收集网络拓扑信息并动态形成路由表(RIB)。
数据转发层面:根据转发表(FIB)转发IP数据包。
路由选择的核心器件是路由选择处理器,就是运行着系统软件和路由协议的专用CPU,它动态收集路由拓扑信息,维护更新路由表。这没啥好说的,除非研究出来更先进的路由协议或算法,能大幅提升路由选择的效率,否则各大厂商在路由处理这一层面基本上都是同一水平。
数据/分组转发处理:根据控制层面生成的转发表转发IP分组。由于一台路由器得囊括物理层、数据链路层、网络层的工作,所以各大厂商都是在数据转发层面有很大不同并拉开差距的。
首先,要转发数据就要一套数据交换的方法,即交换结构:将来自某个输入端口的数据发送到一个输出端口,完成输入输出端口间的互联功能。常见的交换结构有三类:共享总线型、共享存储型、交叉开关型。早期的第一代路由器,如Cisco2501使用的就是单总线型,一个CPU+一块RAM,连接各个物理端口,不仅处理速度慢,而且容错率低。第二代单总线路由器采用了主从CPU的设计,主CPU负责路由控制层面的工作,从CPU负责数据转发层面的工作。第三代单总线路由采用的对称多CPU结构(并行处理技术),主CPU集中控制个端口CPU的转发表,各端口CPU负责查表、队列管理和转发,这一设计大大提高了网络接口的处理能力。第四代的路由采用多总线多CPU的设计,各方面性能大大提高,复杂度也提高了,同时实现了硬件查路由表。后来,大家都开始向共享存储型、交叉开关型的高性能复杂路由器发展,这里不展开了。
我们说了,既然是数据包转发,就要有数据源输入,这就是输入端口。输入端口是物理链路的连接点,也是数据包的接收点。端口通常由线卡提供,一块线卡一般支持4、8或16个端口。每个输入端口都有三个模块,它们分别是对应于物理层、数据链路层和网络层的模块。关于分组的处理:如果是路由交换信息——》路由选择处理机;如果是数据——》查找转发表;一个分组未处理完,又到了新的分组,则在输入队列中排队。
接下来是数据输出工作,就要经过输出端口。输出端口的主要功能:队列和缓冲管理。从交换结构接收数据包,然后将它们发送到路由器的线路接口卡上。当交换结构传送的数据包的速率超过输出链路的发送速率时,来不及发送的数据包就暂时存放在队列中。输出端口使用复杂的调度算法实现QoS功能。完成数据包的封装和支持物理链路协议等。
搞清楚了路由器的几个核心部件及工作原理后,来走一遍路由器工作的流程。
线路输入:信号恢复、译码和CRC校验,放进输入FIFO队列。
数据包头部分析:主要是三层目的IP地址,甚至包括二层和四层数据头部
查询路由表确定输出端口;查分组分类表确定输出队列
QoS
数据包头部修改:包括TTL值减1、更新IP头部校验和、替换二层MAC地址等,送入输出FIFO队列
线路输出 :数据封装及发送。
路由器必须完成两个基本功能:路由处理和数据包转发处理。
路由处理:是路由器控制层面的工作,路由选择:收集网络拓扑信息并动态形成路由表(RIB)。
数据转发层面:根据转发表(FIB)转发IP数据包。
路由选择的核心器件是路由选择处理器,就是运行着系统软件和路由协议的专用CPU,它动态收集路由拓扑信息,维护更新路由表。这没啥好说的,除非研究出来更先进的路由协议或算法,能大幅提升路由选择的效率,否则各大厂商在路由处理这一层面基本上都是同一水平。
数据/分组转发处理:根据控制层面生成的转发表转发IP分组。由于一台路由器得囊括物理层、数据链路层、网络层的工作,所以各大厂商都是在数据转发层面有很大不同并拉开差距的。
首先,要转发数据就要一套数据交换的方法,即交换结构:将来自某个输入端口的数据发送到一个输出端口,完成输入输出端口间的互联功能。常见的交换结构有三类:共享总线型、共享存储型、交叉开关型。早期的第一代路由器,如Cisco2501使用的就是单总线型,一个CPU+一块RAM,连接各个物理端口,不仅处理速度慢,而且容错率低。第二代单总线路由器采用了主从CPU的设计,主CPU负责路由控制层面的工作,从CPU负责数据转发层面的工作。第三代单总线路由采用的对称多CPU结构(并行处理技术),主CPU集中控制个端口CPU的转发表,各端口CPU负责查表、队列管理和转发,这一设计大大提高了网络接口的处理能力。第四代的路由采用多总线多CPU的设计,各方面性能大大提高,复杂度也提高了,同时实现了硬件查路由表。后来,大家都开始向共享存储型、交叉开关型的高性能复杂路由器发展,这里不展开了。
我们说了,既然是数据包转发,就要有数据源输入,这就是输入端口。输入端口是物理链路的连接点,也是数据包的接收点。端口通常由线卡提供,一块线卡一般支持4、8或16个端口。每个输入端口都有三个模块,它们分别是对应于物理层、数据链路层和网络层的模块。关于分组的处理:如果是路由交换信息——》路由选择处理机;如果是数据——》查找转发表;一个分组未处理完,又到了新的分组,则在输入队列中排队。
接下来是数据输出工作,就要经过输出端口。输出端口的主要功能:队列和缓冲管理。从交换结构接收数据包,然后将它们发送到路由器的线路接口卡上。当交换结构传送的数据包的速率超过输出链路的发送速率时,来不及发送的数据包就暂时存放在队列中。输出端口使用复杂的调度算法实现QoS功能。完成数据包的封装和支持物理链路协议等。
搞清楚了路由器的几个核心部件及工作原理后,来走一遍路由器工作的流程。
线路输入:信号恢复、译码和CRC校验,放进输入FIFO队列。
数据包头部分析:主要是三层目的IP地址,甚至包括二层和四层数据头部
查询路由表确定输出端口;查分组分类表确定输出队列
QoS
数据包头部修改:包括TTL值减1、更新IP头部校验和、替换二层MAC地址等,送入输出FIFO队列
线路输出 :数据封装及发送。
相关文章推荐
- Struts中ActionContext和ServletActionContext
- 一个示例让你明白适配器模式
- Tomcat配置文件之servlet.xml中选项介绍
- Android NFC MifareClassic详解
- Linux Vi编辑器的使用
- Nginx基础. HTTP多阶段处理大致分析
- 用反射将DataTable的一行DataRow构建为一个自定义类的对象 - 给对象的属性赋值
- js函数大全
- Toast 的使用1
- java Integer.valueOf()方法
- Android----<meta-data>简要学习使用
- UIImage - resizableImageWithCapInsets & - resizableImageWithCapInsets:resizingMode
- 停止线程的三个方法
- 面试题
- 适配器模式(Adapter):类适配器、对象适配器
- silverlight弹出新标签页的方式
- POJ 3507 Judging Olympia 模拟 水
- 2015年再写10篇左右的文章,就到下一年开始写了,本年度学习计划基本结束了。今年最后几次分享正能量 。...
- 2015年再写10篇左右的文章,就到下一年开始写了,本年度学习计划基本结束了。今年最后几次分享正能量 。
- 遥感图像处理技术几个侧重点