计算机网络基础系列(一)概述、计算机网络性能

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 计算机网络基础系列(一)概述、计算机网络性能

  如上图所示,一般来说,PSTN(公共交换电话网)由上面这些本地回路交换局干线组成。

  计算机网络是通信技术与计算机技术紧密结合的产物。既然涉及到通信技术,就需要先了解一下通信系统模型。通信系统模型是信源经过发送设备到信道,在信道传输过程中可能会接收到部分干扰,最终将信号传输到信宿:

  由于信源和信宿通常是计算机,因此将其称之为计算机网络。当计算机与计算机之间距离远、数量多了之后,通过交换网络将主机互联在一起。

  全球最大的互联网络Internet将数以百万计的互联的计算设备(主机hosts=端系统end systems)连接在一起,通过像光纤,铜缆,无线电,卫星等通信链路可以将计算机连接在一起,但是数量多了,距离远了之后就需要交换网络,比如一些路由设备(routers)和交换机(switches)实现分组转发。

  而这里面一个核心的问题就是:能否保证应用数据有序交付。这里就引入了另外一个概念协议,相当于网络信息传输的法律,每个信息都按照这个协议工作就可以达到这一点。

网络协议

  网络协议就是计算机网络中数据交换必须遵循的规则。具体来说,这个协议需要规定通信实体之间所交换的格式意义顺序以及针对收到信息或发生的事件所采取的”动作“。

  一般来说不同的协议,它的功能是不一样的,所要完成的任务也是不同的,交换的信息不同,信息的格式也不一样。但是作为一个协议,它有三个基本的要素:

  1. 语法(syntax):定义数据与控制信息的结构或格式,如果是底层信息的话,那定义的可能就是信号电平。
  2. 语义(semantics):需要发出何种控制信息,完成何种动作以及做出何种响应。也就是告诉计算机这个信息要干嘛,就像寄快递需要填写收件人的地址信息和电话号类似。还有就是发错了咋办。
  3. 时序(Timing):时序定义协议双方需要遵循的事件顺序。以及交换信息的速度匹配问题。

数据交换

  那如何将源主机发送的数据通过网络核心送达目的主机呢?如果每个主机都和另外的一个主机通过链路连接,那肯定是不行的,因为主机的数量太过庞大。现在常用的是通过交换设备将各个主机连接在一起,每个主机只需要一个链路连接到交换设备即可。这种方式也存在问题,交换设备的端口与主机数量正相关,因此设立多个交换设备,将交换设备互联在一起组成交换网络,这样就更加灵活。

  交换网络需要将数据进行转发。这就需要交换设备在物理上或者逻辑上建立端口之间的连接,将一个端口的数据转移到另外一个端口。这里就会涉及到如何来动态分配传输资源这样一个问题:

  从技术分类上来分可以分为:电路交换报文交换分组交换这三大类。

电路交换

  最典型的电路交换网络就是电话网络。两台电话机之间先拨号请求建立链路,之后进行通信,完成之后链路释放:

  链路一旦建立,所占有的资源不能被第三方共享,也称为独占资源。但是并不是独占其经过的物理链路,物理链路可以被用于多路复用(Multiplexing)技术。

  多路复用通过将链路/网络资源(如带宽)划分为”资源片“,然后每路呼叫独占分配到的资源进行通信。

  依据复用的方法不同可以将其分为以下几类:

  1. 依据各用户占用不同的频率带宽资源不同的:频分多路复用( frequency division multiplexing-FDM )
  2. 依据用户所占用的时间间隙的不同:时分多路复用( time division multiplexing-TDM )
  3. 依据光的频分复用:波分多路复用(Wavelength division multiplexing-WDM)
  4. 码分多路复用( Code division multiplexing-CDM ):为每个用户分配一个唯一的m bit码片序列,各用户使用相同频率载波,利用各自码片序列编码数据。编码信号=(原始数据) x (码片序列)。但是需要保证各个用户码片序列相互正交(orthogonal)。

报文交换

  报文是发送信息的整体,比如像一个文件,一张图片这样。按照报文交换,发送信息的时候需要将整个信息发送给路由器,然后路由器决定如何转发这个报文。

