前言
计算机网络是学习计算机的人必须要学习的基础,是非常非常的重要。在以后的面试当中这也是一定会被问到的重点。所以我们要重视起来。
我也会持续更新本专栏的,来总结计算机网络的全部内容!
因特网概述
网络、互联网(互连网)和因特网
网络:由若干结点和连接这些结点的链路组成
互联网:多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,互联网是“网络的网络”,真“互连网”。
因特网:是世界上最大的互连网络(用户数以亿计,互连的网络数以百计)。
internet与Internet的区别:
因特网的组成
边缘部分:由所有连接在因特网上面的主机组成,这部分是用户直接使用的,用来通信(传送数据,音频或视频)和资源共享。
核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性与交换)。
三种交换方式
三种交换方式分别是:电路交换、报文交换和分组交换
电路交换
电路交换:电话交换机接通电话线的方式称为电路交换。
从通信资源的分配角度来看,交换就是按照某种方式动态的分配传输线路的资源。
电路交换的三个步骤:
(1)建立连接(分配通信资源)
(2)通话(一直占用通信资源)
(3)释放连接(归还通信资源)
通信资源可比拟为电话线
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。
报文交换
报文交换:又称存储转发交换,是数据交换的三种方式之一,报文整个地发送,一次一跳。报文交换是分组交换的前身。
报文为要发送的整块数据。
分组交换
分组交换:与报文交换相同采用存储转发技术。与报文交换不同的是在发送报文之前,分组交换会先把较长的报文划分成为一个个更小的等长数据段,在每一个数据段前面加上一些由必要的控制信息组成的首部(header),就构成了一个分组(packet)。
分组是在互联网中传送数据的单元。分组中的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立地选择传送路径,并被正确地交付到分组传输的终点。
分组交换的思想来源于报文交换,报文交换也称为存储转发交换,它们交换过程的本质都是存储转发,所不同的是分组交换的最小信息单位是分组,而报文交换则是一个个报文。由于以较小的分组为单位进行传输和交换,所以分组交换比报文交换快。报文交换主要应用于公用电报网中。
在整个传送过程中:
发送方:构造分组、发送分组
路由器:缓存分组、转发分发
接收方:接受分组、还原报文
三种交换方式的对比
计算机网络的性能指标
性能指标可以从不同的方面来度量计算机网络的性能。
我们常用的计算机网络的性能指标有8个:速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率和丢包率。
接下来我们就一一讲解。
速率
这里的速率指的是数据传送的速度,也称为数据率或比特率。那么想学习数据率我们首先得知道什么是数据量,什么是比特。
比特:计算机中数据量的单位,也就是信息论中信息量的单位,一个比特就是二进制位数字中的一个1或0。
比特(bit)是最小的单位。
常用的数据量单位及他们之间的转换:
注意这里的K为2的10次方也就是1024。
速率:连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率与数据率。
(bit/s,b/s,bps)是速率最小的单位。
常用数据率单位:
注意这里的k为10的三次方也就是1000。
这里它们各自的k不同所以在计算时要把所有的k写成对应的数字,而数据量单位要转换为最小的bit才行。
如:
带宽
带宽:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的最高数据率。
也就是说带宽是速率取最大值。那么带宽的单位与速率的单位是相同的了。
单位:b/s、kb/s、Mb/s、Gb/s、Tb/s
其实带宽还有另外一种表述:
在模拟信号系统中带宽表示:信号所包含的各种不同频率成分所占据的频率范围。
单位:Hz、kHz、MHz、GHz
其实,这两种表述之间有着密切的联系,一条通信线路的频带宽度越宽,其所传输的数据的“最高数据率”也越高。
吞吐量
吞吐量:表示在单位时间内通过某个网络(或信道,接口)的数据量。
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能通过网络。
吞吐量受网络的带宽(最大速率)限制。
时延
时延:指一个报文或分组从一个网络的一端传送到另一个端所需要的时间,又称网络时延。它包括了发送时延,传播时延,处理时延,排队时延。
发送时延计算:
发送时延=分组长度(b)/发送速率(b/s)
传播时延计算:
传播时延=信道长度(m)/电磁波传播速率(m/s)
电磁波转播速率与传播的介质有关,不同的介质传播速率不同。
常见的传播介质:
处理时延与排队时延不好计算一般忽略,我们这里也进行忽略。
时延带宽积
时延带宽积:顾名思义就是时延与带宽的乘积,若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就又已经发送了时延带宽积个比特。
我们可以理解为产生时延的时间里面又发送的比特数。
链路的时延带宽积又称为以比特位单位的链路长度。
往返时间
在许多情况下,因特网上的信息不仅仅单方向传输,二十双向交互。
有时候我们很需要知道双向交互一次所需的时间,所以说往返时间也是非常重要的性能指标。
利用率
利用率:分为信道利用率与网络利用率.
信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)。
网络利用率:全网络的信道利用率的加权平均。
一般来说,某信道利用率增大时,该信道引起的时延也会迅速增加的。因此,信道利用率并不是越高越好。
一般来说我们要控制在50%以下。
丢包率
丢包率:即分组丢失,是指在一定时间范围内,传输过程中丢失的分组数量与总分组数量的比较。
分组丢失主要有两种情况:
(1)分组在传输过程中出现误码,被节点丢弃。
(2)分组到达一台队列已满的分组交换机时被丢弃。
在通信量较大时会出现网络拥塞,因此丢包率反映了网络的拥塞情况。
计算机网络体系结构
常见的计算机网络体系结构
我们把计算机网络的各层及协议集合,称为网络的体系结构。换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义。
我们在这里介绍三种网络体系结构分别是:OSI体系结构、TCP/IP体系结构、原理体系结构。
OSI体系结构
OSI体系结构是国际标准化组织制定的,也是法律上的国际标准,一共由7层组成。
但是OSI体系结构太过于复杂,同一个功能在多层都又出现,实现周期又比较长,所以这个体系结构并没有在世界范围普及起来。
TCP/IP体系结构
TCP/IP体系结构是世界上使用最广泛的因特网体系结构,也是实际上的国际标准,它由4层组成。
它相较于OSI体系结构去掉了表示层与会话层,并且把物理层与数据链路层合并为网络接口层了。
原理体系结构
TCP/IP体系结构是世界上使用最广泛的因特网体系结构,但是它并不适合进行教学使用,所以就又产生了原理体系结构,它是一个5层的网络体系结构。
相较于TCP/IP体系结构,他把TCP/IP体系结构的网络接口层又拆分为数据链路层与物理层。
我们接下来的介绍学习也会围绕这个体系结构进行的。
计算机网络体系结构分层的必要性
或许到这里大家有这样的疑问:计算机网络就一个东西为什么要大费周章的分层呢?分层的依据又是什么呢?
接下来我们就来解决这个问题。
计算机网络就一个东西为什么要大费周章的分层呢?
其实计算机网络并没有看上去那么简单,它是一个非常庞大,非常复杂的系统。
我们对其进行分层可以把庞大而复杂的系统转化为若干较小的既不问题,这样比较易于研究与处理。
分层的依据又是什么呢?
至于为什么要这样进行分层,那么我们就得从生成一个计算机网络体系一步一步来解决了。
比如我们要实现两个主机之间的信息传送。
(1)首先我们得考虑我们要通过什么媒介(介质)进行传输。
(2)还要考虑介质与主机之间如何接连(采用什么样的物理接口)。
(3)还有在介质中采用什么样的信号来表示比特0与1,因为我们在传递信息时候都是转化为二进制文件即:0与1构成。
这就是我们第一步要解决的问题,我们称之为物理层。
在解决上述问题之后,我们还要考虑以下问题:
(1)在网络中主机数量往往要多与参与信息传递的主机,那么我们又要如何标识哪些主机需要发送信息,哪些主机需要接受信息。
(2)在数据到达路由器进行转发时,我们又该如何从信号所表示的一串比特流中区分出地址和数据。
(3)若发送信息的主机不止一台,而它们恰好要使用同一条线进行传输,那么我们如何让协调个主机争用总线。
这是在数据传输过程中需要考虑的问题,我们称之为数据链路层。
我们解决完数据链路问题之后,还得考虑网络问题。
(1)如何标识各网络以及网络中的各主机。
(2)路由器如何进行转发,如何进行路由选择。
我们称之为网络层。
在运输过程中也会出现许多问题
(1)如何解决进程之间基于网络的通信问题。
(2)出现传输错误时,如何进行处理。
我们称之为运输层。
最后我们要考虑:
(1)如何通过应用进程间的交互来完成特定的网络应用。
我们称之为应用层。
最后我们对这些要解决的问题进行分层:
这样看来是不是分层分的非常合理呀!
计算机网络体系结构中的专用术语
计算机网络体系结构中的专用术语是来自OSI标准体系中的,但是它们仍然适用于其他的两个体系结构(TCP/IP体系结构,原理体系结构)。
我们常见的专用术语分为三大类:实体、协议、服务。
接下来我们分别对他们进行总结。
实体
实体:任何可发送或接收信息的硬件与软件进程。
在每一层中都有实体的存在,如下我们使用带字母的小方格来表示每一层中的实体。
对等实体:收发双方相同层次中的实体
在知道实体之后这就很好理解了,对等实体的关系如图:
协议
协议:控制两个对等实体进行逻辑通信的规则集合
如下图:
而每种协议基本都是有三要素的。
协议三要素:语法、语义、同步
这三要素具体表示:
语法:定义所交换信息的格式。
语义:定义收发双方所要完成的操作。
同步:定义收发双方的时序问题。
服务
服务:在协议控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
对于服务我们要知道:
(1)要实现本层协议,还需要使用下面一层所提供的服务。
(2)协议是“水平”的,服务是“垂直”的。
(3)实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明”的。
服务访问点:在同一系统种相邻的两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
如:
数据链路层的服务访问点为帧的“类型”字段。
网络层的服务访问点为IP数据报首部中的“协议字段”。
运输层的服务访问点为“端口号”。
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。
服务数据单元SDU:同一系统内,层与层之间交换的数据包称之为服务数据单元。
同时根据图大家应该也看出来了,多个SDU可以合成一个PDU;一个SDU也可以划分为几个PDU。
结语
计算机网络在我们以后的面试当中是非常重要一块考点,也是很基础的东西,我们一定要重视起来。对于计算题还得多加练习。