目录

一、路由器的硬件构成

路由器主要由以下几个部分组成:输入/输出接口部分、包转发或交换结构部分(switching fabric)、路由计算或处理部分

二.路由选择路由器是互联网的主要节点设备,通过路由决定数据的转发。转发策略称为路由选择,这也是路由器名称的由来。

三. 路由器分组转发的过程

四、路由器的分组转发算法:


一、路由器的硬件构成 

路由器主要由以下几个部分组成:输入/输出接口部分、包转发或交换结构部分(switching fabric)、路由计算或处理部分

输入端口是物理链路和输入包的进口处。端口通常由线卡提供,一块线卡一般支持4、8或16个端口,一个输入端口具有许多功能。第一个功能是进行数据链路层的封装和解封装。第二个功能是在转发表中查找输入包目的地址从而决定目的端口(称为路由查找),路由查找可以使用一般的硬件来实现,或者通过在每块线卡上嵌入一个微处理器来完成。第三,为了提供QoS(服务质量),端口要对收到的数据包进行业务分类,分成几个预定义的服务级别。第四,端口可能需要运行诸如SLIP(串行线网际协议)和PPP(点对点协议)这样的数据链路级协议或者诸如PPTP(点对点隧道协议)这样的网络级协议。一旦路由查找完成,必须用交换开关将包送到其输出端口。如果路由器是输入端加队列的,则有几个输入端共享同一个交换开关。这样输入端口的最后一项功能是参加对公共资源(如交换开关)的仲裁协议。普通路由器中该部分的功能完全由路由器的中央处理器来执行,制约了数据包的转发速率(每秒几千到几万个数据包)。高端路由器中普遍实现了分布式硬件处理,接口部分有强大的CPU处理器和大容量的高速缓存,使接口数据速率达到10Gbps,满足了高速骨干网络的传输要求。

 路由器的转发机制对路由器的性能影响很大,常见的转发方式有:进程转发、快速转发、优化转发、分布式快速转发。进程转发将数据包从接口缓存拷贝到处理器的缓存中进行处理,先查看路由表再查看ARP表,重新封装数据包后将数据包拷贝到接口缓存中准备传送出去,两次查表和拷贝数据极大的占用CPU的处理时间,所以这是最慢的交换方式,只在低档路由器中使用。快速交换将两次查表的结果作了缓存,无需拷贝数据,所以CPU处理数据包的时间缩短了。优化交换在快速交换的基础上略作改进,将缓存表的数据结构作了改变,用深度为4的256叉树代替了深度为32的2叉树或哈希表(hash),CPU的查找时间进一步缩短。这两种转发方式在中高档路由器中普遍加以应用。在骨干路由器中由于路由表条目的成倍增加,路由表或ARP表的任何变化都会引起大部分路由缓冲失效,以前的交换方式都不再适用,最新的交换方式是分布式快速交换,它在每个接口处理板上构建一个镜像(mirror)路由表和MAC地址表相结合的转发表,该表是深度为4的256叉树,但每个节点的数据部分是指向另一个称为邻接表的指针,邻接表中含有路由器成帧所需要的全部信息。这种结构使得转发表完全由路由表和ARP表来同步更新,本身不再需要额外的老化进程,克服了其它交换方式需要不断对缓存表进行老化的缺陷。

交换结构最常见的有总线型、共享内存型、Cross-bar空分结构型。总线型结构最简单,所有输入和输出接口挂在一个总线上,同一时间只有两个接口通过总线交换数据。其缺点是其交换容量受限于总线的容量以及为共享总线仲裁所带来的额外开销。在调度共享数据传输通道上必须花费一定的开销,而且总线带宽的扩展受到限制,制约了交换容量的扩张,一般在中档路由器中使用这种结构。共享内存型结构中,进来的包被存贮在共享存贮器中,所交换的仅是包的指针,这提高了交换容量,但它受限于内存的访问速度和存储器的管理效率,尽管存贮器容量每18个月能够翻一番,但存贮器的存取时间每年仅降低5%,这是共享存贮器交换开关的一个固有限制。共享内存型结构在早期的中低档路由器中普遍应用。Cross-bar空分结构相当于多条并行工作的总线,具有N×N个交叉点的交叉开关可以被认为具有2N条总线。如果一个交叉是闭合,输入总线上的数据在输出总线上可用,否则不可用。对流经它的数据不断进行开关切换,可见开关速度决定了交换容量,随着各种高速器件的不断涌现,这种结构的交换容量普遍达到几十Gbps以上,成为目前高端路由器和交换机的首选交换结构。

  路由计算或处理部分主要是运行动态路由协议。接收和发送路由信息,计算出路由表,为数据包的转发提供依据。各种档次的路由器的路由表条目的大小存在很大差异,从几千条到几百万条不等,因此高端路由器的路由表的构造对路由查找速度影响很大,其路由表的数据结构常采用二叉树的形式,查找与更新的速度都比较快。

  输出端口在包被发送到输出链路之前对包存贮,可以实现复杂的调度算法以支持优先等级要求。与输入端口一样,输出端口同样要能支持数据链路层的封装和解封装,以及许多较高级协议。

    一般而言,路由器对一个数据包的交换要经过一系列的复杂处理,主要有以下几个方面:

