跳转至

4 网络层

4.1 网络层概述

网络层的主要任务就是将分组从源主机经过多个网络和多段链路传输到目的主机,可以将该任务划分为分组转发路由选择两种重要的功能。

路由表与转发表

路由表

  • 存储的是“去往某个目标网络该走哪条路径”的信息。
  • 是由路由选择协议动态生成或手工配置得到的。
  • 例如:目标网络 B → 经过 R1 → R2

转发表

  • 是路由表的“简化版”,用于快速查找下一跳。
  • 通常只包含:目标地址 → 下一跳接口/下一跳IP
  • 用于实际的数据包转发。

网络层向其上层提供的两种服务

  • 面向连接的虚电路服务
  • 无连接的数据报服务

对于面向连接的虚电路服务来说,核心思想是 ”可靠通信应由网络自身来保证”,必须首先建立网络层连接—— 虚电路(Virtual Circuit,VC),以保证通信双方所需的一切网络资源。通信双方沿着已建立的虚电路发送分组。通信结束后,需要释放之前所建立的虚电路。

虚电路

虚电路(Virtual Circuit, VC)并不是物理线路,而是一条逻辑上的通信路径。分组的首部仅在连接建立阶段使用完整的目的主机地址,之后每个分组的首部只需要携带一条虚电路编号即可。

而对于无连接的数据报服务来说,核心思想是 “可靠通信应由用户主机来保证”,每个分组可走不同的路径。因此,每个分组的首部都必须携带目的主机的完整地址。通信结束后,没有需要释放的连接。

这种通信方式所传送的分组可能误码、丢失、重复和失序。但是由于网络自身不提供端到端的可靠传输服务,这就使得网络中的路由器可以做得比较简单,大大降低了网络造价。所以当今互联网(Internet)的网络层普遍使用的是无连接的数据报服务

4.2 网际协议 IP

网际协议(Internet Protocol,IP)是TCP/IP体系结构网际层中的核心协议。

不同的网络,它们的拓扑、性能以及所使用的网络协议都不尽相同,这是由用户需求的多样性造成的,没有一种单一的网络能够适应所有用户的需求。

当 IP网 上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体异构细节。

4.2.1 IPv4地址及其编址方法

IPv4地址是给因特网(Internet)上的每一个主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的32比特的标识符。

由于IPv4地址由32比特构成,不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用。

对于一个32比特的IPv4地址,其由两部分组成:网络号与主机号

  • 网络号标志主机(或路由器)的接口所连接到的网络,同一个网络中,不同主机(或路由器)的接口的IPv4地址的网络号必须相同,表示它们属于同一个网络。
  • 主机号标志主机(或路由器)的接口,同一个网络中,不同主机(或路由器)的接口的IPv4地址的主机号必须各不相同,以便区分各主机(或路由器)的接口。


IPv4地址的编址方法经历了三个历史阶段:

  • 分类编址
  • 划分子网
  • 无分类编址

其中前两者已经成为历史,无分类编址消除分类编址和划分子网的概念,但是我们仍然需要学习。

下图阐述的是IPv4地址的分类编址方法

其中

  • A类、B类和C类地址都是单播地址,只有单播地址可以分配给网络中的主机(或路由器)的各接口。
  • 主机号为“全0”的地址是网络地址,不能分配给主机(或路由器)的各接口。
  • 主机号为“全1”的地址是广播地址,不能分配给主机(或路由器)的各接口。

Note

一般不使用的特殊IPv4地址

Example

随着更多的中小网络加入因特网,IPv4分类编址方法不够灵活、容易造成大量IPv4地址资源浪费的缺点就暴露出来了。分类编址方法不够灵活且容易造成大量地址浪费,划分子网编址方法对其进行改进。


如果可以从 IPv4 地址的主机号部分借用一些比特作为子网号来区分不同的子网,就可以利用原有网络中剩余的大量 IPv4 地址,而不用申请新的网络地址了

我们可以通过子网掩码来表明分类 IPv4 地址的主机号部分被借用了几个比特作为子网号。

与IPv4地址类似,子网掩码也是由32比特构成的

  • 用左起多个连续的比特1对应IPv4地址中的网络号和子网号;
  • 之后的多个连续的比特0对应IPv4地址中的主机号。

IPv4 地址的划分子网编址方法在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网(\(2^{24}−3=2097152\) )由于其每个网络所包含的地址数量太小( \(2^8=256\) ),因此并没有得到充分使用,而因特网的 IPv4 地址仍在加速消耗,整个 IPv4 地址空间面临全部耗尽的威胁。


提出了采用无分类编址的方法,来解决 IPv4 地址资源紧张的问题,同时还专门成立IPv6工作组负责研究新版本的IP,以彻底解决 IPv4 地址耗尽问题。

1993年,因特网工程任务组IETF发布了无分类域间路由选择(Classless Inter-Domain Routing,CIDR )的RFC文档[RFC1517~1519,RFC1520]。

  • CIDR消除了传统A类、B类和C类地址以及划分子网的概念。
  • CIDR可以更加有效地分配IPv4地址资源,并且可以在IPv6使用之前允许因特网的规模继续增长。

无分类编址方法使用的地址掩码与划分子网使用的子网掩码类似,由32比特构成。

  • 用左起多个连续的比特1对应IPv4地址中的网络前缀
  • 之后的多个连续的比特0对应IPv4地址中的主机号

为了简便起见,可以不明确给出配套的地址掩码的点分十进制形式,而是在无分类编址的IPv4地址后面加上斜线“/”,在斜线之后写上网络前缀所占的比特数量(也就是地址掩码中左起连续比特1的数量),这种记法称为斜线记法。

无分类域间路由选择 CIDR 是将网络前缀都相同的、连续的多个无分类 IPv4 地址,组成一个 CIDR 地址块,只要知道 CIDR 地址块中的任何一个地址,就可以知道该地址块的以下全部细节:

  • 地址块中的最小地址与最大地址及地址数量
  • 地址块中聚合某类网络(A类、B类、C类)的数量
  • 地址掩码

Example

使用无分类编址方法,可以根据客户的需要分配适当大小的CIDR地址块,因此可以更加有效地分配IPv4的地址空间。

Example

还是之前那个例子,使用无分类编址方法,就可以做到更细化的分配了

