精华内容
下载资源
问答
  • 路由器算法Droptail和RED的分析与优化.pdf
  • 无线传感网络路由器算法在地铁环境中的应用研究.pdf
  • 基于NS2的路由器算法Droptail和RED的分析与比较.pdf
  • 理解路由选择算法实现原理,加深对网络层功能的理解; 2.掌握距离向量路由选择算法中路由表形成过程及其对路由选择的影响; 二、实验内容1.熟悉模拟软件的运行环境及操作方法;2、调整参数,分析路由表变化情况,...
  • 基于NS2的路由器算法Droptail和RED的分析与比较
  • 路由器与路由算法前言定义自治系统路由协议内部网关协议RIP如何解决路由环路的问题?OSPF外部网关协议BGP后记 前言 昨天经过字节一面感觉自己对路由器了解甚少,所以决定还是认真学习一下路由器与路由算法吧。 定义 ...

    前言

    昨天经过字节一面感觉自己对路由器了解甚少,所以决定还是认真学习一下路由器与路由算法吧。

    定义

    首先我们先对路由下一个定义,什么是路由?
    根据百度百科的解释,路由是指分组从源到目的地的时候,决定端到端路径的网络范围的进程。
    说白了就是选择一条合适路径来传输需要发送的数据包。

    自治系统

    自治系统(Autonomous System,AS)指的是在单一技术管理下的一组路由器,这些路由器使用同一种内部路由选择协议并且通过外部路由协议与其他的AS进行连接,一般来说一个大学、一个公司内部的所有路由器就属于一个自治系统。

    路由协议

    刚才说到一个AS有着自己的内部路由协议并且通过外部路由协议和其他AS连接。
    路由协议就可以根据内部和外部的不同分为:

    • 内部网关协议(Interior Gateway Protocol,IGP)
    • 外部网关协议(External Gateway Protocol,EGP)

    内部网关协议

    先来介绍内部网关协议,内部网关协议比较常用的有RIP和OSPF看,目前说的都是动态路由协议,如果采用静态路由协议则需要人为的设定路由信息。

    RIP

    RIP全称为路由信息协议,是一种基于距离向量的路由选择算法,其最大优点就是简单。
    基于距离向量的意思就是根据距离(代价)和方向决定目标网络或者目标主机位置的一种方式。
    RIP一般会采用洪泛法来进行更新,但是这样的问题就在于当网络构造变得复杂的时候在获得稳定的路由信息之前需要消耗大量的时间(俗称“坏消息传得慢”),而且比较容易法生路由循环等问题。

    RIP规定:

    • 网络中每个路由器都要维护从它自己到其他每一个目标网络的距离记录(也就是路由表)。
    • 距离也被称为跳数,直接相连的路由器跳数为1,然后每经过一个跳数就加1,最多不能超过15,距离为16的两个路由器被认为是不可达(防止环的问题)。
    • 两个路由器之间每隔30S发送一次路由信息。
    • 不支持子网掩码(RIP2中支持)。

    RIP是一个基于UDP的网络协议(内容跟在UDP的数据部分后面发送),选择的是路由跳数最少的路径而非最短时间的,适合用于比较小的网络。

    如何解决路由环路的问题?

    由于RIP协议中经常会出现环路的问题,所以一般有以下方法来防止一个数据包进入环路:

    • 最长距离不超过16,如果超过16则直接把数据包丢弃。
    • 规定一个路由器不再把所收到的路由信息原路返回给发送端,这也被称为水平分割。

    但是这样仍然不能解决网络中带有环这个根本问题,所以又提出了如下解决方案:

    • 毒性逆转:指的是当网络中发生链路被断开的时候不是不在发送这个消息而是将这个无法通信的消息传播出去。
    • 触发更新:当路由表发生变化的时候直接更新而不是等待30S。

    OSPF

    与RIP正好相反,OSPF常常用于管理比较大和复杂的网络。
    OSPF全称开放最短路径优先协议,采用的是分布式链路状态路由算法,每个节点会使用洪泛法的方式向其他节点告知自己与那些节点相邻,并且自己的度量(也就是从自己这里传递的代价),这样所有的节点都能直接构建出一个网络拓扑结构,最后会采用Dijkstra算法计算出一个最优的路径。
    但是这样又带来一个问题,当网络巨大的时候构建出一个完整的网络拓扑图的代价是非常巨大的,所以OSPF引入了“区域”的概念,把一个自治网络划分为若干个更小的范围,将洪泛法局限在区域之内而非整个网络,每个区域会指定若干个路由器作为默认路由来参与对外的信息交换。

    RIP的缺点还在于它利用好路由控制信息一遍确认是否连接了网络,一边传递网络信息,当网络比较巨大时候就路由控制信息就会随之变大,并且当路由表没什么变化的时候也会发送数据,浪费了网络带宽。

    相对了,OSPF面对这些问题划分出了5个不同功能的数据包:

    • 问候(Hello):确认相邻路由器或者指定路由器存在。
    • 数据库描述:链路状态数据库的摘要信息。
    • 链路状态请求:从数据库中获取链路状态信息。
    • 链路状态更新:更新链路状态数据库中的信息。
    • 链路状态确认应答:链路状态更新的确认应答。

    基于这些功能包,OSPF中每个节点会每隔一时间发送Hello数据包确认相邻节点的存活,达到一定次数没有返回则认为断开。
    当自己的链路连接情况发生变化的时候才会发送更新请求告知其他节点。

    OSPF相对RIP更加复杂,所以消耗的资源也更多,当网络巨大的时候光是计算最短路径就需要占用大量CPU。OSPF是基于IP协议的。

    外部网关协议

    BGP

    边界网关协议,BGP,是一种作用在不同AS之间的外部网关协议。采用的是路径向量路由协议,由于AS内部的协议差别巨大,所以很难找出一条最短路径,所以BGP力求一条能够达到目的网络并且比较好的路径。
    BGP要求每个AS选择至少一个对外的发言人,与RIP类似,每个节点都需要生成一个自己的路由表,并且在发生变化的时候和其他节点进行交换。
    由于路径向量在访问信息中保存了转发防线和距离还涵盖了途径所有的AS编号,所以能够检测出环路的问题,避免了无线计数的问题。

    后记

    暂时先更新到这里,算是把之前的坑给填上了,之后学习交换机工作原理以及其他网络协议的时候也会更新在这里。
    这一次字节面试让我感受到了很多不足,是时候收拾一些之前有点自满的心态,好好准备一下周五面试,感谢面试官手下留情,希望下次能出个简单点的算法。


    参考文章:
    《图解TCP/IP》学习——第七章路由协议
    到底什么是路由
    知乎问题:如何用一句话解释,链路状态协议与动态路由协议之间的区别?
    《图解TCP/IP》
    《王道考研系列计算机网络2019版》

    展开全文
  • 分析了路由器接口别名问题,在对相关技术进行研究的基础上,设计并实现了一种路由器接口别名解析算法,该算法通过对相关数据进行分析,将路由器的地址转换为能够反映实际网络状况的地址集合,从而较好地提高了网络拓扑...
  • 路由器的路由表生成算法

    千次阅读 2017-06-13 13:12:20
    路由选择算法: 1、向量-距离路由选择算法 2、链路-状态路由选择算法 3、LS算法 4、Dijkstra算法

    路由:路由是一种指向标,因为网络是一跳一跳往前推进的,因此在每一跳都要有一系列的指向标。实际上不仅仅是分组交换网需要路由,电路交换网在创建虚电路的时候也需要路由。

    简单的说,路由由三元素组成:目标地址,掩码,下一跳。注意,路由项中其实没有输出端口-它是链路层概念,Linux操作系统将路由表和转发表混为一谈,而实际上它们应该是分开的(分开的好处之一使得MPLS更容易实现)。

    路由表:路由表仅指定从该路由器到目的地路径上的下一步,而不知道到达目的地的完整路径,标准的IP路由表包含许多对序偶,N表示目的网络的IP地址,R表示到N路径上的下一个路由器的IP地址。

    Linux中的路由表:
    这里写图片描述
    Destination目的网络
    Gateway下一跳
    Genmask子网掩码
    Flags 标记 :U标志表示此条目有效(可以禁用某些条目),G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发,因此下一跳地址处记为* 号。
    Use 此路由项被路由软件查找的次数
    Iface 使用接口

    路由表项生成算法:生成路由表项的方式有两种,第一种是管理员手工配置,第二种为通过路由协议动态生成。

    路由算法,又名选路算法,可以根据多个特性来加以区分。算法的目的是找到一条从源路由器到目的路由器的“好”路径(即具有最低费用的路径[1] )。算法设计者的特定目标影响了该路由协议的操作;具体来说存在着多种路由算法,每种算法对网络和路由器资源的影响都不同;由于路由算法使用多种度量标准(metric),从而影响到最佳路径的计算。

    基本的下一站路由选择算法:

    RouteDatagram(Datagram, RoutingTable)
    
    {
    
      从Datagram中提取目的IP地址D,计算netid网络号N;
    
    if N与路由器直接连接的网络地址匹配
    
    Then 在该网络上直接投递(封装、物理地址绑定、发送等)
    
    ElseIf RoutingTable 中包含到N的路由
    
    Then 将Datagram发送到RoutingTable中指定的下一站
    
    Else 路由选择错误
    
    }

    动态路由与静态路由:

    静态路由是由人工建立和管理的,不会自动发生变化,必须手工更新以反映互联网拓扑结构或连接方式变化。优点是安全可靠、简单直观,避免了动态路由选择的开销。缺点是不适用于复杂的互联网结构,建立和维护工作量大,容易出现路由环。

    动态路由可以通过自身学习,自动修改和刷新路由表。动态路由要求路由器之间不断的交换路由信息。优点是更多的自主性和灵活性。缺点是交换路由信息需要占用网络带宽,路由表的动态修改和刷新需要占用路由器的内存和CPU处理时间,消耗路由器的资源。

    路由选择协议:

    1、使用动态路由的基本条件,路由器运行相同的路由选择协议,执行相同的路由选择算法。

    2、广泛采用的路由选择协议,路由信息协议RIP:利用向量-距离算法,开放式最短路径优先协议OSPF:利用链路-状态算法。

    3、路由收敛,互联网中的所有路由器都运行着相同的、精确地、足以反映当前互联网拓扑结构的路由信息,快速收敛是路由选择协议最希望具有的特征。

    路由选择算法:

    1、向量-距离路由选择算法

    路由器周期性地向其相邻路由器广播自己知道的路由信息,用以通知相邻路由器自己可以到达的网络以及到达该网络的距离。相邻路由器可以根据收到的路由信息修改和刷新自己的路由表。
    优点是算法简单、易于实现。
    缺点是慢收敛问题,路由器的路径变化需要像波浪一样从相邻路由器传播出去,过程缓慢

    2、链路-状态路由选择算法

    互联网上的每个路由器周期性地向其它路由器广播自己与相邻路由器的连接关系,互联网上的每个路由器利用收到的路由信息画出一张互联网拓扑结构图。利用画出的拓扑结构图和最短路径优先算法,计算自己到达各个网络的最短路径。

    OSPF路由选择协议
    优点:收敛速度快;支持服务类型选择;提供负载均衡和身份认证。
    缺点:要求较高的路由器处理能力;一定的带宽需求。
    适用环境:规模庞大、环境复杂的互联网

    两者原理性差异:

    向量-距离路由选择算法不需要路由器了解整个互联网的拓扑结构;通过相邻的路由器了解到达每个网络的可能路径,而链路-状态路由选择算法依赖于整个互联网的拓扑结构图;利用整个互联网的拓扑结构图得到SPF树,进而由SPF树生成路由表。

    3、LS算法

    采用LS算法时,每个路由器必须遵循以下步骤:
    (1)、确认在物理上与之相连的路由器并获得它们的IP地址。当一个路由器开始工作后,它首先向整个网络发个“HELLO”分组数据包。每个接收到数据包的路由器都将返回一条消息,其中包含它自身的IP地址。

    (2)、测量相邻路由器的延时(或者其他重要的网络参数,比如平均流量)。为做到这一点,路由器向整个网络发送响应分组数据包。每个接收到数据包的路由器返回一个应答分组数据包。将路程往返时间除以2,路由器便可以计算出延时。(路程往返时间是网络当前延迟的量度,通过一个分组数据包从远程主机返回的时间来测量。)该时间包括了传输和处理两部分的时间——也就是将分组数据包发送到目的地的时间以及接收方处理分组数据包和应答的时间。

    (3)、向网络中的其他路由器广播自己的信息,同时也接收其他路由器的信息。 在这一步中,所有的路由器共享它们的知识并且将自身的信息广播给其他每一个路由器。这样,每一个路由器都能够知道网络的结构以及状态。

    (4)、使用一个合适的算法,确定网络中两个节点之间的最佳路由。在这一步中,路由器选择通往每一个节点的最佳路由。它们使用一个算法来实现这一点,如Dijkstra最短路径算法。在这个算法中,一个路由器通过收集到的其他路由器的信息,建立一个网络图。这个图描述网络中的路由器的位置以及它们之间的链接关系。每个链接都有一个数字标注,称为权值或成本。这个数字是延时和平均流量的函数,有时它仅仅表示节点间的跃点数。例如,如果一个节点与目的地之间有两条链路,路由器将选择权值最低的链路。

    4、Dijkstra算法

    Dijkstra算法执行下列步骤:
    (1)、路由器建立一张网络图,并且确定源节点和目的节点,在这个例子里我们设为V1和V2。然后路由器建立一个矩阵,称为“邻接矩阵”。在这个矩阵中,各矩阵元素表示权值。例如,[i,j]是节点Vi与Vj之间的链路权值。如果节点Vi与Vj之间没有链路直接相连,它们的权值设为“无穷大”。

    (2)、路由器为网路中的每一个节点建立一组状态记录。此记录包括三个字段:
    前序字段——表示当前节点之前的节点。
    长度字段——表示从源节点到当前节点的权值之和。
    标号字段——表示节点的状态。每个节点都处于一个状态模式:“永久”或“暂时”。

    (3)、路由器初始化(所有节点的)状态记录集参数,将它们的长度设为“无穷大”,标号设为“暂时”。

    (4)、路由器设置一个T节点。例如,如果设V1是源T节点,路由器将V1的标号更改为“永久”。当一个标号更改为“永久”后,它将不再改变。一个T节点仅仅是一个代理而已。

    (5)、路由器更新与源T节点直接相连的所有暂时性节点的状态记录集。

    (6)、路由器在所有的暂时性节点中选择距离V1的权值最低的节点。这个节点将是新的T节点。

    (7)、如果这个节点不是V2(目的节点),路由器则返回到步骤5。

    (8)、如果节点是V2,路由器则向前回溯,将它的前序节点从状态记录集中提取出来,如此循环,直到提取到V1为止。这个节点列表便是从V1到V2的最佳路由。

    展开全文
  • 通过别名解析可以在IP级拓扑的基础上获得路由器级...最后用CAIDA项目中的中日韩3国因特网IP级拓扑数据对别名过滤算法进行了验证分析,结果表明别名过滤算法能够有效减少别名解析的数量,提高路由器级拓扑发现的效率。
  • 实现了路由器分组转发算法,可以修改参数自定义网络。
  • 路由器的分组转发算法

    千次阅读 2021-02-24 19:15:18
    路由器的分组转发算法: 1.从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。 2.若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里...

    路由器的分组转发算法:
    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.报告转发分组出错。

    展开全文
  • 随着计算机网络规模的不断扩大,大型互联网络(如Internet)的迅猛发展,路由技术在网络技术中已逐渐成为关键部分,路由器也随之成为最重要的网络设备。用户的需求推动着路由技术的发展和路由器的普及,人们已经不...
  • 常见的路由算法

    2017-07-09 23:25:47
    路由算法在路由协议中起着至关重要的作用,采用何种算法往往决定了最终的寻径结果,因此选择路由算法一定要仔细。  通常需要综合考虑以下几个设计目标:  (1)最优化:指路由算法选择最佳路径的能力。   (2)...

          路由算法在路由协议中起着至关重要的作用,采用何种算法往往决定了最终的寻径结果,因此选择路由算法一定要仔细。

         通常需要综合考虑以下几个设计目标:

            (1)最优化:指路由算法选择最佳路径的能力。 

            (2)简洁性:算法设计简洁,利用最少的软件和开销,提供最有效的功能。 

            (3)坚固性:路由算法处于非正常或不可预料的环境时,如硬件故障、负载过高或操作失误时,都能正确运行。由于路由器分布在网络联接点上,所以在它们出故障时会产生严重后果。最好的路由器算法通常能经受时间的考验,并在各种网络环境下被证实是可靠的。

           (4)快速收敛:收敛是在最佳路径的判断上所有路由器达到一致的过程。当某个网络事件引起路由可用或不可用时,路由器就发出更新信息。路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。收敛慢的路由算法会造成路径循环或网络中断。  

           (5)灵活性:路由算法可以快速、准确地适应各种网络环境。例如,某个网段发生故障,路由算法要能很快发现故障,并为使用该网段的所有路由选择另一条最佳路径。   

             路由算法按照种类可分为以下几种:静态和动态、单路和多路、平等和分级、源路由和透明路由、域内和域间、链路状态和距离向量。前面几种的特点与字面意思基本一致,下面着重介绍链路状态和距离向量算法。  

             链路状态算法(也称最短路径算法)发送路由信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分。

             离向量算法(也称为Bellman-Ford算法)则要求每个路由器发送其路由表全部或部分信息,但仅发送到邻近结点上。从本质上来说,链路状态算法将少量更新信息发送至网络各处,而距离向量算法发送大量更新信息至邻接路由器。  

             由于链路状态算法收敛更快,因此它在一定程度上比距离向量算法更不易产生路由循环。但另一方面,链路状态算法要求比距离向量算法有更强的CPU能力和更多的内存空间,因此链路状态算法将会在实现时显得更昂贵一些。除了这些区别,两种算法在大多数环境下都能很好地运行。   最后需要指出的是,路由算法使用了许多种不同的度量标准去决定最佳路径。

            复杂的路由算法可能采用多种度量来选择路由,通过一定的加权运算,将它们合并为单个的复合度量、再填入路由表中,作为寻径的标准。通常所使用的度量有:路径长度、可靠性、时延、带宽、负载、通信成本等。

       

    展开全文
  • 路由算法(全网最细)

    千次阅读 多人点赞 2020-05-04 18:07:17
    路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。主机通常直接与一台路由器相连接,该路由器即为该主机的默认路由器(defaultrouter) ,又称该主机的第一跳路由器(first-hop router)每当主机发...
  • 网络节点路由算法设计 基于迪杰斯特拉最短路径求法的路由路径枚举算法 矩阵查询法路由路径枚举 VC6.0下编写的
  • 路由算法

    千次阅读 2019-10-08 19:11:40
      2、链路状态算法路由器之间持有相同的网络拓扑图信息,只要一台路由器和其他路由器的网络拓扑图一致就说明信息是正确的,否则应该同步路由信息,使路由达到稳定状态,可以进行稳定的路由选择(最优路径)。...
  • 2、 动态路由算法:指路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息是在一定时间间隙里不断更新,以适应不断变化的网络,以随时获得最优的寻路结果。...
  • 路由算法入门

    万次阅读 多人点赞 2017-01-12 18:37:25
    路由器使用路由算法来找到到达目的地的最佳链路。 网络可以抽象成图来理解 路由算法分类: 静态路由是指由用户或网络管理员手工配置的路由信息。 动态路由是指路由器能够自动地建立自己的路由表,并且能够...
  • 路由器的工作原理

    2020-08-27 22:52:41
    路由器概述 路由器是⽹络传输的交通枢纽,我经常把它⽐作是盘踞在数条不同物理线路尽头的章⻥怪,这个章⻥怪热衷于把线路中的数据包从⼀条线路抓出来丢到另外⼀条线路中(根据某种喜好)。全球最⼤的互联⽹Internet...
  • LEACH分簇路由算法

    2012-07-03 17:28:16
    将无线传感器网络中的节点动态分簇,可节省能源,延长网络的生存时间
  • 路由器功能与算法.pdf

    2021-10-08 23:05:05
    路由器功能与算法.pdf
  • 在计算机网络中,路由器的一个很重要责任就是要在端对端的节点中找出一条最佳路径出来,通过自己与相邻节点之间的信息,来计算出从自己位置到目的节点之间的最佳线路,这种算法我们可以理解为路由算法。 路由的模式...
  • 一种改进的OBS边缘路由器组装算法.pdf
  • 缓存管理是高性能路由器需要解决的技术难题之一,一个好的缓存管理算法可提高路由器的缓存资源利用率并降低分组丢失率。简要介绍了路由器中缓存管理的发展过程,列举了缓存管理一些最主流的算法,并对它们的性质、优...
  • 一种负载平衡的太比特路由器调度算法.pdf
  • 在IPv6下由于地址长度的增加,路由器的处理负担更重,要求更高,目前很多已有的算法扩展到IPv6后无法适应新的需求。因而提出了一套IPv6 的快速路径查找机制,利用中间的Hash Table(HT32)来达到快速查找的索引。本...
  • 因特网路由器拥塞控制算法.pdf
  • 基于STUN协议的NAT路由器穿越算法设计与实现.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 66,170
精华内容 26,468
关键字:

路由器算法