文章目录
4.3 IP 层转发分组的过程
4.3.1 基于终点的转发
- 分组在互联网中是逐跳转发的。
- 基于终点的转发:基于分组首部中的目的地址传送和转发。
- 为了压缩转发表的大小,转发表中最主要的路由是(目的网络地址,下一跳地址) ,而不是(目的地址,下一跳地址)。
- 查找转发表的过程就是逐行寻找前缀匹配。
主机 H1 发送出的目的地址是 128.1.2.132 的分组是如何转发的?
- H1 首先检查 128.1.2.132 是否连接在本网络上。
如果是,则直接交付;否则,就送交路由器 R1。
- 路由器 R1 收到分组后查找转发表。先检查第 1 行。
128.1.2.132 AND 255.255.255.192 = 128.1.2.128 ≠ 128.1.2.64 不匹配! - 接着检查第 2 行。
128.1.2.132 AND 255.255.255.192 = 128.1.2.128 匹配!
进行分组的直接交付(通过路由器 R1 的接口 1)。
4.3.2 最长前缀匹配
- 使用 CIDR 时,在查找转发表时可能会得到不止一个匹配结果。
- 最长前缀匹配 (longest-prefix matching) 原则:选择前缀最长的一个作为匹配的前缀。
- 网络前缀越长,其地址块就越小,因而路由就越具体。
- 把前缀最长的排在转发表的第 1 行。
路由器 R1 如何转发目的地址是 128.1.2.196 的分组?
- 路由器 R1 收到分组后查找转发表。先检查第 1 行。
128.1.2.196 AND 255.255.255.0 = 128.1.2.0 匹配! - 路由器 R1 收到分组后查找转发表。接着检查第 2 行。
128.1.2.196 AND 255.255.255.128 = 128.1.2.128 匹配! - 路由器 R1 收到分组后查找转发表。接着检查第 3 行。
128.1.2.196 AND 255.255.255.192 = 128.1.2.192 匹配! - 问题:R1 从哪个接口向外转发分组?
转发表中的 2 种特殊的路由
- 主机路由(host route)
- 又叫做特定主机路由。
- 是对特定目的主机的 IP 地址专门指明的一个路由。
- 网络前缀就是 a.b.c.d/32
- 放在转发表的最前面。
- 默认路由 (default route)
- 不管分组的最终目的网络在哪里,都由指定的路由器 R 来处理
- 用特殊前缀 0.0.0.0/0 表示。
默认路由举例
- 只要目的网络不是 N1 和 N2,就一律选择默认路由,把 IP 数据报先间接交付默认路由器 R1,让 R1 再转发给下一个路由器。
路由器分组转发算法
4.3.3 使用二叉线索查找转发表
- 二叉线索 (binary trie):一种特殊结构的树,可以快速在转发表中找到匹配的叶节点。
- 从二叉线索的根节点自顶向下的深度最多有 32 层,每一层对应于 IP 地址中的一位。
- 为简化二叉线索的结构,可以用唯一前缀 (unique prefix) 来构造二叉线索。
- 为了提高二叉线索的查找速度,广泛使用了各种压缩技术。
用 5 个唯一前缀构成的二叉线索
- 规则:先检查 IP 地址左边的第一位,如为 0,则第一层的节点就在根节点的左下方;如为 1,则在右下方。然后再检查地址的第二位,构造出第二层的节点。依此类推,直到唯一前缀的最后一位。每个叶节点代表一个唯一前缀。
- 为检查网络前缀是否匹配,必须使二叉线索中的每一个叶节点包含所对应的网络前缀和子网掩码。
在二叉线索中查找 IP 地址
- 找到了一个叶节点。
- 将目的 IP 地址和该叶节点的子网掩码进行按位 AND 运算,看结果是否与叶节点的网络前缀相匹配。
- 若匹配,就按下一跳的接口转发该分组。否则,就丢弃该分组。
- 查到第三个字符 0 时,在二叉线索中找不到匹配的。说明这个地址不在这个二叉线索中。
- 检查是否存在默认路由。若有,把分组传送到指明的默认路由器,否则丢弃该分组。
4.4 网际控制报文协议 ICMP
- ICMP (Internet Control Message Protocol) 允许主机或路由器报告差错情况和提供有关异常情况的报告。
- ICMP 是互联网的标准协议。
- 但 ICMP 不是高层协议,而是 IP 层的协议。
- ICMP 报文的格式
4.4.1 ICMP 报文的种类
- 2 种:差错报告报文,询问报文。
ICMP 差错报告报文的数据字段的内容
不应发送 ICMP 差错报告报文的几种情况
- 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
- 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
- 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
- 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
ICMP 询问报文
- (1) 回送请求和回答
- 由主机或路由器向一个特定的目的主机发出的询问。
- 收到此报文的主机必须给源主机或路由器发送 ICMP 回送回答报文。
- 这种询问报文用来测试目的站是否可达,以及了解其有关状态。
- (2) 时间戳请求和回答:
- 请某台主机或路由器回答当前的日期和时间。
- 时间戳回答报文中有一个 32 位的字段,其中写入的整数代表从1900 年 1 月 1 日起到当前时刻一共有多少秒。
- 时间戳请求与回答可用于时钟同步和时间测量。
- 计算出当前网络的往返时延。
4.4.2 ICMP 的应用举例
PING (Packet InterNet Groper)
- 用来测试两个主机之间的连通性。
- 使用了 ICMP 回送请求与回送回答报文。
- 是应用层直接使用网络层 ICMP 的例子,没有通过运输层的 TCP 或 UDP。
Traceroute
- 这是UNIX操作系统中名字。在 Windows 操作系统中这个命令是 tracert。
- 用来跟踪一个分组从源点到终点的路径。
- 它利用 IP 数据报中的 TTL 字段、ICMP 时间超过差错报告报文和ICMP 终点不可达差错报告报文实现对从源点到终点的路径的跟踪。
- traceroute从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报。第一个数据报P的生存时间TTL设置为1。当P1到达路径上的第一个路由器R1时,路由器R1先收下它,接着把TTL的值减1。由于TTL等于零了,因此R1就把P1丢弃,并向源主机发送一个ICMP时间超过差错报告报文。
- 源主机接着发送第二个数据报P1并把TTL设置为2。P2先到达路由器R1,R1收下后把TTL减1再转发给路由器R2。R2收到P2时TTL为1,但减1后TTL变为零了。R2就丢弃P2,并向源主机发送一个ICMP时间超过差错报告报文。这样一直继续下去。当最后一个数据报刚刚到达目的主机时,数据报的TTL是1。主机不转发数据报,也不把TTL值减 1。但因P数据报中封装的是无法交付的运输层的UDP用户数据报,因此目的主机要向源主机发送ICMP终点不可达差错报告报文(见5.2.2节)。
4.5 IPv6
- IP 是互联网的核心协议。
- IPv4 地址耗尽问题:
- 到 2011 年 2 月,IANA IPv4 的 32 位地址已经耗尽。
- 各地区互联网地址分配机构也相继宣布地址耗尽。
- 我国在 2014 – 2015 年也逐步停止了向新用户和应用分配 IPv4 地址。
- 根本解决措施:采用具有更大地址空间的新版本的 IP,即 IPv6。
4.5.1 IPv6 的基本首部
- IPv6 仍支持无连接的传送。
- 将协议数据单元 PDU 称为分组 (packet) 。
- 主要变化:
- 更大的地址空间。 将地址从 IPv4 的 32 位 增大到了 128 位。
- 扩展的地址层次结构。可以划分为更多的层次。
- 灵活的首部格式。定义了许多可选的扩展首部。
- 改进的选项。允许数据报包含有选项的控制信息,其选项放在有效载荷中
- 允许协议继续扩充。更好地适应新的应用。
- 支持即插即用(即自动配置)。不需要使用 DHCP。
- 支持资源的预分配。支持实时视像等要求保证一定的带宽和时延的应用。
- IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。
IPv6 数据报的一般形式
- 由两大部分组成:
- 基本首部 (base header)
- 有效载荷 (payload)。有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部 (extension header),再后面是数据部分。
IPv6 数据报的基本首部
- 首部长度:固定的 40 字节,称为基本首部。
- 首部字段数:只有 8 个。
- 版本(version)—— 4 位。它指明了协议的版本,对 IPv6 该字段总是 6。
- 通信量类(traffic class)—— 8 位。这是为了区分不同的 IPv6 数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
- 流标号(flow label)—— 20 位。 “流”是互联网络上从特定源点到特定终点的一系列数据报, “流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。
- 有效载荷长度(payload length)—— 16 位。它指明 IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。
- 下一个首部(next header)—— 8 位。相当于 IPv4 的协议字段或可选字段。
- 跳数限制(hop limit)—— 8 位。源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段中的值减 1。当跳数限制的值为零时,就要将此数据报丢弃。
- 源地址—— 128 位。是数据报的发送站的 IP 地址。
- 目的地址—— 128 位。是数据报的接收站的 IP 地址。
IPv6 的六种扩展首部
- 逐跳选项
- 路由选择
- 分片
- 鉴别
- 封装安全有效载荷
- 目的站选项
4.5.2 IPv6 的地址
- 三种基本类型:
- 单播 (unicast):传统的点对点通信。
- 多播 (multicast):一点对多点的通信。
- 任播 (anycast):IPv6 增加的一种类型。任播的终点是一组计算机,但数据报在交付时只交付其中的一个。通常是按照路由算法得出的距离最近的一个。
节点与接口
- IPv6 将实现 IPv6 的主机和路由器均称为节点。
- 一个节点可能有多个与链路相连的接口。
- IPv6 地址是分配给节点上接口的。
- 一个具有多个接口的节点可以有多个单播地址。
- 其中的任何一个地址都可以当作到达该节点的目的地址。
冒号十六进制记法
- 在 IPv6 中,每个地址占 128 位,地址空间大于 3.4 × 1038 。
- 使用冒号十六进制记法(colon hexadecimal notation, 简写为 colon hex):16 位的值用十六进制值表示,各值之间用冒号分隔。
零压缩
- 零压缩 (zero compression):一串连续的零可以用一对冒号取代。
点分十进制记法的后缀
- 结合使用点分十进制记法的后缀在 IPv4 向 IPv6 的转换阶段特别有用。
- 例如:0:0:0:0:0:0:128.10.2.1 → ::128.10.2.1
- CIDR 的斜线表示法仍然可用,但取消了子网掩码。
- 例如:60 位的前缀 12AB00000000CD3 可记为:
- 12AB:0000:0000:CD30:0000:0000:0000:0000/60
或 12AB::CD30:0:0:0:0/60 (零压缩)
或 12AB:0:0:CD30::/60 (零压缩)
IPv6 地址分类
- 未指明地址:这是16字节的全0地址,可缩写为两个冒号“::”。这个地址不能用作目的地址,而只能将某台主机当作源地址使用,条件是这台主机还没有配置到一个标准的IP地址。这类地址仅此一个。
- 环回地址:IPv6的环回地址是0:0:0:0:0:0:0:1,可缩写为::1。它的作用和IPv4的环回地址一样。这类地址也是仅此一个。
- 多播地址:功能和IPv4的一样。这类地址占IPv6地址总数的1/256。
- 本地站点单播地址(cite-local unicast address):有些单位的内部网络使用TCP/IP协议,但并没有连接到互联网上。连接在这样的内部网络上的主机都可以使用这种本地站点地址进行通信,但不能和互联网上的其他主机通信。这类地址占IPv6地址总数的1/1024,其用途和和Pv4的专用地址是一样的。
- 本地链路单播地址(Iink-local unicast address):这种地址是在单一链路上使用的。当一个节点启用Pν6时就自动生成本地链路地址(请注意,这个节点现在并没有连接在某个网络上)。当需要把分组发往单一链路的设备而不希望该分组被转发到此链路范围以外的地方时,就可以使用这种特殊地址。这类地址占IPv6地址总数的1/1024,如192.168…。
全球单播地址: 可把整个的128位都作为一个节点的地址。也可用n位作为子网前缀,用剩下的(128-n)位作为接口标识符(相当于Pv4的主机号)。当然也可以划分为三级,用n位作为全球路由选择前缀,用m位作为子网前缀,而用剩下的(128-n-m)位作为接口标识符。
IPv6 单播地址的划分方法
4.5.3 从 IPv4 向 IPv6 过渡
- 方法:逐步演进,向后兼容。
- 向后兼容:IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。
- 两种过渡策略:
- 使用双协议栈
- 使用隧道技术
双协议栈
但双协议栈主机怎样知道目的主机是采用哪一种地址呢?它是使用域名系统DNS来查询的。若DNS返回的是IPv4地址,则双协议栈的源主机就使用Pv4地址。但当DNS返回的是IPv6地址,源主机就使用IPv6地址。
- 双协议栈需要付出的代价太大,因为要安装上两套协议。因此在过渡时期,最好采用
下面的隧道技术。
隧道技术
- 向IPv6过渡的另一种方法是隧道技术(tunneling)。图4-36给出了隧道技术的工作原理。这种方法的要点就是在IPv6数据报要进入IPv4网络时,把IPv6数据报封装成为IPv4数据报。现在整个的IPv6数据报变成了IPv4数据报的数据部分。这样的IPv4数据报从路由器 B经过路由器C和D,传送到E,而原来的IPv6数据报就好像在Pv4网络的隧道中传输,什么都没有变化。当IPv4数据报离开Pv4网络中的隧道时,再把数据部分(即原来的IPv6数据报)交给主机的IPv6协议栈。图中的一条粗线表示在IPv4网络中好像有一个从B到E的“IPV6隧道”,路由器B是隧道的入口而E是出口。请注意,在隧道中传送的数据报的源地址是B而目的地址是E。
- 要使双协议栈的主机知道IPv4数据报里面封装的数据是一个IPv6数据报,就必须把 Pv4首部的协议字段的值设置为41(41表示数据报的数据部分是IPv6数据报)。
4.5.4 ICMPv6
- IPv6 也需要使用 ICMP 来反馈一些差错信息。新的版本称为 ICMPv6。
ICMPv6 报文的分类
- 如图4-38所示。请注意,邻站发现报文和组成员关系报文分别是在ND协议和MLD协议的控制下进行发送和接收的。
4.6 互联网的路由选择协议
4.6.1 有关路由选择协议的几个基本概念
1. 理想的路由算法
- 关于“最佳路由”
- 不存在一种绝对的最佳路由算法。
- 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
- 路由选择非常复杂
- 需要所有节点共同协调工作的。
- 环境不断变化,而这种变化有时无法事先知道。
- 当网络发生拥塞时,很难获得所需的路由选择信息。
- 路由算法分类(自适应)
- 静态路由选择策略
- 非自适应路由选择;(人工配置)
- 不能及时适应网络状态的变化;
- 简单,开销较小。
- 动态路由选择策略
- 自适应路由选择;
- 能较好地适应网络状态的变化;
- 实现较为复杂,开销较大。
- 静态路由选择策略
2. 分层次的路由选择协议
- 互联网:
- 采用自适应的(即动态的)、分布式路由选择协议。
- 把整个互联网划分为许多较小的自治系统 AS,采用分层次的路由选择协议。
- 分为 2 个层次:
- 自治系统之间的路由选择 或 域间路由选择 (interdomain routing);
- 自治系统内部的路由选择 或 域内路由选择 (intradomain routing);
自治系统 AS (Autonomous System)
- 是在单一技术管理下的许多网络、IP地址以及路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量。每一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。
- 自治系统内部只能选择一种路由选择策略。
2 大类路由选择协议
- 内部网关协议 IGP
- Interior Gateway Protocol
- 在一个自治系统内部使用的路由选择协议
- 常用:RIP,OSPF
- 外部网关协议 EGP
- External Gateway Protocol
- 在不同自治系统之间进行路由选择时使用的协议
- 使用最多:BGP-4
自治系统和内部网关协议、外部网关协议
- 自治系统之间的路由选择也叫做域间路由选择 (interdomain routing)。
- 自治系统内部的路由选择叫做域内路由选择 (intradomain routing) 。
4.6.2 内部网关协议 RIP
1. 协议 RIP 的工作原理
- 路由信息协议 RIP (Routing Information Protocol) 是一种分布式的、基于距离向量的路由选择协议。
- 互联网的标准协议。
- 最大优点:简单。
- 要求网络中的每个路由器都要维护从它自己到其他每一个目的网络的距离记录。
RIP“距离”的定义
- 路由器到直接连接的网络的距离 = 1。
- 路由器到非直接连接的网络的距离 = 所经过的路由器数 + 1。
- RIP 协议中的“距离”也称为“跳数”(hop count),每经过一个路由器,跳数就加 1。
- 好路由 = “距离短”的路由。最佳路由 = “距离最短”的路由。
- 一条路径最多只能包含 15 个路由器。
- “距离”的最大值为 16 时即相当于不可达。
- RIP 不能在两个网络之间同时使用多条路由,只选择距离最短”的路由。
- 路由 A-B-E 的距离 = 2,路由 A-C-D-E 的距离 = 3。
- 最佳路由为 A-B-E。
- RIP只考虑跳数,不考虑网络质量
RIP 协议的三个特点
- 仅和相邻路由器交换信息。
- 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
- 按固定时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
路由表的建立
- 路由器在刚刚开始工作时,路由表是空的。
- 然后,得到直接连接的网络的距离(此距离定义为 1)。
- 之后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
- 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
- RIP 协议的收敛 (convergence) 过程较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程。
路由表主要信息和更新规则
- 路由表主要信息:
- 路由表更新规则:
使用距离向量算法找出到达每个目的网络的最短距离。
2. 距离向量算法
- 对每个相邻路由器(假设其地址为 X)发送过来的 RIP 报文,路由器:
- (1) 修改 RIP 报文中的所有项目(即路由):把“下一跳”字段中的地址都改为 X(相邻路由器的地址),并把所有的“距离”字段的值加 1。
- (2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若路由表中没有目的网络N,则把该项目添加到路由表中。否则
若路由表中网络 N 的下一跳路由器为 X,则用收到的项目替换原路由表中的项目。否则
若收到项目中的距离小于路由表中的距离,则用收到项目更新原路由表中的项目。否则
什么也不做。 - (3) 若 3 分钟还未收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)。
- (4) 返回。
- 算法基础:Bellman-Ford 算法(或 Ford-Fulkerson 算法)。
- 算法要点:
设 X 是结点 A 到 B 的最短路径上的一个结点。
若把路径 A→B 拆成两段路径 A→X 和 X→B,则每一段路径 A→X 和 X→B 也都分别是结点 A 到 X 和结点 X 到 B 的最短路径。
- 【例】已知路由器 R6 有表 4-8(a) 所示的路由表。现在收到相邻路由器 R4 发来的路由更新信息,如表 4-8(b) 所示。试更新路由器 R6 的路由表。
- 【例】路由表更新。
RIP2 报文
- 组成:首部和路由 2 个部分。
- 路由部分:由若干个路由信息组成。每个路由信息共 20 个字节。
- 地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。
- 路由标记填入自治系统的号码。
- 后面为具体路由,指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。
- 一个 RIP 报文最多可包括 25 个路由,因而 RIP 报文的最大长度是 4+20 x25=504 字节。如超过,必须再用一个 RIP 报文来传送。
- RIP2 具有简单的鉴别功能。
3. 坏消息传播得慢
- RIP 协议特点:好消息传播得快,坏消息传播得慢。
- 问题:坏消息传播得慢(慢收敛)。
- 当网络出现故障时,要经过比较长的时间才能将此信息(坏消息)传送到所有的路由器。
- R1 收到 R2 的更新报文后,误认为可经过 R2 到达网 1,于是更新自己的路由表,说:“我到网 1 的距离是 3,下一跳经过 R2”。然后将此更新信息发送给 R2。
- R2 以后又更新自己的路由表为“1, 4, R1”,表明 “我到网 1 距离是 4,下一跳经过 R1”。
- 这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时, R1 和 R2 才知道网 1 是不可达的。
- 这就是好消息传播得快,而坏消息传播得慢。这是 RIP 的一个主要缺点。
RIP 协议的优缺点
- 优点:
- 实现简单,开销较小。
- 缺点:
- 网络规模有限。最大距离为 15(16 表示不可达)。
- 交换的路由信息为完整路由表,开销较大。
- 坏消息传播得慢,收敛时间过长。
4.6.3 内部网关协议 OSPF
- 开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在 1989 年开发出来的。
- 原理很简单,但实现很复杂。
- 使用了 Dijkstra 提出的最短路径算法 SPF。
- 采用分布式的链路状态协议 (link state protocol)。
- 现在使用 OSPFv2。
三个主要特点
- 采用洪泛法 (flooding),向本自治系统中所有路由器发送信息。
- 发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
- 链路状态:说明本路由器都和哪些路由器相邻,以及该链路的度量 (metric)。
- 当链路状态发生变化或每隔一段时间(如30分钟),路由器才用洪泛法向所有路由器发送此信息。
链路状态数据库 (link-state database)
- 每个路由器最终都能建立。
- 全网的拓扑结构图。
- 在全网范围内是一致的(这称为链路状态数据库的同步)。
- 每一个路由器都知道全网共有多少个路由器,以及哪些路由器是相连的,其代价是多少
- 每个路由器使用链路状态数据库中的数据构造自己的路由表(例如,使用Dijkstra的最短路径路由算法)。
- 链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。
- 重要优点:OSPF 更新过程收敛速度快。
OSPF 将自治系统划分为两种不同的区域 (area)
- OSPF 使用层次结构的区域划分。
- 主干区域 (backbone area) 标识符= 0.0.0.0,作用:用来连通其他下层区域。
- 区域边界路由器 ABR (area border router)
- 在主干区域内的路由器叫作主干路由器(backbone router), 如 R3, R4, R5,R6和 R7
- 一个主干路由器可以同时是区域边界路由器,如 R3, R4和 R7。
- 自治系统边界路由器ASBR (AS border router) ASBR (AS border router):和本自治系统外的其他自治系统交换路由信息,如R6
划分区域优点和缺点
- 优点:
- 减少了整个网络上的通信量。
- 减少了需要维护的状态数量。
- 缺点:
- 交换信息的种类增多了。
- 使 OSPF 协议更加复杂了。
- 分层次划分区域的好处:
- 使每一个区域内部交换路由信息的通信量大大减小,因而使 OSPF 协议能够用于规模很大的自治系统中。
- 其他特点
- 对于不同类型的业务可计算出不同的路由。
- OSPF 允许管理员给每条路由指派不同的代价。例如,离带宽的卫星链路对于非实时的业务可设置为较低的代价,但对千时延敏感的业务就可设置为非常高的代价。
- 可实现多路径间的负载均衡(load balancing)。
- 可以将通估她分配给到同一个目的网络有多条相同代价的路径
- 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
- 支持可变长度的子网划分和无分类编址 CIDR。
- 32 位的序号,序号越大状态就越新。全部序号空间在 600 年内不会产生重复号。
- 对于不同类型的业务可计算出不同的路由。
2. OSPF 的五种分组类型
- 问候 (Hello)分组。
- 数据库描述 (Database Description) 分组。
- 链路状态请求 (Link State Request) 分组。
- 链路状态更新 (Link State Update) 分组。
- 链路状态确认 (Link State Acknowledgment)分组。
OSPF 分组用 IP 数据报传送
OSPF 工作过程
- 1,确定邻站可达。
- 相邻路由器每隔 10 秒钟要交换一次问候分组。
- 若有 40 秒钟没有收到某个相邻路由器发来的问候分组,则可认为该相邻路由器是不可达的。
- 其他的四种分组都是用来进行链路状态数据库的同步
- 2,同步链路状态数据库。
- 同步:指不同路由器的链路状态数据库的内容是一样的。
- 两个同步的路由器叫做完全邻接的 (fully adjacent) 路由器。
- 不是完全邻接的路由器:它们虽然在物理上是相邻的,但其链路状态数据库并没有达到一致。
- 3,更新链路状态。
- 只要链路状态发生变化,路由器就使用链路状态更新分组,采用可靠的洪泛法(收到更新分组后要发送确认, 图中的空心箭头表示确认分组)向全网更新链路状态。
- 为确保链路状态数据库与全网的状态保持一致,OSPF 还规定:每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
- OSPF 链路状态只涉及相邻路由器,与整个互联网的规模并无直接关系,因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
- OSPF 没有“坏消息传播得慢”的问题,收敛速度快。
指定的路由器 DR
- 多点接入的局域网采用了指定的路由器 DR (designated router) 的方法,使广播的信息量大大减少。
- 指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。
- 因为若N个路由器连接在一个以太网上,则每个路由器要向其他(N-1)个路由器发送链路状态信息,因而共有N(N-1)个链路状态要在这个以太网上传送。
4.6.4 外部网关协议 BGP
4.7 IP 多播
4.8 虚拟专用网 VPN 和网络地址转换 NAT
4.9 多协议标记交换 MPLS
4.10 软件定义网络 SDN 简介