分组交换网中的延时,丢包和吞吐量

  • 因特网能够看成是一种基础设施,该基础设施为运行在端 系统上的分布式应用提供服务。
  • 在理想情况下,因特网服务能够在任意两个端系统之间无延时或丢包地发送 / 接收数据。
  • 事实上,计算机网络必定要限制在端系统之间的吞吐量(每秒能够传送的 数据量),在端系统之间引入时延,而且实际上也会丢失分组。
  • 现实世界的物理定律引入的时延、丢包并限制吞吐量是不可避免的。
  • 需要去将这些可能出现的问题进行基础量化工作,为排查错误提供了很好的数据支持。

    1.4.1 Overview of Delay in Packet-Switched Networks

    分组交换网中的时延概述

  • 分组从一台主机(源)出发,通过一系列路由器传输,在另一台主机(目的地)中结束它的历程。

  • 当分组从一个节点(主机或路由器)沿着这条路径到后继节 点(主机或路由器),该分组在沿途的每个节点经受了几种不同类型的时延。
  1. 节点处理时延 (nodal processing delay)
  2. 排队时延 (queuing delay)
  3. 传输时延 (transmission delay)
  4. 传播时延(propagation delay)
  • 这些加起来总的是节点总时延 (total nodal delay)
  • 网络应用受网络延时的影响很大 (游戏,Web 浏览等)

    时延类型

    image.png

  • 作为源和目的地之间的端到端路由的一 部分,一个分组从上游节点通过路由器A向路由器B发送。

  • 目标是在路由器A刻 画出节点时延。
  • 路由器A具有通往路由器B的出链路。
  • 该链路前面有一个 队列(也称为缓存)。
  • 当分组从上游 节点到达路由器A时,路由器A检查 该分组的首部以决定它的适当岀链路, 并将该分组导向该链路。
  • 在这个例子 中,对该分组的出链路是通向路由器 B的那条链路。
  • 仅当在该链路没有其 他分组正在传输并且没有其他分组排 在该队列前面时,才能在这条链路上 传输该分组。
  • 如果该链路当前正繁忙或有其他分组已经在该链路上排队,则新到达的分组 将加入排队。

1. 处理时延

  • 检查分组首部和决定将该分组导向何处所需要的时间是处理时延的一部分。
  • 处理时延 也能够包括其他因素,如检查比特级别的差错所需要的时间,该差错岀现在从上游节点向 路由器A传输这些分组比特的过程中。
  • 高速路由器的处理时延通常是微秒或更低的数量 级。
  • 。在这种节点处理之后,路由器将该分组引向通往路由器B链路之前的队列。

2. 排队时延

  • 在队列中,当分组在链路上等待传输时,它经受排队时延。
  • 一个特定分组的排队时延长 度将取决于先期到达的正在排队等待向链路传输的分组数量。
  • 如果该队列是空的,并且当前 没有其他分组正在传输,则该分组的排队时延为0。
  • 另一方面,如果流量很大,并且许多其 他分组也在等待传输,该排队时延将很长。
  • 到达分组期待发现的分组数量 是到达该队列的流量的强度和性质的函数。
  • 实际的排队时延可以是毫秒到微秒量级。

3. 传输时延

  • 假定分组以先到先服务方式传输— 这在分组交换网中是常见的方式,仅当所有已经 到达的分组被传输后,才能传输刚到达的分组。
  • 用 L 比特表示该分组的长度,用R bps (即b/s)表示从路由器A到路由器B的链路传输速率。
    • 对于一条10Mbps的以太网 链路,速率尺二10Mbps;对于100Mbps的以太网链路,速率R = 100Mbpso
    • 传输时延是 L / R。
  • 将所有分组的比特推向链路(即传输,或者说发射)所需要的时间。
  • 实际的传输 时延通常在毫秒到微秒量级。

4. 传播时延

  • 一旦一个比特被推向链路,该比特需要向路由器B传播。
  • 从该链路的起点到路由器B 传播所需要的时间是传播时延。
  • 该比特以该链路的传播速率传播。
  • 该传播速率取决于该链 路的物理媒体(即光纤、双绞铜线等),其速率范围是1.4 Delay, Loss, and Throughput in Packet - Switched Networks - 图2 ~ 1.4 Delay, Loss, and Throughput in Packet - Switched Networks - 图3 (等于或略小于光速)
  • 该传播时延等于两台路由器之间的距离除以传播速率。
  • 即传播时延是 d/s, 其中 d 是路由器 A 和路由器 B 之间的距离,s 是该链路的传播速率。
  • 一旦该分组的最后一个比 特传播到节点B, 该比特及前面的所有比特被存储于路由器B。
  • 整个过程将随着路由器B 执行转发而持续下去。
  • 在广域网中,传播时延为毫秒量级。

