`

TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节

阅读更多

 

1.静态IP选路

1.1.一个简单的路由表

选路是IP层最重要的一个功能之一。前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由。这里就不重复了。首先来看看一个简单的系统路由表。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.11.0    *               255.255.255.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         192.168.11.1    0.0.0.0         UG    0      0        0 eth0

对于一个给定的路由器,可以打印出五种不同的flag。

  1. U表明该路由可用。
  2. G表明该路由是到一个网关。如果没有这个标志,说明和Destination是直连的,而相应的Gateway应该直接给出Destination的地址。
  3. H表明该路由是到一个主机,如果没有该标志,说明Destination是一个网络,换句话说Destination就应该写成一个网络号和子网号的组合,而不包括主机号(主机号码处为0),例如 192.168.11.0
  4. D表明该路由是为重定向报文创建的
  5. M该路由已经被重定向报文修改

U没啥可说的,G说明这是一个网关,如果你要发数据给Destination,IP头应该写Destination的IP地址,而数据链路层的MAC地址就应该是GateWay的Mac地址了;反之,如果没有G标志,那么数据链路层和IP层的地址应该是对应的。H说明了Destination的性质,如果是H的,则说明该地址是一个完整的地址,既有网络号又有主机号,那么再匹配的时候就既要匹配网络号,又要匹配主机号;反之,Destination就代表一个网络,在匹配的时候只要匹配一下网络号就可以了。

这样,IP选路的方式就可以更加具体化了。如下

  1. 首先用IP地址来匹配那些带H标志的DestinationIP地址。
  2. 如果1失败就匹配那些网络地址。
  3. 如果2失败就发送到Default网关

顺便提一下那个GenMask(还记得子网掩码么),它指定了目的地址的子网号,例如第一条的子网就是11。

1.2.其他有关路由表的知识

一般,我们在配置好一个网络接口的时候,一个路由就被直接创建好了。当然我们也可以手动添加路由。用route add命令就可以了。

而当一个IP包在某一个路由器的时候发现没有路由可走,那么该路由器就会给源主机发送“主机不可达”或者“网络不可达”的ICMP包来报错。

注意,一般的操作系统默认是没有路由功能的,这需要自己配置。这些历史原因就不细说了,

1.3.ICMP的IP重定向报文和路由发现报文

当IP包在某一个地方转向的时候,都回给发送IP报的源主机一个ICMP重定向报文,而源主机就可以利用这个信息来更新自己的路由表,这样,随着网络通信的逐渐增多,路由表也就越来越完备,数据转发的速度也会越来越快。我们需要注意的是:

  1. 重定向报文只能由路由器发出。
  2. 重定向报文为主机所用,而不是为路由器所用。

在主机引导的时候,一般会发送在网内广播一个路由请求的ICMP报文,而多个路由器则会回应一个路由通告报文。而且,路由其本身不定期的在网络内发布路由通告报文,这样,根据这些报文,每一个主机都会有机会建立自己的路由表而实现网络通信。路由器在一份通告报文中可以通告多个地址,并且给出每一个地址的优先等级,这个优先等级是该IP作为默认路由的等级,至于怎么算的就不深究了。

路由器一般会在450-600秒的时间间隔内发布一次通告,而一个给定的通告报文的寿命是30分钟。而主机在引导的时候会每三秒发送一次请求报文,一旦接受到一个有效的通告报文,就停止发送请求报文。

在TCP/IP详解编写的时候,只有Solaris2.x支持这两种报文,大多数系统还不支持这两种报文。(后面还会讲到一些有用的路由报文)

动态选路协议

前面的选路方法叫做静态选路,简要地说就是在配置接口的时候,以默认的方式生成路由表项。并通过route来增加表项,或者通过ICMP报文来更新表项(通常在默认方式出错的情况下)。 而如果上诉三种方法都不能满足,那么我们就使用动态选路。

动态选路协议是用于动态选路的重要组成部分,但是他们只是使用在路由器之间,相邻路由器之间互相通信。系统(路有选择程序)选择比较合适的路有放到核心路由表中,然后系统就可以根据这个核心路有表找到最合适的网路。也就是说,动态选路是在系统核心网络外部进行的,它只是用一些选路的策略影响路由表,而不会影响到最后通过路由表选择路由的那一部分。选路协议有一大类常用的叫做内部网关协议(IGP),而在IGP中,RIP就是其中最重要的协议。一种新的IGP协议叫做开放最短路经优先(OSPF)协议,其意在取代RIP。另一种最早用在网路骨干网上的IGP协议--HELLO,现在已经不用了。

如今,任何支持动态选路的路由器都必须同时支持OSPF和RIP,还可以选择性的支持其他的IGP协议。

2.1.Unix选路程序

Unix系统上面通常都有路由守护程序--routed。还有一个叫做gate。gate所支持的协议要比routed多,routed只是支持RIPv1版本。而gate则支持RIPv1、v2,BGPv1 等等。

2.1.RIP:选路信息协议

它的定义可以在RFC1058内找到,这种协议使用UDP作为载体(也就是UDP的上层协议)。我们最关心的就是RIP其中的一个段,叫做度量的段,这是一个以hop作为计数器(就是以走过多少路由为计数器)的段(IP协议里面也有一个TTL不是么)。这个度量段将最终影响到路由表的建立。参考图:

一般说来routed要承担如下的工作:
  1. 给每一个已知的路由器发送rip请求报文,要求其他路由器给出完整的路由表。这种报文的命令字段为1,地址字段为0,度量地段为16(相当于无穷大)。
  2. 接受请求,如果接收到刚才的那个请求,就把自己的完整的路由表交给请求者。如果没有,就处理IP请求表项,把表项中自己有的部分添上跳数,没有的部分添上16。然后发给请求者。
  3. 接受回应。更新自己的路由表。使用hop数小的规则。
  4. 定期更新路由表,一般是30s(真频繁)给相邻的路有启发一次自己的路由表。这种形式可以使广播形式的。

这个协议看起来会工作的很好,但是,这里面其实有很多隐藏的忧患,比如说RIP没有子网的概念,比如说环路的危险。而且hop数的上限也限制了网络的大小。

因此,出现了很多RIPv1的替代品,比如说RIPv2,比如说OSPF。他们都是通过某种策略来影响路由表,所以就不说了。

 

 

分享到:
评论

相关推荐

    《TCP/IP详解,卷1:协议》

    第10章 动态选路协议 95 第11章 UDP:用户数据报协议 107 第12章 广播和多播 128 第13章 IGMP:Internet组管理协议 136 第14章 DNS:域名系统 142 第15章 TFTP:简单文件传送协议 159 第16章 BOOTP: 引导程序协议 ...

    TCP-IP详解卷二 TCP-IP详解卷二 TCP-IP详解卷二

    第5章接口:SLIP和环回 第6章IP编址 第7章域和协议 第8章IP:网际协议 第9章IP选项处理 第10章IP的分片与重装 第11章ICMP:Internet控制报文协议 第12章IP多播 第13章IGMP:Intemet组管理协议 第14章IP多播选路 第15...

    TCP/IP详解 卷1:协议--源代码

    国际知名的Unix和网络专家,《TCP/IP 详解》(三卷本)作者 W.Richard Stevens(1951-1999),是国际知名的Unix和网络专家;受人尊敬的计算机图书作家;同时他还是广受欢迎的 教师和顾问。Stevens先生1951年生于...

    TCP/IP详解-卷一

    ### TCP/IP详解-卷一 知识点梳理 #### 第1章 概述 - **1.1 引言** TCP/IP是Internet的核心协议,由一系列协议组成,包括但不限于传输控制协议(TCP)、用户数据报协议(UDP)以及网际协议(IP)。这一节简要介绍...

    TCP/IP详解 卷1完整版

    非扫描版TCP/IP详解卷一,你值得拥有: 《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序...

    TCP/IP详解(卷一)

    W.Richard Stevens(1951-1999)是一位非常受人尊敬的专家,除了《TCP/IP详解》三卷本外,他还有其他两部最为畅销的作品:《UNIX环境高级编程》和《UNIX网络编程》(两卷本)。 目录 译者序 前言 第1章 概述 1 ...

    TCP/IP协议详解卷二:实现

    《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和...

    tcp/ip详解

    tcp/ip详解全书pdf,绝对高清! 1.1 引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但T C P / I P协议 族允许它们互相进行通信。这一点很让人感到吃惊,因为它的作用已远远超出了起初的...

    tcp/ip详解卷1

    《TCP/IP详解卷1》是IT领域特别是网络通信领域中不可或缺的经典著作,它不仅深入浅出地讲解了TCP/IP协议栈的基本概念、工作原理及其实现细节,而且为程序员提供了全面的理解网络通信机制的视角。无论是对于初学者...

    TCP/IP详解 卷1

    ### TCP/IP详解卷1知识点梳理 #### 一、TCP/IP协议族概述 - **起源与发展**:TCP/IP协议族起源于20世纪60年代末,最初是由美国政府资助的一个分组交换网络研究项目发展而来。到了90年代,TCP/IP已经成为计算机组网...

    TCP/IP详解

    第一章 概述 第二章 链路层 第三章 IP:网际协议 第四章 ARP:地址解析协议 第五章 RARP:逆地址解析协议 第六章 ICMP:Internet控制报文协议 第七章 Ping程序 第八章 Traceroute程序 ...第十章 动态选路协议

    TCP/IP详解卷1:协议

    1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 ...

    TCP/IP详解 (卷2:实现)

    《TCP/IP详解》系列覆盖了TCP/IP的许多方面.提供了一个高效直观的方法来学习联网协议族。 《TCP/IP详解卷2:实现》详尽地说明了TCP/IP协议是如何实现的。目前还没有更多的 书——此卷是唯一一本书,本书全面讲解了...

    TCP/IP详解卷 pdf格式

    1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 ...

    TCP-IP详解卷1.pdf

    总的来说,《TCP/IP详解卷1》为读者提供了网络通信基础的扎实理解,从基本概念到具体实现,为后续的学习和实践打下了坚实的基础。无论是网络管理员、程序员还是对网络技术感兴趣的读者,都能从中受益匪浅。

    TCPIP详解--共三卷

    TCP/IP详解 卷1:协议 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 ...

    TCP/IP详解卷1

    ### TCP/IP详解卷1知识点梳理 #### 一、TCP/IP协议族概述 **1.1 引言** TCP/IP协议族允许来自不同制造商的各种型号计算机,即使运行着完全不同的操作系统,也能实现彼此间的通信。这一成就令人瞩目,因为它超越了...

    经典TCP/IP协议教材

    该PDF版本包含了20个章节,全面覆盖了TCP/IP协议的核心概念和技术细节。 TCP/IP(Transmission Control Protocol/Internet Protocol)是互联网上最基础、最重要的通信协议,它定义了数据在网络中传输的标准格式和...

Global site tag (gtag.js) - Google Analytics