1)压缩和解压缩

2)加密和解密

3)用输入/输出访问列表进行报文过滤

4)输入速率限制

5)进行网络地址翻译(NAT)

6)处理影响本报文的任何策略路由

7)应用防火墙特性对包进行检查

8)处理Web页缓冲的重定向

9)物理广播处理,如帮助性地址(ip help address)

10)利用启用的QoS机制对数据包排队

11)TTL值的处理

12)处理IP头部中的任选项

13)检查数据包的完整性

二.路由选择
路由器是互联网的主要节点设备,通过路由决定数据的转发。转发策略称为路由选择,这也是路由器名称的由来。

路由器执行两个基本功能:路径选择和数据转发。

无论使用何种协议,包括IP、IPX和Appletalk等,路由器的目标就是将信息从一个地方转发到另一个地方。当接收到一个数据报时,路由器先查询它的路由表,以找到下一跳地址,之后通过相应接口向外进行转发。

路由选择协议运行在路由器上,提供将数据报从源地址转发到目的地址的路径选择策略。为了完成路由转发功能,路由器需要检查数据报的目的地址,确定目的网络号,查看路由表,并将分组转发到对应的出口。路由选择表即路由表,包含目的网络号、网络状态、下一跳地址等信息。

3.路由表的建立
路由表的建立有静态手动配置和动态自动学习两种方式。

1)静态路由
路由器建立静态路由有以下两种方式:

查看其活动接口和检查接口的配置地址,确定相应的网络号,根据该信息生成路由器的路由表,这种路由叫直连路由。

手动配置一个特殊的静态路由,也称为默认路由。如果在路由表中没有找到指定接收站的路径,则分组通过默认路由转发。默认路由的IP地址和子网掩码均为0.0.0.0,通常表示为0.0.0.0/0。默认路由常用于出口路由器,指向ISP。

2)动态路由
动态路由协议包括RIP(Router Information Protocol)、OSPF(Open Shortest Path First)和BGP(Border Gateway Protocol)等,路由器可以从运行在相同路由选择协议的其他路由器中学习并建立路由。动态路由协议共享路由器已知的网络号和相关的可达性信息,通过这一过程,最终路由器将学习到网络中所有可到达的网络和子网号,并建立自己的路由表。

三. 路由器分组转发的过程

路由器在收到IP数据报告后执行的分组转发步骤如下:

1)提取IP数据报告首部中的目的IP地址

2)判断目的IP地址所在的网络是否与本路由器直接相连。如果是,就直接交付给目的网络,如果不是执行3)

3)检查路由器表中是否有目的IP地址的特定主机路由。如果有,按特定主机路由转发:如果没有,执行4)

4)逐条检查路由表。若找到匹配路由,则按照路由表进行转发:若所有路由均不匹配,则执行5)

5)若路由表中设置有默认路由,则按照默认路由表转发:否则,执行6)

6)向源主机报错。

四、路由器的分组转发算法:

1.从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
2.若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则就是间接交付,执行3。
3.若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行4。
4.若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行5。
5.若路由表中有一个默认路由,则把数据报传送给路由器中所指明的默认路由器;否则,执行6。
6.报告转发分组出错。
路由表并没有给分组指明到某个网络的完整路径(即先经过哪一个路由器,然后再经过哪一个路由器,等等)。路由表指出,到某个网络应当先到某个路由器(即下一跳路由器),在到达下一跳路由器后,再继续查找其路由表,知道再下一步应当到哪一个路由器。这样一步一步地查找下去,直到最后到达目的网络。

