学习计算机网络?你首先要了解这些

1,791 阅读11分钟

📣 大家好,我是Zhan,一名个人练习时长一年半的大二后台练习生

📣 这篇文章是 深入浅出计算机网络计网概述 的学习笔记

📣 如果有不对的地方,欢迎各位指正 🙏🏼

📣 与君同舟渡,达岸各自归


🔔 本篇速览

  • 1️⃣ 因特网概述
  • 2️⃣ 电路交换、分组交换、报文交换
  • 3️⃣ 计算机网络的性能指标
  • 4️⃣ 计算机网络体系结构

一、因特网概述

📡 1.网络、互联网、因特网

似乎在我们的日常生活中总是会提到这三个名词:网络、互联网、因特网,看起来它们似乎指的是同一个东西,但实际上只是我们没有做很好的区分,就让我们分别来看看它们分别代表着什么:

网络就是几部计算机主机或者是网络打印机之类的接口设备,透过有线链路或者是无线网络的技术,将这些主机与设备连接起来,使得数据可以透过网络媒体(网络线以及其他网络卡等硬件)来传输的一种方式:

网络与网络之间进行互联也就是我们所说的互联网,而互联所需要的设备就是路由器,通过路由器我们可以连接多个网络,即若干网络通过路由器互联形成互联网

因特网就是世界上最大的互联网,也就是说世界上的网络都通过路由器连接形成了这个世界上最大的、全球通用的互联网

📲 2.ISP(Internet Service Provider)

在日常的使用网络的过程中,我们需要连接网络进行与其他网络的互联,在这个过程中我们会被分配IP地址,用于我们进行网络的互联,那么这些IP地址从何而来呢?

无论是我们的WIFI、蜂窝数据,都有它的运营商:中国移动、中国电信、中国联通……,他们就是负责分配IP给我们的:

因特网已经发展成为基于ISP的多层次结构的互联网络,就这样层层代理下来:


二、三种交换方式

网络之间进行通信的方式有着以下三种方式,尽管随着时间的推移,现在我们基本上使用分组交换,但是发展的历程还是值得我们去探究的:

1.电路交换

  1. 在使用电路交换打电话之前,先拨号建立连接:
    1. 当拨号的信息通过许多交换机到达被叫用户所连接的交换机时,该交换机就向用户的电话机振铃
    2. 在被叫用户摘机且摘机信号传送回到主叫用户所连接的交换机后,呼叫即完成,这时从主叫端到被叫端就建立了一条连接
  2. 通话过程。
  3. 通话结束挂机后,挂机信令告诉这些交换机,使交换机释放刚才这条物理通路。
  4. 这种必须经过“建立连接--通信--释放连接”三个步骤的连网方式称为面向连接的。电路交换必定是面向连接的。

可是在当今的计算机网络中,我们以微信举例,如果说刘德华是我的好友,但是我不一定时时刻刻给他发信息,那么连接一直占用,线路上真正用来传输数据的时间很少,也就是说线路的传输效率一般都会很低,因为计算机之间的数据传送是突发式的。

2.分组交换

其实这里有点容易联想到长连接和短连接,很明显:如果我们以长连接的方式去进行数据的通信,效率是很低的,而采用短连接,对于一条消息我们就建立一次连接,会有不少的建立连接和销毁连接的开销,那么我们也不建立连接和释放连接,我们采用分组交换的方法:

现在需要把信息从H1传到H3,我们并不建立H1与H3的连接:

而是把信息分成多段,给每段加上一个头部,头部中我们会存放一些信息,如:

  • 是消息的第几段
  • 目标主机的IP地址
  • 消息是否被篡改
  • .......

H3拿到分组的消息后,就能根据头部进行组装还原报文信息,而在这个过程中H2起到的作用就是缓存分组,然后根据头部信息转发给H3

3.报文交换

报文交换是分组交换的前身,也就是对于一整个报文加上一个头部然后传输出去

这样做的坏处就是:

  1. 中间结点H2需要缓存空间就要大很多,而如果缓存空间不足就会发生丢包
  2. 并且中间结点需要缓存下来整个报文信息才会进行转发,而分组交换只需要缓存一个小的分组就可以开始进行转发了,因此缓存时延要长很多 听起来可能有点抽象,我们在下面的对比中通过图像的方式来理解一下这三种交换

4.对比

我们纵轴为时间轴,横轴为数据的传播,可以画出三种交换的交换过程:

  • 如果需要连续的传送大量的数据,并且数据传送的时间远大于建立连接的时间,我们可以采用电路交换
  • 报文交换分组交换都不需要建立连接,这样我们可以提高通信线路的利用率
  • 通过图我们也可以发现分组交换所需要的时延远小于报文交换,这样还能够避免长时间占用链路

三、八大性能指标

计算机网络的性能如何,我们通常使用以下八个指标来进行衡量,其中有我们比较熟悉的:速率、带宽、丢包率,也有一些陌生的名词:吞吐量、时延、时延带宽积、往返时间、利用率,下文我们将来探讨一下这八个性能指标