5. 传输时延和传播时延的比较

  • 传输时延是路由器推出分组所需要的时间,它是分组长度和链路传输速率的函 数,而与两台路由器之间的距离无关。
  • 传播时延是一个比特从一台路由器传播 到另一台路由器所需要的时间,它是两台路由器之间距离的函数,而与分组长度或链路传 输速率无关。

  • d(nodal) = d(proc) + d(queue) + d(trans) + d(prop)

  • 不同情况下,这些延迟都有可能不同。

1.4.2 Queuing Delay and Packet Loss

排队时延和丢包

排队时延

  • 与其他延时不同的是,排队延时对不同的分组产生的情况也有可能不同。
  • 排队延时取决于流量到达该队列的速率、链路的传输速率和到达流量的性质,即流量是周期性到达还是以突发形式到达。

  • a 表示分组到达队列的平均速率(a的单位是分组 / 秒,即pkt/s)

  • R 是传输速率,即从队列中推出比特的速率(以bps即b/s为单 位)
  • 假定所有分组都是由 L 比特组成的
  • 则比特到达队列的平均速率是:La bps
  • 假定该队列非常大,因此它基本能容纳无限数量的比特
  • 比率 La / R 被称为 流量强度 (traffic intensity)
    • 如果 La / R > 1, 比特到达队列的平均速率超过从该队列传输岀去的速率
    • 该队列趋向于无限增加,并且排队时延将趋向无穷大
  • 设计系统时,流量强度不能大于1

  • 当 La / R <= 1,到达流量的性质影响排队时延。

  • 如果分组 周期性到达,即每 L / R 秒到达一个分组,则每个分组将到达一个空队列中,不会有排队时延。
  • 如果分组以突发形式到达而不是周期性到达,则可能会有很大的平均排队时延。
  • 假定每 (L/R)N 秒同时到达 N 个分组。
  • 则传输的第一个分组没有排队时延; 传输的第二个分组就有L / R秒的排队时延。
  • 第 n 个传输的分组具有 (n-1)L/R 秒的排队延时。

  • 通常到达队列的过程是随机的,即到达并不遵循任何模式,分组之间的时间间隔是随机的。

  • La/R 通常不能准确地表示时延地统计量;但是能够直观地了解排队时延地范围。
  • 如果流量强度接近于0,则几乎没有分组到达并且到达间隔很大,那么到达的分组将 不可能在队列中发现别的分组。所以,平均排队时延将接近0。
  • 当流量强度接 近1时,当到达速率超过传输能力(由于分组到达速率的波动)时将存在时间间隔,在这些时段中将形成队列。当到达速率小于传输能力时, 队列的长度将缩短。
  • 随着流量强度接近1, 平均排队长度变得越来越长。

image.png

  • 随着 流量强度接近于1,平均排队时延迅速增加。
  • 该强度的少量增加将导致时延大比例增加。

丢包

  • 一条链路前的队列仅有有限的容量,尽管排队容量极大地依赖于路由器设计和成本。
  • 该排队容量是 有限的,随着流量强度接近1,排队时延并不真正趋向无穷大。
  • 到达的分组将发现 一个满的队列
  • 由于没有地方存储这个分组,路由器将丢弃 (drop) 该分组或称为该分组被丢失 (lost)。
  • 当流量强度大于1时,队列中的这种溢出也能够在用于 Java 队列程序中。
  • 从端系统的角度看,上述丢包现象看起来是一个分组已经传输到网络核心,但它绝不会从网络发送到目的地。
  • 分组丢失的比例随着流量强度增加而增加。
  • 一个节点的性 能常常不仅根据时延来度量,而且根据丢包的概率来度量。
  • 丢失的分组可能基于端到端的原则重传,以确保所有的数据最终从源传送到了目的地。

1.4.3 End-to-End Delay

端到端时延

  • 假定在源主机和目的主机之间有 N-1台路由器
  • 要假设该网络此时是无拥塞的(因此排队时延是微不足道的)
  • 在每台路由器 和源主机上的处理时延是 d(proc)
  • 每台路由器和源主机的输出速率是 R bps
  • 每条链路的传播时延是 d(prop)
  • 节点时延累加起来,得到端到端时延。
  • d(end-end) = N(d(proc) + d(trans) + d(prop))
  • d(trans) = L/R, 其中 L 是分组长度。

1. Traceroute

  • 一个简单的程序能够在任何因特网主机上运行。
  • 当用户指定一个目的主 机名字时,源主机中的该程序朝着目的地发送多个特殊的分组。当这些分组向着目的地传 送时,它们通过一系列路由器。当路由器接收到这些特殊分组之一时,它向源回送一个短报文。该短报文包括路由器的名字和地址。
  • Web Traceroute

