程序员

(007)TCP/IP协议-静态IP选路

2016-02-23  本文已影响473人  林湾村龙猫

一、引言

选路是IP层最重要的功能之一。该选路规则核心一点是每一个主机都维护了一张路由表。IP层进行的选路实际上是一种选路机制,它搜索路由表并决定向哪个网络接口发送分组。

二、原理

在路由表中,是有一定的搜索规则来确定数据包发送网络端口的:

可以使用netstat -rn列出当前主机的路由表:

图1. 当前主机的路由表项
说明,每一行表示一个路由表项,第一行中的第一列为0.0.0.0,这是一个默认路由表表项。每个主机都有一个或多个默认路由。

三、路由表的创建

从来没有说过这些路由表是如何被创建的,这里介绍如何创建路由表。通常有三种方式来创建路由表-route(主动添加)、ICMP重定向差错数据包(被动修改)、ICMP路由发现请求/应答数据包(主动询问)。

1. 路由表可以是在系统初始化的时候通过route命令来添加默认路由。

图2. route添加路由命令

这是一种手动添加方式。

2. 通过ICMP重定向差错数据包

当IP数据包应该被发送到另一个路由器时,收到数据包的路由器就要发送ICMP重定向差错报文给ICMP数据包的发送端。ICMP重定向数据包只能有路由器生成,主机接收使用。


图3.ICMP差错重定向数据包产生过程

重定向一般用来让具有很少选路信息的主机逐渐建立更完善的路由表。主机启动时路由表中可以只有一个默认表项。一旦默认路由发生差错,默认路由器将通知它进行重定向,并允许主机对路由表作相应的改动。

ICMP差错重定向数据包格式如下:


图4. ICMP差错重定向数据包结构

ICMP重定向数据包的接收者必须查看三个IP地址:( 1 )导致重定向的IP地址(原IP数据包的目标地址); ( 2 )发送重定向报文的路由器的IP地址(主机路由表该表项中的下一跳地址);( 3 )应该采用的路由器IP地址(要修改的IP地址)。

3. ICMP路由发现请求/应答数据包

主机在引导以后要广播或多播传送一份ICMP路由器请求报文。一台或更多台路由器响应一份路由器应答报文。另外,路由器定期地广播或多播传送它们的路由器应答报文,允许每个正在监听的主机相应地更新它们的路由表。


图片5. ICMP路由器请求数据包
图6. ICMP路由器应答数据包

IP地址必须是发送路由器的某个地址。优先级是一个有符号的 32 bit整数,指出该IP地址作为默认路由器地址的优先等级,这是与子网上的其他路由器相比较而言的。值越大说明优先级越高。优先级为 0 x 8 0 0 0 0 0 0 0说明对应的地址不能作为默认路由器地址使用,尽管它也包含中通告报文中。优先级的默认值一般为 0。

都看到这里了,要不要扫二维码关注一下微信公众号林湾村龙猫

微信公众号rudy_tan_home
上一篇 下一篇

猜你喜欢

热点阅读