【常识系列】Java程序员需要了解的网络常识之计算机网络性能指标

作为一个Java程序员,我们也需要对计算机的网络知识有一定的了解,本系列就是针对非运维小伙伴的网络常识介绍(不费脑子可以无聊的时候瞅一瞅),希望可以帮助到大家( ̄∇ ̄)/

计算机网络性能指标

速率

  • 计算机发送的信号是以二进制数字形式的
  • 一个二进制数字就是一个比特(bit,binary digit)
  • 字节(Byte)1 Byte = 8 bit

常用的数据量单位:

  • 1 Byte = 8 bit
  • 1 KB = 2^10 B =1024B = 8 * 1024 b
  • 1 MB = K * K B = 2^10 * 2^10 B = 2^20 B
  • 1 GB = K * M B = K * K * K B = 2^10 * 2^10* 2^10 B = 2^30 B
  • 1 TB = K * G B = K * G B = K * K * M B =K * K * K * K B = 2^40 B

连接在计算机网络上的主机在数字信道上传送比特数据的速率,也称为比特率/数据率。

常用的数据率单位:

  • bit/s(b/s,bps)
  • kb/s = 10^3 *b/s(bps)
  • Mb/s = k * kb/s =10^3 kb/s=10^6 b/s
  • Gb/s=k * Mb/s=10^3 Mb/s=10^9 b/s
  • Tb/s=k * Gb/s=10^3 Gb/s=10^12 b/s

计算

100MB大小的数据块,网卡发送速度为100Mbps,计算发送该数据块需要的时间

(1002^208 bit) / (10010^6 bit) = 10241024/ 10 000 000 = 8.388 s

带宽 & 吞吐量(吞吐量<=带宽)

带宽
  • 在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示在单位时间内网络中的某信道所能通过的“最高数据率”
  • 单位:b/s (kbs, Mb/s, Gb/s, Tb/s)
  • 宽带的带宽是100兆:出口网速最高100Mb/s
吞吐量
  • 吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量

  • 吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。

  • 吞吐量受网络的带宽或额定速率的限制。

  • 注意吞吐量和带宽的区别:带宽指的是最大的传输速度,而吞吐量指的是实际传输速度

时延 delay/latency

时延是个很重要的性能指标,指数据(一个报文或分组或比特)从网络/链路的一端传送到另一端所需要的时间,有时也称为延迟/迟延。

网络中的时延主要由以下几个不同的部分组成

  • 发送时延

    • 主机或路由器发送数据帧所需要的时间(从发送数据帧的第一个比特算起,到该帧最后一个比特发送完毕所需的时间)
    • 发送时延的计算公式为:发送时延=数据帧长度(bit)/发送速率(bit/s)
    • 主机的发送速率和网卡的发送速率、信道的带宽、接口速率有关
  • 传播时延(取决于传输介质)

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

    • 传播时延的计算公式:

      • 时间(传播时延)=距离(信道长度[m])/速度(电磁波在信道上的传播速率[m/s])
    • 各介质的传输速率

      • 自由空间:3*10^8 m/s

      • 铜线:2.3*10^8 m/s

      • 光纤:2.0*10^8 m/s

  • 处理时延

    • 处理时延指的是主机或者路由器在收到分组信息时花费的时间。例如分析分组的首部、从分组中提取数据部分、查找适当的路由等。

思考:现在我们暂时忽略处理时延。假定有一个长度为100 MB 的数据块(这里的M显然不是指10^6而是指2^20。B是字节,1字节=8比特)。在带宽为1 Mbits的信道上(这里的M显然是10^6)连续发送(即发送速率为1 Mbit/s),其发送时延是多少?

  • 现在把这个数据块用光纤传送到1000 km远的计算机。由于在1000 km的光纤上的传播时延约为5 ms,因此在这种情况下,发送100 MB的数据块的总时延= 838.9 s + 0.005 s = 838.9005 s。可见对于这种情况,发送时延决定了总时延的数值。如果我们把发送速率提高到100倍,即提高到100 Mbitls,那么总时延就变为8.389+0.005=8.394 s,缩小到原有数值的1/100。

往返时间 Rount-Trip Time(不包含发送时延)

表示从发送端将数据发送到传输媒介开始,到发送端收到来自接收端的确认总经历的时间(不包含发送时延)

RTT由三个部分决定:

  • 链路的传播时间(主要取决于传输媒介,相对稳定)
  • 末端系统的处理时间(每台主机处理数据的时间相对稳定)
  • 路由器的缓存中的排队和处理时间

其中前两个部分的值作为一个TCP连接相对固定,路由器的缓存中的排队和处理时间会随着整个网络拥塞程度的变化而变化。所以RTT的变化在一定程度上反映了网络拥塞程度的变化。

RTT越小网络状况越好

利用率(信道利用率+网络利用率)

利用率分为

  • 信道利用率
  • 网络利用率

根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加。

如果令Do表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示D、Do和利用率U之间的关系为:

这里U是网络的利用率,数值在0到1之间:

  • 当网络的利用率达到50%时,时延就要加倍;当网络的利用率超过50%时,时延急剧增大;
  • 当网络的利用率接近100%时,时延就趋于无穷大;

因此,一些拥有较大主干网的ISP通常会控制它们的信道利用率不超过50%。

如果超过了,就要准备扩容,增大线路的带宽。

因此,信道利用率并非越高越好

丢包率

丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率

丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们通常意识不到网络丢包。

分组丢失主要有两种情况:

  • 分组在传输过程中出现误码(本来是0变成了1/1变成了0),被结点丢弃

  • 分组到达一台队列已满的分组交换机时被丢弃(在通信量较大时就可能造成网络拥塞)

假设路由器R5当前的输入缓冲区已满,此时主机发送的分组到达该路由器。路由器没有存储空间暂存该分组,只能将其丢弃。实际上路由器会根据自身的拥塞控制方法,在输入缓存还未满的时候就主动丢弃分组。

因此,丢包率反映了网络的拥塞情况:

  • 无拥塞时路径丢包率:0
  • 轻度拥塞时路径丢包率:1%~4%
  • 严重拥塞时路径丢包率:5%~15%

你可能感兴趣的:(java,网络,计算机网络)