1.速率

这个是我们经常会接触到衡量网络的一个主要标准,我们可能经常看到下载速度10MB/s这样的字眼,这个似乎不用讲太多,大伙懂得都懂,但是还是想提一嘴计量单位的相关问题:

思考:有一个待发送的数据块,大小为100MB,网卡的发送速率为100Mbps,则网卡发送完该数据块需要多长时间?

错误示范: 100 / 100 = 1

正确答案

解析:这里就不得不提到数据量的单位速率的单位了,见下表:


2.带宽

在计算机网络中,带宽用来表示网络的通信线路能够传输数据的能力,也就是从一点到另外一点能够通过的最大数据量,例如我要把水从A运到B,带宽就是水管的大小,可以不装满水管,但是单位时间能够流过的最大只能是水管大小

而数据的传输的速率由主机接口速率、线路带宽、路由器的接口速率三者共同决定,取它们的最小值就是数据的传输速率,其实有点类似于木桶效应:


3.吞吐量

吞吐量是指单位时间内通过网络的实际数据量,包括上传和下载的数据量,我们以下面这个例子来讲:

此处的吞吐量 = 20Mb/s + 600kb/s + 1Mb/s = 21.6Mb/s


4.时延

时延这个词听起来好像有点陌生,但是我们换一个词就很熟悉了——延迟

时延是指数据从网络的一端到另外一端所耗费的时间,而在交换的过程中有哪些地方需要耗费时间呢,我们以下面这个场景为例,具体分析一下:

也就是说把分组发送出去以及在传播过程都需要时间,而在路由器需要进行排队和处理也需要时间,路由器还需要发送和传播的时间,我们可以通过下面这个图更清晰的看出:

如果我们使用分组交换,图像就会变为:


5.时延带宽积

时延带宽积可以理解为:以比特为单位的链路长度,我们可以知道链路中有多少个比特,时延带宽积 = 时延 × 带宽,我们可以用下面这个例子来帮助我们理解


6.往返时间

往返时间:从发送端发送数据分组开始,发送端接受到接收端返回的确认消息为止,总共耗费的时间,也就是“一次握手的时间


7.利用率

对于一条链路,它上面有信息传过去我们就称它被利用了,那么利用率的概念就比较明确了:

链路利用率:某条链路有百分之几的时间是被利用的,也就是有多少时间是有数据通过传输的,完全空闲的链路的利用率为零

网络利用率:是指网络中所有链路的链路利用率的加权平均

当然,并不是链路利用率越大越好,因为随着利用率的增大,链路引起的时延就会迅速增加,因此一般会把信道的利用率不超过50%


8.丢包率

在传输过程中可能出现误码,被路径中的交换机发现检测到了,就会把它丢弃了,那么信息无法成功传达,也就是我们所说的丢包

除了上面所说的情况,由于信道堵塞,也就是信道的内存的不够,就会根据丢弃策略丢掉分组的信息,一般丢包率可以反映网络的拥塞情况:

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

四、体系结构

计算机网络是一个非常复杂的系统,因此我们一般通过分层,可以把庞大复杂的问题转化为若干较小的局部问题,而对于计算机网络的分层我们有两套标准:

1.OSI 参考模型

OSI参考模型是法律标准,把计算机网络分为了七层:应用层、表示层、会话层、运输层、网络层、数据链路层、物理层

但是实际上我们使用的标准并不是法律的标准,而是我们下面要介绍的TCP/IP参考模型OSI参考模型失败的原因是:

  • 专家没有实操经验,完成标准的时候没有商业驱动力
  • 协议的实现太复杂
  • 标准的制定周期太长
  • 层次划分不合理,其中有多个层有重复的功能

2.TCP|IP 参考模型

TCP/IP参考模型是我们的实际使用的标准,把分层减少到了四层:应用层、运输层、网络层、网络接口层,这种参考模型层次之间的功能耦合更少,实现起来也容易。而我们在讨论的时候一般使用另外一种参考模型,也就是多了一层数据链路层:


💬 总结

本篇博客讲述了入门计算机网络所需要具备的知识:

  • 首先是从专业的角度来讲解了一下因特网、互联网
  • 关于网络之间的交换信息的方式,我们也是分别讲解了三种交换方式,以及它们的各自的优缺点,我们比较后也是一般使用分组交换
  • 然后讲解了一下我们衡量计算机网络的八个指标:速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率、丢包率,其中我们分析的比较多的是时延,对于其他几个概念都有了一个基础的了解
  • 最后讲解了我们在分析计算机网络的时候使用的模型,通过分层把计算机网络这个大整体分为一层层进行理解,这里我们提到了两种模型:OSI、TCP/IP参考模型
  • 但是我们并没有细致的讲解各层,后续的博客我们会依次剖析各层,深入了解计算机网络

✒写在最后

都看到这里啦~,给个点赞再走呗~,也欢迎各位大佬指正以及补充,在评论区一起交流,共同进步!也欢迎加微信一起交流:Goldfish7710。咱们明天见~