> For the complete documentation index, see [llms.txt](https://doraemonzzz.gitbook.io/cs-144-introduction-to-computer-networking-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doraemonzzz.gitbook.io/cs-144-introduction-to-computer-networking-notes/unit3-packet-switching/3.14.md).

# 小结

## 回顾

在这个单元中，你学到了很多关于分组交换的知识，这是一个紧凑的单元。

我们首先介绍了为什么现代网络，包括互联网是建立在分组交换的基础上。分组交换很简单，因为每个分组都是一个独立的数据单位，它携带着到达目的地所需的信息。分组交换很高效，因为它在有工作要做的时候就会保持链路的繁忙，而不是为每个用户或应用保留专门的容量。分组交换可能有助于网络从故障中快速恢复，每个路由器中没有流状态的简单转发模式使快速路由链路变得更容易。

接下来，我们深入探讨了分组交换的一些结果，这使我们踏上了一个旅程，其中包含的数学知识比你在本课程的任何其他单元中看到的都要多。分组交换动态决定了互联网的许多时间和性能特征，因此你真的非常需要对分组动态有一个深刻的理解，主要的数学思想并不复杂，现在值得掌握它们，以便你能建立一个强大的直觉。

你现在知道为什么两个分组在两个相同的终端主机之间旅行时可能会遇到不同的延迟，而它们在每条链路上花费的时间是一样的。这是一个简单的几何结构，它可以让你直观地了解发生了什么。它告诉我们为什么路由器有缓冲区，并让我们思考缓冲区应该有多大。 分组交换网络可以保证每个流收到的速率，甚至约束分组从网络一端到另一端的延迟，这些都需要仔细思考，如果花了很长时间来掌握它，请不要担心，因为真的有一些困难的概念，但它们很重要，如果你能理解分组交换网络如何提供速率和延迟保证，那么你就对分组交换的工作方式有了深刻的理解。

## 你学到什么

你在本单元学到了很多东西。

首先是排队延迟和端到端延迟。你了解到，一个分组在两个终端主机之间传输所需的时间由三个部分决定。首先，我们必须依次在每个链路上传输分组，将分组写入每个链路所需的时间由写入每个比特的时间乘以分组中的比特数决定，我们称之为分组延迟。传播延迟是由接近光速的传播速度和比特移动的距离决定的，确保传播延迟和分组延迟之间的区别在你的头脑中是清楚的，因为它是一个经常引起混淆的原因。 因为互联网使用分组交换，路由器必须有缓冲器在拥堵时保存分组，所以排队延迟取决于网络现在有多繁忙。

实时流媒体应用，如skype、youtube和netflix，需要向我们提供连续的实时语音和视频。所有的流媒体应用都使用一个回放缓冲器来平滑分组延迟的变化，这样他们就可以向用户播放视频和音频，而不必在中间暂停和等待新的数据。你学会了如何设计一个回放缓冲器，你也学会了为什么互联网不可能完全避免分组的暂停。如果你完全理解了回放缓冲器的设计，那么你就对互联网上的分组动态有了很好的理解。

路由器中的排队延迟是一个复杂的话题，排队论在数学上非常丰富，你可以就这个话题上课和阅读很多书籍。一般来说，具有复杂随机到达过程的队列是复杂的野兽，一个由一系列路由器队列组成的网络，有许多来自随机用户和不同应用的计算流，是很难理解分析封闭形式的，但我们在这里的目标要少得多，我们希望你对队列如何演变以及如何熟悉其动态发展有一些直觉。路由器 队列保存着已经到达但尚未出发的分组，如果我们能够跟踪到达和出发，那么我们就可以知道队列有多长，以及到达的分组必须等待多长时间。确定性队列模型是队列中分组的几何表示，让我们直观地看到队列是如何随时间演变的，使用这种几何模型来帮助你建立数学工作的直觉是很好的做法。

确定性队列模型有助于我们理解速率保证，有时我们希望某个特定的分组流能够得到网络容量的特定部分，例如，斯坦福大学可能与At公司签订了一份合同，保证其流量将始终得到每秒至少10千兆的服务。这很容易做到，我们只需将其与每秒10千兆的链路连接起来；也可以通过将所有斯坦福大学的分组放入他们路由器的队列中来实现这一保证，确保他们有每秒10千兆的服务。如果所有分组的长度相同，这将是非常简单的，但不同的分组有不同的长度，所以我们需要考虑到每个分组的长度，这就是加权排队的作用，它告诉我们在路由器提示中提供分组的正确顺序，以便考虑到单个分组的长度，同样的想法可以扩展到提供延迟保证。

现在我们知道了如何控制队列服务的速率，我们可以控制分组在队列中的最大延迟，这是队列的长度除以速率，我们需要做的就是限制队列的长度，这样我们就可以限制延迟。

正如你所看到的，以太网交换机和互联网路由器的工作方式非常相似，当一个分组到达时，它在其转发表中查找目标地址，如果它找到该地址，它将分组转发到其目的地，如果出站链路目前繁忙，则将其保存在缓冲区内。以太网交换机和互联网路由器的不同之处在于它们使用的地址以及它们如何组织转发表，当然，互联网路由器会递减TTL字段以防止循环，但在高层次上，分组交换机的操作方式大致相同。

这部分的内容总结如下：

* 排队延迟和端到端延迟；
* 为什么流媒体应用要使用播放缓冲器；
* 一个简单的确定性排队模型；
* 速率保证；
* 延迟保证；
* 分组是如何被交换和转发的；

## 这些将知识将在哪些方面帮助你

你在本单元学到的东西将在几个方面帮助你：

你可以通过描述网络、链路的速率和长度以及分组的长度来计算出分组端到端延迟的固定部分，你可以通过勾画队列来可视化可变排队延迟，这是网络中端到端延迟变化的最常见原因。你可以解释分组交换器是如何工作的，如以太网交换机或互联网路由器，你可以为实时应用程序设计一个回放缓冲器，你可以解释穿越包交换器网络的流量如何以最小速率传送，你可以解释单个分组如何从端到端具有有界延迟。

小结：

1. 端到端延迟：固定成分。
2. 端到端延迟：可变成分。
3. 分组交换机如何工作。
4. 为实时应用设计播放缓冲区。
5. 解释如何实现速率和延迟保证。
