第 4 章 网络层 本章主要内容: 4.1 网络层提供的两种服务 4.2 网际协议 IP 4.2.1 虚拟互连网络 第 4 章 网络层 本章主要内容: 4.1 网络层提供的两种服务 4.2 网际协议 IP 4.2.1 虚拟互连网络 4.2.2 分类的 IP 地址 4.2.3 IP 地址与硬件地址 4.2.4 地址解析协议 ARP 与逆地址解析协议RARP 4.2.5 IP 数据报的格式 4.2.6 IP 层转发分组的流程
主要内容 4.3 划分子网和构造超网 4.3.1 划分子网 4.3.2 使用子网时分组转发 4.3.3 无分类编址 CIDR(构造超网) 4.3 划分子网和构造超网 4.3.1 划分子网 4.3.2 使用子网时分组转发 4.3.3 无分类编址 CIDR(构造超网) 4.4 网际控制报文协议 ICMP 4.4.1 ICMP 报文的种类 4.4.2 ICMP 的应用举例 4.5 因特网的路由选择协议 4.5.1 有关路由选择协议的几个基本概念 4.5.2 内部网关协议 RIP 4.5.3 内部网关协议 OSPF 4.5.4 外部网关协议 BGP 4.5.6 路由器的构成
主要内容 4.6 IP 多播 4.6.1 IP 多播的基本概念 4.6.2 在局域网上进行硬件多播 4.6.2 在局域网上进行硬件多播 4.6.2 因特网组管理协议 IGMP 和多播路由选 择协议 4.7 虚拟专用网 VPN 和网络地址转换 NAT 4.7.1 虚拟专用网 VPN 4.7.2 网络地址转换 NAT
练习题 【2011年计算机联考题】 1. 在子网192.168.4.0/30中,能接收目的地址为192.168.4.3的IP分组的最大主机数是( )。 A.0 B.1 C.2 D.4 【2010年计算机联考真题】 2.某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,最多可以分成( )个子网,而每个子网最多具有( )个有效地IP地址。 A.32,8 B.32,6 C.8,32 D.8,30 C B
3、设有两个子网210.103.133.0/24和210.103.130.0/24,如果进行路由聚合,得到的网络地址是多少? 210.103.133.0/24的二进制: 11010010 01100111 10000101 00000000 210.103.130.0/24的二进制: 11010010 01100111 10000010 00000000 11010010 01100111 10000000 00000000化为十进制即210.103.128.0 路由聚合后得到的网络地址是 210.103.128.0/21
4.4 网际控制报文协议 ICMP 为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。 ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。 ICMP 不是高层协议,而是 IP 层的协议。 ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
ICMP 报文的格式 8 16 31 前 4 个字节 都是一样的 类型 代码 检验和 (这 4 个字节取决于 ICMP 报文的类型) 8 16 31 前 4 个字节 都是一样的 类型 代码 检验和 (这 4 个字节取决于 ICMP 报文的类型) ICMP 的数据部分(长度取决于类型) ICMP 报文 首 部 数 据 部 分
4.4.1 ICMP 报文的种类 ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
类型字段的值 ICMP 报文的类型 类型字段的值与ICMP报文的类型的关系 回送(Echo)回答 3 目的站不可达 4 回送(Echo)回答 3 目的站不可达 4 源站抑制(Source Quench) 5 改变路由(Redirect) 8 回送(Echo)请求 11 数据报的时间超过 12 数据报的参数有问题 13 时间戳(Timestamp)请求 14 时间戳回答 17 地址掩码(Address Mask)请求 18 地址掩码回答
ICMP 差错报告报文共有 5 种 终点不可达 源点抑制(Source quench) 时间超过 参数问题 改变路由(重定向)(Redirect)
ICMP差错报告报文:终点不可达使用举例
ICMP 差错报告报文 源点抑制报文:主要用于拥塞控制
不应发送 ICMP 差错报告报文 的几种情况 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
ICMP 询问报文有两种 回送请求和回答报文 时间戳请求和回答报文 下面的几种 ICMP 报文不再使用 信息请求与回答报文 掩码地址请求和回答报文 路由器询问和通告报文
ICMP 询问报文有两种 ICMP 询问报文:主要用于网络测试,一般是成对发送,每一个请求报文对应一个应答报文。 ICMP Echo 请求报文:由主机或路由器向一个特定的目的主机发出的询问。测试目的主机是否可达以及相关信息。 如:PING(Packet InterNet Groper)。使用了 ICMP Echo请求和Echo 回答报文。 ICMP 时间戳请求报文:请求某个主机或路由器回答当前的日前和时间。用于进行时钟同步和测量时间。
ICMP消息类型使用举例
4.4.2 ICMP的应用举例 PING (Packet InterNet Groper) PING 使用了 ICMP 回送请求与回送回答报文。 PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
PING 的应用举例
Tracert(Windows)/Traceroute(Unix) 该实用程序跟踪的路径是源计算机到目的地的一条路径 ,一般用来检测故障的位置,你可以用tracert IP找出在哪个环节上出了问题。
Traceroute 的应用举例
Tracert的原理 路由器2 路由器1 源端 目的端 (1)ICMP回送请求报文(TTL=1,目的=D) (1)ICMP回送请求报文(TTL=N,目的=D) (1)ICMP超时 (N)ICMP回送应答 (2)ICMP超时
Tracert原理 Tracert 从源主机向目的主机发送一连串的ICMP回送请求报文。 第一个数据报P1的TTL设为1,路由器R1向源主机发送一个ICMP时间超过差错报告报文; 第二个数据报P2的TTL设为2,路由器R2向源主机发送一个ICMP时间超过差错报告报文; …… 最有一个数据报 到达主机,TTL为1,主机不把TTL值减1,目的主机向源主机发送ICMP回送应答报文。
4.5 因特网的路由选择协议
回顾分组的传递过程 IP分组: 在传递过程中分组保持不变 A B E misc fields source IP addr dest 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E IP分组: misc fields source IP addr dest data 在传递过程中分组保持不变
分组在同一网络内的传递过程 223.1.1.1 由 A发送分组到 B: 检查B的网络地址部分(目的地址与子网掩码做与运算) misc fields 223.1.1.1 223.1.1.3 data 255.255.255.0 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E 由 A发送分组到 B: 检查B的网络地址部分(目的地址与子网掩码做与运算) 发现B与A在同一网络中 链路层把分组放在链路层的帧中直接发给B B 和 A 是直接相连的
分组的传递过程 由 A发送给 E: 检查 E的网络地址 E 在不同 网络上 A, E 没有直接的连接 网关的地址为223.1.1.4 misc fields 223.1.1.1 223.1.2.2 data 由 A发送给 E: 检查 E的网络地址 E 在不同 网络上 A, E 没有直接的连接 网关的地址为223.1.1.4 链路层将分组封装在链路层帧中发给地址为223.1.1.4的路由器(网关) 分组到达 223.1.1.4 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E
分组传递的过程 分组到达了 223.1.1.4, 而目的IP为223.1.2.2 查找 E的网络地址 misc fields network router Nhops interface 223.1.1 - 1 223.1.1.4 223.1.2 - 1 223.1.2.9 223.1.3 - 1 223.1.3.27 Dest. next 223.1.1.1 223.1.2.2 data 分组到达了 223.1.1.4, 而目的IP为223.1.2.2 查找 E的网络地址 E 与路由器的223.1.2.9接口在同一网络中 路由器, E 直接连接 链路层将分组放入链路帧经过地址为223.1.2.9的接口发送到 223.1.2.2 数据分组到达 223.1.2.2!!! 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E
路由表 这种专门用于存放路由信息的表被称为路由表。
PC机上的路由表
路由器上的路由表 Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set 172.16.0.0/24 is subnetted, 1 subnets C 172.16.2.0 is directly connected, Serial1/0 //直接路由 C 192.168.1.0/24 is directly connected, FastEthernet0/0 //直接路由 S 192.168.2.0/24 [1/0] via 172.16.2.2 //手工添加的静态路由 R 192.168.3.0/24 [120/1] via 172.16.3.2, 00:00:19, Serial1/0 //动态路由
关于路由表的问题 路由表中的路由信息从何而来? 路由表是如何生成的? 两种方式可用于路由表信息的生成和维护: 静态路由 动态路由
静态路由 网络管理员根据其所掌握的网络连通信息以手工配置方式创建的路由表表项 要求网络管理员对网络的拓扑结构和网络状态有着非常清晰的了解 当网络连通状态变化时,路由的更新要手工完成。 当网络互连规模增大或网络中的变化因素增加时,静态路由难以适应网络状态的变化,也称非自适应路由
动态路由 指路由器通过自主学习而获得的路由信息,又称自适应路由。 通过在路由器上运行路由协议并进行相应的路由协议配置即可保证路由器自动生成并维护正确的路由信息。 能较好地适应网络状态的变化,如网络拓扑和网络流量的变化,同时也减少了人工生成与维护路由表的工作量。 开销大 路由器之间为了交换路由更新信息所消耗的网络带宽资源;处理路由更新信息、计算最佳路径所占用的路由器本地资源,包括路由器的CPU与存储资源。
路由协议 路由协议(routing protocol):在网络层用于动态生成路由表信息的协议; 路由协议用于生成路由表,提供了关于如何到达既定目标的路径信息,为网络分组(如IP数据包)如何到达目标网络提供了路径选择服务(主动)路由(routing)协议→ How
路由选择算法 路由协议的核心是路由选择算法。 不同的路由选择算法通常会采用不同的评价因子、权重及算法思想来进行最佳路径的计算。 Internet采用了分层次的路由选择协议
分层次的路由选择协议 因特网采用分层次的路由选择协议。 因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。
自治系统 AS (Autonomous System) autonomous system(简称AS)是指网络中那些由相同机构操纵或管理,对外表现出相同的路由视图的路由器所组成的系统; 例:一个大的ISP就是一个自治系统; AS有权决定在本系统内所采用的路由协议; AS由一个16位长度的自治系统号进行标识; 引入AS,复杂的互连网分成 自治系统的内部网络+互连自治系统的骨干网络
因特网有两大类路由选择协议 内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。 外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。
域间路由选择(interdomain routing), 在自治系统内部的路由选择叫做 自治系统和 内部网关协议、外部网关协议 自治系统 B 自治系统 A 用外部网关协议 (例如,BGP-4) R1 R2 用内部网关协议 (例如,RIP) 用内部网关协议 (例如,OSPF) 自治系统之间的路由选择也叫做 域间路由选择(interdomain routing), 在自治系统内部的路由选择叫做 域内路由选择(intradomain routing)
自治系统和 内部网关协议、外部网关协议 自治系统 A 自治系统 B 自治系统 C R3 IGP EGP R2 IGP IGP IGP IGP H1 IGP IGP IGP H2 IGP 内部网关协议 IGP (例如,RIP) 外部网关协议 EGP (例如,BGP-4) 内部网关协议 IGP (例如,OSPF)
4.5.2 内部网关协议 RIP (Routing Information Protocol) 1. 工作原理 路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。 RIP 是一种分布式的基于距离向量的路由选择协议。 RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
“距离”的定义 从一路由器到直接连接的网络的距离定义为 1。 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。 RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。 这里的“距离”实际上指的是“最短距离”,
“距离”的定义 RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。 RIP 允许一条路径最多只能包含 15 个路由器。
RIP 协议的三个要点 仅和相邻路由器交换更新信息。 (根据到目的网络的距离最短为原则)。 基本依据为:若相邻路由器X说“我到目的网络Y的距离为N”,则收到此信息的路由器K就知道:“若将下一站路由器选为X,则我到网络Y的距离为N+1”。 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 按固定的时间间隔交换路由信息,例如,每隔 30 秒。
路由表的建立 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。 RIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。
一开始,各路由表只有到相邻路由器的信息 “”表示“直接交付” “4”表示“从本路由器到网 4” “1”表示“距离是 1” 1 1 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 网 4 C 3 1 4 1 “”表示“直接交付” “4”表示“从本路由器到网 4” “1”表示“距离是 1”
路由器 B 收到相邻路由器 A 和 C 的路由表 A 说:“我到网 1 的距离是 1。” 因此 B 现在也可以到网 1, 1 1 5 1 E 1 1 2 1 3 1 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 4 1 6 1 F 网 6 B 网 3 网 4 C 3 1 4 1 更新后 A 说:“我到网 1 的距离是 1。” 因此 B 现在也可以到网 1, 距离是 2,经过 A。” 1 2 A 2 2 A 3 1 4 1 6 2 C
路由器 B 收到相邻路由器 A 和 C 的路由表 A 说:“我到网 2 的距离是 1。” 因此 B 现在也可以到网 2, 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 1 1 2 1 3 1 网 4 4 1 6 1 C 3 1 4 1 更新后 A 说:“我到网 2 的距离是 1。” 因此 B 现在也可以到网 2, 距离是 2,经过 A。” 1 2 A 2 2 A 3 1 4 1 6 2 C
路由器 B 收到相邻路由器 A 和 C 的路由表 A 说:“我到网 3 的距离是 1。” 但 B 没有必要绕道经过路由器 A 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 1 1 2 1 3 1 网 4 3 1 4 1 4 1 6 1 C 更新后 A 说:“我到网 3 的距离是 1。” 但 B 没有必要绕道经过路由器 A 再到达网 3,因此这一项目不变。 1 2 A 2 2 A 3 1 4 1 6 2 C
路由器 B 收到相邻路由器 A 和 C 的路由表 C 说:“我到网 4 的距离是 1。” 但 B 没有必要绕道经过路由器 C 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 1 1 2 1 3 1 网 4 3 1 4 1 4 1 6 1 C 更新后 C 说:“我到网 4 的距离是 1。” 但 B 没有必要绕道经过路由器 C 再到达网 4,因此这一项目不变。 1 2 A 2 2 A 3 1 4 1 6 2 C
路由器 B 收到相邻路由器 A 和 C 的路由表 C 说:“我到网 6 的距离是 1。” 因此 B 现在也可以到网 6, 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 1 1 2 1 3 1 网 4 3 1 4 1 4 1 6 1 C 更新后 C 说:“我到网 6 的距离是 1。” 因此 B 现在也可以到网 6, 距离是 2,经过 C。” 1 2 A 2 2 A 3 1 4 1 6 2 C
最终所有的路由器的路由表都更新了 1 1 2 1 3 1 4 2 B 5 2 E 6 3 B 1 1 2 2 A 3 2 A 1 1 2 1 3 1 4 2 B 5 2 E 6 3 B 1 1 2 2 A 3 2 A 4 3 A 5 1 6 2 F 1 2 E 2 2 D 3 3 C 4 2 C 5 1 6 1 E 网 1 网 5 1 2 A 2 1 3 2 A 4 3 A 5 1 6 2 F 网 2 D A F C 网 6 1 2 A 2 2 A 3 1 4 1 5 3 C 6 2 C 1 3 B 2 3 B 3 2 B 4 1 5 2 F 6 1 网 3 B 网 4
RIP更新(距离向量)算法 收到:RIP响应报文 1、对每一个被通知的目的网络的距离(跳数)加 1; 2、对每一个被通知的目的网络,重复以下步骤: (1)若(目的网络不在路由表中) 将通知的信息加到路由表中。 (2)否则 ① 若(下一站字段是同样的) ● 将路由表中的项目替换为通知的项目。 ② 否则 ● 若(通知的距离小于路由表中的距离) 将它加到路由表中。 ● 否则 什么也不做。 3、返回。
更新路由表的例子 更新算法 增加以后从C来的RIP报文(分别加1) 从C来的RIP报文 新路由表 旧路由表 Net2 5 Net3 9 Net6 5 Net8 4 Net9 6 增加以后从C来的RIP报文(分别加1) Net2 4 Net3 8 Net6 4 Net8 3 Net9 5 从C来的RIP报文 新路由表 Net1 7 A Net2 2 C Net6 8 F Net8 4 E Net9 4 F 旧路由表 Net1 7 A Net2 5 C Net3 9 C Net6 5 C Net8 4 E Net9 4 F 更新算法 规则:Net1:没有新的信息,不改变 Net2:同样的下一站,替换 Net3:一个新路由器,增加 Net6:不同的下一站,新的距离较小,替换 Net8:不同的下一站,新的距离是一样,不改变 Net9:不同的下一站,新的距离较大,不改变
RIP 协议的位置 RIP 协议使用运输层的用户数据报 UDP进行传送(使用 UDP 的端口 520)。 因此 RIP 协议的位置应当在应用层。但转发 IP 数据报的过程是在网络层完成的。
3. RIP2 协议的报文格式 4 字节 地址族标识符 4 字节 网络地址 命令 版本 子网掩码 必为 0 下一跳路由器地址 路由标记(ASN) 4 字节 网络地址 命令 版本 子网掩码 必为 0 下一跳路由器地址 距离 (1-16) 首部 路由部分 路由信息 (20 字节/路由) 可重复出现 最多 25 个 RIP 报文 IP 首部 UDP 首部 UDP 用户数据报 IP 数据报
RIP 协议的优缺点 RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
“”表示“直接交付” “1”表示“从本路由器到网 1” “1”表示“距离是 1” R1 说:“我到网 1 的距离是 1,是直接交付。” 正 常 情 况 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 “”表示“直接交付” “1”表示“从本路由器到网 1” “1”表示“距离是 1” R1 说:“我到网 1 的距离是 1,是直接交付。”
“R1”表示 “1”表示“从本路由器到网 1” 经过 R1 “2”表示“距离是 2” R2 说:“我到网 1 的距离是 2,是经过 R1。” 正 常 情 况 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 “R1”表示 经过 R1 “1”表示“从本路由器到网 1” “2”表示“距离是 2” R2 说:“我到网 1 的距离是 2,是经过 R1。”
R1 说:“我到网 1 的距离是 16 (表示无法到达), 是直接交付。” 正 常 情 况 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 R2 R1 网 1 网 3 网 2 网 1出了故障 1 16 1 2 R1 R1 说:“我到网 1 的距离是 16 (表示无法到达), 是直接交付。” 但 R2 在收到 R1 的更新报文之前,还发送原来的报文, 因为这时 R2 并不知道 R1 出了故障。
正 常 情 况 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 R2 R1 网 1 网 3 网 2 网 1出了故障 1 16 1 2 R1 1 3 R2 R1 收到 R2 的更新报文后,误认为可经过 R2 到达网1,于是更新自己的路由表,说:“我到网 1 的距离是 3,下一跳经过 R2”。然后将此更新信息发送给 R2。
R2 以后又更新自己的路由表为“1, 4, R1”,表明 “我到网 1 距离是 4,下一跳经过 R1”。 正 常 情 况 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 R2 R1 网 1 网 3 网 2 网 1出了故障 1 16 1 2 R1 1 3 R2 1 4 R1 R2 以后又更新自己的路由表为“1, 4, R1”,表明 “我到网 1 距离是 4,下一跳经过 R1”。
这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。 正 常 情 况 这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 网 1 网 2 网 3 R1 R2 网 1出了故障 1 16 1 2 R1 1 3 R2 1 4 R1 1 5 R2 … … 1 16 R2 1 16 R1 这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网 1 是不可达的。
RIP 协议的缺点 只能用于较小规模的网络(跳数限制); 不能实现负载均衡; 网络规模增大,路由信息的开销也就增大;
作业: 20、42