9、IP选路

来源:互联网 发布:算法的效率只与 编辑:程序博客网 时间:2024/06/05 20:05

引言

这里写图片描述
IP执行选路机制,而路由守护程序则一般提供选路策略。

静态IP选路

这里写图片描述

U:该路由可用G:该路由是到一个网关(路由器),如果没有标志,那么说明目的地是直接相连的H:该路由是到一个主机。目的地址是完整的主机地址,没有改标志说明是到一个网络。D:该路由是由重定向报文创建的M:该路由已被重定向报文修改

U没啥可说的,G说明这是一个网关,如果你要发数据给Destination,IP头应该写Destination的IP地址,而数据链路层的MAC地址就应该是GateWay的Mac地址了;反之,如果没有G标志,那么数据链路层和IP层的地址应该是对应的。H说明了Destination的性质,如果是H的,则说明该地址是一个完整的地址,既有网络号又有主机号,那么再匹配的时候就既要匹配网络号,又要匹配主机号;反之,Destination就代表一个网络,在匹配的时候只要匹配一下网络号就可以了。

综上,在IP路由的时候:

(1)首先用IP地址来匹配那些带H标志的DestinationIP地址。(2)如果1失败就匹配那些网络地址。(3)如果2失败就发送到Default网关

初始化路由表

一般来说我们配置好一个网络接口的时候,就会自动创建一个直接路由。也可以用 route add来添加路由表项。
当一个IP包在某一个路由器的时候发现没有路由可走,那么该路由器就会给源主机发送“主机不可达”或者“网络不可达”的ICMP包来报错。

ICMP重定向

当IP包在某一个地方转向的时候,都回给发送IP报的源主机一个ICMP重定向报文,而源主机就可以利用这个信息来更新自己的路由表,这样,随着网络通信的逐渐增多,路由表也就越来越完备,数据转发的速度也会越来越快。我们需要注意的是:

(1)重定向报文只能由路由器发出。(2)重定向报文为主机所用,而不是为路由器所用。

在主机引导的时候,一般会发送在网内广播一个路由请求的ICMP报文,而多个路由器则会回应一个路由通告报文。而且,路由其本身不定期的在网络内发布路由通告报文,这样,根据这些报文,每一个主机都会有机会建立自己的路由表而实现网络通信。路由器在一份通告报文中可以通告多个地址,并且给出每一个地址的优先等级,这个优先等级是该IP作为默认路由的等级,至于怎么算的就不深究了。

路由器一般会在450-600秒的时间间隔内发布一次通告,而一个给定的通告报文的寿命是30分钟。而主机在引导的时候会每三秒发送一次请求报文,一旦接受到一个有效的通告报文,就停止发送请求报文。

动态选路协议

动态选路协议,它用于路由器间的通信。路由器之间必须采用选路协议进行通信;路由器上有一个进程称为路由守护进程,它允许选路歇息。路由守护进程将选路策略加入到系统中,选择路由并加入到内核路由表。每个自治系统可以选择该自治系统中每个路由器之间的路由协议。这种协议我们称之问内部网关协议IGP或域内选路协议。选路协议RIP和最短路径开放OSPF协议是常用的路由选路协议。

Unix系统上的守护程序

Unix系统上面通常都有路由守护程序--routed。还有一个叫做gate。gate所支持的协议要比routed多,routed只是支持RIPv1版本。而gate则支持RIPv1、v2,BGPv1 等等。
这里写图片描述

RIP:选路信息协议

RIP报文包含在UDP数据报中。
这里写图片描述
RIP报文格式
这里写图片描述
命令字段

1:表示请求2:表示应答3和4:舍弃不用的命令5:轮询6:轮询表项

版本字段:1或者2
我们最关心的就是RIP其中的一个段,叫做度量的段,这是一个以hop作为计数器(就是以走过多少路由为计数器)的段
RIP协议常用的UDP端口号使520,当我们正常运行时

(1)初始化:给每一个已知的路由器发送rip请求报文,要求其他路由器给出完整的路由表。这种报文的命令字段为1,地址字段为0,度量地段为16(相当于无穷大)。(2)接受请求,如果接收到刚才的那个请求,就把自己的完整的路由表交给请求者。如果没有,就处理IP请求表项,把表项中自己有的部分添上跳数,没有的部分添上16。然后发给请求者。(3)接受回应。更新自己的路由表。使用hop数小的规则。(4)定期更新路由表,一般是30s(真频繁)给相邻的路有启发一次自己的路由表。这种形式可以使广播形式的。(5)触发更新。每当一条路由的度量发生变化就对他更新。

RIP版本2

这里写图片描述
路由域:守护进程的标识符。
选路标记:支持外部网关协议而存在的,携带EGP和BGP自治系统号。

OSPF:开放最短路径优先

OSPF是一个链路状态协议。路由器并不与其邻站交换距离信息,它采用的是每个路由器主动地测试与其邻站相连的链路状态,每个路由接收这些链路状态信息并建立起完整的路由表。
OSPF直接使用IP,不适用TCP或UDP
这里写图片描述

原创粉丝点击