分组交换

  如果将报文拆分成一系列小的数据包(每个数据包通常会加上一个头部信息),每个小的数据包相当于一个分组。

  因此它会有一个报文的拆分重组过程,这个过程就会产生一些额外的开销。

  如上下图所示,A/B都需要传输数据,这里并不像电路交换一样先分配带宽等资源,而是以1.5Mb/s全部转发,按需共享链路。

  报文交换与分组交换均采用存储-转发交换方式,区别在于报文交换以完整报文进行”存储-转发“而分组交换以较小的分组进行”存储-转发“。

  通过这种分组交换的方式可以减少传输延迟,因为路由器不需要等待全部报文接收完毕再往下一个路由器发送数据。对于路由器的缓存也较少。

  如上图所示:其传输时间由报文传输时间加上路由的延迟时间两部分构成。

  但是并不是说分组交换绝对优于电路交换,因为通信之前并没有占用网络的资源,大家构造分组,向网络上进行发送,势必出现很多用户向网络中发送数据,超越了网络的传输能力,可能产生拥塞(congestion)。因此在分组网络中通常会有一些协议来处理数据传输和拥塞控制。

计算机网络性能

  任何一个系统都需要一些指标来衡量这个系统。

速率

  速率数据率(data rate)或称数据传输速率比特率(bit rate),是计算机网络中最重要的一个性能指标。表示单位时间(秒)传输信息(比特)量。单位:b/s(或bps)、kb/s、Mb/s、Gb/s。这里的K = 1 0 3 }M=103 G=109

  速率往往是指额定速率标称速率。比如说某个网络是100M,指的是这个网络理想的数据传输速率,实际上可能并不一定能达到。

带宽

  “带宽”(bandwidth)原本指信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)。

  计算机网络中所说的带宽:网络的“带宽”通常是数字信道所能传送的“最高数据率”,单位:b/s (bps)。也就是最大数据传输速率。根据单位可以判断两个带宽的不同。

  常用的带宽单位:image.png

延迟/时延(delay或latency)

  还有一类指标为时间问题,我们把它称之为时延。之前在说分组交换的时候介绍过其中一种延迟叫传输延迟,发送一个分组,从第0个比特开始发送,到最后一个比特分组的发送完成,这段时间就是这个分组的传输延迟。分组在网络中传输,除了这个传输延迟之外,还有其它的延迟。

  分组在路由器缓存中排队时发生的丢包和时延。

  B的数组分组到达了一个路由器,路由器会按照存储转发的方式将其收下来,收下来之后先暂存,然后确定了这一个分组在哪一个链路进行转发之后,再在这个链路上进行转发,如果这个链路正在转发其它的分组,它就得排队等,这也需要时间,叫排队延迟

  当轮到转发这个分组的时候,才从第一个比特开始发,依次类推直到发完。这个时间就是传输延迟

  任何一个路由器供排队缓存的空间是有限的,如果缓存满了还有源源不断的分组到达,那就没地方放了。此时就会发生丢包现象

  总结来说就是当分组到达速率超出输出链路的容量的时候,这种现象就难以避免了。

  • 四种分组延迟

  分组从达到一个节点开始,到这个分组成功转发到下一个路由器所消耗的时间,主要有4种:

  • 结点处理延迟

  分组达到一个路由器,路由器需要对这个节点需要处理,这个时间称之为结点处理延迟(nodal processing delay) dproc。这个处理通常需要检查一下分组有没有错(差错检测);根据分组携带的地址信息,看看应该在哪个接口将其发出去(确定输出链路);还有一些其它的事情。现在路由器的处理能力都比较强,一般来说这个时间比较短 (一般来说不会超过毫秒级,当然也要看讨论的问题是一个什么样的层级的)。

  • 排队延迟

  当分组确定从哪一个输出链路往外传输的时候,而那个链路刚好在传输其它分组的时候,它就得在这个路由器上进行排队,这个时间的消耗通常称之为排队延迟(queueing delay)dqueue

  很显然这个排队时间是很不确定的,取决于路由器拥塞程度

  • 传输、传播延迟

  当链路开始传输一个分组的时候,传输第一个比特开始,到最后一个比特发完,需要一段时间,这段时间称作传输延迟(transmission delay)d t r a n s d_{trans}dtrans。传输延迟取决于以下几点:

  1. 分组长度L bits)。
  2. 链路带宽R bps)。


