计算机网络(四)

第4章 网络层:数据平面

在网络中的每一台主机和路由器中都有一个网络层部分。

网络层能够被分解为两个相互作用的部分,即 数据平面控制平面

  • 数据平面功能: 即网络中每台 路由器 的功能,该数据平面功能决定到达路由器输入链路之一的数据报(即网络层分组)如何转发到该路由器的输出链路之一。
  • 控制平面功能: 即网络范围逻辑,控制数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式。

4.1 网络层概述

下图显示了一个简单网络,其中有 H1 和 H2 两台主机,在 H1 与 H2 之间的路径上有几台路由器。假设 H1 正在向 H2 发送信息。H1 中的网络层取得来自于 H1 运输层的报文段,将每个报文段封装成一个数据报,然后向相邻路由器 R1 发送该数据报。在接收方主机 H2,网络层接收接收来自相邻路由器 R2 的数据报,提取出运输层报文段,并将其向上交付给 H2 的运输层。

4.1.1 转发和路由选择:数据平面和控制平面

网络层的作用表面上看就是把分组从一台发送主机移动到另一台接收主机。为此,需要两种重要的网络层功能:

  • 转发(forwarding)。将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作。

    转发发生的事件尺度很短(通常为几纳秒),因此通常用硬件来实现。

  • 路由选择(routing)。确定分组从源到目的地所采用的端到端路径的网络范围处理过程。

    路由选择发生的时间尺度长的多(通常为几秒),因此通常用软件来实现。

每台网络路由器中有一个关键元素是它的 转发表(forwarding table) 。路由器检查到达分组首部的一个或多个字段值,进而使用这些首部值在其转发表中索引,通过这种方法转发分组。

例如,一个首部字段值为 0111 的分组到达路由器。该路由器在它的分组转发表中索引,并确定该分组的输出链路接口是接口 2。

1. 控制平面:传统的方法

那么路由表如何建立起来?

最简单的方法可以由路由器的管理员们彼此交换信息,并由它们来自行配置路由表。这个方案可行,但是人工配置慢,不容易反映出网络中实时的变化且容易出错。所以,需要网络中的路由器遵循某种路由选择协议/算法,每台路由器的路由选择协议之间会进行通信,完成管理员的要做的事。

2. 控制平面:SDN 方法

控制平面路由选择功能与物理的路由器是分离的,即路由选择设备仅执行转发,而远程控制器计算并分发转发表。

路由器和远程控制器是如何通信的?

通过交换包含转发表和其他路由选择信息的报文。

下图控制平面方法是 软件定义网络(Software-Defined Networking,SDN) 的本质,因为计算转发发表并与路由器交互的控制器是用软件实现的,故网络是“软件定义”的。

4.1.2 网络服务模型

网络服务模型(network service model) 定义了分组在发送与接收端系统之间的端到端运输特性。

网络层能提供的服务可能有:

  • 确保交付。
  • 具有时延上界的确保交付。
  • 有序分组交付。
  • 确保最小带宽。这种网络层服务模仿在发送端和接收主机之间一条特定比特率的传输链路的行为。只要发送主机以低于特定比特率的速率传输比特(作为分组的组成部分),则所有分组最终会交付到目的主机。
  • 安全性。网络层能够在源加密所有数据报并在目的地解密这些分组,从而对所有运输层报文段提供机密性。

尽管有这些研发良好的供选方案,但因特网的尽力而为服务模型与适当带宽供给相结合已被证明超过“足够好”,能够用于大量的应用,包括诸如 Netflix、IP 语音和视频等流式视频服务,以及诸如 Skype 和 Facetime 等实时会议应用。

4.2 路由器工作原理

关注网络层的转发功能,下图显示了一个通用路由器体系结构的总体视图,其中标识了一台路由器的 4 个组件。

这里的“端口”指路由器的物理输入和输出接口。

  • 输入端口。
    • 输入端口的线路端接 功能与链路层处理实现了用于各个输入链路的物理层和链路层。
    • 查找功能。通过查询转发表决定路由器的输出端口,到达的分组通过路由器的交换结构转发到输出端口。
  • 交换结构。将路由器的输入端口连接到它的输出端口。
  • 输出端口。输出端口存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组。
  • 路由选择处理器。路由选择处理器执行控制平面功能。这些控制功能包括
    • 路由选择协议
    • 对上线或下线的连接链路进行响应
    • 与远程控制器通信(在 SDN 场合)
    • 执行网络管理能力

路由器的输入端口、输出端口和交换结构几乎总是用硬件实现。而路由选择处理器的控制平面功能通常用软件实现。

下面假设转发决定仅基于分组的目的地址,而非基于通用的分组首部字段。

4.2.1 输入端口处理和基于目的地转发

输入端口的线路端接 功能与链路层处理实现了用于各个输入链路的物理层和链路层。

对于 32 比特的 IP 地址,因为有超过 40 亿个可能的地址,这种路由表的设置不可行。

可以使用如下方法:假设路由器具有 4 条链路,编号 0 ~ 3

该路由器使用 最长前缀匹配规则(longest prefix matching rule)

硬件逻辑上讲,表查找是简单的,硬件逻辑只是搜索转发表查找最长前缀匹配。但在吉比特速率下,这种查找必须在纳秒级执行。因此,不仅必须要用硬件执行查找,而且需要对大型转发表使用超出简单线性搜索的技术。同时必须对内存访问时间给与特别关注,这导致用嵌入式片上 DRAM 和更快的 SRAM(用作一种 DRAM 缓存)内存来设计。

