只是大概知道ip路由是怎么回事,但是从来没看过细节上的东西,路由表都不怎么会看,很是失败,今
天现查找了一些资料,算是给自己扫扫盲,看了一阵子,有些收获,记录在此,与朋友们分享.由于本人才疏
学浅,难免有说错的地方,希望看到的朋友们及时给予指正,不胜感激.

1,何时需要进行路由?
对于一个节点来说,无论是收到数据包还是发送数据包或者是转发数据包,归纳起来,无外乎有两类ip包:一类包的目的端点就是这个节点本身,另一类包的目的 端点为别的端点.节点通过判断收到ip包的目的地址是否是本节点某个端口的ip地址来判断自己是否是目的端点.是,则交由上层协议处理(主机时),否则, 要为包进行路由选择,即要作出一个转发决策.此时需要依据路由表来决定包的去向问题.

2,路由表
路由表中的每一项,即每条路由,至少包括四个域:
目的地址(Target);
前缀长度(Prefix-Length);
下一跳地址(Next Hop);
端口(Interface);
当节点需要转发一个ip包时,主要参考的是路由表中的目的地址和前缀长度这两项,找到最合适的那项后,通过所对应的端口,把ip包发到所对应的下一跳.这里提到最合适是因为有的时候会有多项都符合自己的路由选择,此时要根据一定的原则选择一个最好的路由.原则见第三点.

3,当有多个路由符合时,ip的选路原则
如果存在多个匹配的表项,则选择前缀长度最长的那一个表项.

4,一个简单的实例
比如一个节点要为一个目的地址为192.168.1.2的数据报做一个转发决策,节点的路由表如下.

IP路由扫盲_路由

则此节点先查看第一条路由信息,发现网络前缀为32,即必须都符合才可以,不满足条件.然后查找第二条,前缀长度是24,而192.168.1完全符合, 所以满足条件,又查看第三条,当然满足,但根据ip的选录原则,选择第二条作为此次转发的路由,然后通过端口a把数据报发送到路由器2上.

5,对上个小例子的总结
可以看出,一般情况下有三类基本的路由表表项.
1)特定主机路由,即上述例子中的第一条,必须都满足,才可以.
2)网络前缀路由,即上述例子中的第二条,满足网络部分就ok.
3)默认路由,即上述例子中的第三条,当没有更符合的路由时,选择此项路由选择.
如果路由表中没有默认路由,当查找一遍路由表后发现没有匹配的路由时,宣告路由错误,并向数据报的源端发送一条ICMP网络不可达的错误信息.

上面写的一些东西是ip路由技术最基本的一点东西,希望能给像我一样菜鸟级的朋友们给予些帮助.