TCP/IP 6 IP选路
1、IP选路的原理
1) 搜索匹配的主机地址;
2) 搜索匹配的网络地址;
3) 搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为 0)。
这个在IP章节已经说过,不再详细描述。
2、路由表
我们可以使用route -n或者是netstat -rn来打印路由表
这里需要重点说明的是路由表中的几种标志,其中G非常重要因为它区别了 网络是否是直接连接的。
U 该路由可以使用。
G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。
H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合。
D 该路由是由重定向报文创建的。
M 该路由已被重定向报文修改。
还要说明H,因为H说明对面是否为一个主机,如果说对面不是直接相连接的,而是由当前路由转发到下一个路由从而到达目的地,这时候就会出现ICMP的重定向报文,从而逐渐完善路由表。
当遍历整个路由表也找不到可以转发的地址时,会出现ICMP主机不可达的报文。
3、路由表的创建和生成
路由表可以由管理员手动添加,或者是ICMP重定向来添加,当然这样子效率不高,更多的是使用的动态生成
动态选路:
动态选路协议是用于动态选路的重要组成部分,但是他们只是使用在路由器之间,相邻路由器之间互相通信。系统(路有选择程序)选择比较合适的路有放到核心路由表中,然后系统就可以根据这个核心路有表找到最合适的网路。也就是说,动态选路是在系统核心网络外部进行的,它只是用一些选路的策略影响路由表,而不会影响到最后通过路由表选择路由的那一部分。选路协议有一大类常用的叫做内部网关协议(IGP),而在IGP中,RIP就是其中最重要的协议。一种新的IGP协议叫做开放最短路经优先(OSPF)协议,其意在取代RIP。另一种最早用在网路骨干网上的IGP协议--HELLO,现在已经不用了。如今,任何支持动态选路的路由器都必须同时支持OSPF和RIP,还可以选择性的支持其他的IGP协议。
RIP协议:
RIP协议使用UDP为载体,其中有一个度量字段叫做hop从而确定最优的路径:
一般说来routed要承担如下的工作:
1.给每一个已知的路由器发送rip请求报文,要求其他路由器给出完整的路由表。这种报文的命令字段为1,地址字段为0,度量地段为16(相当于无穷大)。
2.接受请求,如果接收到刚才的那个请求,就把自己的完整的路由表交给请求者。如果没有,就处理IP请求表项,把表项中自己有的部分添上跳数,没有的部分添上16。然后发给请求者。
3.接受回应。更新自己的路由表。使用hop数小的规则。
4.定期更新路由表,一般是30s(真频繁)给相邻的路有启发一次自己的路由表。这种形式可以使广播形式的。
这个协议中的由于hop的限制,会存在很大的弊端。也因此出现了很多的替代品。