2. 端系统,应用程序和其他时延

  1. 有意延迟,某些协议或约定
  2. 分组化时延,增加输出质量(VolP 呼叫)

1.4.4 Throughput in Computer Networks

计算机网络中地吞吐量

  • 除了延时和丢包,还有一个重要的性能测度是端到端吞吐量。
  • 在任何时间瞬间地瞬时吞吐量 (instantaneous throughout) 是目标主机接收到文件地速率 (以 bps记录)
  • 一个 F bit 的文件,目标主机接收到整个文件用时 T秒,则文件传送的平均吞吐量 (average throughout) 为 F / T bps。

image.png

  • 显示了服务 器和客户这两个端系统,它们由两条通信链路和一台路由器相连。
  • R(s) 表示服务器与路由器之间的链路速率;R(c) 表示路由器与客户 之间的链路速率;
  • 假设整个网络中只有从该服务器到客户的比特在传送。
  • 吞吐量?

  • 想象 bit 是流体,通信链路是管道。

  • 这台服务器不能以快于 R(s) bps 的速率通过其链路输入输出 bit
  • 如果 R(s) < R(c),在给定的吞吐量 R(s) bps 的情况下,由该服务器注入的 bit 顺利被输入与转发,并以 R(s) bps 的速度到达客户端。
  • 如果 R(s) > R(c), ,则该路由器将不能像接收速率那样快地转发 比特。
  • 比特将以 R(c) 速率离开该路由器,从而得到端到端吞吐量 R(c)。
  • 如果比特继续以 R(s) 速率到达路由器,继续以 R(c) 离开路由器的话,在该路由器中等待传输给客户的积压 bit 将不断增加,这是最不能发生的。

  • 对于这种两链路网络,吞吐量是 min{R(c), R(s)},也叫做瓶颈链路 (bottleneck link)

  • 这样就得到了一个两端传输 F bit文件的大约时间: F / min{R(c), R(s)}

  • 下载一个 F = 32 * 10 ^6 bit 的mp3 文件

  • 服务器有 R(s) = 2 Mbps 的传输速率
  • 接入链路 R(c) = 1 Mbps
  • 该文件传输时间需要 32 秒。

  • 这些都是建立在没有存储转发,处理延时和协议等时间上,吞吐量和传输时间的表达式仅能算出一个近似值。

image.png

  • 了一个在服务器和客户之间具有 N 条链路的网络。
  • 传输速率分别是 R1,R2…,R(N)。
  • 从服务器到客户的文件传输吞吐量是 min{R1, R2, …, R(N)}
  • 这同样仍是沿着服务器和客户之间路径 的瓶颈链路的速率。

image.png

  • 从服务器向客户传送一个文件的吞吐量?
  • 服务器以 R(s) 的速率接入链路与网络相连
  • 客户端以速率为 R(c) 的接入链路与网络相连。
  • 假定在通信网络核心中的所有链路具有非常高的传输速率,即该速率比 R(s) 和 R(c) 高得多。
  • 假定在整个网络中发送的 bit 都从该服务器到该客户。
  • bit 从源端系统到目的端系统的流动速度仍然是 R(s) 和 R(c) 中的最小者,即吞吐量为 min{R(s), R(c)}
  • 因此因特网中对吞吐量的限制因素仍然是接入网。

image.png

  • ,其中有10台服务器和10个客户与某计算机网络 核心相连。
  • 同时发生10个下载,涉及10个客户 - 服务器对。
  • 在核心中有一条所有10个下载通过的链路。
  • 所有服务器接入链路具有相同的速率 R(s),所有客户接入链路的传输速率为相同的 R(c),并且和心中除了共同的一条链路之外其他传输速率都比 R(c), R(s) 大得多。
  • 下载吞吐量是多少?

  • 如果公共链路的速率 R 很大,每个下载的吞吐量仍然是 min{R(c), R(s)}

  • 如果与 R(c), R(s) 有相同的量级;
  • R(s) = 2 Mbps, R(c) = 1 Mbps; R = 5 Mbps
  • 该公共链路为 10 个下载平等给划分他的传输速率。
  • 这时每个下载的瓶颈不在位于接入网中,而是位于核心中的共享链路了,该瓶颈仅能为每个下载提供 500 kbps 的吞吐量。

  • 吞吐量取决于数据流过的链路的传输速率。

  • 没有其他因素干扰时,吞吐量能够近似为源端系统和目标端系统的最小传输速率。
  • 吞吐量不仅取决于沿着路径的传输速率,而且取决于干扰流量。
  • 如果许多其他的数据流也通过这条链路流动,一条具有高传输速率的链路仍然可能称为文件传输的瓶颈链路。