IP选路与动态选路协议(六)
来源:互联网 发布:编辑五线谱的软件 编辑:程序博客网 时间:2024/06/13 21:40
(参考文献)TCP/IP详解,卷1:协议
选路是IP最重要的功能之一。需要进行选路的数据报可以有本地主机产生,也可以由其他主机产生。在有一种情况下,主机必须配置成一个路由器,否则通过网络接口搜到的数据报,如果目的地址不是本机就要丢弃。
在以上图中有一个路由守护程序(daemon),通常这是一个用户进程。在Unix系统中,大多数普通的守护程序都是路由程序和网关程序(术语daemon指的是运行在后台的进程,它代表整个系统执行某些操作。Daemon一般在系统引导时启动,在系统运行期间一直存在)。
简单路由表
执行netstat –rn 命令输出如下:
Destination Gateway Genmask Flags MSS Window irtt Iface
152.188.7.133 192.168.8.1 0.0.0.0 UGH 0 0 0 eth0
Default 192.168.8.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.8.133 0.0.0.0 255.255.255.0 U 0 0 0 eth0
第一行表明,如果目的地址是 192.168.8.133 那么网关(路由器)将把分组转发给192.168.8.1。
对于一个给定的路由器,可以打印出5种不同的标志:
U 该路由器可以使用
G 该路由器是到一个网关(路由器),如果没有标志说明目的地址是直接相连的。
H 该路由器是到一个主机,也就是说,目的地址是一个完整的主机地址.
D 该路由是由重定向报文创建的
M 该路由已被重定向报文修改
标志G是非常重要的,他区分了间接路由和直接路由,区别在于,发往路由的分组中不但具有目的端的IP地址,还具有其链路层地址,指明的是网关。当为某个目的地址搜索路由表时,主机地址必须与目的地址完全匹配,如果没有则匹配网络地址;而网络地址只需要匹配目的地址的网络号和子网号就可以了。
输出的第2行是默认路由,每个主机都有一个或者多个默认路由。这一项表明,如果在路由表中没有找到特定的路由,就把分组发送到路由器 192.168.8.1
,这说明当前主机利用这一路由表现就可以通过Internet访问其他的网络系统。
没有到达目的地的路由
前面我们都假定对路由表的搜索都能找到匹配的表项,即使匹配的是默认路由。但如果路由表中没有默认项,又没有找到匹配的项,这时会发生什么呢。
结果取决于该IP数据报是由主机产生的还是被转发的。如果数据报是由本地产生的,那么就给发送该数据报的应用返回一个差错(“主机不可达差错”或“网络不可达差错”)。如果是被转发的数据报,那么就给原始发送端发送一份ICMP主机不可达的差错报文。
ICMP重定向差错
我们假定主机发送一份IP数据报给R1,因为R1是该主机的默认路由。
当R1收到数据报并检查他的路由表,发现R2是发送该数据报的下一站。当他把数据报发送给R2时,R1监测到他正在发送数据报的接口与数据报到达接口是一样的(即R1接收到该数据报的端口和他要发送出去使用的端口是同一个)。这样就给路由器发送重定向报文给原始发送端提供线索。
R1发送一份ICMP重定向报文给主机,告诉他以后把数据报发送给R2而不是R1,。
重定向一般让具有很少选路信息的主机逐渐建立更完善的路由表。主机启动时,路由表中可以只有一个默认表项。一旦默认路由发送差错,默认路由器将通知他进行重定向,并允许主机对路由表做相应的改动。ICMP重定向允许TCP/IP主机在进行选路时不需要具有智能特性,而把所有的智能特性放在路由器端。主机只是通过重定向报文来逐步学习。
ICMP路由器发现报文
一般情况下,初始化路由表的方法是在配置文件中指定静态路由。这种方法常用来设置默认路由另一种方法是使用ICMP通告报文和请求报文。
一般认为,主机在引导以后要广播或多播一份路由器请求报文。一台或更多台路由器相应一份路由器通告报文。另外路由器定期的广播或者多播传送他们的路由器通告报文,运行每个正在监听的主机更新他们的路由表。
ICMP路由请求报文格式:
ICMP路由器通告报文:
路由器在一份报文中可以通告多个地址。地址书指的是报文中所含的地址数;地址项大小指的是每个路由器地址32bit的数目;生存时间指的是通告地址有效的时间(秒)。优先级是指出IP地址作为默认路由器地址的优先级。
动态选路
路由器之间的通信使用RIP协议,即选路信息协议(Routing Infromation Protocol),大多数TCP/IP实现都提供这个应用广泛的协议。
当相邻路由器之间进行通信,已告知对方每个路由器当前所连接的网络,这时就出现了动态选路。路由器之间必须采用选路协议进行通信,这样的选路协议有很多种。路由器上有一个进程,成为路由守护程序,它运行选路协议,并与其相邻的路由器进行通信。路由守护程序更具它从相邻路由器接收到的信息,更新内核中的路由表。
动态选路并不会改变内核在IP层的选路方式(即IP选路)。内核搜索路由表,查找主机路由、网络路由。以及默认路由的方式并没有改变。仅仅是放置到路由表中的信息变了----当路由随时间变化时,路由是由路由守护程序动态地增加或删除,而不是来自引导程序文件中的route程序。
路由守护程序将选路策略加入到系统中,选择路由并加入到路由表中。如果守护程序发现前往同一信宿存在多条路由,那么他(以某种方法)将选择最佳路由并加入到路由表中。如果路由守护程序发现一条链路已经断开(可能是路由器崩溃或者线路不好),他可以删除受影响的路由或增加一条路由以绕过该问题。
在internet这样的系统中,采用了许多不同的选路协议。Internet是由多组自制系统组成的,每个自制系统都有各自的选路协议。常常将一个公司或者大学定义为一个自制系统。每个自制系统可以选择该自制系统中各个路由器之间的选路协议,这种协议我们称之为内部网关协议IGP(Interior Gateway Protocol)或域内选路协议(interadomain routing protocol)。最常用的IGP选路信息协议RIP。(选路协议的作用在于,提供最优路径,并加入到路由表中;他为主题查看路由表提供一套更优质的路由表方案)
- IP选路与动态选路协议(六)
- ip路由 动态选路协议
- 《TCP/IP详解-协议》(10)动态选路
- 《TCP/IP协议详解》第十章 动态选路协议
- TCP/IP详解卷1:协议(第十章:动态选路协议)
- 网络层:IP选路和动态选路协议
- TCP/IP详解卷1:协议(七)【动态选路协议 , UDP:用户数据报协议】
- TCP/IP详解 (10) 动态选路协议
- TCP/IP学习笔记之八 --- 动态选路协议
- TCP/IP读书笔记之动态选路协议
- TCP/IP 第10章 动态选路协议
- 【TCP/IP详解】第10章 动态选路协议
- 《TCP/IP详解 卷1:协议》 读书笔记 第十章 动态选路协议
- 《TCP/IP详解 卷1:协议》 读书笔记 第10章 动态选路协议
- TCP/IP详解,卷1:协议,第十章:动态选路协议
- 《TCP/IP详解 卷1:协议》 读书笔记 第十章 动态选路协议
- ip动态选路
- 动态选路协议
- dom解析XML文档
- Python提交表单并处理返回结果
- 2014-12-29 上证大盘的60分钟线, 股市非常危险了
- SSD 测速软件分享 AS_SSD_Benchmark 另可爱的同事用SSD做移动硬盘
- 【MongoDB】MongoDB之聚合框架
- IP选路与动态选路协议(六)
- 给linux用户的11个高级MySQL数据库面试问题和答案
- 函数参数传递方式
- C#实现网页表单自动提交
- 从京东技术演进看互联网企业的成长历程
- MySql的下载和安装
- launcher滑屏特效集合汇总
- 以WebBrowser.DocumentCompleted 事件为例,说明用C#如何完成事件的订阅处理。
- linux shell基础语法