在划分子网的情况下,分组转发的算法必须做相应的改动。使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。
在划分子网的情况下,路由器转发分组的算法如下:
1.从收到的数据报的首部提取目的IP地址D。
2.先判断是否为直接交付。对路由器直接相连的网络诸葛进行检查:用各网络的子网掩码和D逐位相“与”,看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(还需要把D转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行(3)。
3.若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
4.对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D逐位相“与”,其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给改行指明的下一跳路由器;否则,执行5。
5.若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行6。
6.报告转发分组出错。

自学网工第一天(路由器)相关推荐

  1. 154、网工常识 | 交换机路由器G口、F口、E口、S口区别是什么?

    交换机.路由器之前学过,也做过这方面的工作,但是说实话,学得不深.最近打算重新学习,从最基础的开始. S口 Serial接口的意思,也叫高速异步串口,主要是连接广域网的V.35线缆用的,说白了就是路由 ...

  2. 计算机系统如何恢复出厂设置路由器,路由器恢复出厂设置的具体操作步骤-电脑自学网...

    路由器出问题了怎么办?路由器忘记密码该如何解决?有时候我们会遇到无线路由器出现问题导致无法上网的情况,一般来说都会通过恢复出厂设置来解决,那么无线路由器该怎么恢复出厂设置呢?下面给大家介绍路由器恢复出 ...

  3. 这个618,网工最值得买的路由器/交换机设备

    大家好,我是老杨. 有小友最近扎堆冒出来问我,企业要采购路由器/交换机,买啥牌子好,买啥型号好. 又或者是,家里要买家用的路由器/电脑,啥性价比最高? 我真的很想吐槽一句,你们再问下去,我就转型成带货 ...

  4. 网工路由基础(6)BGP协议

    往期回顾 网工路由基础(1)静态路由 网工路由基础(2)路由选路原理 网工路由基础(3)RIP原理与配置 网工路由基础(4)EIGRP协议 网工路由基础(5)ISIS协议 作为运行全球互联网的路由协议 ...

  5. 网工路由基础(4)EIGRP协议

      EIGRP的五种报文   Hello:建立与维护邻居关系,hello数据包以组播方式发送,影响EIGRP邻居建立的点:AS不一致.K值不一致.认证不通过 Update:传递路由信息(使用seq和a ...

  6. 网工路由基础(2)路由选路原理

    往期回顾  网工路由基础(1)静态路由 欢迎关注微信公众号[厦门微思网络].www.xmws.cn专业IT认证培训19周年 主要课程:思科.华为.红帽.ORACLE.VMware.CISP.PMP等认 ...

  7. 网工协议基础(2) TCP/IP四层模型

    知道一些基础的人都知道,上篇知识点讲过了:网工协议基础(1) OSI七层模型,里面提及OSI设计了个七层模型作参考. 欢迎关注微信公众号[厦门微思网络].www.xmws.cn专业IT认证培训19周年 ...

  8. 对路径的访问被拒绝怎么办_学习了解ACL—扩展访问控制列表,就在网工知识角...

    学网络,就在IE-LAB 国内高端网络工程师培养基地 基于ACL过滤telnet和特定的网段信息 什么是访问控制列表(ACL)? 应用于路由器接口的指令列表,用于指定哪些数据包可以接收转发,哪些数据包 ...

  9. 菜鸟网工工作中对Linux系统的一点体会

    2019独角兽企业重金招聘Python工程师标准>>> 又到了毕业季,看着朋友圈上学弟学妹的动态,也让我想起了去年毕业时的场景.我在大学时读的是通信工程专业,大四时为了找工作,自学了 ...

最新文章

  1. 数据库之存储引擎,数据类型-30
  2. 虚拟机中安装GHO文件配置说明
  3. 15行代码AC——1019 数字黑洞 (20分) 甲级1069. The Black Hole of Numbers (20)(解题报告)
  4. MySQL约束和修改数据表知识集结
  5. 刘志明 | 知识图谱及金融相关
  6. maven工程打包老是报错_maven工程pom文件老是报错
  7. vue-cli配置jquery 以及jquery第三方插件
  8. linux的locate工具,linux文本查找工具之locate、find
  9. C/C++_Lambda表达式
  10. 2741. [济南集训 2017] 掰巧克力
  11. MybatisPlus自定义sql分页和分页失效问题解决
  12. Mysql 存储过程和函数区别
  13. linux抓包UDP流量
  14. LitJson使用中的一些问题
  15. Java lambda表达式实现List转Map
  16. C++编程-买卖股票的最佳时机
  17. Ubuntu18.04安装搜狗输入法不能 用的问题20211221
  18. 运算放大器电路PCB的设计技巧
  19. 人生就是一场“康波”,你准备好了吗?
  20. 蛮力法求解百元买百鸡问题

热门文章

  1. 向天草学习之路(二)
  2. 知识图谱实战(03):python操作neo4j实战
  3. 计算机道德 英语作文,关于道德的高中英语作文3篇
  4. JavaScript调用OCX控件,运行时报错:对象不支持“XXX”属性或方法【已解决】
  5. 分分钟让你理解HTTPS
  6. 全国计算机辅助技术岗位职责,计算机辅助普通话水平测试站岗位职责
  7. 启动SpringBoot时报错
  8. 从《李小龙传奇》看开源软件
  9. Android Studio 入门
  10. mysql show processlist命令详解