路由器的路由选择协议详解
路由选择协议
- 概述
- 自治系统
- RIP协议
- RIP协议的特点
- 距离向量算法
- 例题
- RIP协议的报文格式
- RIP协议的缺点
概述
- 路由选择协议的核心就是路由算法,即需要何种算法来获得路由表中的各项目。
- 从路由算法能否随网络的通信量或拓扑自适应地进行调整变化来划分,则只有两大类,即静态路由选择策略与动态路由选择策略。
- 静态路由选择也叫做非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。对于很简单的小网络,完全可以采用静态路由选择,用人工配置每一条路由。
- 动态路由选择也叫做自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。因此,动态路由选择适用于较复杂的大网络
- 互联网采用的路由选择协议主要是
自适应的(即动态的)
、分布式路由选择协议
自治系统
整个互联网划分为许多较小的
自治系统(autonomous system)
,一般都记为AS
。自治系统AS是在单一技术管理下的一组路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量在目前的互联网中,一个大的ISP就是一个自治系统。
自治系统之间的路由选择也叫做
域间路由选择(interdomain routing)
,而在自治系统内部的路由选择叫做域内路由选择(intradomain routing)
。每个自治系统都有一个或多个路由器除运行本系统的内部路由选择协议外,还要运行自治系统间的路由选择协议使用分层次的路由选择方法,可将互联网的路由选择协议划分为:
- 内部网关协议
IGP(Interior Gateway Protocol)
:具体的协议有多种,如RIP和OSPF等。 - 外部网关协议
EGP(External Gateway Protocol)
:目前使用的协议就是BGP
- 内部网关协议
下图是两个自治系统互连在一起的示意图:
对于比较大的自治系统,还可将所有的网络再进行一次划分。例如,可以构筑一个链路速率较高的主干网和许多速率较低的区域网。每个区域网通过路由器连接到主干网。当在一个区域内找不到目的站时,就通过路由器经过主干网到达另一个区域网,或者通过外部路由器到别的自治系统中去查
RIP协议
- 英文:Routing Information Protocol
- 是内部网关协议IGP中最先得到广泛使用的协议[RFC 1058],它的中文名称叫做路由信息协议
- RIP是一种分布式的基于距离向量的路由选择协议,是互联网的标准协议,其最大优点就是简单
- RIP协议将“距离”定义如下:从一路由器到直接连接的网络的距离定义为1,也称为“跳数”(hop count)。RIP允许一条路径最多只能包含15个路由器。因此“距离”等于16时即相当于不可达。可见RIP只适用于小型互联网。
- 需要注意的是,到直接连接的网络的距离也可定义为0(采用这种定义的理由是:路由器在和直接连接在该网络上的主机通信时,不需要经过另外的路由器。既然每经过一个路由器要将距离加1,那么不再经过路由器的距离就应当为0)。但两种不同的定义对实现RIP协议并无影响,因为重要的是要找出最短距离
- RIP不能在两个网络之间同时使用多条路由。RIP选择一条具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
- 本节讨论的RIP协议和下一节要讨论的OSPF协议,都是分布式路由选择协议。它们的共同特点就是每一个路由器都要不断地和其他一些路由器交换路由信息
RIP协议的特点
- 仅和相邻路由器交换信息
- 交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表
- 按固定的时间间隔交换路由信息
注意:
- 路由器在刚刚开始工作时,它的路由表是空的。然后路由器就得出到直接相连的几个网络的距离(这些距离定义为1)。接着,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。但经过若干次的更新后,所有的路由器最终都会知道到达本自治系统中
任何一个网络
的最短距离和下一跳路由器的地址。 - 在一般情况下,RIP协议可以
收敛
,并且过程也较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程 - 路由表中最主要的信息就是:到某个网络的距离(即最短距离),以及应经过的下一跳地址。路由表更新的原则是找出到每个目的网络的最短距离。这种更新算法又称为
距离向量
算法 - 虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的。
距离向量算法
对每一个相邻路由器发送过来的RIP报文,进行以下步骤:
- 对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有的“距离”字段的值加1(解释1)。每一个项目都有三个关键数据,即:到目的网络N,距离是d,下一跳路由器是X
- 对修改后的RIP报文中的每一个项目,进行以下步骤:
- 若原来的路由表中没有目的网络N,则把该项目添加到路由表中(见解释2)
- 否则(即在路由表中有目的网络N,这时就再查看下一跳路由器地址)
- 若下一跳路由器地址是X,则把收到的项目替换原路由表中的项目(见解释3)
- 否则,若收到的项目中的距离d小于路由表中的距离,则进行更新(见解释4),否则什么也不做(见解释5)
- 若
3
分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达
的路由器,即把距离置为16
上面给出的距离向量算法的基础就是Bellman-Ford
算法(或Ford-Fulkerson
算法)。这种算法的要点是这样的:
- 设X是结点A到B的最短路径上的一个结点。若把路径A→B拆成两段路径A→X和X→B,则每一段路径A→X和X→B也都分别是结点A到X和结点X到B的最短路径。
解释:
- 这样做是为了便于进行本路由表的更新。假设从位于地址X的相邻路由器发来的RIP报文的某一个项目是:“Net2,3,Y”,意思是“我经过路由器Y到网络Net2的距离是3”,那么本路由器就可推断出:“我经过X到网络Net2的距离应为3+1=4”。于是,本路由器就把收到的RIP报文的这一个项目修改为“Net2,4,X”,作为下一步和路由表中原有项目进行比较时使用(只有比较后才能知道是否需要更新)
- 表明这是新的目的网络,应当加入到路由表中。例如,本路由表中没有到目的网络Net2的路由,那么在路由表中就要加入新的项目“Net2,4,X”
- 为什么要替换呢?因为这是最新的消息,要以最新的消息为准。到目的网络的距离有可能增大或减小,但也可能没有改变。例如,不管原来路由表中的项目是“Net2,3,X”还是“Net2,5,X”,都要更新为现在的“Net2,4,X”
- 例如,若路由表中已有项目“Net2,5,P”,就要更新为“Net2,4,X”。因为到网络Net2的距离原来是5,现在减到4,更短了
- 若距离更大了,显然不应更新。若距离不变,更新后得不到好处,因此也不更新
例题
已知路由器R6有表1所示的路由表。现在收到相邻路由器R4发来的路由更新信息,如表2所示。试更新路由器R6的路由表
表1:路由器R6的路由表
目的网络 | 距离 | 下一跳路由器 |
---|---|---|
Net2 | 3 | R4 |
Net3 | 4 | R5 |
… | … | … |
表2:R4发来的路由更新信息
目的网络 | 距离 | 下一跳路由器 |
---|---|---|
Net1 | 3 | R1 |
Net2 | 4 | R2 |
Net3 | 1 | 直接交付 |
解析:
先把表2中的距离都加1,并把下一跳路由器都改为R4。得出表3:
目的网络 | 距离 | 下一跳路由器 |
---|---|---|
Net1 | 4 | R4 |
Net2 | 5 | R4 |
Net3 | 2 | R4 |
把这个表的每一行和表1进行比较:
- 第一行在表1中没有,因此要把这一行添加到表1中。
- 第二行的Net2在表1中有,且下一跳路由器也是R4。因此要更新(距离增大了)。
- 第三行的Net3在表1中有,但下一跳路由器不同。于是就要比较距离。新的路由信息的距离是2,小于原来表中的4,因此要更新。
这样,得出更新后的R6的路由表如表4所示:
目的网络 | 距离 | 下一跳路由器 |
---|---|---|
Net1 | 4 | R4 |
Net2 | 5 | R4 |
Net3 | 2 | R4 |
… | … | … |
RIP协议的报文格式
- RIP协议使用运输层的用户数据报UDP进行传送(使用UDP的端口520)
- RIP报文由首部和路由部分组成
- 首部占4个字节,其中的命令字段指出报文的意义。例如,1表示请求路由信息,2表示对请求路由信息的响应或未被请求而发出的路由更新报文。首部后面的“必为0”是为了4字节字的对齐
- RIP2报文中的路由部分由若干个路由信息组成。每个路由信息需要用20个字节
- 一个RIP报文最多可包括25个路由,因而RIP报文的最大长度是4+20×25=504字节。如超过,必须再用一个RIP报文来传送
RIP协议的缺点
- “坏消息传播得慢”,使更新过程的收敛时间过长。为了使坏消息传播得更快些,可以采取多种措施。例如,让路由器记录收到某特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送
- RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加
因此,对于规模较大的网络就应当使用下一节所述的OSPF协议。然而目前在规模较小的网络中,使用RIP协议的仍占多数。
路由器的路由选择协议详解相关推荐
- IP协议详解---Linux学习笔记
网络层概述: IP服务的特点: IP协议为上层协议提供无状态.无连接.不可靠的服务. 无状态:IP通讯双方不同步传输状态的信息,因此所有IP数据报发送.传输.接收都是相互独立的,没有上下文关系.这样同 ...
- 《TCP IP协议 详解》思考总结 · 三
前言 这一篇文章主要围绕了IP协议,ICMP协议和UDP协议展开,希望可以在这里大概做一个总结,将<TCP/IP协议详解 卷一>书中TCP相关章节前面的内容做一个结束,在下一篇文章专心的去 ...
- 【计算机网络】--- HTTP与HTTPS协议详解
HTTP与HTTPS协议详解 一.URL 二.HTTP协议 三.HTTPS协议 四.HTTP与HTTPS区别(重中之重) 五.如何正确选择HTTP协议和HTTPS协议 引言:当我们打开一个网页时,奇妙 ...
- TCP /IP协议详解【转】
转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...
- IP协议详解及IPv4与IPv6协议的区别
IP协议是在TCP/IP协议模型中的重要组成部分,目前我们使用最多的是IPv4协议,IPv6协议的用户量也在慢慢增加,苹果在几年之前就已经开始支持IPv6协议了.我们先来了解一下IPv4和IPv6协议 ...
- nbns协议_网络协议详解1 - NBNS
NetBIOS 简介 NetBIOS,Network Basic Input/Output System的缩写,一般指用于局域网通信的一套API,相关RFC文档包括 RFC 1001, RFC 100 ...
- java udp 协议_网络协议 - UDP 协议详解
¶ 网络协议 - UDP 协议详解 基于TCP和UDP的协议非常广泛,所以也有必要对UDP协议进行详解.@pdai ¶ UDP概述 UDP(User Datagram Protocol)即用户数据报协 ...
- UNIPRO NL协议详解
UFS协议系列文章目录 UNIPRO系列文章传送门: UNIPRO TL协议详解 UNIPRO DL协议详解之整体概述 UNIPRO DL协议详解之流控机制 UNIPRO DL协议详解之重传机制 MP ...
- 计算机网络应用层(二):DNS协议详解
DNS协议详解 前言 DNS协议概述 DNS工作原理 DNS缓存 DNS记录和报文 资源记录 DNS报文 总结 前言 DNS是计算机网络中应用层的一个协议,可能很多同学碰到过DNS被劫持的情况,我们现 ...
- 入木三分学网络第一篇--VRRP协议详解-----(1)
原帖:http://blog.chinaunix.net/uid-11654074-id-2857384.html 目录 入木三分学网络第一篇--VRRP协议详解 1. VRRP产生背景及应用环境 1 ...
最新文章
- 60阶单群同构于A5的证明
- windows linux C/C++获取操作系统、CPU、内存信息、硬盘、IP和MAC
- Android 中加载网络资源时的优化 缓存和异步机制
- VTK:灯光之LightActor
- 阅读笔记-你的灯还亮着吗?
- 带网管工业交换机跟不带网管交换机的差别
- DJANGO中操作数据库
- WIN10显示汉字都有问题?
- c# 多线程 执行事件 并发_阿里P9大牛对多线程并发问题的一些总结
- linux启动tongweb命令,TongWeb安装配置--Linux
- 节约里程法求解CVRP问题
- 小白用Math对象随机生成一个名字
- 第十一周项目一 类的继承填空
- 办理芯片银行卡时记得把“闪付”功能取消
- 《Learning Enriched Features for Real Image Restoration and Enhancement》
- d3带箭头和点击事件的力导向关系图
- 2023中国数据安全发展趋势十大预测
- 小程序上传文件demo
- 一位老先生对年轻人不得不说的十大忠告〔转〕
- px,in,mm,pt,dp,dip,sp 之间的换算公式以及区别