如果其他来自其它端口的分组正在使用该交换结构,一个分组可能会在进入交换结构时被暂时阻塞。一个被阻塞的分组必须在输入端口处排队,并等待稍后阻塞、排队与调度。输入端口除了“查找”外,还需要①出现物理层和链路层处理;②必须检查分组的版本号、检验和以及寿命字段,并且重写后两个字段;③必须更新用于网络管理的计数器(如接收到的 IP 数据报的数目)。

4.2.2 交换

交换可以用许多方式完成:

  • 经内存交换 。交换是在 CPU (路由选择处理器)的直接控制下完成的。许多现代路由器通过内存进行交换。与早期路由器的一个主要差别是,目的地址的查找和将分组存储(交换)进适当的内存存储位置是由输入线路卡来处理的。
  • 经总线交换 。分组在总线上传送到输出端口。该分组能由所有输出端口收到,但只有与该标签匹配的端口才能保存该分组。如果多个分组同时到达路由器,每个位于不同的输出端口,除了一个分组外所有其他分组必须等待,因为一次只有一个分组能够跨越总线。
  • 经互联网络交换 。当某个分组到达端口 A ,需要转发到端口 Y 时,交换机控制器闭合总线 A 和 Y 交叉部位的交叉点,然后端口 A 在其总线上发送该分组,该分组仅由总线 Y 接收。注意到来自端口 B 的一个分组在同一时间能够转发到端口 X,因为 A 到 Y 和 B 到 X 的分组使用不同的输入和输出总线。与前面两种交换方式不同,纵横式网络能够并行转发多个分组。纵横式交换机是 非阻塞的(not-blocking) 。然而,如果来自两个不同输入端口的两个分组其目的地为相同的输出端口,则一个分组必须在输入端等待就,因为在某个时刻经给定总线仅能够发送一个分组。

4.2.3 输出端口处理

4.2.4 何处出现排队

1. 输入排队

只要输出端口不同,多个分组可以被并行传送。然而,如果位于两个输入队列前端的两个分组是发往同一输出队列的,则其中的一个分组将被阻塞,且必须在输入队列中等待,因为交换结构一次只能传送一个分组到某个指定端口。

2. 输出排队

如果输出端口的排队分组数量能够变得足够大,耗尽输出端口的可用内存。

当没有足够的内存来缓存一个入分组时,就必须做出决定:①要么丢弃到达的分组(弃尾);②删除一个或多个已排队的分组为新来的分组腾出空间。

上图下半部分,又有两个新分组已到达交换机的入端,这些分组之一又要发往最上侧得输出端口。这样得后果是,输出端口的 分组调度(packet scheduler) 在这些排队分组中选择一个分组来传输。

4.2.5 分组调度

1. 先进先出

FIFO(也称先来先服务,FCFS)。

2. 优先权排队

分组 1 先到,然后分组 2 和 3 同时到,分组 4 在分组 2 发送的时候到达,分组 5 最后到。传输顺序如下:

非抢占式优先权排队(non-preemptive priority queuing) 规则下,一旦分组开始传输,就不能打断。

3. 循环和加权公平排队

几个类交替传送。

保持工作排队(work-conserving queuing) 规则在有(任何类的)分组排队等待传输时,不允许链路保持空闲。

如下图,分组 1、2 和 4 属于第一类,分组 3 和 5 属于第二类。分组 1 已到达输出队列就开始传输。分组 2 和 3 在 1 传输过程中到达,因此排队等待传输。在分组 1 传输后,链路调度器查找类 2 的分组,因此传输分组 3 。分组3 传完后,调度器查找类 1 的分组,因此传输分组 2。在分组 2 传输完后,分组 4 是唯一排队的分组,因此在分组 2 后立即传输分组 4。

一种通用形式的循环排队已经广泛地实现在路由器中,他就是所谓的 加权公平排队(Weighted Fair Queuing,WFQ) 规则。

WFQ 与循环排队的不同之处在于,每个类在任何时间间隔内可能收到不同数量的服务。每个类被分配一个权 wiw_i 。第 ii 类将确保接收到的服务部分等于 wi/(wj)w_i/(\sum{w_j})

4.3 网际协议:IPv4、寻址、IPv6 及其他

网际协议(IP),今天有两个版本的 IP 正在使用,IPv4 和 IPv6。

4.3.1 IPv4 数据报格式

网络层分组被称为 数据报

IPv4 数据报中的关键字段如下:

  • 版本(号)。
  • 首部长度。
  • 服务类型。
  • 数据报长度。
  • 标识、标志、片偏移。
  • 协议。
  • 首部检验和。
  • 源和目的 IP 地址。
  • 选项。
  • 数据(有效载荷)。

子网的划分是重点!!!我不熟练,考试吃大亏。

  1. 等长划分:根据需要划分的子网的个数和子网中的主机数,选择掩码的长度,新增的分配位排列组合(比如选择掩码最低 N 位,可以划分出 2N2^N 个等长的子网)。
  2. 不等长划分:首先根据要划分的子网个数和子网中的主机数选择掩码长度。然后一个一个划分子网,从最小的开始,根据子网可分配的 ip 范围划分,注意不要重复即可。(一般题目都是成 2 的倍数给出子网的主机数,方便成块分配和不浪费 ip 。)

我记录到这里就去考试了,之后有机会的话自己再记录一些,为了内容的完整性,我先贴上窝工颜牛🐂(我男神)的讲座 PPT (这里声明我是转载颜🐂的原创,无私的颜🐂将其公开给了窝工学子,精彩的内容也分享给大家),只能说对比之下,人家的叫做概括(用简炼的语言让人理解计算机网络),我写的和摘抄差不多。

第5章 网络层:控制平面

第6章 链路层和局域网

通过重复数据一次或两次,得到检错码和纠错码

二维也是在每行每列加入一个校验位

英文缩写

感谢颜🐂。

再次为颜🐂呐喊:男神!