使用无分类编址方法的另一个好处是路由聚合(也称为构造超网)。

网络前缀越长,地址块越小,路由越具体,若路由器查表转发分组时发现有多条路由条目匹配,则选择网络前缀最长的那条路由条目,这称为最长前缀匹配,因为这样的路由更具体。


IPv4地址的应用规划是指将给定的IPv4地址块(或分类网络)划分成若干个更小的地址块(或子网),并将这些地址块(或子网)分配给互联网中的不同网络,进而可以给各网络中的主机和路由器的接口分配IPv4地址。

  • 定长的子网掩码(Fixed Length Subnet Mask,FLSM)所划分出的每一个子网都使用同一个子网掩码,每个子网所分配的IP地址数量相同,容易造成地址资源的浪费
  • 变长的子网掩码(Variable Length Subnet Mask,VLSM)所划分出的每一个子网都使用同一个子网掩码,每个子网所分配的IP地址数量可以不同,尽可能减少对地址资源的浪费。

定长的子网掩码

变长的子网掩码

4.2.2 IPv4地址与MAC地址

在数据报传送过程中IPv4地址与MAC地址的变化如下

在数据包的传送过程中,数据包的源IP地址和目的IP地址保持不变;

在数据包的传送过程中,数据包的源MAC地址和目的MAC地址逐链路(或逐网络)改变。

如果仅使用MAC地址进行通信,则会出现以下主要问题:

  • 因特网中的每台路由器的路由表中就必须记录因特网上所有主机和路由器各接口的MAC地址。
  • 手工给各路由器配置路由表几乎是不可能完成的任务,即使使用路由协议让路由器通过相互交换路由信息来自动构建路由表,也会因为路由信息需要包含海量的MAC地址信息而严重占用通信资源。
  • 包含海量MAC地址的路由信息需要路由器具备极大的存储空间,并且会给分组的查表转发带来非常大的时延。

因特网的网际层使用IP地址进行寻址,就可使因特网中各路由器的路由表中的路由记录的数量大大减少,因为只需记录部分网络的网络地址,而不是记录每个网络中各通信设备的各接口的MAC地址。

  • 路由器收到IP数据报后,根据其首部中的目的IP地址的网络号部分,基于自己的路由表进行查表转发。

4.2.3 地址解析协议ARP

目的是在同一个局域网(LAN)内,通过已知的 IP 地址获取对应的 MAC 地址,以便在数据链路层正确封装帧并发送数据。

ARP 的基本流程:

  1. 查询缓存:主机先查本地 ARP 缓存,看是否已有目标 IP 对应的 MAC 地址。
  2. 广播请求:若没有,发送一个 ARP 请求广播帧(“谁有 192.168.1.100 的 MAC?”)。
  3. 单播响应:目标主机收到后,单播回复自己的 MAC 地址
  4. 更新缓存:发起方将 IP-MAC 映射存入 ARP 缓存,用于后续通信。

4.2.4 IP 数据报的发送和转发流程

IP 数据报的发送和转发过程包含以下两个过程:

  • 主机发送 IP 数据报
  • 路由器转发 IP 数据报

对于一个源主机来说,首先需要判断目的主机是否与自己处于同一个网络中(这个只需要将两者的 IP 地址分别取源主机子网的掩码比较即可)如果在同一网络中,直接交付即可;如果在不同的网络中,则需要通过路由器进行间接交付。那么这时对于源主机来说,应该交给哪个路由器呢?利用默认网关,我们可以知道下一条应该给谁。

路由器收到 IP 数据报之后应该如何转发呢?

  • 首先检查收到的 IP 数据报是否正确:生存时间是否结束,首部是否误码。若不正确,则丢弃该 IP 数据报,并向发送该 IP 数据报的源主机发送差错报告。
  • 基于 IP 数据报首部中的目的 IP 地址在路由表中进行查找若找到匹配的路由条目,则按该路由条目的指示进行转发,否则丢弃该 IP 数据报,并向发送该 IP 数据报的源主机发送差错报告。

路由器不转发广播 IP 数据报,即路由器隔离广播域

Example

(1)设备1和设备3均是交换机,设备2是路由器

(2)设备2需要配置 IP 地址,IF2: 192.168.1.1,IF3: 192.168.1.65

(3)广播帧,H3 和 H4 会收到数据报

4.2.5 IPv4数据报的首部格式

IPv4 数据报的首部格式及其内容是实现IPv4协议各种功能的基础。

在 TCP/IP 标准中,各种数据格式常常以32比特(即4字节)为单位来描述。

版本:长度为 4 个比特,用来表示 IP 协议的版本。通信双方使用的 IP 协议的版本必须一致。

首部长度:长度为 4 个比特,该字段的取值以4字节为单位,用来表示 IPv4 数据报的首部长度。最小取值为 5 【注意单位是 4 个字节】最大取值是 15

可选字段:长度从1字节到40字节不等,用来支持排错、测量以及安全措施等功能。实际上,可选字段很少被使用。

填充:用来确保IPv4数据报的首部长度是4字节的整数倍,使用全0进行填充。

总长度:长度为16个比特,该字段的取值以字节为单位,用来表示IPv4数据报的长度(首部长度+数据载荷长度)。最大取值是16个1

标识,标志,片偏移共同用于 IPv4 数据报分片

IPv4数据报分片的概念

Example

生存时间(Time To Live,TTL)长度为8个比特,最大取值为二进制的11111111,即十进制的255。该字段的取值最初以秒为单位。因此,IPv4数据报的最大生存时间最初为255秒。路由器转发IPv4数据报时,将其首部中该字段的值减去该数据报在路由器上所耗费的时间,若结果不为0就转发,否则就丢弃。

生存时间字段后来改为以“跳数”为单位,路由器收到待转发的IPv4数据报时,将其首部中的该字段的值减1,若结果不为0就转发,否则就丢弃。

生存时间TTL字段的作用 —— 防止被错误路由的IPv4数据报无限制地在因特网中兜圈

路由环路

协议:长度为8个比特,用来指明IPv4数据报的数据载荷是何种协议数据单元PDU。

协议名称 ICMP IGMP TCP UDP IPv6 OSPF
协议字段值 1 2 6 17 41 89

首部检验和:长度为16个比特,用于检测IPv4数据报在传输过程中其首部是否出现了差错。

