2.1.1 通信基础的基本概念
经过第一章的学习,我们认识了 osi 参考模型和 TCP/IP 模型。分别采用了七层结构的设计和四层结构的设计,现在的互联网世界采用的是 TCP/IP 模型,所以 TCP/ IP 是事实上的标准。它的第一层网络接口层和 OSI参考模型的第一层以及第二层功能上是类似的。 TCP/IP 模型对于网络接口层的功能定义的并不是特别的详细,相比之下 osi 参考模型对于物理层和数据电路层的功能定义,协的设计都会更加的完善。所以当我们初学者在学习计算机网络的时候,通常会把 osi 参考模型的第一层和第二层以及 TCP/IP 模型的上面三层结合起来进行学习。所以教学上通常采用这种五层的体系结构。这一章我们先学习物理层的具体内容。
物理层的主要任务是要实现相邻节点之间比特0或1的传输。用户的数据会被上面的层次逐层的处理,到数据链路层之后。它会以帧为单位,把若干个比特交给物理层。物理层需要把这些比特信息转换成某一种信号,在物理传输媒体上进行传输。接下来通过这一章的学习,会逐步理解相邻的两个节点,它们的物理层之间是如何实现这种二进制比特的传输的?
为了理解这个问题,首先我们需要补充一些通信原理相关的基础知识。
在这个视频中我们会介绍一些基本概念。通信基础是一门学科的名字,考研大纲要求我们了解通信
基础的几个重要概念。包括信源,信速,信号,信道以及码源速率。波特最后还有带宽。带宽这个概念,我们在第一章学过,在这个视频中,我们先不展开探讨,对于考研来说,标红的几个概念是需要重点掌握的,喜欢在真题中考察。
首先来看信源,信速,信号和信道这几个概念。首先,信源指的是信号的来源,也就是数据的发送方。而信宿指的是信号的归宿,也就是数据的接收方,现在假设 a 节点是数据的发送方 b 节点是数据的接收方。a 节点要给 b 节点发送若干比特的数据,这些二进制数据可能对应的是一串文本,也可能是一段声音,也可能是一个图像。反正在计算机内部,所有的数据都是用二进制来表示的。 a 结点需要通过信道把这些数据发给 b 结点(所谓的信道就是信号的通道)通常来说,一条物理线路会包含两条信道,比如说电脑和家用路由器用网线进行连接,这根网线对应了一条发送信道和一条接收信道。有了信道之后 a 节点就可以把这些二进制串转换成某一种信号。把这些信号发送到信道上,然后 b 节点就可以接收到这些信号,最终再把这些信号转换成对应的二进制串。所以所谓的信号,本质上就是数据的载体。信号又可以进一步的细分为数字信号和模拟信号这样的两种。
其中数字信号的值是离散的,模拟信号的值是连续的。比如,这是数字信号和模拟信号的
一个示意图。
我们可以把上面这个波形看作数字信号,而下面这个波形看作是模拟信号。现在如果我们要把01001110这样的八个比特转换成数字信号。我们可以设计这样的两个信号值:分别是负1和1。当信号值 y=- 1 的时候,可以让它对应二进制的0,当信号值 y=1 的时候,可以让它对应二进制的1。在上面这个例子中,信号值只有可能取到负一和一这样的两种情况,因此它属于数字信号。下面这个信号图,我们不妨把这个波形的最高点看作是信号值等于一。波形的最低点看作信号值等于负一。所以在下面这个例子中,信号的值有可能取负一到一当中的任何一个值。也就是说,信号值
是连续的,所以下面这个图表示的是一个模拟信号。我们可以用电压或者电磁波的振幅,这
些作为信号值的物理量。这么说,可能会比较抽象,接下来我们用大家熟悉的数学函数去理解这个所谓的信号值。
来看这样的一个模型,假设现在有一只皮卡丘作为信源,也就是数据的发送方。这个皮卡丘可以释放负一伏到一伏的电压。另外,你的右手作为信宿也就是数据的接收方,皮卡丘和你的右手之间用导线连接。也就是说,用导线作为信道,接下来我们就可以以电压作为信号的物理量去传输二进制比特串好,假设我们要传递的是11010001这样的八个比特。如果把这八个比特转换成数字信号的话,我们可以让皮卡丘这么做,在零秒到一秒这个期间让皮卡丘释放一伏特的稳定电压,一伏特的电压对应二进制的1。接下来,在一秒到二秒这个期间,继续释放一伏特的稳定电压。同样一伏特对应二进制的一。接下来第二秒到第三秒之间释放负一伏特的这个电压,负一伏特对应的就是二进制0。后面以此类推,总共经过八秒的时间,每一秒释放一个信号。这个信号的值只有可能是1伏特或者-1伏特。在这八秒的时间内,你的右手可以感受到信号值的变化,根据时间 t和信号值 y 之间的这种函数关系,就可以知道哪几个比特是二进制的一,哪几个比特是二进制的零。这是数字信号
的例子,信号值是离散的。这个地方可能有必要根跨考的同学解释一下,电压值可以是负数,电压的本质是电势差。它可以是一个负值,只不过我们在中学物理期间接触到的电压通常是一个正值。接下来同样是用导线作为信道,我们看怎么用模拟信号去传输这个二进制比特串。我们可以这样做:
在零秒到一秒这段期间,我们要传输二进制1,所以在零到一这段时间内,我们可以让皮卡丘,按照电压值等于 sin 2 派分之 t,以这样的方式去释放电压。这样的话,你的右手感受到这个电压信号的变化之后,是不是也可以去判断这个电压的值和时间 t 之间有什么函数关系。如果说在一秒的时间周期内感受到电压的变化和时间 t 之间呈现出这种 sin 2 派
分之 t 的关系,就可以认为在这段时间内传输了一个二进制1。同样的道理,在第二秒到第三秒这段时间内,皮卡丘以电压等于 sin二派分支 t 加派,以这样的一个方式去释放电压。那么当你的右手感受到这个电压值的变化和时间 t 之间呈现出这样的函数关系的时候,就可以认为在二到三这个信号周期内,你接收到了一个二进制的0。可以看到,在这个过程中,信号的值是连续的,同样是以电压作为信号的物理量,右边这种信号就属于模拟信号。
在刚才的这两个例子中,无论是数字信号还是模拟信号,在一个信号周期内,也就是在一秒之内,有可能出现的这个信号值只会有两种情况。对于数字信号来说,只有可能出现一伏或者负一伏这两种情况,那这两种情况分别对应二进制的1和0。在一个信号周期内,如果只有可能出现两种信号值,那么这两种信号值只能分别对应二进制的零和一。如果我们多设计几种信号值,比如说可能会出现四种信号值,那么这四种信号值岂不是就可以对应上00、01、10和11这样的四种情况,也就是说我们可以让每一个信号值多携带几个比特的这个数据。接下来我们引入一个重要的概念,叫做码元。
刚才我们说每一个信号会对应若干比特的二进制码。所以我们可以把一个信号称作一个码元。可以理解为表示二进制编码的元素,有的教材会把一个信号周期的这种长度称为码元宽度。在一个信号周期内,有可能出现几种信号,就对应几种码源。在刚才这个例子中,一个信号周期内只有可能出现两种信号,因此每一个码源只能携带一比特的数据。
如果我们多设计几种信号值,比如说我们可以用2伏的信号表示00两个比特,1伏表示01两个比特,-1伏表示10,-2伏表示11。那么,同样是传输11010001这八个比特,我们就只需要四个信号周期。在零到一这段时间内我们释放-2伏的信号。-2伏对应的就是11两个比特。在一秒到两秒这段时间内,我们释放1伏的信号。那么1伏的信号可以让它对应二进制的01,后面的就不再赘述。
总之一个信号周期内,如果可能出现的信号值变多了。那么每一个信号或者说每一个码源可以携带的这个比特数也会增多。让一个信号,或者说一个码源携带多个比特的数据,这么做是有好处的。同样是传输八比特的数据,我们只需要四个周期就可以完成信息的传输。相应的,我们要付出的代价就是信号的功率要增强。
在前面例子中,我们的电压信号只需要在-1伏到1伏之间就可以。而后面这个例子中,我们的电压需要来到-2伏到2伏这个区间内,所以信号的功率需要增强。另外,需要传输更强的信号,那么
对信道的要求也会变高。在刚才这个例子中,由于一个码源或者说一个信号,它对应两比特的数据。那我们知道两比特的数据可以对应一个四进制数,所以在这个例子中,我们可以称这种码元为四进制码元。类似的,如果一个码元,或者说一个信号,它有可能会有八种状态。那么,我们可以称这样的码元为八进制码元。我们知道一个八进制数可以对应三比特的二进制数,所以一个八进制码元,它可以携带三比特数据。同样的道理,如果一个码元有 16种状态,我们可以称这种马原为 16 进制马原。因为一个码源可以对应一个 16 进制数,而一个 16 进制数本质上就是四比特的信息,那这就是 k 进制码元的概念。
在刚才这个例子中,我们用数字信号设计了四进制码元,接下来我们可以尝试用模拟信号设计四进制码元。在之前的讲解中,我们已经用模拟信号设计了二进制码源。在一个信号周期内。如果时间 t 和电压 y 之间的函数关系等于 sin 2 派分之 t,那么我们认为这样的一个信号或者说这样的一个码源,对应二进制的1,而如果时间 t 和电压 y 之间的关系呈现出 sin 2 派分之 t 加派。那么,我们认为这样的一个码源对应二进制的0。那我们不妨让每个信号周期可能出现的这个信号值再增加两个,那每一种信号值就可以对应两个比特的信息,比如在一到二这段时间内,时间 t 和电压 y 之间的关系是 y=s in 4 派分之 t。那么就说明,1到2这个周期内,我们接收到了01两个比特的信息。可以看到我们用模拟信号,也可以设计 k 进制的码元。
讲到这儿,相信大家也能够理解码元和比特之间对应的关系了。一个码元到底可以携带多少比特的数据取决于在一个信号周期内有可能出现几种信号,如果可能出现 k 种信号,那么一个码元可以携带的比特数就应该是 log 以二为底k 的对数,也就是说如果有八种可能的信号,那么一个码元就可以携带3比特数据,如果有四种可能的信号,那么一个码元就只能携带2比特数据,如果有 32
种信号,那么一个码源就可以携带5比特的数据。
当我们在探讨,两个节点之间的数据传输速率的时候,我们可以以每秒钟传输几个码元这样的方式去描述,也可以以每秒钟传输多少个比特这样的单位去描述。每秒钟传输多少个码元这个单位也可以记作波特(Baud)。如果我们说 a 和 b 之间的数据传输速度是 M波特,你要知道它的含义是A每秒钟给B传输M个码源,那如果要计算每秒钟传输多少个比特的话,我们就得关注一个码元到底携带了几个比特。这是描述数据传输速率的两种方式,如果以波特为单位去描述速率,我们可以把它称为波特率,就是说两个结点的波特率等于多少。类似的用比特作为单位去描述速率就称为比特率,波特率和比特率之间的内在联系,重点是要关注每个码元到底携带了多少比特的信息。如果一个码元携带了 n 个比特的信息,那么M波特的数据传输速率就等价于M x n比特每秒。
在这个视频中我们介绍了通信基础的一些基本概念。首先,我们介绍信源和信宿的概念,分别对应数据的发送方和数据的接收方,信源和信宿之间通过信号去传输数据。所以信号是数据的载体,
信号分为数字信号和模拟信号两种。二者的区别就是信号值到底是离散的还是连续的?无论是数字信号还是模拟信号,都需要通过信道去传输,如果一条信道,它是用于传输数字信号的,那么可以称这种信道为数字信道。相应的,用于传输模拟信号的信道称为模拟信道。要重点关注马原这个概念,要理解码元和比特之间的对应关系,一个码元可以携带多少个比特数据,取决于一个信号周期内可能出现几种信号,每一种信号就是一种码元。要理解马原和二进制比特之间的对应关系。如果一个信号周期内可能出现 k 种信号,那就意味着一个码元就对应一个 k 进制数,相应的,它就可以携带 log以二为底 k 的对数这么多比特的信息。
那在这个视频的最后,我们也介绍了速率的两种表示方式分别是波特率和比特率。波特率指的是每秒钟可以传输多少个码元,波特这个单位等价于码元每秒。波特率和比特率之间的内在联系,主要得看一个马原可以携带多少比特的数据。
以上就是这小节的全部内容。