课程设计RIP路由协议的设计与实现

课程设计R I P路由协议的设计与实现精选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

课程设计

课程设计(论文)

RIP路由协议的设计与实现

院(系)名称电子与信息工程学院

专业班级

学号

学生姓名

指导教师

起止时间:

课程设计(论文)任务及评语

院(系):电子与信息工程学院教研室:

摘要

RIP协议是一种内部网管协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度)之内,再远,它就不关心了。RIP应用于OSI 网络七层模型的应用层。各厂家定义的管理距离(AD,即优先级)如下:华为定义的优先级是100,华三定义优先级是100,思科定义的是120。

随着OSPF和IS-IS的出现,许多人认为RIP已经过时了。但事实上RIP也有它自己的优点。对于小型网络,RIP就所占带宽而言开销小,易于配置、管理和实现,并且RIP还在大量使用中。但RIP也有明显的不足,即当有多个网络时会出现环路问题。为了解决环路问题,IETF提出了分割范围方法,即路由器不可以通过它得知路由的接口去宣告路由。分割范围解决了两个路由器之间的路由环路问题,但不能防止3个或多个路由器形成路由环路。触发更新是解决环路问题的另一方法,它要求路由器在链路发生变化时立即传输它的路由表。这加速了网络的聚合,但容易产生广播泛滥。总之,环路问题的解决需要消耗一定的时间和带宽。若采用RIP协议,其网络内部所经过的链路数不能超过15,这使得RIP协议不适于大型网络。

关键词:RIP协议;网络;路由器

Abstract

RIP protocol is an internal gateway protocol (IGP), which is a kind of dynamic routing protocol, which is used to transfer the routing information in the autonomous system (AS). RIP protocol based on distance vector algorithm (DistanceVectorAlgorithms), using the "hop count" (that is, metric) to measure the distance to reach the destination address of the routing distance. This protocol router only cares about the world around them, and their adjacent routers exchange information, the scope of the 15 jump (15 degrees), and then far, it does not care. Application layer of RIP applied to seven layer model of OSI network. Each manufacturer defines the management distance (AD, that is, the priority) is as follows: the priority of HUAWEI definition is 100, the definition of China three priority is 100, CISCO is defined by 120.

With the appearance of OSPF and IS-IS, many people think that RIP is out of date. But in fact RIP also has its own advantages. For small networks, RIP is small, easy to configure, manage, and implement, and RIP is still being used in a large number of uses. But RIP also has obvious shortcomings, that is, when there are multiple networks will appear loop problem. In order to solve the loop problem, IETF proposes a partition method, that is, the router can not know the route through the interface to declare the route. The split range solves the routing loop problem between the two routers, but can not prevent the 3 or more routers from forming a routing loop. Trigger update is another way to solve the loop problem, which requires the router to transmit its routing table when the link is changed. This accelerates the aggregation of the network, but it

is prone to broadcast flooding. In short, the solution of the loop problem needs to consume a certain amount of time and bandwidth. If the RIP protocol is adopted, the number of links in the network can not be more than 15, which makes the RIP protocol not suitable for large networks.

Key words:RIP protocol;internal;Router

目录

第1章绪论

RIP路由协议开发背景

RIP(RoutingInformationProtocols,路由信息协议)是应用较早、使用较普遍的IGP(InteriorGatewayProtocol,内部网关协议),适用于小型同类网络,是典型的距离矢量(distance-vector)协议。

RIP把每经过一个路由器称为经过了一跳,而每经过一跳,RIP就会将他的度量值(metric)加1,这样的话,跳数越多的则路径越长,而RIP会优先选择一条到达目标网络跳数少的路径,他支持的最大跳数是15跳,超过则被认为是不可达。

RIP在构造路由表时会使用到3种计时器:更新计时器、无效计时器、刷新计时器。它让每台路由器周期性地向每个相邻的邻居发送完整的路由表。路由表包括每个网络或子网的信息,以及与之相关的度量值。

