关键词:IP协议、路由算法
概述
1、特点:不再是端到端协议,每个节点都要执行相应的协议
2、完成的核心功能:
- 转发:通过查询每个路由器自己维护的”转发表”找到正确的输出端口
- 路由:确定分组从源到目的所经过的路径
3、可能完成的功能:
- 在端到端之间建立逻辑链接(也就是路由选择确定的路径)
4、网络层的服务模型
- 无连接服务:不事先确定传输路径,每个分组所走的路经可能不同,到达的顺序也可能不同。如数据报网络。
- 连接服务:事先确定一条路径,所有分组所走的路径都相同,顺序有保证。如虚电路网络。
有连接服务与无连接服务
虚电路网络
电话、传真机采用的网络层服务。
虚电路:事先确定一条路径,所有分组都按这条路径传输。
特点:
- 分组到达顺序可以确定,数据传输可靠性强
本质还是分组交换。
⭐分组交换与电路交换的区别:分组交换中每个分组在传输时占用线路的全部带宽,电路交换中会将电路物理资源拆分给不同数据
这条唯一的虚电路路径使用VCID进行标识
问题:无法保证可以建立一个VCID,使其在所有链路上都是唯一的
解决方法:局部唯一:只在同一段链路上唯一,而同一个分组传输在不同段链路之间的VCID可能不同
虚电路的建立和拆除就对应着VC转发表中一条数据的新增和删除:
数据报网络
internet使用的网络层服务
是一个无连接服务,每个分组都需要携带目的地址
- 路由器基于路由算法构建转发表
把40多亿个IP地址都记录下来是不可行的,因此路由器只记录范围
- 每个分组独立选择路径,路径可能不一样,到达顺序也不一样
数据报vs虚电路
Q:为什么internet选择无连接服务(数据报服务)?
- internet的数据交换没有严格的时间需求,不需要分组严格按序送达;
- internet上采用的物理链路类型众多,很难建立虚电路那样统一的管理服务;
- internet可以在计算机端系统上对数据做复杂的处理,如可靠性传输、性能控制等(即传输层做的事情),而电话传真机不可以(因此需要在传输层完成);
IPv4协议
internet网络层协议包括:
- 路由协议:构建转发表
- IP协议;
- ICMP协议:IP协议的伴随协议,处理差错报告
IP数据报
一个IP数据报的格式如下:
-
版本号:IP协议的版本,如4(IPv4),6(IPv6)
-
服务类型(区分服务):对待不同数据报采用不同服务,如优先转发,一般情况下网络不提供区分服务。
-
总长度:IP地址真正的的主体部分,占16字节,也就是说IPv4最多能提供2^16=65536个IP地址;
-
标识、标志位、片偏移:与分片技术有关。
- 标识:该IP分组的唯一标识,由时间戳、源IP地址、目标IP地址共同生成
- 标志位:规定该IP分组可否被分片,不能被分片的在遇到较小的MTU时会被路由器直接丢弃
现实中为什么要尽量避免IP分片?
A:原因有下:
1、网络层是没有超时重传机制的,分片后只要有一个分片丢失了,只能依赖于传输层进行重传,结果是所有的分片都要重传一遍。由此可见,IP分片会大大降低传输层传送数据的成功率。
2、每个IP分片均需要一定的头部信息,占用带宽。
- 片偏移:分片在原IP分组数据中的相对偏移量,即分片的顺序序号
-
生存时间(TTL):IP分组在网络中可以通过的跳步数,每被路由器转发一次TTL减去1。路由器会将TTL=0的数据丢弃并告知源IP地址。
-
协议:所封装的是TCP/UDP数据报;
-
首部校验和:因为TTL每一跳都会变化,所以校验和逐跳都需要重新计算重新校验。
-
源IP/目标IP:发送分组的源主机/路由器和接受分组的主机/路由器的IP地址
问题:源IP和总长度的关系是?
- 选项字段:其他可选信息,如安全信息、时间戳等(少用)
- 填充:补齐选项字段为32位,令头部保持在四字节倍数;
- 数据:传输层数据
IP数据报分片
分片出现的原因:不同数据链路的最大传输单元(MTU)不同,可以容纳的IP数据报长度不同,也就需要对IP数据报进行切分。
路由器只管分不管装,边缘主机才负责装。
因为实际中往往要避免切片,所以不太重要,略过。
⭐IP编址
IP传输的最终节点为网络接口。
一台设备可能有多个网络接口,如笔记本电脑的有线以太网接口和无线802.11接口。每个接口对应不同的IP地址。
无线wifi接口的编址在数据链路层实现,网络层IP编址仅面向以太网.
⭐如何为接口分配IP地址:
- 不能随机分配:IP地址毫无规律可循,路由转发表就需要分别记录全球40亿个IP地址对应的接口,极其复杂。
为此,32位IP地址被人为划分为以下两部分:
- 网络号(NetID):一个IP子网
- 主机号(HostID):同一个IP子网中的不同设备
IP子网:不跨越路由器即可彼此物理联通的接口
可以看出,当NetID占用的字节数越多时,可以分配的网络数量就越多,同一个网络下可以分配的主机号就越少,反之亦然。那么如何确定NetID和HostID分别占用多少字节呢?
有类IP地址
按二分法将网络号将65536个IP地址分为了A~E共5类,每类的NetID和HostID分别占用的字节数如下所示。其中:
- A、B、C类地址:0.0.0.0~223.255.255.255,真正用于标识internet公网上主机的地址;
- D类地址:“多播地址”,不区分网络号和主机号;
- E类地址:保留作为研究使用,目前已被遗弃。
有一些IP地址有特殊的用途,是不可以分配给主机使用的。包括特殊IP地址和私有IP地址。
- 私有IP地址:可作为源和目标地址,仅用于IP子网内互相通信,而公网无法识别。私有地址是即便IPv4已经全部分配完也得以继续运作的关键。
子网划分与子网掩码
子网划分出现的原因:用以解决一个子网能提供的HostID数量太多(尤其是A类),导致在实际使用中被大量浪费的情况。
如何确定一个网络是否被划分为了子网?SubID又具体占用了多少比特?采用子网掩码+IP地址。
子网掩码:一个形如IP地址的32位比特数,规则为:
- NetID与SubID位全部标记为1
- HostID位全部标记为0
比如,ABC类在没有被子网划分时,默认的子网掩码分别为:
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0
将一个C类地址201.2.3.0平均划分为四个子网,那么就需要占用 4 2 = 2 \sqrt[2]{4}=2 24=2个比特,子网掩码就为:
11111111. 11111111. 11111111. 11000000
=255.255.255.192
每个子网对应的子网地址(也就是特殊IP地址中的网络地址,HostID=0)就为:
.... 00000000
=201.2.3.0
.... 01000000
=201.2.3.64
.... 10000000
=201.2.3.128
.... 11000000
=201.2.3.192
同时要注意:当一个网络划分为子网后,该子网内部的第一个地址和最后一个地址分别对应其子网地址和广播地址,均作为特殊用途不可分配给主机使用。
无类IP地址
CIDR协议
CIDR协议即无类域间路由协议:目的在于消除A,B,C类界限。
- 将NetID+SubID统一称为网络前缀(Network Prefix)
- 子网地址和子网掩码融合在了一起
- 格式:
a.b.c.d/x
, 其中x表示前缀的长度(十进制)
优点:
- 提升IPv4路由分配效率
- 不需要再根据组织规模分配A,B,C类地址
- 防止地址空间的浪费
- 提升路由效率
- 将多个子网聚合成一个较大的子网(“构造超网”技术)
- 路由器可以面向超网记录路由转发信息(“路由聚合”),减小路由表大小
路由聚合
路由器面向超网记录路由转发信息,减小路由表大小(据统计,主干路由上采用路由聚合可使路由表大小减小40%~70%)
一个问题:在同一个路由聚合的子网中存在一个特殊的IP地址,该地址的转发接口和其他路由不一致该怎么办?
解决方法:路由表中单独记录该特例,按照最长前缀匹配优先原则匹配转发路由
DHCP协议
规定了主机在互联网中如何获得IP地址
静态配置
手动设置主机的IP地址、子网掩码和默认网关
动态获取(DHCP)
动态主机配置协议(DHCP协议),是一个端口号为67的应用层协议。
该协议的功能:
- DHCP服务器动态分配IP地址、子网掩码、默认网关、DNS服务器名称及IP地址
- 允许地址重用:当主机关机后,DHCP服务器将会释放该地址给其他的主机使用
- 支持移动用户加入网络:如住户连接酒店的WIFI
DHCP工作过程
DHCP为一个移动用户动态分配地址的过程:
- 新主机接入网络
- 新主机发送广播“DHCP discover”,寻找网络中是否存在DHCP服务器
- DHCP服务器接收到该广播,响应一个“DHCP offer”,同意为该主机分配IP地址
- 新主机向该服务器发送“DHCP request”,请求IP地址
- DHCP服务器为新主机分配一个IP地址,响应一个“DHCP ack”
NAT网络地址转换
随着互联网设备的增加,IPv4地址已经分配殆尽。因此,互联网上的部分设备需要使用私有地址,而将这些不能在公共网络上进行通信的私有地址转化为可以通信的公有地址的过程就叫做NAT。
原理:私有IP地址在ISP处替换为相同的公共IP地址与外界通信。
优点:
- 一个ISP网络只需要申请一个共有IP地址(应对IP地址耗尽)
- 私有地址可随意变化,不影响与外界的通信
- 外部网络无法直接寻址到内部设备,比较安全
NAT的实现步骤
由ISP实现。涉及网络层(IP地址)及传输层(端口号)。
【内部设备与外网通信的步骤】
1、替换外出IP数据报的源IP地址及源端口号;
2、将替换前后的IP地址和端口号记录在NAT转换表中;
3、替换回传IP数据报的目的IP地址及目的端口号,根据NAT转换表实现。
一个私有IP地址实际上对应路由器的一个端口号
NAT的争议
1、路由器不应该处理传输层的功能(修改端口号);
2、违背了端到端通信原则,使得端到端应用的开发人员必须考虑到NAT的存在(e.g. P2P应用);
3、地址短缺问题应当由IP协议自己来解决(即IPv6协议)
NAT穿透
由上述可知,由于一个ISP网络对外部设备可见的只是NAT路由的公共IP地址,所以外部设备是无法根据这一IP地址直接与内部设备进行通信的。如何让外部设备穿透NAT路由直接与内部设备进行通信呢?
【思路1】在NAT映射表中记录转发关系,将特定端口的连接请求转发给特定的内部设备应用. 该思路有两个实现方法:
1、静态配置NAT映射表;
2、利用UPnP协议(互联网网关设备协议),该协议允许:
- 内部主机可以自动获取NAT路由的公共IP地址;
- 内部主机可以在NAT转换表中增删端口映射。
【思路2】中介服务器(如Skype),即连接双方通过一个中介服务器进行通信。
ICMP协议
互联网控制报文协议,在网络层中控制IP报文的:
- 差错(异常)报告
- 网络探询
ICMP报文类型
1、 封装在IP数据报中的差错报告报文,可以报告以下错误信息:
- 目的不可达
- 源抑制:路由缓存已满导致后续IP数据报被丢弃,向源主机发送该报文以通知其降低发送速度(实际上目前使用的是传输层的拥塞控制机制)
- TTL超时
- 参数错误
- 重定向:路由器认为该报文不应该由其进行转发
2、网络探寻报文
- 回声请求报文,用于探测主机间的网络是否通畅,如ping工具
- 时间戳请求与应答报文
为什么可以ping自己的私有IP地址,却ping不到公网IP地址?
答:很多家用路由器禁ICMP协议,以防遭受恶意的DDOS攻击,而黑客们看站点是否被打死的其中一个标准就是在本地用DOS窗口PING你的网站IP。
ICMP应用-traceroute
traceroute工具:查询本机到目标主机之间的路由跳数及路由IP地址
windows-shell下执行tracert [目标主机IP]
命令即可。
traceroute的原理:源主机向目的主机发送多组UDP数据报,遵循以下规律:
- 第1组IP数据报TTL=1,第2组IP数据报TTL=2,以此类推……
- 保证目的端口号为不可能使用的端口号
这样,当第n组数据报到达第n个路由器时,由于此时TTL已经被减到了0,因此路由器就会丢弃该数据报,并向源主机回传一个ICMP超时报文。这个报文中就包含路由器的名称和IP地址信息。
当UDP数据报最终到达目的主机时,由于目的端口号是一个不可能被使用的端口号,所以目的主机会回传一个ICMP目的不可达报文。此时即可判断已经探测到了最终的目的主机。
问题:由于路由选择的随机性,每次传输UDP报文的路由路径会不会不一样?
答:会存在这个问题,但一般来说,这个路径短时间内是相同的。
IPv6协议
出现的背景:
- IPv4空间已经分配殆尽
- 改进IPv4的首部格式,以支持QoS(优先级),快速处理和快速转发
IPv6数据报格式
IPv6数据报格式的变化:
- 基本首部长度固定为40字节(IPv4不确定长度),以便路由器快速处理;
- 不允许分片(关于IP数据报分片的弊端详见现实中为什么要尽量避免IP分片?);
- 增加了优先级字段,标识数据报的优先级;
- 增加了流标签,标识同一“流”中的数据报,以对不同的流进行不同的服务(目前还在讨论中);‘
- 允许选项,定义多个选项首部通过“下一个首部”字段指示
- 大大增大了IP地址的长度,由32位->128位(大到可以为星球上每一个沙砾分配一个IP地址);
- 移除了校验和,以减少每跳的处理时间;
ICMPv6
IPv6下的ICMP协议的改变主要有2点:
- 增加了新的报文类型,如Packet too big(分组太大)
- 集成了多播组成员管理功能(即管理多播成员加入和离开多播组)
IPv6的地址表示形式
每16比特为一组,分为8组,用冒号分隔。
1、一般形式
1080:0:FF:0:8:800:200C:417A
2、压缩形式
用两个冒号标识全0位,如:
压缩前:FF01:0:0:0:0:0:0:43
压缩后:FF01::43
注意,一个IPv6地址中只能使用一次双冒号,因为如果有多个双冒号则无法判断各自都代表了多少位的0
3、IPv4-嵌入形式
将设备原来的IPv4地址转化为IPv6地址。转化格式如下:
简写作::FFFF:13.1.68.3
4、取消子网掩码,使用/
表示子网大小,如以下地址表示该子网的前缀为48位数:
2002:43c:476b::/48
5、在URL中,将IP地址用[]括起来,以免和端口号的冒号产生歧义。
http:[2002:43c:476b::]:80
IPv6的地址类型
IPv6不再分为ABCDE五类,而是分为:
1、单播地址:用于一对一通信
2、多播地址:用于一对多广播
IPv6中一个多播地址即表示一组IP地址,而不像IPv4那样预留一些特殊的IP地址
3、任意播:用于一对一组多播地址中的一个主机通信(?)
IPv6与IPv4兼容
采用“隧道”技术实现IPv6对IPv4的兼容原理为:
- 当一个IPv6数据报通过IPv4设备时,将自身封装成一个IPv4数据报进行传输,之后再还原成IPv4数据报
路由算法
动态计算路由转发表的关键。用图来描述。
路由的抽象图中,节点代表路由器,边代表链路,边权值为链路的费用,可以是:
- 1,如果仅考虑跳步数
- 链路的物理距离
- 带宽的倒数、拥塞程度
- 链路所承载的通信量(其实也是反映了拥塞程度)
- 实际经济开销等
路由算法实际上就是一个最小路径问题。
【全局信息vs分散信息?】
-
全局信息:所有路由器都需要掌握完整的网络拓扑和链路费用(e.g.链路状态算法)
-
分散信息:路由器只掌握与其物理相连的节点及链路费用(e.g.距离向量算法)
链路状态路由算法
1、算法:Dijkstra算法
2、关键:如何让每个路由器掌握全局信息
- 通过“链路状态广播”扩散网络拓扑
链路状态广播的大致原理:
- 节点通过ICMP协议探测与其相邻的节点数量及链路费用
- 节点将携带该信息的分组通过泛洪方式扩散出去(通过一定的机制防止其爆发式繁殖)
- 直到节点持有其他所有节点的信息后停止
- 节点通过dijkstra算法计算自己到其他所有节点的最短路径,构造转发表
注意,节点通过该算法计算出的是数据传输的整条路经,而实际上它只需要知道数据下一跳需要送到哪个节点上而已,因此其他的路经信息是多余的。
……计算过程略过,就是套用Dijkstra算法,可以看这个视频:【算法】最短路径查找—Dijkstra算法
【算法复杂性】 O ( n 2 ) O(n^2) O(n2)
3、存在的问题
震荡现象(oscillations)
- 假设链路费用是(或其变量包含)该链路即将承载的实时通信量;
- 每次数据传输后,链路费用会因为数据的传送而更新;
- 进而导致路由算法重算,节点计算出与之前的路径相矛盾的新路径;
- 在这个过程中,一个数据包就会因为不断重复矛盾的路径导致TTL=0而被丢弃。
解决方法:随机延迟链路状态更新机制
距离向量路由算法
-
算法:bellman-ford方程(动态规划)
-
算法基本思想:
- 节点计算与其相邻的节点的链路费用 c ( x , v ) c(x,v) c(x,v)
- 同时,相邻节点将其到达目标节点的最短路径 d x ( y ) d_x(y) dx(y)告知给节点
- 节点通过比较两者之和的最小值,决定数据下一跳传输到哪里
这样,节点就不能得知数据在整个网络拓扑中的完整路径,而只能计算出下一跳应该传输给哪个节点。而这也恰恰也是它需要得知的信息。
- 算法大致过程
关键是如何知道这个 d v ( y ) d_v(y) dv(y)的数值呢?明显最开始是不清楚的,所以只能给出一个估计值(初始为无穷大),把这个估计值记作 D x ( y ) ∣ ∣ D v Dx(y) || Dv Dx(y)∣∣Dv
- 每个节点不定期地将其自身的 D x ( y ) D_x(y) Dx(y)发送给相邻节点
- 相邻节点收到邻居的新 D v Dv Dv估计时,即根据B-F算法更新自身的向量估计 D x ( y ) D_x(y) Dx(y)
- 如果 D x ( y ) D_x(y) Dx(y)发生了变化,则告知邻居,否则不告知
由此可见,距离向量路由算法是一个异步过程,只有当节点的 D x y D_xy Dxy值发生变化时才会通知其相邻节点重算
- 以此迭代,直到路径不再发生变化为止,此时 D x ( y ) D_x(y) Dx(y)将会收敛于最小费用 d x ( y ) d_x(y) dx(y)
图中红色的圈表示新计算的 D x ( y ) D_x(y) Dx(y)发生了变化的情况。
- 算法复杂度
O ( m n ) O(mn) O(mn),大于Dijkstra算法
5、存在的问题:无穷计数问题(count to infinity)
由于距离向量算法是一个异步算法,在路径费用增大时:
- y得知的z到x的最短路径依旧是5
- y计算出来 d y ( x ) d_y(x) dy(x)=5+1=6而不是51
- y通知给z的最新 D v = 6 < 50 Dv=6<50 Dv=6<50
- z节点依旧会选择经过y节点到x…
- 上述的操作要重复31次直到 d y ( x ) > 50 d_y(x)>50 dy(x)>50后,z节点才会意识到自己需要更新z到x的路径。
如果xy之间的连通被切断了,此时 c ( x , y ) = ∞ c(x,y)=\infty c(x,y)=∞,那么这个操作就会无穷循环下去!
【解决方法】
(1)毒性逆转(poisoned reverse):如下图中的路由,很容易看出z到x的最短路径是z=>y=>x = 5
。但它将这个信息通告给y时,并不会通告为
D
z
(
x
)
=
5
Dz(x)=5
Dz(x)=5,而是通告为
D
z
(
x
)
=
∞
Dz(x)=\infty
Dz(x)=∞。我也不知道第一个想出这个方法的人是怎么想的,但通过这种方式,就可以有效避免无穷计数问题。
(2)定义最大度量(maximum metric):定义一个最大跳步数,如果两点间的跳步数超过了这个数值,那么该数值就会被视为无穷大而不会引起新的迭代。
比如以下的例子,当左侧的网络突然变成不可达时,在定义最大度量之前,R1就会认为最短路径是以R2为中介的路径而永远迭代下去。但在定义了最大跳步数=15后,当费用达到16后这个费用就停止发生变化(具体地说,是被视为了无穷大),路由算法也就会停止迭代下去。
层次路由策略
上述两个方法的问题:将大规模网络(比如超过6个亿的节点)抽象成一张图的方案在实际中是不可行的。会出现如下的问题:
-
计算得出的路由表几乎无法存储
-
路由计算过程的信息(e.g.链路状态分组、DV)交换量巨大,会淹没链路
-
ISP无法控制自己内网的路由算法和路径
解决方法:聚合路由器为一个区域:自治系统AS(autonomous systems)
- 自治系统可以定义自己内部的路由协议
- 不同AS只需要构造自己内部的网络拓扑
AS与外部需要通过一个或多个**网关路由器(gateway router)**进行相连。网关服务器需要同时维护两类协议:
- AS内部的路由协议
- AS之间的路由协议
internet网络路由就是按照这个策略执行的。
internet路由
internet作为一个典型的层次化路由,将其所采用的AS内部协议称为IGP协议。常见的IGP协议有:
- 路由信息协议:RIP
- 开放最短路径优先协议:OSPF
- 内部网关路由协议(思科牌路由器的私有协议):IGRP协议
RIP协议
不是rest in peace
是一个在应用层上实现的协议,使用UDP进行报文传输。
采用距离向量路由算法。
1、RIP协议的特点:
- 定义一个“最大跳步数”:用于解决无穷计数问题;
- 每隔30秒,邻居之间交换一次DV(称作通告):用于判断链路失效
- 每次通告最多25个目的子网
当D所接收到的A中某个路径的next所指示的下一跳就是D本身时,也就相当于起到了毒性逆转中向下一跳传输了一个无穷数值的作用。
2、RIP如何判断链路失效:
- 如果180秒没有收到通告则判断邻居链路失效
- 此时重新计算路由
- 向邻居发送新的通告
- 若邻居转发表改变,则继续向外发送通告
(该过程也应用了毒性逆转和最大度量)
OSPF协议(RFC2328)
即开放最短路径优先协议。⭐在现实中使用的最多。
OSPF报文直接封装成IP数据报。
采用链路状态路由算法。(与IS-IS协议极其相似,这是一个中间系统间的路由协议)
【OSPF相较于RIP协议的优点】
1、安全:只有经过认证的路由器所发布的OSPF报文才被认可;
2、允许维护和使用多条费用相同的路径(RIP只能选择一条);
3、允许链路针对不同ToS(IPv4数据报中的服务类型字段)设置不同的费用度量;
4、(最重要)支持对大规模的AS进行再次分层
BGP协议
即边界网关协议,是一个AS域间协议
通过在两个路由器之间建立基于半永久TCP连接的”BGP会话“来交换BGP报文,该报文需要实现:
- 通告去往不同目的的前缀(也就是AS系统)的路径
BGP典型的四种报文:
- OPEN报文:与peer建立TCP连接(该过程需要认证)
- UPDATE报文:通报新路径或撤销原路径
- KEEPALIVE报文:在暂时没有信息需要交换时发送,用于保持TCP连接
- NOTIFICATION报文:用于差错报告和关闭连接
BGP报文分为外部(eBGP)和内部(iBGP):
- eBGP由网关路由器负责,处理AS间的路径信息传递
- iBGP负责将eBGP在AS内部进行传递
特点:网关路由器可以自行选择是否将路径信息继续传递给下一个前缀
BGP报文的两个重要属性:
- AS-PATH:前缀通告所经过的AS序列
- NEXT-HOP(下一跳):开始一个AS-PATH的路由器接口(一个AS内可能有多个网关路由器作为连接其他AS系统的出口,因此有必要定义NEXT-HOP以确定iBGP究竟要传到哪个网关路由器上。)
⭐【BGP的路由选择策略】
1、输入策略(import policy):是否接收该路由(e.g. 网关路由器设置从不将流量路由到AS x)
2、对于到达某目的AS的多条路径该选择哪条的问题,可以基于以下准则:
- 不同路径设置不同的偏好值
- 基于最短AS-PATH(经过的AS系统最少,而不是路由器最少)
- 基于热热土豆原则(即最近的NEXT-HOP)
- 其他原则
一个简单的BGP策略如下所示。在这个案例中,有两种典型的需求:
- 客户网络X并不会希望抵达其他网络的流量通过自己进行传输,而占用自己的带宽资源。这时,X就不会向B通告任何一条到达C的路由。
- 当x需要传递数据到w时,B将会从A处得知前缀路由路径。而B是否也需要将这条路径信息也告知给相邻AS系统C呢?在现实中,由于x,C或者y都并不是B的目标客户,这样做对于B来说并没有好处,所以答案往往是否定的。
本章习题
子网划分、子网掩码、路由表编写、路由聚合