首页 > 代码库 > (网络层)路由协议
(网络层)路由协议
目录
路由协议特点
图释
默认路由
特定主机路由
路由表信息
分组转发算法
动态路由
理想路由算法
分层次路由选择协议
自治系统 AS
因特网有两大类路由选择协议
转发和路由选择
路由协议特点
不存在一种绝对的最佳路由算法.所谓"最佳"只能是相对于某一种特定要求下得出的较为合理的选择而已
实际的路由选择算法,应尽可能接近于理想的算法
路由选择是非常复杂的问题,是网络中的所有结点共同协调工作的结果
路由选择的环境往往是不断变化的,而这种变化有时无法事先知道
图释
默认路由
定义: 当路由表中与包的目的地址之间没有匹配的表项时路由器能够做出的选择
适用范围: 一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的
优点: 减少路由表所占用的空间和搜索路由表所用的时间
特定主机路由
定义:为特定的目的主机指明一个路由
优点:使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由
路由表信息
目的网络
下一跳
度量
分组转发算法
特点:
- IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)
- 只有到达最后一个路由器时,才试图向目的主机进行直接交付
转发条件:
- 转发:
- 有一个匹配条目
- 没有匹配条目但是存在默认路由
- 丢弃:
- 直接连接的网络
- 没有匹配条目也没有默认路由
步骤:
动态路由
定义:
路由器动态共享其路由协议所依据的规则集
分类:
- 路由信息协议 (RIP)
- 增强型内部网关路由协议 (EIGRP)
- 开放最短路径优先 (OSPF)
理想路由算法
算法必须是正确的和完整的
算法在计算上应简单
自适应性(适应通信量和网络拓扑的变化)
分类:
- 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
- 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大
法应具有稳定性
算法应是公平的
算法应是最佳的
分层次路由选择协议
出现原因:
- 因特网的规模非常大,现在已近有几百万个路由器相互连在一起
- 许多单位不愿意外界了解自己单位网络的布局细节和本部门采用的路由协议,但同时还希望连接到因特网上
自治系统 AS
定义:
在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由
现状:
尽管一个 AS 使用了多种内部路由选择协议和度量,但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略
图释:
因特网有两大类路由选择协议
内部网关协议 IGP (Interior Gateway Protocol)
概要:
即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议
基本思路:
- 是否可以直接交付
- 寻找来自邻居的帮助
- 接受谁的帮助比较好
RIP:
概要:
基于距离向量的路由选择协议,网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录
包头:
命令字段: 为1表示请求,2表示应答.还有两个舍弃不用的命令(3和4),两个非正式的命令: 轮询(5)和轮询表项(6)
关于距离:
- 从一路由器到直接连接的网络的距离定义为 1
- 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1
- 允许一条路径最多只能包含 15 个路由器
- 最大值为16 时即相当于不可达
三个要点:
- 仅和相邻路由器交换信息
- 交换的信息是当前本路由器所知道的全部信息
- 按固定的时间间隔交换路由信息
处理临路由表的方法:
优点:
实现简单,开销较小
缺点:
这就是好消息传播得快,而坏消息传播得慢
OSPF:
三个要点:
- 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息."链路状态"就是说明本路由器都和哪些路由器相邻,以及该链路的"度量"(metric)
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,且每隔一段时间,要刷新一次数据库中的链路状态
优点:
- 更新过程收敛得快
- 支持可变长度的子网划分和无分类编址 CIDR
数据包:
特点:
不用 UDP 而是直接用 IP 数据报传送且数据报很短
图释:
划分区域:
目的:
能够用于规模很大的网络OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域
要求:
区域不能太大,在一个区域内的路由器最好不超过200个
优点:
利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量
主干区域:
- 要求 标识符规定为0.0.0.0
- 路由器 知道完整网络拓扑
- 作用 用来连通其他在下层的区域
非主干区:
- 路由器 内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况
- 要求 至少有一个区域边界路由器
五种分组类型:
- 问候(Hello)分组
- 数据库描述(Database Description)分组
- 链路状态请求(Link State Request)分组
- 链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态
- 链路状态确认(Link State Acknowledgment)分组
外部网关协议EGP (External Gateway Protocol)
概要:
若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4
BGP:
概要:
BGP 是不同自治系统的路由器之间交换路由信息的协议
交换路由信息:
就要先建立TCP连接,使用TCP连接交换路由信息的两个BGP 发言人,彼此成为对方的邻站或对等站
然后在此连接上交换 BGP 报文以建立 BGP 会话(session)
利用 BGP 会话交换路由信息
BGP 发言人:
BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器,两个 BGP 发言人通过一个共享网络连接在一起的
图释:
特点:
BGP 协议交换路由信息的结点数量级是自治系统数的量级
每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的
BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀,下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列
在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表.但以后只需要在发生变化时更新有变化的部分.这样做对节省网络带宽和减少路由器的处理开销方面都有好处
BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由
过程:
报头:
四种报文:
打开(OPEN)报文 用来与相邻的另一个BGP发言人建立关系
更新(UPDATE)报文 用来发送某一路由的信息,以及列出要撤消的多条路由
保活(KEEPALIVE)报文 用来确认打开报文和周期性地证实邻站关系
通知(NOTIFICATION)报文 用来发送检测到的差错
转发和路由选择
转发(forwarding) 就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去
路由选择(routing) 按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由
(网络层)路由协议