RIP路由协议的设计内容及要求

设计内容

完成交换式以太网的拓扑结构设计,至少包含2台以上路由器(含串口)以及交换机,完成设备选型。规划IP地址以及VLAN划分,进行路由器及交换机的配置。配置路由器信息,必须包括RIP路由协议的配置。与外网连接部分可以自行设计。不同网络间通过RIP协议进行路由信息的交换,从而实现互连互通。

性能指标及技术要求

1、在Cisco Packet Tracer中完成程序的编写与仿真;包括设计程序,仿真界面,网络连通性测试等。

2、分析设计要求,构建总体设计方案。

3、给出相关设备工作原理、系统设计说明。

4、完成系统配置与仿真结果分析说明。

5、按照要求完成设计报告。

第2章需求分析

调研情况

使用R I P报文中列出的项, RIP主机可以彼此之间交流路由信息。这些信息存储在路由表中,路由表为每一个知道的、可达的目的地保留一项。每个目的地表项是到达那个目的地的最低开销路由。

注意每个目的地的表项数可以随路由生产商的不同而变化。生产商可能选择遵守规范,也可以对标准进行他们认为合适的“强化”。所以,用户很可能会发现某个特殊商标的路由器为每一个网络中的目的地存储至多4条相同费用的路由。

每个路由表项包括以下各域:

目的IP地址域

距离-向量度量域

下一跳IP地址域

路由变化标志域

路由计时器域

注意虽然RFC 1058是一个开放式标准,能支持大量互连网络地址结构,然而它是由IETF设计用于Internet中自治系统内的协议。如此,使用这种形式RIP的自然是网络互联协议。

模块划分

1. 目的IP地址

任何路由表中所包含的最重要信息是到所知目的地的I P地址。一旦一台RIP路由器收到一个数据报文,就会查找路由表中的目的I P地址以决定从哪里转发那个报文。

2. 度量标准域

路由表中的度量域指出报文从起始点到特定目的地的总耗费。路由表中的度量是从路由器到特定目的地之间网络链路的耗费总和。

3. 下一跳IP地址域

下一跳IP地址域包括至目的地的网络路径上下一个路由器接口的IP地址。如果目的IP地址所在的网络与路由器不直接相连时,路由器表中才出现此项。

4. 路由变化标志域

路由变化标志域用于指出至目的I P地址的路由是否在最近发生了变化。这个域是重要的,因为R I P为每一个目的I P地址只记录一条路由。

5. 路由计时器域

有两个计时器与每条路由相联系,一个是超时计时器,一个是路由刷新计时器。这些计时器一同工作来维护路由表中存储的每条路由的有效性。

RIP路由协议的特性

(1)路由信息更新特性:

路由器最初启动时只包含了其直连网络的路由信息,并且其直连网络的metric值为1,然后它向周围的其他路由器发出完整路由表的RIP请求(该请求报文的“IP地址”字段为0.0.0.0)。路由器根据接收到的RIP应答来更新其路由表,具体方法是添加新的路由表项,并将其metric值加1。如果接收到与已有表项的目的地址相同的路由信息,则分下面三种情况分别对待:第一种情况,已有表项的来源端口与新表项的来源端口相同,那么无条件根据最新的路由信息更新其路由表;第二种情况,已有表项与新表项来源于不同的端口,那么比较它们的metric值,将metric值较小的一个最为自己的路由表项;第三种情况,新旧表项的metric值相等,普遍的处理方法是保留旧的表项。

路由器每30秒发送一次自己的路由表(以RIP应答的方式广播出去)。针对某一条路由信息,如果180秒以后都没有接收到新的关于它的路由信息,那么将其标记为失效,即metric值标记为16。在另外的120秒以后,如果仍然没有更新信息,该条失效信息被删除。

(2)RIP版本1对地址的处理

