loading

计算机网络性能指标

速率

网络技术中的速率指的是数据的传达速率,它也称为数据率(data rate)或比特率(bit rate)。速率的单位是 bit/s(bit per second,bps 或 bit/s),每秒可以传输的比特有多少个,是一个性能指标。

速率指的是额定速率或标称速率,而非网络实际的速率。

带宽

带宽(bandwidth)本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标准带宽是 3.1 kHz(从 300 Hz 到 3.5 kHz,即话音的主要成分的频率范围)。这种意义的带宽的单位是赫。

在计算机网络中,带宽用来表示网络中某信道传输数据的能力,因此网络带宽表示在单位时间内网络中的某信道所能通过的“最高速率”。带宽的单位就是速率 bit/s。

一条车道最高时速限制在 60KM/h,不考虑车与车之间的安全行驶距离,车头与车尾相连往前行驶,假如一辆车的车长是 4M。

😲虽然这样的假设在假设中也过于离谱,但“带宽”本来就是一种理想值。这样做的原因是要区别下面谈到的“时延带宽积”的概念。

那么一条车道在一个小时内最多可以容纳60 × 0.004 = 15000辆车行驶。再增加一条车道就是 30000 辆车可以行驶。这种两车道的高速公路每小时最高可以容纳 30000 辆车行驶。

也就是说,一条信道的“带宽”越宽,其所能传输的“最高速率”也越高。假如信道宽度是 1Mbit/s,增加信道的宽度以达到最高速率为 100Mbit/s。1s 钟可以传输的比特流就比以前多了 100 倍。

吞吐量

吞吐量(throughput)表示在单位时间内通过某个网络的实际的数据量。吞吐量更经常地用于对现实世界中网络的一种测量。有时候吞吐量还可以用每秒传送的字节数或帧数来表示。

例如,信道的速率是 1Gbit/s,就是说其额定速率是 1Gbit/s。其实际的吞吐量可能只有 100Mbit/s,或甚至更低。所以,带宽说的就是“最高速率”,用吞吐量来测量带宽更符合现实。

时延

时延(delay 或 latency)是分组在网络的一端到另一端所需的时间,也叫延迟或迟延。

如上图,发送时延、处理时延和排队时延、传播时延共同组成网络的时延。

  1. 排队时延:分组在经过网络传输时,要经过许多路由器,分组进入路由器后进行排队(队列)等待路由器处理,这里就产生了排队时延。
  2. 处理时延:主机或路由器在收到分组时要花费一定的时间处理,例如分析分组的首部、从分组中提取数据部分等。
  3. 发送时延(transmission delay):主机或路由器发送分组所需要的时间。
  4. 传播时延(propagation delay):分组在信道(或链路)中传播一定的距离需要花费的时间。

我认为这四种时延是有顺序的,分组在每进入一个路由器或主机的时候应该排队等待,一个个地被处理,再进入链路传输。

处理时延

主机或路由器在收到分组时要花费一定的时间处理。例如分析分组的首部、从分组中提取数据部分、进行差错检查或查找适当的路由器等,这就产生了处理时延。

排队时延

分组在网络传输期间要经过许多路由器,到达路由器时就要在队列中排队等待被路由器处理,等待路由器确定下一个转发接口。

排队时延长短往往取决于网络当时的通信量。例如在学校使用网络时,发现电脑浏览网页很慢,可能是你所在的时间段内使用网络的人数较多,导致网络通信量大,路由器队列溢出(分组丢失),相当于排队时延为无穷大。

发送时延

你的电脑发送一个数据,被切割成一个个分组之后,要按照顺序依次从你的主机发送出去,从第一个分组到最后一个分组发送完毕所需的时间为发送时延(或传输时延)。

排队时延和处理时延影响因素很多且不确定,所以,很难计算出标准的答案。而发送时延和传播时延时可以被计算出来的,数据长度、发送速率等因素是可以确定的。

\[发送时延=\frac{数据长度(bit)}{发送速率(bit/s)} \]

假如有 100MB 的数据,速率为 1Mbps,则发送时延为:

⚠️注意:MB 是兆字节,Mb 是兆比特,b 字母的大小写有不同的意思。小写 b 是比特(bit),大写 B 是字节(Byte),👉Mbps 与 MBps

100 × 220 × 8 ÷ 1 × 106 = 838 s。所以,如果你家的宽带太低了,发送数据出去也就很慢。

传播时延

传播时延是电磁波在信道中传播一定的距离需要花费的时间。

\[传播时延 = \frac{信道长度(m)}{电磁波在信道上的传播速率(m/s)} \]