上述检验和的计算方法不仅用于IP协议,还用于运输层的用户数据报协议UDP和传输控制协议TCP,常被称为因特网检验和(Internet Checksum)。这种检验和的检错性能虽然不如CRC,但更易用软件实现。

反码求和

  • 0和0相加是0
  • 0和1相加是1
  • 1和1相加是0,但要产生一个进位1,加到下一列
  • 若最高位相加后产生进位,则最后得到的结果要加1

IPv4数据报每经过一个路由器,其首部中的某些字段的值(例如生存时间TTL、标志以及片偏移等)都可能发生变化,因此路由器都要重新计算一下首部检验和。

由于网际层并不向其高层提供可靠传输的服务,并且计算首部检验和是一项耗时的操作,因此在IPv6中,路由器不再计算首部检验和,从而更快转发IP数据报。

4.3 静态路由配置

静态路由配置是指用户或网络运维人员使用路由器的相关命令给路由器人工配置路由表。人工配置方式简单、开销小、但不能及时适应网络状态(流量、拓扑等)的变化,一般只在小规模网络中采用。

这里人工配置下一跳 10.0.0.2,类型是静态。那么对于因特网中的每一个网络,需要给R1添加一条相应的路由条目吗?我们使用一条默认路由条目,替代了去往因特网中众多网络的海量路由条目。

默认路由条目中的目的网络0.0.0.0/0,其中0.0.0.0表示任意网络,而网络前缀“/0”(相应的地址掩码为0.0.0.0)是最短的网络前缀。路由器在查找转发表转发IP数据报时,遵循“最长前缀匹配”的原则,因此默认路由条目的匹配优先级最低。

特定主机路由:出于某种安全问题的考虑,同时为了使网络运维人员更方便地控制网络和测试网络,特别是在对网络的连接或路由表进行排错时,指明到某一台主机的特定主机路由是十分有用的。

网络前缀“/32”(相应地址掩码为255.255.255.255)是最长的网络前缀,特定主机路由条目的匹配优先级最高。

4.4 因特网的路由选择协议

静态路由选择 动态路由选择
采用人工配置的方式给路由器添加网络路由、默认路由和特定主机路由等路由条目。 路由器通过路由选择协议自动获取路由信息。
静态路由选择简单、开销小,但不能及时适应网络状态(流量、拓扑等)的变化。 动态路由选择比较复杂、开销比较大,但能较好地适应网络状态的变化。
静态路由选择一般只在小规模网络中采用。 动态路由选择适用于大规模网络。

因特网是全球最大的互联网,它所采取的路由选择协议具有以下三个主要特点:

  • 自适应:因特网采用动态路由选择,能较好地适应网络状态的变化。
  • 分布式:因特网中的各路由器通过相互间的信息交互,共同完成路由信息的获取和更新。
  • 分层次:将整个因特网划分为许多较小的自治系统(Autonomous System,AS)。在自治系统内部和外部采用不同类别的路由选择协议,分别进行路由选择。

4.4.1 路由信息协议 RIP

路由信息协议(Routing Information Protocol,RIP)是内部网关协议中最先得到广泛使用的协议之一

RIP要求自治系统AS内的每一个路由器,都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为距离向量(Distance-Vector,D-V)。

RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的距离。

  • RIP将路由器到直连网络的距离定义为1。
  • RIP将路由器到非直连网络的距离定义为所经过的路由器数加1。
  • RIP允许一条路径最多只能包含15个路由器,距离等于16时相当于不可达。因此RIP只适用于小型互联网。

RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由。

当到达同一目的网络有多条RIP距离相等的路由时,可以进行等价负载均衡,也就是将通信量均衡地分布到多条等价的路径上。

RIP 具有以下三个重要特点:

  • 和谁交换信息:仅和相邻路由器交换信息。
  • 交换什么信息:路由器自己的路由表。即本路由器到所在自治系统AS中各网络的最短RIP距离,以及到各网络应经过的下一跳路由器。
  • 何时交换信息:周期性交换(例如,每个约30秒)。为了加快RIP的收敛速度,当网络拓扑发生变化时,路由器要及时向相邻路由器通告拓扑变化后的路由信息,这称为触发更新


RIP的基本工作过程

  • 路由器刚开始工作时,只知道自己到直连网络的RIP距离为1。
  • 每个路由器仅和相邻路由器周期性地交换并更新路由信息。
  • 若干次交换和更新后,每个路由器都知道到达本自治系统AS内各网络的最短距离和下一跳路由器, 称为收敛。

更新过程按照 RIP 的距离向量算法

更新时选择 RIP 距离更小的,一样的话看下一跳的位置,如果不一样,添加这一条(可以等价负载均衡)

除了上述RIP路由条目更新规则,在RIP的距离向量算法中还包含以下一些时间参数:

  • 路由器每隔大约30秒向其所有相邻路由器发送路由更新报文。
  • 若180秒(默认)没有收到某条路由条目的更新报文,则把该路由条目标记为无效(即把RIP距离设置为16,表示不可达),若再过一段时间(如120秒),还没有收到该路由条目的更新报文,则将该路由条目从路由表中删除。

Example

Example


RIP 存在一个问题就是坏消息传播的慢,当网络中出现故障(如 R1 与 N1 之间的链路断开),R2 会先收到 R1 发送的更新报文,误以为可以通过 R1 到达 N1,而 R1 在后续更新中又从 R2 那里学到“通过 R2 到 N1 ”的路径,从而形成循环:R1 认为去 N1 要经过 R2,R2 又认为要去 N1 要经过 R1,导致距离不断递增(从3→4→5→…)。如果没有最大跳数限制,这种环路将无限持续下去;但RIP规定最大跳数为16,一旦距离达到16就标记为不可达,最终实现收敛。但是这样的故障信息传播的非常慢,需要几分钟

可以采取以下多种措施减少出现该问题的概率或减小该问题带来的危害

  • 当路由表发生变化时就立即发送路由更新报文(即“触发更新”),而不仅是周期性发送。
  • 让路由器记录收到某个特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即“水平分割”)。

总结一下 RIP 的优缺点

优点:

  • 实现简单,路由器开销小。
  • 如果一个路由器发现了RIP距离更短的路由,那么这种更新信息就传播得很快,即“好消息传播得快”。