RIP版本1不能识别子网网络地址,因为在其传送的路由更新报文中不包含子网掩码,因此RIP路由信息要么是主机地址,用于点对点链路的路由;要么是A、B、C类网络地址,用于以太网等的路由;另外,还可以是0.0.0.0,即缺省路由信息。

(3)计数到无穷大

A路由器会将针对目标网络C的路由表项的metric值置为16,即标记为目标网络不可达,并准备在每30秒进行一次的路由表更新中发送出去,如果在这条信息还未发出的时候,A路由器收到了来自B的路由更新报文,而B中包含着关于C的metric为2的路由信息,根据前面提到的路由更新方法,路由器A会错误的认为有一条通过B 路由器的路径可以到达目标网络C,从而更新其路由表,将对于目标网络C的路由表项的metric值由16改为3,而对于的端口变为与B路由器相连接的端口。很明显,A 会将该条信息发给B,B将无条件更新其路由表,将metric改为4;该条信息又从B发向A,A将metric改为5……最后双发的路由表关于目标网络C的metric值都变为16,

此时,才真正得到了正确的路由信息。这种现象称为“计数到无穷大”现象,虽然最终完成了收敛,但是收敛速度很慢,而且浪费了网络资源来发送这些循环的分组。

系统的需求分析

1.实现一个RIP路由协议的原型系统。

2.广播发布本地节点的路由信息。

3.其它节点接收信息并选择最优路径。

4.支持最大不超过15跳的特性。

5.动态支持网络拓扑结构的变化(如增加路由节点)

第3章RIP路由协议的设计

RIP路由协议的设计原理

RIP协议是动态路由协议,其运行至路由器中,而路由器是运行路由协议软件的专用硬件,它的主要功能可以分成两部分:路由选择和分组转发。其中路由选择是基础。一个路由器对到来的每一个分组先选择合适的路由,然后才能依据此路由进行正确的转发,本次课程设计就是设计有着广泛的使用范围的动态路由协议RIP协议体统原型。它是距离向量协议中的一种,属于内部网关协议。运行协议的相邻路由器通过彼此之间交换路由信息RIP的距离向量,从而知道网络的连接情况,实现各个网络之间的连通,这也是距离向量名称的由来。(Distance?Vector)运行协议的每个路由器都要维护一张自己的路由RIP表,该路由表是相应于与它直接相联和通过路由器相连的网络连接情况而动态变化的。因此协议属于动态路由协RIP议。路由器根据路由表对发给它的包进行转发,从而实现IP路由功能。

RIP路由协议的功能描述与模块划分

本设计实现的RIP路由协议的原型系统功能主要包括,一:初始化每个路由器的路由表信息。即在使用者输入网络拓扑结构中的路由节点数及链路数后,系统首先会自动生成每个节点到其相邻路由节点的路由信息,具体包括:目的地址、跳数、下一跳,初始设置相邻节点的跳数为1。

二:当路由器的初始路由表建立后,接下来就开始进行邻接节点的路由信息广播,即路由节点将自身的路由表信息广播至其相邻的节点,具体的广播信息是将每一条路由的目的地址不变,跳数加一,吓一跳修改为自身路由器接口的名称进行传送,收到广播信息的路由表对收到的每一条路由信息进行判断,分两大情况::若原来的路由表中没有目的网络N,则将该项添加到路由表中,否则(即在该路由表中有到目的网络N的信息,则观察下一条)此时分两种小情况1:若吓一跳与原路由表项相同,则无条件进行更新。2:若吓一跳与原路由表项不相同,则若收到的路由信息中距离d小于路由表中的距离,则进行更新。(还有对于接受的路由信息跳数>=16的信息,则将跳数置为16,表明不可达。)三:动态改变网络拓扑结构,即当因为实际需要,需增设路由节点时,系统会根据增设的路由节点数、名称、链路数,首先进行新增设节点的路由表信息初始化,而后将该节点的路由信息想邻接节点进行广播,随后整个网络节