image.png

 通过电信号、光信号、无线信号传输到下一个节点。而在这个介质上传播也需要时间,我们将其称之为传播延迟(propagation delay) dprop。取决于以下几点:


image.png

在分组交换过程中,一个分组从到达某一个节点开始,到其离开这个节点到达下一个节点,这样所谓的一跳过程中,所消耗的时间可表示为:


image.png

时延带宽积


  计算机网络中另一个经常听到的描述就是时延带宽积,有时也称为带宽时延机。一段链路,或者称之为一段信号它的传播延时乘以这段链路的带宽(最高的数据传输速率)。



image.png

 可以理解为这个链路上能够容纳多少个比特,因此链路的时延带宽积又称为以比特为单位的链路长度


分组丢失(丢包)


  队列缓存容量有限,分组到达已满队列将被丢弃 (即丢包)。

  不同的网络对于丢包的处理是不一样的,有些丢掉就丢掉了,有些则会选择重发。也就是:丢弃分组可能由前序结点或源重发(也可能不重发)。

  在网络中,丢包是一个要考虑的现象。一般用丢包率来衡量这个丢包的现象:


202008191131342.png


image.png

吞吐量/率


  吞吐量/率(Throughput)说的实际上也是一种速率。

吞吐量:表示在发送端与接收端之间传送数据速率 (b/s)。这样一个两端之间数据传输的实际速率。有两种指标:

  1. 即时吞吐量:给定时刻的速率。
  2. 平均吞吐量:一段时间的平均速率。

  如果考虑一个互联网的实际场景:

  每条"连接"的端到端吞吐量取决于最小值:image.png

  实际情况下,通常取决于瓶颈链路,一般是端系统或者主机


参考


  本文为中国大学mooc的课程笔记:https://www.icourse163.org/course/HIT-154005

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
25天前
|
机器学习/深度学习 运维 安全
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
金融交易网络与蛋白质结构的共同特点是它们无法通过简单的欧几里得空间模型来准确描述,而是需要复杂的图结构来捕捉实体间的交互模式。传统深度学习方法在处理这类数据时效果不佳,图神经网络(GNNs)因此成为解决此类问题的关键技术。GNNs通过消息传递机制,能有效提取图结构中的深层特征,适用于欺诈检测和蛋白质功能预测等复杂网络建模任务。
51 2
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
|
17天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
50 7
|
2月前
|
机器学习/深度学习
YOLOv10优改系列一:YOLOv10融合C2f_Ghost网络,让YoloV10实现性能的均衡
本文介绍了YOLOv10的性能优化,通过融合Ghost模块和C2f结构,实现了网络性能的均衡。GhostNet通过GhostModule和GhostBottleNeck减少参数量,适用于资源有限的场景。YOLOv10-C2f_Ghost在减少参数和计算量的同时,保持了与原始网络相当或更好的性能。文章还提供了详细的代码修改步骤和可能遇到的问题解决方案。
242 1
YOLOv10优改系列一:YOLOv10融合C2f_Ghost网络,让YoloV10实现性能的均衡
|
19天前
|
SQL 存储 安全
网络安全与信息安全概述####
本文探讨了网络安全(Cybersecurity)和信息安全(Information Security)的基本概念及其差异,重点介绍了网络安全漏洞、加密技术及安全意识在信息保护中的重要性。本文旨在通过深入分析这些关键技术和策略,提升对信息安全整体性的理解,帮助读者在数字化时代更好地应对信息安全挑战。 ####
|
2月前
|
缓存 监控 前端开发
优化网络应用的性能
【10月更文挑战第21天】优化网络应用的性能
32 2
|
2月前
|
安全 区块链 数据库
|
2月前
|
网络协议 网络架构
【第三期】计算机网络常识/网络分层模型与数据包封装传输过程
【第三期】计算机网络常识/网络分层模型与数据包封装传输过程
52 0
|
2月前
|
测试技术
评测 AlibabaCloud 阿里云国际版 香港轻量云服务器的性能和网络怎么样
评测 AlibabaCloud 阿里云国际版 香港轻量云服务器的性能和网络怎么样
|
2月前
|
机器学习/深度学习 存储 自然语言处理
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
|
1天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
34 17