缺点:

  • RIP限制了最大RIP距离为15,这就限制了使用RIP的自治系统AS的规模。
  • 相邻路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也随之增大。
  • “坏消息传播得慢”,使更新过程的收敛时间过长。因此,对于规模较大的自治系统AS,应当使用OSPF协议。

4.4.2 开放最短路径优先协议 OSPF

开放最短路径优先(Open Shortest Path First,OSPF)协议是为了克服路由信息协议RIP的缺点在1989年开发出来的。

“开放”表明OSPF协议不是受某一厂商控制,而是公开发表的。

“最短路径优先”是因为使用了Dijkstra提出的最短路径算法(Shortest Path First,SPF)。

OSPF是基于链路状态的,而不像RIP是基于距离向量的。下面介绍一下链路状态的概念

链路状态(Link State,LS)是指本路由器都和哪些路由器相邻,以及相应链路的“代价(cost)”。【“代价”用来表示费用、距离、时延和带宽等,这些都由网络管理人员来决定。】

Example

OSPF相邻路由器之间通过交互问候(Hello)分组建立和维护邻居关系

问候(Hello)分组封装在 IP 数据报中,发往组播地址 224.0.0.5。IP 数据报首部中的协议号字段的取值为89,表明 IP 数据报的数据载荷为 OSPF 分组。

  • 问候(Hello)分组的发送周期为10秒。
  • 若40秒未收到来自邻居路由器的问候(Hello)分组,则认为邻居路由器不可达。

Note

OSPF分组直接使用网际层的IP数据报进行封装,而不像RIP报文需要使用运输层用户数据报协议UDP封装。从数据包按网络体系结构逐层封装的角度看,OSPF属于网际层协议,而RIP属于应用层协议(但其核心功能是路由选择,属于网际层)。

使用OSPF的每个路由器都会产生链路状态通告(Link State Advertisement,LSA)。包含以下两类链路状态信息:

  • 直连网络的链路状态信息
  • 邻居路由器的链路状态信息

链路状态通告 LSA 被封装在链路状态更新(Link State Update,LSU)分组中,采用可靠的洪泛法(Flooding)进行发送。

  • 洪泛法的要点是路由器向自己所有的邻居路由器发送链路状态更新分组,收到该分组的各路由器又将该分组转发给自己所有的邻居路由器(但其上游路由器除外),以此类推。
  • 可靠是指收到链路状态更新分组后要发送确认,收到重复的更新分组无需再次转发,但要发送一次确认。

通过各路由器洪泛发送封装有各自链路状态通告 LSA 的链路状态更新分组 LSU,各路由器的链路状态数据库LSDB 最终将达到一致

使用 OSPF 的各路由器,基于链路状态数据库 LSDB 进行最短路径优先计算,构建出各自到达其他各路由器的最短路径,即构建各自的路由表。

OSPF 有五种分组类型

  • 问候(Hello):用来发现和维护邻居路由器的可达性。
  • 数据库描述(Database Description):用来向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
  • 链路状态请求(Link State Request):用来向邻居路由器请求发送某些链路状态项目的详细信息。
  • 链路状态更新(Link State Update):路由器使用链路状态更新分组将其链路状态信息进行洪泛发送,即用洪泛法对整个系统更新链路状态
  • 链路状态确认(Link State Acknowledgement):对链路状态更新分组的确认分组。

在多点接入网络中 OSPF 路由器邻里关系复杂, 每个路由器需要向其他 (\(n−1\)) 个路由器发送问候分组和链路状态更新分组。为了减少洪泛发送问候分组和链路状态更新分组的数量,OSPF采用以下措施:

  • 选举指定路由器(Designated Router,DR)备用的指定路由器(Backup Designated Router,BDR)
  • 所有的非 DR/BDR 只与 DR/BDR 建立邻居关系

为了使OSPF协议能够用于规模很大的网络,OSPF 把一个自治系统 AS 再划分为若干个更小的范围,称为区域(area)。划分区域的好处就是把利用洪泛法交换链路状态信息的范围局限于每一个区域,而不是整个自治系统AS,这样就减少了整个网络上的通信量

自治系统边界路由器(AS Border Router,ASBR):R6

主干路由器(Backbone Router,BBR):R3、R4、R5、R6和R7 (至少有一个接口属于 OSPF 骨干区域的路由器)

区域内路由器(Internal Router,IR):区域1内的R1和R2,区域2内的R8,区域3内的R9

区域边界路由器(Area Border Router,ABR):R3、R4和R7

Example

4.4.3 边界网关协议 BGP

边界网关协议(Border Gateway Protocol,BGP)属于外部网关协议 EGP 这个类别,用于自治系统 AS 之间的路由选择协议。

由于在不同AS内度量路由的“代价”(距离、带宽、费用等)可能不同,因此对于AS之间的路由选择,使用统一的“代价”作为度量来寻找最佳路由是不行的。AS之间的路由选择还必须考虑相关策略(政治、经济、安全等)。【比如有些网络不安全,即使快也不采用】

在配置 BGP 时,每个AS的管理员要选择至少一个路由器作为该 AS 的 “BGP发言人”。一般来说,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器。

使用TCP连接交换路由信息的两个 BGP 发言人,彼此称为对方的邻站(neighbor)或对等站(peer)。

BGP发言人除了运行BGP协议外,还必须运行自己所在AS所使用的内部网关协议IGP,例如RIP或OSPF。

当BGP发言人相互交换了网络可达性的信息后,各BGP发言人就根据所采用的策略,从收到的路由信息中找出到达各自治系统的较好的路由,也就是构造出树形结构且不存在环路的自治系统连通图

4.4.4 路由器的基本工作原理

路由器是一种具有多个输入端口和输出端口的专用计算机,其任务是转发分组

路由器首先需要知道“如何到达各个网络”,这个任务由路由选择处理机完成。它运行路由选择协议(如 RIP、OSPF、BGP 等),通过与相邻路由器交换信息,动态或静态地学习网络拓扑结构,并将这些信息整理成一张关键的数据结构——路由表

一旦路由表建立完成,路由器就进入分组转发阶段。当数据包从输入端口进入路由器时,经过物理层和链路层解封装后,提取出 IP 数据报的目的地址,然后交给分组处理模块进行查找。该模块使用转发表)快速匹配目的网络,确定应从哪个输出端口发送出去。