点向邻接节点进行路由信息广播,这样经过几轮广播后,每一个节点都接收到了新增路由节点的最小路径信息,从而实现了路由表的动态维护与创建。

第4章 RIP路由协议的详细设计与编码

RIP路由协议的网络拓扑图

图网络拓扑图

RIP路由协议的编码

配置过程

Router1:

Router>enable?EndwithCNTL/Z.

Router(config)#intf0/01.1.11.1.61.1.21.0.0OSPF,

IA1.0.0/24issubnetted,1subnets

C?1.1.1.0isdirectlyconnected,FastEthernet0/0

Router#

Router2:

Router>enable?

Router#confter

Enterconfigurationcommands,oneperline.EndwithCNTL/Z.

Router(config)#intf0/0

Router(config-if)#ipadd1.1.5

Router(config-if)#noshutdown

%LINK-5-CHANGED:InterfaceFastEthernet0/0,changedstatetoup

%LINEPROTO-5-UPDOWN:LineprotocolonInterfaceFastEthernet0/0,changedstatetoup Router(config-if)#exitRouter(config)#ints0/0/1

Router(config-if)#ipadd1.1.2

Router(config-if)#clockrate64000Router(config-if)#noshutdown

%LINK-5-CHANGED:InterfaceSerial0/0/1,changedstatetoup

Router(config-if)#exitRouter(config)#ints0/0/0

Router(config-if)#ipadd1.1.3

Router(config-if)#clorate64000

Router(config-if)#noshutdown

%LINK-5-CHANGED:InterfaceSerial0/0/0,changedstatetodown

Router(config-if)#exitRouter(config)#routerrip

Router(config-router)#network?1.0.0.0

Router(config-router)#exitRouter(config)#exitRouter#

%SYS-5-CONFIG_I:Configuredfromconsolebyconsole

Router#

Router#showiproute

Codes: C-connected,S-static,I-IGRP,R-RIP,M-mobile,B-BGP

D-EIGRP,EX-EIGRPexternal,O-OSPF,

IA-OSPFinterarea

N1-OSPFNSSAexternaltype1,N2-OSPFNSSAexternaltype2

E1-OSPFexternaltype1,E2-OSPFexternaltype2,E-EGP

i-IS-IS,L1-IS-ISlevel-1,L2-IS-ISlevel-2,ia-IS-ISinterarea

*-candidatedefault,U-per-userstaticroute,o-ODR

P-periodicdownloadedstaticroute

Gatewayoflastresortisnotset

1.0.0.0/24issubnetted,3subnets

R?1.1.1

C1.1.2.0isdirectlyconnected,Serial0/0/1

C1.1.5.0isdirectlyconnected,FastEthernet0/0Router#

Router3:

Router>en?

Router#confter

Enterconfigurationcommands,oneperline.EndwithCNTL/Z.

Router(config)#intf0/0

Router(config-if)#ipadd1.1.4

Router(config-if)#noshutdown

%LINK-5-CHANGED:InterfaceFastEthernet0/0,changedstatetoup

%LINEPROTO-5-UPDOWN:LineprotocolonInterfaceFastEthernet0/0,changedstatetoup Router(config-if)#exitRouter(config)#ints0/0/0

Router(config-if)#ipadd1.1.6

Router(config-if)#clorate64000Router(config-if)#noshutdown

Router(config-if)#

%LINK-5-CHANGED:InterfaceSerial0/0/0,changedstatetoup

Router(config-if)#exitRouter(config)#ints0/0/1

Router(config-if)#ipadd1.1.3

Router(config-if)#clockrate64000

Router(config-if)#noshutdown

%LINK-5-CHANGED:InterfaceSerial0/0/1,changedstatetoup

Router(config-if)#exitRouter(config)#routerrip

Router(config-router)#

%LINEPROTO-5-UPDOWN:LineprotocolonInterfaceSerial0/0/1,changedstatetoup Router(config-router)#network1.0.0.0?

Router(config-router)#exit?

Router(config)#exitRouter#

