精华内容
下载资源
问答
  • 基于距离向量算法的rip协议的实现,C++代码,运行环境VS2005
  • 距离向量算法模拟

    2014-06-29 14:52:55
    使用java多线程模拟距离向量路由选路算法
  • 距离向量算法

    万次阅读 多人点赞 2019-06-08 20:12:10
    算法执行步骤 从相邻的 X 路由器接收发送过来的 RIP 报文 将该 RIP 报文中的下一跳地址修改为 X,且跳数增加 1 对每个项目执行如下步骤 a.若原路由表没有 RIP 中的目的网络 N,直接添加到原路由表中 b.若原路由表中...

    距离向量路由算法要求,每个结点都参与定期交换整个路由表,即把路由表传递给自己与之相连的结点

    首先,当前路由表的组成如下,<目的网络 N,跳数,下一跳地址>

    算法执行步骤

    这里以 RIP 算法(距离向量算法的一种)为例。

    1. 从相邻的 X 路由器接收发送过来的 RIP(Routing Information Protocol) 报文
    2. 将该 RIP 报文中的下一跳地址修改为 X,且跳数增加 1
    3. 对每个项目执行如下步骤
      a.若原路由表没有 RIP 中的目的网络 N,直接添加到原路由表中
      b.若原路由表中有 RIP 中的目的网络 N,但下一跳地址不是 X ,选择跳数少的替换。如果两者跳数一样,则保留原路由表的项。
      c.若原路由表中有 RIP 中的目的网络 N,且下一跳地址是 X,使用收到的项替换
    4. 若超过 180s (RIP 默认 180s)还没有收到相邻路由器的更新路由表,则相邻路由器置为不可达,跳数为 16

    简洁版:
    1.无新信息,不改变
    2.相同下一跳,更新
    3.新项目,更新
    4.不同下一跳,距离更短,更新

    5.不同吓一跳,距离一样,不改变
    6.不同下一跳,距离更大,不改变

    算法的缺点:可以看到,距离向量协议传送的是整个路由表,那么报文的大小就和通信子网的结点个数成正比,如果通信子网越大,那么报文也将非常大。

    实例 1

    如下,有 B,C 两个路由器的路由表。B,C 为相邻路由器,现在 C 向 B 发送 RIP 报文,求 B 更新后的路由表

    B 的路由表

    目的网络距离下一跳
    N17A
    N22C
    N68F
    N84E
    N94D

    C 的 RIP 报文中的路由表

    目的网络距离
    N215
    N32
    N48
    N82
    N74

    解:

    1. 将 RIP 报文的下一跳地址改为 C 且跳数增加 1
    目的网络距离下一跳
    N216C
    N33C
    N49C
    N83C
    N75C
    1. 与原路由表(B 的路由表)比较并更新
      a. 因为 C 路由表中并无关于 N1,N6 和 N9 的信息,所以原路由表保存不变
      b.对于 N2,目的网络一样,下一跳地址一样(同为 C),所以更新跳数为 16
      c.对于 N3,因为原路由表中无该项,所以直接添加。N4 和 N7 同理添加
      d.对于 N8,目的网络一样,但下一跳不一样,选择距离短(跳数少的添加),所以更新为 C 路由表的信息

    更新后的 B 路由表

    目的网络距离下一跳
    N17A
    N216C
    N33C
    N49C
    N68F
    N75C
    N83C
    N94D

    实例 2

    这是关于距离向量的另一种考法

    展开全文
  • RIP协议及距离向量算法(详解)

    千次阅读 多人点赞 2020-06-05 11:38:59
    RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。 RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。距离:通常为“跳数”...

    一、路由选择协议分类回顾

    在这里插入图片描述
    在这里插入图片描述

    二、RIP协议

    RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单
    RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达
    所以说,RIP协议只适用于小互联网
    在这里插入图片描述
    在这里插入图片描述

    三、RIP协议和谁交换?多久交换一次?交换什么?

    在这里插入图片描述

    1. 仅和相邻路由器交换信息。
    2. 路由器交换的信息是自己的路由表
    3. 30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180秒没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。

    路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
    经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。

    四、路由表怎么更新的?距离向量算法

    1. 修改相邻路由器发来的RIP报文中所有表项
      对地址为x的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为X,并把所有的“距离”字段+1。
      在这里插入图片描述
    2. 对修改后的RIP报文中的每一个项目,进行以下步骤:
      (1)R1路由表中若没有Net3,则把该项目填入R1路由表
      (2)R1路由表中若有Net3,则查看下一跳路由器地址:
      若下一跳是x,则用收到的项目替换源路由表中的项目;若下一跳不是x,原来距离比从x走的距离远则更新,否则不作处理。
    3. 180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16。
    4. 返回

    五、距离向量算法练习1

    已知路由器R6的路由表,现收到相邻路由器R4发来的路由更新信息,试更新路由器R6的路由表:
    在这里插入图片描述
    第一步:修改相邻路由器发来的RIP报文中所有表项
    对地址为R4的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为R4,并把所有的“距离”字段+1。得到下图R4发来的路由更新信息-修改版:
    在这里插入图片描述

    六、距离向量算法练习2

    考虑如图所示的子网,该子网使用了距离-向量算法,下面的向量刚刚到达路由器C:来自B的向量为(5,0,8,12,6,2);来自D的向量为(16,12,6,0,9,10);来自E的向量为(7,6,3,9,0,4)。经过测量,C到B、D和E的延迟分别为6,3和5,那么C到达所有结点的最短路径是(B)。
    A.(5,6,0,9,6,2)B.(11,6,0,3,5,8)
    C.(5,11,0,12,8,9)D.(11,8,0,7,4,9)
    在这里插入图片描述
    在这里插入图片描述
    所以答案为B选项,C到达所有结点的最短路径是**(11,6,0,3,5,8)**

    七、RIP协议的报文格式

    在这里插入图片描述

    八、RIP协议好消息传得快,坏消息传得慢

    RIP的特点:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,“慢收敛”。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    R1的坏消息(通过R1无法到达目的网络1)还没发出去,R2先把自己之前从R1那里获得的好消息(可以通过R1到达网络1)又发送给了R1,导致R1会根据R2发来的路由信息来更改自己的信息,也认为可以通过R2到达目的网络1,跳数+1。就这样,R1和R2不断地互相传递错误的信息,跳数不断+1,直到两者的跳数都达到16,R1和R2才知道目的网络1是不可达的
    所以说坏消息传得慢!

    九、总结:

    在这里插入图片描述

    展开全文
  • 距离向量算法
  • 这种更新算法又称为距离向量算法距离向量算法 对每一个相邻路由发送过来的RIP报文,进行一下步骤: 对于相邻路由X发来的RIP报文,先修改此报文中的所有项目,到目的网络的距离+1,下一跳地址为X。 将修改后的...

    RIP是一种基于距离向量的分布式路由选择协议。每个路由器都要不断地仅与相邻的路由器交换路由表。路由表的主要信息就是:到某个网络的最短距离,以及经过的下一跳地址。这种更新算法又称为距离向量算法

    距离向量算法

    对每一个相邻路由发送过来的RIP报文,进行一下步骤:

    1. 对于相邻路由X发来的RIP报文,先修改此报文中的所有项目,到目的网络的距离+1,下一跳地址为X。
    2. 将修改后的路由表与当前的路由表进行对比:
      (1)如果原来的路由表中没有网络N,则把该项目添加到当前路由表中。
      (2)否则(即原来的路由表中有N,这时候看下一跳路由地址):
      - 如果当前表中下一跳路由地址是X,则直接把这条项目加入到表中。因为这是最新的消息,要以最新的消息为准
      - 如果当前路由表中的下一跳地址不为X,则要比较距离,若项目中的距离小于路由表中的距离,则进行更新。
      (3)若3min后还没有收到相邻路由的更新路由表,则把此路由器记录为不可达的路由器,把距离设置为16.
      (4)返回。

    例题

    表1为当前路由器R6的路由表,现在收到了相邻路由R4发来的更新路由表,如表2,请更新R6的路由表

    表1
    目的网络距离下一跳路由器地址
    Net23R4
    Net34R5
    表2
    目的网络距离下一跳路由地址
    Net13R1
    Net24R2
    Net31直接交付

    解题

    (1)将表2进行修改

    目的网络距离下一跳路由地址
    Net14R4
    Net25R4
    Net32R4

    (2) 将这个表与表1进行比较:
    Net1没有,需要加进去;
    Net2有,下一跳为R4,和原来相同于是更新信息;
    Net3有,下一跳原来为R5,现在为R4, 但是现在的距离为2,于是也要更新
    最后得到更新后的R6路由表

    目的网络距离下一跳路由地址
    Net14R4
    Net25R4
    Net32R4
    展开全文
  • RIP及距离向量算法

    千次阅读 2018-10-09 21:39:00
    为了找出最短距离,由此引出 距离向量算法——   距离向量算法 此算法的基础是 Bellman-Ford算法 ,这种算法的要点是:  设 X 是结点 A 到 B 的最短路径上的一个结点。若把路径 A到B 拆成两段路径 A到X 和...

    >>>预备知识

    网络层提供两种服务:

    • 虚电路服务
    • 数据报服务

     

    虚电路服务与数据报服务的对比
    对比的方面虚电路服务数据报服务
    思路可靠通信由网络保证可靠通信由终系统保证
    连接的建立必须有不需要
    终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号每个分组都有终点的完整地址
    分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发
    当结点出故障所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组,一些路由可能发生变化
    分组的顺序按发送顺序不按发送顺序
    端到端的差错处理和流量控制可由网络负责,也可由终系统负责由终系统负责

     

    因数据报服务在分组转发时,每个分组独立选择路由进行转发,从而引出路由选择协议

    路由选择协议的核心是路由算法

     

    理想路由算法特点:

    • 算法必须是正确的和完整的
    • 算法在计算上应简单
    • 算法应能适应通信量和网络拓扑结的变化,要有自适应性
    • 算法应具有稳定性
    • 算法应是公平的
    • 算法应是最佳的

     

    路由算法依据自适应性来划分为:

    • 静态路由选择策略(非自适应路由选择)
    • 动态路由选择策略(自适应路由选择)

    由于互联网的规模非常大,以及各单位的保密需求,互联网采用分层次的路由选择协议。为此,将互联网分为许多较小的自治系统(AS),AS是在单一技术管理下的一组路由器。一个AS对其他AS表现出的是一个单一的和一致的路由选择策略

    路由选择协议分类:

    一)内部网关协议IGP

    •   RIP
    •   OSPF

    自治系统内部的路由选择叫做域内路由选择

    二)外部网关协议EGP

    •   BGP-4(BGP)

    自治系统之间的路由选择叫做域间路由选择 

     


     

    RIP

    中文名:路由信息协议

    RIP是一种分布式基于距离向量的路由选择协议

    距离的定义:也称“跳数(hop count)”,从一路由器到直接连接的网络的距离定义为 1。从一路由器到非直接连接的路由器的距离定义为所经过的路由器数加 1。

    RIP允许一条路径最多包含 15 个路由器,即“距离”等于 16 时不可达。

    RIP选择一条具有最少路由器的路由(最短路由),哪怕还存在另一条高速但路由器较多的路由。

    特点:每一个路由器都要不断地和其他路由器交换路由信息。

    1. 仅和相邻路由器交换信息
    2. 路由器交换的信息是当前本路由器所知道的所有信息,即当前的路由表
    3. 按固定时间间隔交换路由信息

    路由器刚开始工作时,路由表是空的,但经过若干次的更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。以上过程,叫 “收敛”,收敛是在AS中所有结点都得到正确的路由选择信息的过程。

    路由表中最主要的信息:到某个网络的距离(最短距离),经过的下一跳地址。

    为了找出最短距离,由此引出 距离向量算法——

     

    距离向量算法

    此算法的基础是Bellman-Ford算法,这种算法的要点是:

      设 X 是结点 A 到 B 的最短路径上的一个结点。若把路径 A到B 拆成两段路径 A到X 和 X到B,则每段路径 A到X 和 X到B 也都分别是结点 A到X 和结点 X到B 的最短路径。

    对每一个相邻路由器发送过来的RIP报文,进行以下步骤:

    1)对地址为 X 的相邻路由器发来的RIP报文,先修改此报文的所有项目:把“下一跳”字段中的地址都改为 X ,并把所有的“距离”字段值加 1   #假设从位于 X 的相邻路由器发来RIP报文的某一项目是:“Net2,3,Y”,意思是“我经过路由器Y到网络Net2的距离是3”,那么本路由器可推断出“我经过路由器X到网络Net2的距离是3+1=4”,于是将收到的RIP报文的这一项目修改为:“Net2,4,X”,作为下一步和路由表中原有项目进行比较时使用(比较后确定是否更新)每一个项目都有三个关键数据,即:到目的的网络 N ,距离 d ,下一跳路由器 X 。

    2)对修改后的RIP报文中的每个项目,执行以下步骤:

    if (原来的路由表中没有目的网络N):

      把该项目添加到路由表中  #本路由表中没有到目的网络Net2的路由,那么路由表中就要加入新的项目“Net2,4,X”  

    在路由表中有目的网络N,查看下一跳路由器地址:elif(下一跳路由器地址是 X):

      把收到的项目替换原路由表中的项目  #不管原来路由表中项目时“Net2,3,X”还是“Net2,5,X”,都要更新为“Net2,4,X”

    在路由表中有目的网络N,但下一跳路由器不是X,比较距离d与路由表中的距离:elif(收到的项目中的距离 d 小于路由表中的距离):

      更新  #若路由表中已有项目“Net2,5,P”,就更新为“Net2,4,X”

    else:

      无动作  #若距离更大了,显然不应更新;若距离不变,也不更新

    3)若三分钟还没收到相邻路由器的更新路由表,则把此相邻路由器记为不可到达的路由器,即“距离”为 16。

    4)return

     

    【例】:

    已知路由器R6有表a所示的路由表。现收到相邻路由器R4发来的路由更新信息,如表b所示。试更新路由器R6的路由表。

    表 a
    目的网络距离下一跳路由器
    Net23R4
    Net34R5
    ………………

     

    表 b
    目的网络距离下一跳路由器
    Net13R1
    Net24R2
    Net31直接交付

    解:先将收到的RIP报文改为表c:

    表 c
    目的网络距离下一跳路由
    Net13+1=4R4
    Net24+1=5R4
    Net31+1=2R4

    将表c与表a比较:

    row1:没有Net1,添加到表a中

    row2:有Net2,且下一跳路由器相同,更新

    row3:有Net3,但下一跳路由器是不同,比较距离得到,新的距离小于路由表中距离,更新

    综上所述:

    更新后R6的路由表如表d 所示:

    表 d
    目的网络距离下一跳
    Net14R4
    Net25R4
    Net32R4
    ………………

     

     

    RIP协议让AS中所有路由器都和自己相邻路由器定期交换路由信息,并不断更新路由表,使得每个路由器到每个目的网络的路由都是最短的(跳数最少)。

    转载于:https://www.cnblogs.com/zhanghx/p/9761882.html

    展开全文
  • 模拟路由器使用距离向量算法更新路由表 目录 一、实习题目 2 二、原理概述 2 三、 设计方案 2 四:程序代码: 3 五:程序输出: 6 六:总结 7 附录1: 8 一、实习题目 设计并编写模拟一台...
  • 使用距离向量算法更新路由表

    热门讨论 2009-10-29 10:49:01
    使用C++builder编写简单模拟路由器从邻居那里接收的链路状态分组作为该程序的输入,使用距离向量算法更新路由表
  • RIP协议和距离向量算法

    千次阅读 2020-08-06 19:31:31
    RIP(Routing Information Protocol,路由信息协议) 是一种内部网关协议(IGP),是一种动态路由选择...RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离
  • 基于距离向量算法的rip协议的实现,C++代码,运行环境visual studio2005
  • 基于距离向量算法的路由协议的实现
  • 【计算机网络】距离向量算法

    千次阅读 2019-11-06 15:18:46
    算法步骤 路由器X发送路由表给路由器Y,现在确定Y的新路由表 接到邻居节点的路由表,先把全部table-item的下一跳改为发送方X。并将距离+1。对于Y来说X的路由表中的距离都应该是先到X再到目的地,所以应该+1...
  • 距离 下一跳路由 N1 7 A N2 2 C N6 8 F N8 4 E N9 4 F 现在B收到C发过来的路由信息 目的网络 距离 N2 4 N3 8 N6 4 N8 3 N9 5 求出路由器B更新后的路由表: 答案: 目的网络 ...
  • 计算机网络·通俗理解RIP协议(距离向量算法计算)

    千次阅读 热门讨论 2021-05-04 14:52:15
    你能学到什么 一、什么是RIP协议 二、距离向量算法 一、什么是RIP协议 全称为路由信息协议,是一种分布式的基于距离向量的路由选择协议 最大的优点就是简单 仅和相邻路由器交换信息 路由器交换的信息是当前本路由器...
  • 一、RIP简介 RIP(Routing Information ...二、距离向量算法 1.距离(跳数)问题 (1)从一个路由器到直接连接的路由器距离定义为1 (2)从一个路由器到另一个非直接相连的路由器距离定义为所经过路由器的个数加.
  • 一、RIP协议 二、RIP协议的报文格式 三、RIP协议的特点(RIP协议好消息传得快,坏消息传得慢) 四、距离向量算法
  • 简单易懂的距离向量算法DV阐述(附伪代码)

    万次阅读 多人点赞 2018-11-21 17:13:23
    距离向量算法是一种迭代的、异步的、分布式的、能够自我终止的算法。 在计算机网络中,该算法主要用在路由选择上。本文的讨论范围就限于计网中的路由选择算法。以下展开算法解释。 异步:该算法不要求所有结点之间...
  • 距离向量算法(D-V)

    千次阅读 2018-07-06 21:53:06
    距离向量(D-V)算法: 收到相邻路由器(设其地址为 X)的一个 RIP 报文:  ① 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。  ② 对修改后的RIP报文中的...
  • RIP协议距离向量算法——路由表更新

    千次阅读 多人点赞 2020-07-03 13:20:16
    RIP协议距离向量算法——路由表更新 题目: 假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”): B的路由表 目的网络 距离 下一跳路由器 N1 7 A N2 2 ...
  • 实现了计算机网络中距离向量(DV)算法; 开发语言:C 开发环境:VC++6.0 内有整个工程文件,可直接运行
  • 假定网络中的路由器B 的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和 “下一跳路由器”) 目的网络 距离 下一跳路由 N1 7 A N2 2 C N6 8 F N8 4 E N9 4 F 现在B收到从C发来的路由...
  • 接上文距离向量算法(例题)

    千次阅读 2018-05-01 17:01:45
    假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳”路由器):N1 7 AN2 2 CN6 8 FN8 4 EN9 4 F现在B收到从C发来的路由信息(这两列分别表示“目的网络...
  • printf("\n-----------距离向量算法的过程模拟------------\n\n"); //初始化当前路由器 InitRTable(RT1); //添加相邻路由器 AddNearRouter(); //初始化相邻路由器 InitNearRTable(); //打印当前路由表 ...
  • RIP协议的距离向量算法实现(c++)

    千次阅读 2019-06-09 13:36:17
    模拟路由表示意图 核心: 新的直接进表 ...算法实现: #include<iostream> #include<fstream> #include<algorithm> #include<string> #include<vector> #include&l...
  • java实现基于距离向量算法 路由协议

    千次阅读 2016-11-23 09:28:39
    算法就不多说了,该程序实现的功能:首先你要将网络结构转化成邻接矩阵,每个路由器对应一行,若路由器m与网络n直接相连,则m行n列为1,否则为0 该程序的路由器和网络都从0开始编号 首先创建Table类,代表路由器的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,298
精华内容 42,519
关键字:

距离向量算法