4.5 网际控制报文协议 ICMP

为了更有效地转发 IP 数据报以及提高 IP 数据报交付成功的机会,TCP/IP体系结构的网际层使用了网际控制报文协议(Internet Control Message Protocol,ICMP)

4.5.1 ICMP报文类型

主机或路由器使用 ICMP 来发送差错报告报文询问报文

  • 差错报告报文:用来向主机或路由器报告差错情况。
  • 询问报文:用来向主机或路由器询问情况。

ICMP 报文被封装在 IP 数据报中发送。


常见的 ICMP 差错报告报文有以下五种:

  • 终点不可达:当路由器或主机不能交付IP数据报时,就向源点发送重点不可达报文。具体可再根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种。

  • 源点抑制:当路由器或主机由于拥塞而丢弃 IP 数据报时,就向发送该 IP 数据报的源点发送源点抑制报文,使源点知道应当把 IP 数据报的发送速率放慢。

  • 时间超过(超时):当路由器收到一个目的 IP 地址不是自己的 IP 数据报时,会将其首部中生存时间TTL 字段的值减1。若结果不为0,则路由器将该数据报转发出去;若结果为0,路由器不但要丢弃该数据报,还要向发送该 IP 数据报的源点发送时间超过(超时)报文。另外,当终点在预先规定的时间内未能收到一个数据报的全部数据报分片时,就把已收到的数据报片都丢弃,也会向源点发送时间超过(超时)报文。

  • 参数问题:当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段的值发现首部在传送过程中有的字段(不是任意字段)出现了误码,就丢弃该数据报,并向发送该数据报的源点发送参数问题报文。

  • 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将IP数据报发送给另外的路由器,这样可以通过更好的路由到达目的主机。

以下情况不应发送ICMP差错报告报文

  • 对第一个分片的IP数据报片的所有后续数据报片都不发送ICMP差错报告报文。
  • 对具有多播地址的IP数据报都不发送ICMP差错报告报文。
  • 对具有特殊地址(例如127.0.0.0或0.0.0.0)的IP数据报不发送ICMP差错报告报文。

常用的ICMP询问报文有以下两种:

  • 回送请求和回答:由主机或路由器向一个特定的目的主机或路由器发出。收到此报文的主机或路由器必须给发送该报文的源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
  • 时间戳请求和回答:用来请求某个主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32比特的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。这种询问报文用来进行时钟同步和测量时间。

4.5.2 ICMP的典型应用

分组网间探测 PING 用来测试主机或路由器之间的连通性。

  • PING是TCP/IP体系结构的应用层直接使用网际层ICMP的一个例子,它并不使用运输层的TCP或UDP。
  • PING应用所使用的ICMP报文类型为回送请求和回答。

跟踪路由应用 traceroute,用于探测IP数据报从源主机到达目的主机要经过哪些路由器。

Note

在不同操作系统中,traceroute应用的命令和实现机制有所不同:

  • 在UNIX版本中,具体命令为“traceroute”,其在运输层使用UDP协议,在网络层使用ICMP报文类型只有差错报告报文。
  • 在Windows版本中,具体命令为“tracert”,其应用层直接使用网际层的ICMP协议,所使用的ICMP报文类型有回送请求和回答报文以及差错报告报文。

4.6 虚拟专用网和网络地址转换

4.6.1 虚拟专用网 VPN

利用公用的因特网作为本机构各专用网之间的通信载体,这样形成的网络又称为虚拟专用网。

给专用网内各主机配置的IP地址应该是该专用网所在机构可以自行分配的IP地址,这类IP地址仅在机构内部有效,称为专用地址(Private Address),不需要向因特网的管理机构申请。

规定的专用地址

[RFC 1918]规定了以下三个CIDR地址块中的地址作为专用地址:

  • 10.0.0.0~10.255.255.255(CIDR地址块10/8)
  • 172.16.0.0~172.31.255.255(CIDR地址块172.16/12)
  • 192.168.0.0~192.168.255.255(CIDR地址块192.168/16)

很显然,全世界可能有很多不同机构的专用网具有相同的专用IP地址,但这并不会引起麻烦,因为这些专用地址仅在机构内部使用。

在这个例子中,在北京的部门A专用网的主机 H1(IP 地址为 10.1.0.3)要向上海的部门B专用网中的主机 H2(IP 地址为 10.2.0.3)发送数据。

H1 首先生成一个 内部 IP 数据报,其源地址为 10.1.0.3,目的地址为 10.2.0.3。这个数据报只在公司内部有意义,不直接暴露在互联网上。

当数据报到达路由器 R1(位于北京)时,需要将整个内部 IP 数据报进行加密,以防止数据在公网上传输时被窃取或篡改;我们在在外层添加一个新的 IP 首部,形成一个“外部 IP 数据报”,其中:

  • 源地址为 R1 的公网 IP 106.38.0.1
  • 的地址为 R2 的公网 IP 101.80.0.1

封装后的数据报(即“加密的内部IP数据报 + 外部IP首部”)被发送到互联网。在整个传输过程中:

  • 数据内容是加密的,即使被截获也无法读取;
  • 外层 IP 地址仅用于路由,隐藏了内部网络结构;
  • 该数据包像普通 IP 报一样在互联网中转发,但只有目标端能解密。