%SYS-5-CONFIG_I:Configuredfromconsolebyconsole

Router#showiprou

Router#showiproute

Codes: C-connected,S-static,I-IGRP,R-RIP,M-mobile,B-BGP

D-EIGRP,EX-EIGRPexternal,O-OSPF,

IA-OSPFinterarea

N1-OSPFNSSAexternaltype1,N2-OSPFNSSAexternaltype2

E1-OSPFexternaltype1,E2-OSPFexternaltype2,E-EGP

i-IS-IS,L1-IS-ISlevel-1,L2-IS-ISlevel-2,ia-IS-ISinterarea

*-candidatedefault,U-per-userstaticroute,o-ODR

P-periodicdownloadedstaticroute

Gatewayoflastresortisnotset

1.0.0.0/24issubnetted,6subnets

R 1.1.1

R1.1.2

[120/1]via1.1.3.1,00:00:10,Serial0/0/1

C 1.1.3.0isdirectlyconnected,Serial0/0/1

C 1.1.4.0isdirectlyconnected,FastEthernet0/0

R 1.1.5

C 1.1.6.0isdirectlyconnected,Serial0/0/0

之后按照图示配置好主机的IP地址,使用ping命令测试相互之间的连通性,主机之间可以相互ping通的,如下所示:

第5章设计过程关键问题及其解决办法

如何实现广播本地路由及更新动态更新路由表

路由器最初启动时只包含了其直连网络的路由信息,并且其直连网络的metric值为1,然后它向周围的其他路由器发出完整路由表的RIP请求。路由器根据接收到的RIP应答来更新其路由表,具体方法是添加新的路由表项,并将其metric值加1。如果接收到与已有表项的目的地址相同的路由信息,则分下面四种情况分别对待:第一种情况,已有表项的来源端口与新表项的来源端口相同,那么无条件根据最新的路由信息更新其路由表;第二种情况,已有表项与新表项来源于不同的端口,那么比较它们的metric值,将metric值较小的一个最为自己的路由表项;第三种情况,新旧表项的metric值相等,普遍的处理方法是保留旧的表项。第四种情况,新表项在该路由表中不存在,则将跳数加一,吓一跳改为原发送路由器后添加到表项后。

如何在网络拓扑结构改变后实现动态更新维护路由表

首先要实现新添加路由表的路由信息初始化,而后再更新与之相邻的路由节点的路由信息,接下来就进行路由信息的邻接节点广播,从而达到全网络的路由信息更新。

第6章程序设计结果界面演示

1.分别从键盘输入网络拓扑结构中的路由数和链路数(中间用逗号隔开)

2.再分别输入各个路由器名称及其链路(中间用空格隔开)

程序输入数据界面如图所示:

图程序输入数据界面

按下ENTER键后各路由表的初始路由信息如图所示:

图初始路由信息

3.经过几轮广播信息后各路由节点的路由信息如图所示:

第7章总结

这次课程设计完成了RIP路由协议原型系统的实现,方案中路由节点能够利用广播发布本地节点的路由信息,其它节点接收信息并选择最优路径。本次设计查阅了许多案例,学到许多知识,原先很多不懂的东西,都有了初步的了解。这次课程设计使我觉得收获挺大的。之前的学习仅限于课本,网络的很多东西都只知道其然而不知道其所以然。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正做到理解。

课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,使我们实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,网络已经成为当今计算机发展中空前活跃的领域,在生活中可以说是无处不再,因此作为二十一世纪的计算机专业的大学生来说真正的掌握网络技术是十分重要的。

本次课程设计是我懂得了RIP适用于小型同类网络的一个自治系统(AS)内的路由信息的传递路由实现时,而RIP作为一个系统长驻进程(daemon)而存在于路由器中,负责从网络系统的其它路由器接收路由信息,从而对本地IP层路由表作动态的维护,保证IP层发送报文时选择正确的路由。

本人签字:

相关主题
相关文档
最新文档