动态选路协议
2015-09-26 16:32
211 查看
1、概述
Internet是由一组自治系统的方式组织的,每个自治系统如一个学校或一个公司等,这些自治系统由骨干网统一结合。自治系统内:在自治系统内选路协议为内部网关协议IGP,最常用的IGP为RIP,新的协议开放最短路径优先OSPF协议,意在取代RIP。
自治系统外:连接各个自治系统的协议叫外部网关协议EGP,一个叫边界网关协议BGP,意在取代EGP。
2、RIP 选路信息协议
命令:1表示请求,2表示应答;
地址系列:IP地址其值为2,携带ip地址和度量(跳数),最多携带25个路由;
UDP端口号:520。
RIP协议选路过程:
初始化:请求报文,命令字段为1,地址字段设置为0,度量字段设置为16(16表示无穷大,表示没有可到达的路由),目标端口为520,广播的形式;
接收到请求:接收到请求后,发送完整路由表;
响应请求:更新增加或删除路由表表项;
定期选路更新:每隔30秒,路由器都会将其完整路由表发送给相邻路由器,广播的形式;
触发更新:每当一条路由度量发生变化,就对其更新,不需发送完整路由,只发送当前变化的表项。
注意:每条路由都有其相关联的定时器,如果3分钟内未收到更新,则将其度量值设置为16,再过60秒,则将该路由删除。
3、RIP版本2
版本2实际上是在版本1的必须为0的位置增加的额外信息,如果忽略这些额外信息,版本1和2则可以互操作。
路由域:选路守护程序实例进程号,可以在单个路由器上运行多个RIP实例,每个实例由该字段做标识区分。
下一站IP地址:指明发往目的I P地址的报文该发往哪里。该字段为0意味着发往目的地址的报文应该发给发送RIP报文的系统。
OSPF:开放最短路径优先,是一个链路状态协议(不同与采用距离向微量的RIP协议:距离向量的意思是,RIP发送的报文包含一个距离向量(跳数),每个路由都根据它所接收到邻站的这些距离向量来更新自己的路由表)
OSPF采用的是每个路由主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。
链路状态协议总是比距离向量协议收敛(发生故障后,稳定下来)快。并且OSPF直接使用IP.
OSPF的特点:
1.OSPF可以对每个IP服务类型计算各自的路由集;
2.给每个接口指派一个无维数的费用;
3.流量平衡;
4.OSPF支持子网:子网掩码与每个通告路由相连;
5.无编号网络(路由器之间的点对点链路不需要每端都有一个IP地址);
6.简单认证机制;
7.OSPF采用多播。
BGP:边界网关协议。
BGP系统与其他BGP系统之间交换网络可到达信息。这些信息包括数据到达这些网络所必须经过的自治系统AS中的所有路径。
自治系统内:分本地流量和通过流量。
BGP与RIP和OSPF不同之处:BGP使用TCP作为其传输层协议
BGP是一个距离向量协议。
CIDR:无类型域间选路
CIDR可以有效地防止INTERNET路由表膨胀(减小Iinternet路由表的大小),它也称为超网(supernetting)
CIDR的基本观点是采用一种分配多个IP地址的方式,使其能够将路由表中的许多表项总和(summarization)成更少的数目。
CIDR还采用一种技术:使最佳匹配总是最长的匹配:即在32bit掩码中,它具有最大值。
“无类型”的意思是现在的选路决策是基于整个32bit IP地址的掩码操作,而不管其IP地址是A类,B类或是C类,都没有什么区别。
相关文章推荐
- LeetCode|LRU Cache-java
- LeetCode|Isomorphic Strings-java
- LeetCode|Number of 1 Bits-java
- android中实现截屏的三种思路
- 二维数组中行最大值中的最小值
- 调整数组顺序使奇数位于偶数前面
- PowerPoint2016录屏功能(再也不用苦苦寻找屏幕录制软件)
- Android进阶之数据存储+Preferences
- LeetCode|Rotate Array-java
- LeetCode|Excel Sheet Column Number-java
- LeetCode|Majority Element-java
- 秒杀多线程第三篇 原子操作 Interlocked系列函数
- LeetCode|Excel Sheet Column Title-java
- LeetCode|Intersection of Two Linked Lists-java
- LeetCode|Min Stack-java
- 黑马程序员-----java基础(多线程)
- Spark修炼之道(进阶篇)——Spark入门到精通:第八节 Spark SQL与DataFrame(一)
- 二:shell之bash变量
- LeetCode|Pascal's Triangle II-java
- LeetCode|Minimum Depth of Binary Tree-java