当数据包到达上海的路由器 R2(VPN 的“隧道出口”)时:

  • R2 根据外层 IP 地址识别出这是发给自己的 VPN 流量;
  • 使用共享密钥对数据进行 解密
  • 去掉外层 IP 首部,恢复原始的内部 IP 数据报;
  • 将该数据报转发至目标主机 H2(10.2.0.3

本例所示的是同一机构内不同部门的内部网络所构成的VPN,又称为内联网VPN

有时,一个机构的虚拟专用网VPN需要某些外部机构(通常是合作伙伴)参加进来,这样的VPN就称为外联网VPN

4.6.2 网络地址转换

尽管因特网采用了无分类编址方法来减缓 IPv4 地址空间耗尽的速度,但由于因特网用户数量的急剧增长,特别是大量小型办公室和家庭网络接入因特网的需求不断增加,IPv4 地址空间即将耗尽的危险然仍没有解除(实际上,因特网号码分配管理局 IANN 于2011年2月3日宣布,IPv4 地址已经分配完毕)。

网络地址转换(Network Address Translation,NAT)技术于1994年被提出,用来缓解IPv4地址空间即将耗尽的问题。由于目前绝大多数基于TCP/IP协议栈的网络应用,都使用运输层的传输控制协议TCP或用户数据报协议UDP,为了更加有效地利用NAT路由器中的全球IP地址,现在常将NAT转换和运输层端口号结合使用。

这样就可以使内部专用网中使用专用地址的大量主机,共用NAT路由器上的1个全球 IP 地址,因而可以同时与因特网中的不同主机进行通信。

将NAT和运输层端口号结合使用,称为网络地址与端口号转换(Network Address and Port Translation,NAPT)

内网主机 A 和 B 如何通过 NAPT 路由器共享一个公网 IP 访问外网,NAPT 将各自的源端口映射为不同的公网端口并记录在转换表中

外网主机 C 的响应如何通过 NAPT 路由器查表还原目标地址,将数据包正确转发回对应的内网主机。

将内部私有 IP + 端口 替换为 公网 IP + 新端口;

尽管NAT(和NAPT)的出现在很大程度上缓解了IPv4地址资源紧张的局面,但NAT(和NAPT)对网络应用并不完全透明,会对某些网络应用产生影响。

NAT(和NAPT)的一个重要特点就是通信必须由专用网内部发起,因此拥有内部专用地址的主机不能直接充当因特网中的服务器。外网主机不能首先发起通信。

4.7 IP 多播

多播(Multicast,也称为组播)是一种实现“一对多”通信的技术,与传统单播“一对一”通信相比,多播可以极大地节省网络资源。

在因特网上进行的多播,称为IP多播

当多播组的成员数量很大时,采用多播方式可以显著地减少网络中各种资源的消耗。

那么要在因特网上实现IP多播,则因特网中的路由器需要解决哪些主要问题?

  • IP多播数据报的寻址
  • 多播路由选择协议

IP 多播地址与多播组

在IPv4中,D类地址被作为多播地址。多播地址只能用作目的地址,而不能用作源地址。

用每一个D类地址来标识一个多播组,使用同一个IP多播地址接收IP多播数据报的所有主机就构成了一个多播组

每个多播组的成员是可以随时变动的,一台主机可以随时加入或离开多播组。

多播组成员的数量和所在的地理位置也不受限制,一台主机可以属于几个多播组。

与IP数据报相同,IP多播数据报也是“尽最大努力交付”,不保证一定能够交付给多播组内的所有成员。

IPv4 多播地址的分类

IPv4多播地址又可分为预留的多播地址(永久多播地址)、全球范围可用的多播地址以及本地管理的多播地址[RFC 3330]。

IP多播可以分为以下两种:

  • 只在本局域网上进行的硬件多播。
  • 在因特网上进行的多播。

目前大部分主机都是通过局域网接入因特网的。因此,在因特网上进行多播的最后阶段,还是要把IP多播数据报在局域网上用硬件多播交付给多播组的所有成员。

4.7.1 局域网上的硬件多播

由于MAC地址有多播MAC地址这种类型,因此只要把IPv4多播地址映射成多播MAC地址,即可将IP多播数据报封装在局域网的MAC帧中,而MAC帧首部中的目的MAC地址字段的值,就设置为由IPv4多播地址映射成的多播MAC地址。

多播 MAC 地址

而对于 32 位 D 类 IP 地址来说,除去开头四位用来标识多播,剩余 28 位可以任意变化。也就是说 IP 多播地址映射为多播 MAC 的时候,映射关系并不是唯一的

因此收到IP多播数据报的主机还要在网际层利用软件进行过滤,把不是主机要接收的IP多播数据报丢弃。

在数据链路层和网际层对多播数据报进行过滤

4.7.2 在因特网上进行IP多播的两种协议

要在因特网上进行IP多播,就必须要考虑IP多播数据报经过多个多播路由器进行转发的问题。

多播路由器必须根据IP多播数据报首部中的IP多播地址,将其转发到有该多播组成员的局域网。

现在就很自然地引出了一个问题就是路由器是如何知道自己各接口所在局域网中是否有某个多播组的成员?于是我们引出协议 IGMP,其为 TCP/IP体系结构网际层中的协议,其作用是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(实际上是主机中的某个进程)加入或退出了某个多播组。

但是IGMP仅在本网络有效,使用IGMP并不能知道多播组所包含的成员数量,也不能知道多播组的成员都分布在哪些网络中。

仅使用IGMP并不能在因特网上进行IP多播。连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把IP多播数据报用最小的代价传送给所有的多播组成员,这就需要使用多播路由选择协议

多播路由选择协议的主要任务是:在多播路由器之间为每个多播组建立一个多播转发树。

  • 多播转发树连接多播源和所有拥有该多播组成员的路由器
  • IP多播数据报只要沿着多播转发树进行洪泛,就能被传送到所有拥有该多播组成员的多播路由器。
  • 之后,在多播路由器所直连的局域网内,多播路由器通过硬件多播,将IP多播数据报发送给该多播组的所有成员。

针对不同的多播组需要维护不同的多播转发树,而且必须动态地适应多播组成员的变化

即使某个主机不是任何多播组的成员,它也可以向任何多播组发送多播数据报。

为了覆盖多播组的所有成员,多播转发树可能要经过一些没有多播组成员的路由器(例如上图中的R2)

4.7.3 网际组管理协议 IGMP

IGMP有三种报文类型

  • 成员报告报文
  • 成员查询报文
  • 离开组报文

IGMP报文被封装在IP数据报中传送

当一台主机(如主机 A)希望加入某个 IP 多播组(例如 226.0.9.26)时,它会执行以下步骤:

  • 主机配置多播地址:主机 A 首先在本地配置或请求加入该多播组的 IP 地址(如 226.0.9.26)。系统根据映射规则自动生成对应的局域网多播 MAC 地址(如 01-00-5E-00-09-1A),并通知网卡监听该 MAC 地址。

  • 主机 A 向本地网络中的多播路由器发送一个 IGMP 成员报告报文(IGMP Membership Report)。该报文内容包含它希望加入的多播组地址(226.0.9.26),并封装在 IP 多播数据报中,目的 IP 地址为该多播组地址;再进一步封装在以太网帧中,目的 MAC 地址为对应的多播 MAC 地址。

  • 路由器接收与处理:多播路由器(如 R1)接收到该 IGMP 报文后,解析出主机 A 希望加入的多播组地址(226.0.9.26),并将其添加到自身的“多播组列表”中。这意味着路由器知道该子网中有主机对该多播组感兴趣,后续会转发发往该组的数据。

多播路由器通过 IGMP 成员查询报文 来监视本地网络中多播组成员的变化。默认情况下,路由器每隔 125 秒向其直连网络发送一个 IGMP 成员查询报文,该报文封装在 IP 多播数据报中(目的 IP 地址为 224.0.0.1),再封装到以太网帧中,目的 MAC 地址为 01-00-5E-00-00-01。

当主机收到这个查询报文后,会检查自己是否属于被查询的多播组。如果主机是某个组的成员(如 A 和 B 属于 226.0.9.26 组),它会在一定时间内(通常 10 秒内)响应一个 IGMP 成员报告,表明自己仍然在线并属于该组

路由器根据是否有主机响应来判断各多播组是否仍有成员。若某组长时间无响应,路由器将认为该组已无人加入,从而停止转发相关多播数据

Note

同一网络中的多播路由器可能不止一个,但 没有必要每个多播路由器都周期性地发送IGMP成员查询报文。只要在这些多播路由器中选择一个作为查询路由器,由查询路由器发送IGMP成员查询报文,而其他的多播路由器仅被动接收响应并更新自己的多播组列表即可。

一般选择 IP 地址最小的多播路由器作为查询路由器

IGMPv2 在 IGMPv1的基础上增加了一个可选项:当主机要退出某个多播组时,可主动发送一个离开组报文而不必等待多播路由器的查询。这样可使多播路由器能够更快地发现某个组有成员离开。

IGMP 离开组报文中的 IP 多播数据报的目的地址是固定为 224.0.0.2

224.0.0.2 为特殊的IP多播地址,在本网络中的所有多播路由器的网际层都会接受该多播数据报。

当有成员离开该多播组,暂时不删除该多播组,立即发送针对该多播组的特殊的IGMP成员查询报文,探测该多播组是否还有其他成员。

4.7.4 多播路由选择协议

多播路由选择协议的主要任务是:在多播路由器之间为每个多播组建立一个多播转发树

目前有以下两种方法来构建多播转发树:

  • 基于源树(Source-Base Tree)多播路由选择
  • 组共享树(Group-Shared Tree)多播路由选择

下面介绍基于源树多播路由选择。

基于源树的多播路由选择的最典型算法是反向路径多播(Reverse Path Multicasting,RPM)算法。

RPM算法包含以下两个步骤:

  • 利用反向路径广播(Reverse Path Broadcasting,RPB)算法建立一个广播转发树。
  • 利用剪枝(Pruning)算法,剪除广播转发树中的下游非成员路由器,获得一个多播转发树。

利用洪泛法建立广播转发树,只能处理无环路网络

利用反向路径广播RPB算法生成的广播转发树,不会存在环路,因此可以避免广播分组在环路中兜圈。

RPB算法的要点是:每一台路由器在收到一个广播分组时,先检查该广播分组是否是从源点经最短路径传送来的。

  • 若是,本路由器就从自己除刚才接收该广播分组的接口的所有其他接口转发该广播分组。
  • 否则,丢弃该广播分组。

如果本路由器有好几个邻居路由器都处在到源点的最短路径上,也就是存在好几条同样长度的最短路径,那么只能选取一条最短路径。选取的规则是这几条最短路径中的邻居路由器的IP地址最小的那条最短路径。

然后对那些没有多播组成员的叶子路由器从广播转发树中剪除,从而得到多播转发树。


下面介绍组共享树多播路由选择

该方法在每个多播组中指定一个核心(core)路由器,以该路由器为根,构建一棵连接所有成员路由器的生成树,作为多播转发树。除了核心路由器外,其他成员路由器都会向自己所属多播组的核心路由器发送加入报文。这些加入报文通过单播方式逐跳转发,直到到达已属于该多播生成树的某个节点或直接抵达核心路由器。

数据先以单播方式发往核心,再由核心在共享树上洪泛转发,实现高效、可扩展的多播通信。


目前还没有在整个因特网范围使用的多播路由选择协议,在此不多赘述。

4.8 移动 IP 技术

移动IP(Mobile IP)使得移动主机在各网络之间漫游时,仍然能够保持其原来的IP地址不变。

下面有一些概念需要阐述一下

  • 每个移动主机都有一个默认连接的网络或初始申请接入的网络,称为归属网络(Home Network)
  • 移动主机在归属网络中的IP地址在其整个移动通信过程中是始终不变的,因此称为永久地址(Permanent Address)或归属地址(Home Address)
  • 在归属网络中,代表移动主机执行移动管理功能的实体称为归属代理(Home Agent)。归属代理通常就是连接在归属网络上的路由器,然而它作为代理的特定功能则是在网络层完成的。

  • 移动主机当前漫游所在的网络称为外地网络(Foreign Network)或被访网络(Visited Network)。
  • 在外地网络中,帮助移动主机执行移动管理功能的实体称为外地代理(Foreign Agent)
  • 外地代理通常就是连接在外地网络上的路由器。外地代理会为移动主机提供一个临时使用的属于外地网络的转交地址(Care-of Address)

当移动主机到外地网络的时候,通过自己的代理发现协议,与外地代理建立联系,并从外地代理获得一个属于该外地网络的转交地址(例如175.1.1.1/16),同时向外地代理注册自己的永久地址和归属代理地址。

外地代理将移动主机A的永久地址记录在自己的注册表中,并向移动主机的归属代理注册该移动主机的转交地址。

归属代理会将移动主机A的转交地址记录下来,此后归属代理会代替移动主机接收所有发送给该移动主机的IP数据报,并利用IP隧道技术将这些数据报转发给外地网络中的移动主机。

那么在数据链路层,发送给移动主机的 IP 数据报怎么到相应的 MAC 地址呢?(因为此时移动主机已经不在这个网络中了)

  • 当移动主机不在归属网络时,归属代理会以自己的MAC地址应答所有对该移动主机的ARP请求,即归属代理采用ARP代理技术
  • 为了使归属网络中其他各主机和路由器能够尽快更新各自的ARP高速缓存,归属代理还会主动发送ARP广播,并声称自己是该移动主机。这样,所有发送给该移动主机的IP数据报都会发送给归属代理。

此时如果固定主机 B 想要给移动主机发送 IP 数据报

注意当外地代理和移动主机不是同一台设备时,转交地址实际上是外地代理的地址而不是移动主机的地址,转交地址既不会作为移动主机发送IP数据报的源地址,也不会作为移动主机所接收的IP数据报的目的地址。转交地址仅仅是归属代理到外地代理的IP隧道的出口地址

所有使用同一外地代理的移动主机都可以共享同一个转交地址。

当外地代理从IP隧道中收到并解封出原IP数据报时,会在自己的代理注册表中查找移动主机的永久地址所对应的MAC地址,并将该数据报封装到目的地址为该MAC地址的帧中发送给移动主机。


移动主机想要向固定主机发送 IP 数据报的时候,就不需要经过归属网络转发了,直接通过外地网路的路由器进行转发。

移动主机可以将外地代理作为自己的默认路由器,也可以通过代理发现协议从外地代理获取外地网络中其他路由器的地址,并将其设置为自己的默认路由器


当移动主机接入外地网络时,若其自身获取一个临时IP地址并直接用作转交地址(Care-of Address),而不依赖外部的外地代理来接收数据包,则该地址称为同址转交地址(Co-located Care-of Address)

三角形路由问题

即使固定主机与移动主机之间存在更优的直接路径,数据仍需先经归属代理中转,造成路由低效。为解决该问题,可为固定主机配置一个通信代理,使其直接从归属代理获取移动主机的转交地址,并通过该地址直接建立IP隧道发送数据,避免绕行归属代理,提升效率。但此方法需固定主机配合配置,破坏了透明性,增加了复杂性。

4.9 IPv6

4.9.1 IPv6 数据报的首部

由于IPv6地址的长度扩展到了128比特,因此使得IPv6数据报基本首部的长度反而增大到了40字节,比IPv4数据报首部固定部分的长度(20字节)增大了20字节。

Warning

所有的扩展首部并不属于IPv6数据报的首部,它们与其后面的数据部分合起来构成有效载荷(payload,也称为净负荷)。

4.9.2 IPv6 地址

在IPv6地址的冒号十六进制记法的基础上,再使用“左侧零”省略和“连续零”压缩,可使IPv6地址的表示更加简洁。

  • “左侧零”省略是指两个冒号间的十六进制数中最前面的一串0可以省略不写。
  • “连续零”压缩是指一连串连续的0可以用一对冒号取代。在一个IPv6地址中只能使用一次“连续零”压缩,否则会导致歧义。

IPv6数据报的目的地址有三种基本类型:

  • 单播(unicast):传统的点对点通信
  • 多播(multicast):一点对多点的通信。数据报发送到一组计算机中的每一个。IPv6没有采用广播的术语,而将广播看作多播的一个特例。
  • 任播(anycast):这是IPv6新增的一种类型。任播的终点是一组计算机,但数据报只交付其中的一个,通常是按照路由算法得出的距离最近的一个。

[RFC 4291]对IPv6地址进行了分类:

  • 未指明地址:128个比特为“全0”的地址,可缩写为两个冒号“::”。该地址不能用作目的地址,只能用于还没有配置到一个标准IPv6地址的主机用作源地址。
  • 最低比特为1,其余127个比特为“全0”,即0:0:0:0:0:0:0:1,可缩写为::1。该地址的作用与IPv4的环回地址相同。
  • 最高8比特为“全1”的地址,可记为FF00::/8。IPv6多播地址的功能与IPv4多播地址相同。
  • 最高10比特为1111111010的地址,可记为FE80::/10。
  • 全球单播地址:IPv6全球单播地址采用三级结构,这是为了使路由器可以更快地查找路由。

4.9.3 从IPv4向IPv6过渡

两种由IPv4向IPv6过渡的策略:

  • 使用双协议栈
  • 使用隧道技术

双协议栈(Dual Stack)是指在完全过渡到IPv6之前,使一部分主机或路由器装有IPv4和IPv6两套协议栈。

双协议栈主机或路由器既可以和IPv6系统通信,又可以和IPv4系统通信。

双协议栈主机或路由器记为IPv6/IPv4,表明它具有一个IPv6地址和一个IPv4地址。


隧道技术(Tunneling)的核心思想是:当IPv6数据报要进入IPv4网络时,将IPv6数据报重新封装成IPv4数据报,即整个IPv6数据报成为IPv4数据报的数据载荷。

封装有IPv6数据报的IPv4数据报在IPv4网络中传输。当IPv4数据报要离开IPv4网络时,再将其数据载荷(即原来的IPv6数据报)取出并转发到IPv6网络。

要使双协议栈路由器R4知道IPv4数据报的数据载荷是IPv6数据报,则IPv4数据报首部中协议字段的值必须设置为41。

4.10 SDN 体系结构

在SDN体系结构中,路由器中的路由软件都不存在了。因此,路由器之间不再交换路由信息。

在控制层面中,有一个在逻辑上集中的远程控制器。逻辑上集中的远程控制器在物理上可由不同地点的多个服务器组成。

远程控制器掌握各主机和整个网络的状态,远程控制器能够为每一个分组计算出最佳的路由。远程控制器为每一个路由器生成其正确的转发表。

SDN这种新型网络体系结构的核心思想:把网络的控制层面和数据层面分离,而让控制层面利用软件来控制数据层面中的许多设备。

这种方法可以用于一些大型数据中心之间的广域网,就可以提高网络的运行效率,还可以获得更好的经济效益

Review

Answer

C,路由器可以完成不同网络协议的互联,比如说连接 IPv4 与 IPv6 网络

Answer

D,192.168.2.0/25 和 192.168.2.128 构成超网 192.168.2.0/24 下一条是 192.168.1.2

Answer

D 可以将默认网关理解为到当前主机最近的路由器的端口地址。定义是主机用于将数据包发送到本地子网以外目的网络时所使用的下一跳路由器的 IP 地址

Answer

B 注意 MTU 的定义,这个是包括首部的最大载荷。

Answer

B,这道题就很好地展示了 RIP 坏消息传得慢的缺点

Answer

A

评论区

对你有帮助的话请给我个赞和 star => GitHub stars
欢迎跟我探讨!!!