电磁波在光纤中的传播速率约为 2.0×105km/s。例如,1000 KM 长的光纤线路产生的传播时延大概为 5ms。传播时延很小,基本上可以忽略不记。

发送时延和传播时延

10 吨粮食要从仓库出发通过高速公路发往 A 市。一辆车最多承载 2 吨重的货物,需要 5 辆货车。仓库装配货车的货物,所需要的时间看作是处理时延。一辆货车装载好了之后就从仓库出发到高速公路收费站入口,因为收费站有其他车辆在排队等待通过,所需要的时间看作是排队时延。到目前为止,数据还没在信道上进行传输就已经有处理时延和排队时延了。假如每一辆货车都需要 6s 过收费站的时间,那么 5 辆货车一共就需要 30s,也就是发送时延。这 5 辆货车从始发地到目的地一共所需要的时间就是传播时延

时延的计算公式

数据在网络中经历的总时延就是以上四种时延之和:

\[时延(delay) = 处理时延+排队时延+发送时延+传播时延 \]

时延带宽积

把传播时延和带宽相乘就得到另一个很有用的度量:传播时延带宽积

\[时延带宽积 = 传播时延×带宽 \]

在上面谈到“带宽”的时候列举了一个离谱的例子。但实际上,车与车之间是有安全距离行驶的,60 KM/h 的车道上车与车之间有 60M 的安全距离。把安全距离算上,一条车道就不可能容纳 15000 辆车行驶。而是60 × 0.064 ≈ 938辆车行驶。这里的安全距离值的就是时延,带宽就是车道。

例如,设某段链路(信道)的传播时延为 20ms,带宽为 10Mbit/s。

\[时延带宽积 = 20×10^{-3}×10×10^{6}=2×10^{5}bit \]

若发送端连续发送数据,则在发送的第一个比特即将达到终点时,发送端就已经发送了 20 万个比特,而这 20 万个比特都正在链路上向前移动。因此,链路的时延带宽积又称为以比特为单位的链路长度

往返时间

在计算机网络中,往返时间 RTT(Round-Trip Time)也是一个重要的性能指标。在许多情况下,互联网上的信息不是单方向传输而是双向交互的。例如,A 向 B 发送数据。如果数据长度时 100MB,发送速率时 100Mbit/s,那么:

\[发送时延=\frac{数据长度}{发送速率}≈8.39s \]

如果 B 正确收完 100MB 的数据之后,要向 A 发送确认。再假定 A 只有在收到 B 的确认信息之后,才可以继续向 B 发送数据。显然,这需要等待一个往返时间 RTT。假如 RTT = 2s,那么可以算出 A 向 B 发送数据的有效数据率:

\[有效数据率=\frac{数据长度}{发送时延+RTT}=\frac{100×20^{20}×8}{8.39+2}≈80.7×10^{6}bit/s≈80.7Mbit/s \]

我们在 ping 百度的时候,我们电脑会发出 32 字节的数据,发送一次百度服务器就会向我们确认一次,这里存在往返时间 RTT,当然还有时延(四种时延总和)、吞吐量等因素。

由于不知道传播时延中信道长度,所以只能算发送时延:

\[发送时延=\frac{32×8}{10^{6}}=0.000256s=0.256ms \]

我们的发送时延可以忽略不记了,加上往返时间和时延、吞吐量等消耗的时间,大约是 41ms。最终平均双向交互之后的时间是 41ms。

利用率

利用率有信道利用率和网络利用率两种。信道利用与是指某信道有百分之几的时间是被率用的。网络利用率则是全网络的信道利用率的加权平均值。

D0表示网络的空闲时间的时延,D 表示网络当前的时延。D0和利用率 U 之间的关系是:

利用率 U 的数值在 0 到 1 之间。当网络的利用率达到其容量的 1/2 时,时延就要加倍。所以,信道或网络的利用率过高会产生非常大的时延

这是因为,当某信道利用率增大时,该信道引起的时延也就迅速增加。这和高速公路的情况很相似。当告诉公路上的车流量很大时,在某些段上可能出现堵塞,有可能是因为过收费站时排队引起的,也有可能是车祸等。因此,行车所需时间就会变长。网络也是类似的情况,当网络的通讯量很大时,分组在路由器进行处理时需要排队等待,因此网络引起的时延就会增大。

所以,一些拥有较大主干网的 ISP 通常控制信道利用率不超过 50%,如果超过了就要准备扩容,增大线路的带宽。

posted @ 2022-09-11 17:26  Himmelbleu  阅读(123)  评论(0编辑  收藏  举报