Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189253
  • 博文数量: 71
  • 博客积分: 2990
  • 博客等级: 少校
  • 技术积分: 705
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-29 14:04
文章分类

全部博文(71)

文章存档

2011年(1)

2009年(1)

2007年(6)

2006年(42)

2005年(21)

我的朋友

分类: 系统运维

2005-03-30 16:09:00

 

IP路由选择主要要解决的问题是:
在给定的主机上运行何种路由协议;
如何在相邻路由器上交换选路信息;
选录协议是如何工作的。

这章,主要要了解单个IP层如何做出路由决策

============================================

选路的原理:
当路由器收到一个需要它转发的IP包的时候,它会搜索路由表
其步骤(按先后顺序):
1)搜索匹配的主机地址
2)搜索匹配的网络地址
3)搜索默认选项
然后决定将该IP包发往何处。

============================================

一个简单的路由表:

DestinationGatewayFlagsRefcntUseInterface
140.252.13.65140.252.13.35UGH00emd0
127.0.0.1127.0.0.1UH10lo0
default140.252.13.33UG00emd0
140.252.13.32140.252.13.34U425043emd0

当路由器收到一个IP包,它会将该IP包的目的IP地址与Destination匹配,然后通过本机的Interface接口,发往相对应的Gateway。
对于该路由表中,127.0.0.1时环回接口。名字始终时lo0。
而default时默认路由。当无法搜索到匹配选项的时候,IP包均发往该处。
如果路由表中没有匹配项,也没有默认项,就会给发送数据报的应用程序返回一个差错,“主机不可达差错”或者“网络不可达差错”

该路由表中,Flag字段的5种标志是:
U:该路由可以使用(在搜索路由表时,可以被搜到)
G:该路由是到一个网关(路由器)的。有这个标志,表示该路由是一个间接路由,数据报将发往下一个路由器。
H:该路由是到一个主机的。就是目的地址是一个完整的主机地址,在搜索路由表时IP地址要全部匹配。如果没有该标志,说明这个是一个网络地址,搜索路由表时只要匹配网络号。
D:该路由是由重定向报文创建的
M:该路由已被重定向报文修改

Refcnt:列出正在使用路由的活动进程个数。
Use:通过该路由发送的分组数。

============================================

ICMP重定向差错:
当主机启动时,一般只有一个默认选项,指向默认路由。当主机向外部目的地发包时,包都会先发往默认路由。
默认路由会发现主机和目的地之间存在更好的路由选项。默认路由器就会通知主机,进行重定向,主机会对路由表做相应的改动。以后主机再发包给目的地时,主机会选择重定向后的较优路由。
因此,虽然主机启动的时候只有一个默认路由。但主机可以通过重定向报文,来逐步学习,完善主机的路由表。

ICMP重定向报文格式:

类型(5) 代码(0-3)检验和
应该使用的路由器IP地址
IP首部(包括选项)+原始IP报中数据前8字节

代码项中不同值的含义:0表示网络重定向;1表示主机重定向;2表示服务类型和网络重定向;3表示服务类型和主机重定向。
ICMP重定向报文,只能由路由器生成,不能由主机生成。ICMP重定向报文是为主机使用的。

============================================

ICMP路由器发现报文:
主机引导后,会广播或多播传送一份路由器请求报文。一台或更多的路由器响应一份路由器通告报文。
ICMP路由器请求报文格式:

类型(0) 代码(0)检验和
未用(置为0发送)

另外,路由器会定期的广播或多播传送他们的路由通告报文,允许监听的主机更新他们的路由表。
ICMP路由器通告报文格式:

类型(9)代码(0)16位检验和
地址数数据项长度生存时间
路由器地址【1】
优先级【1】
路由器地址【2】
优先级【2】
…………

地址数:报文中所含的地址数
地址项长度:始终为2
生存时间:通告地址有效的时间(秒数)
然后是一对或多对IP地址和优先级。IP地址必须是发送路由器的某个地址。
优先级指出该IP地址作为默认路由器地址的优先等级(值越大,优先级越高)。

路由守护程序(daemon):一般都是一个用户进程(例如是路由程序和网关程序)。在系统引导时启动,在系统运行期间一直存在。
路由器发现报文一般由用户进程(守护程序)创建和处理。

============================================

TO BE CONTINUED

 

阅读(1024) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~