这学期学计算机网络,但是我感觉我们学校的某位任课老师讲的不太行,听完introduction部分以后,我决定脱离学校课程,直接按照408去学习,备战考研。
我购买了408推荐参考教材《计算机网络》,是谢希仁版本的第八版,网上对应的视频不是很多,我找到了方诗虹老师的课程,他用的书就是408的。虽然方老师的任职学校并不是很好,但是就我的经历来说,408本来就没什么特别深的东西,关键在于能不能讲好,经过我的调查,方老师评价还不错,所以我就直接来听她的课,搭配书籍食用。
以前有三大网络,有电信网络,有线电视网络,计算机网络,现在三网合一了,计算机网络是现在这个年代里最有价值的技术,是将整个世界统合起来的关键技术,是信息的基础设施。
互联网的核心特点是连通性,资源共享,这也是他的核心价值。实现连通的基础无非就是两类设备:
当互联网遍布全世界,就应该进行标准化了。领导机构是ISOC,其次是IAB,具体执行由两个部门去执行,一是IRTF(互联网研究部),一个是IETF(互联网工程部).
一个标准的指定也是非常麻烦的,需要公开发布草案(RFC,Request For Comments),收集反馈,验证,流程很复杂,所以最后能变成具体标准的草案很少。
两个计算机终端之间的通信,究其本质是一台主机的某个进程和另一台主机的某个进程通信。通信的方式由两种:
最开始是电路交换,利用的是电话线。打电话的过程就是:
很明显,这种模式适合打电话,但是不适合传输网络信息。因为网络信息是不稳定的,可能两个人发微信,一天发不了几次,你要独占一天,是不是就很浪费?所以互联网就不能是独占的。
分组交换的分组指的是将bit分组,每一组前面打上标签用于区分,每一组就是一个包(packet)。
具体过程采用储存转发技术,路由器储存转发具体过程如下:
由此可见,每个包传输的路径都是不固定的,用户不关心你走哪个路由,反正最后能送到目的地就行。也正因此,两个包走同一条路是很正常的,这就和电路交换完全是两回事了。具体如何复用,大致有三种技术,后面会讲:
分组交换一定就好吗?整体是更好的,但是仍然有缺点。
报文交换介于电路交换和分组交换之间。可以理解为选定一条路径就发送n组,然后再选一条路径发送n组。
从电路交换,到报文交换,到分组交换,其实可以从流水线角度去理解。电路交换就是完全顺序,报文交换就是部分流水线化,分组交换就是彻底的流水线。
流水线虽然可以提高资源利用率,但是也会产生额外的损失,要根据情况来确定:
中国计算机网络起步较晚,好在下一代网络的发展没有落后,在有一些领域还是领头的(比如5G网络)。
中国有5大ISP:
按照使用者分类:
用来把用于接入到网络的网络(AN,Access Network):
听起来有点奇怪,实际上居民是不太方便直接接入本地ISP的,需要一个路由器来中转。也就是说,AN是终端和互联网的桥梁。
香农的信息论里,bit是信息的基本单位。
速率=数据率=bit率,单位是bit/s。实际速率换算都用1000来换算:
区分一下速率、带宽、吞吐量
从用户实际体验来看,用户更关心一个操作需要等待的时间延迟。严格来说,时延就是数据从网络的一端到另一端所需的时间。其组成成分很复杂:
实际上,这四种时延谁更大,就不好说,有各自的改进点,只有改进瓶颈点的时候,才能带来最大的提升:
这道题的坑点在于单位换算,数据量的换算是2进制,数据率的换算是10进制。
发送时延= 100 × 8 × 2 20 1 × 1 0 6 \dfrac{100\times 8\times 2^{20}}{1\times 10^6} 1×106100×8×220
传播时延= 1000 k m 2 × 1 0 5 k m / s \dfrac{1000km}{2\times 10^5km/s} 2×105km/s1000km,传播时延不要用2进制去换算,这和信息没关系,不要考虑二进制。
这个指标的高低不能反应性能,只是一个比较专业的特殊指标,衡量我们的链路有没有被充分利用。
从发送方发送完数据,到发送方收到接收方回复的时间。
简单来说就是,从发完到收到回复的间隔。
RTT的计算方式很多,本质上就是下面这个图
一个常用的公式: 有效数据率 = 数据长度 实际消耗总时间 = 数据长度 发送时间 + R T T 有效数据率=\dfrac{数据长度}{实际消耗总时间}=\dfrac{数据长度}{发送时间+RTT} 有效数据率=实际消耗总时间数据长度=发送时间+RTT数据长度,有效数据率代表了实际上从开始发送到对方确认收到,这个全过程的数据率。
来道例题, 100 × 8 × 2 20 100 × 8 100 + 2 \dfrac{100\times 8\times 2^{20}}{\frac{100\times 8}{100}+2} 100100×8+2100×8×220
信道利用率:信道有多大比例的时间是被使用的。如果总是被利用,就是100%,完全空闲就是0。
网络利用率:全网络的信道利用率的加权平均值。
计算机网络是非常复杂的系统,传输文件需要解决很多很多问题,因此ARPANET设计的时候就提出了分层方法,将复杂的通信问题划分为独立的,易于研究的局部问题。
最开始的标准协议是ISO(国际标准化组织)提出的OSI(Open Systems Interconnection)模型。这个模型在1983年(和TCP/IP协议同时出现)形成了ISO 7498国际标准。ISO 7498模型是一个7层模型,是最开始的理想模型,但是实际上不采用这个模型。
计算机网络的体系结构的定义:
协议是为了数据交换而建立的约定,有三个组成要素
协议有两种形式:
无论如何,都不能出现二义性,要精确描述。即便如此,也不是十全十美的,很复杂。
关键在于,如何分层?原则很多,下面简单列出一些:
听起来还挺高大上,其实我们现实中的物流就是一种网络,而且也是分层的:
分层既有优点也有缺点,分层的优点是便于构造大型系统,缺点自然是效率会变低,会产生额外的沟通消耗。
OSI七层很理想,最终因为赶不上商业化速度而被淘汰,实际上其层次太多,效率比较低,实际落地不太好用。
因此最开始用的其实是一个4层约定,即TCP/IP四层模型。这是一个事实上的约定,并不是严格指定的标准。这个模型的根本缺陷在于,是一个凑合用的东西,并不是严格的标准。尤其是最底层的数据链路层和物理层是混在一起的,功能混乱。
现在通用的体系结构是5层结构,相当于TCP/IP的优化版本:
我们可以看到,每一层都有一种数据传输单元,即PDU(Protocol Data Unit)协议数据单元,虽然两台主机不一样,但是他们的协议一样,每层的PDU封装解封规则也是一样的。
注意,物理层只是定义了物理接口的规格,实际的传输介质在物理层之下。同理,应用层之上其实还有用户。从微观的角度来说,信息的传递是非常麻烦的:
然而从宏观角度来说,就是我把一个信息通过路由器中转发送到另一个主机,甚至再宏观点,就是从一个主机发送到了另一个主机。其他过程对于用户来说,都是透明的(在计算机学科里,透明指的是看不见)
总的来说,协议是水平的,服务是垂直的。从实际运行来讲,效果上每一层的实体都认为自己在和对等层实体通过协议交流,但是实际上实体之间是通过下层实体提供的服务来进行交流的,只是这些服务对于上层是透明的。
网络层IP协议非常重要,重要性好比计算机的操作系统,起到承上启下的作用。
我们学习的计算机网络体系结构,都是基于TCP/IP发展而来的五层结构,物理层就是最下面的层次。然而需要注意,物理层并不参与具体的信号传输,其功能如下:
关键在于,物理层要尽可能屏蔽掉不同传输媒体和通信手段的差异,为链路层(上层)提供一个统一的bit流传输服务。置于怎么屏蔽,就是物理层的协议,又称作规程。
实际上,物理层的任务在于定义一个从bit到传输媒体的接口,更具体一点说,是定义了DTE(数据终端设备)与数据线与DCE(数据电路终结设备)之间的接口特性:
机械特性。接口摸得着的特性,我们平时区分不同接口一般都是用机械特性区分的。
电气特性。接口支持的电路特性,比如电压范围,阻抗,速率等等。
功能特性。规定某条线的某一个电气特性代表什么含义
三大部分:
这个图比较宏观清晰:
这里说一下调制和编码的区别,凡是变成模拟信号的,都叫调制,不论你原来是什么信号。对应的,凡是变成数字信号的,都叫编码。其实调制和编码的界限没有这么分明,基带调制其实也算是一种编码。
编码的方式如下:
调制(Modulation)的基本方法就是用正弦波/余弦波来表示0/1,具体如下:
最后说一下码元这个概念:
我们前面编码的时候,每一个位周期可以代表0/1,这个位周期就是码元。那可不可以用一个码元代表多个bit呢?理论上,假设要携带3个bit,那么3个bit的组合有8种状态,因此只要一个位周期可以有8种状态,那么就可以用一个码元表达3个bit。如何实现8种状态呢?正如我们之前用正负来区分两个状态,我们可以通过电平的0-7档来实现区分8个状态。又或者使用QAM技术获得16种状态,那么将会有4个bit。
现在已经解决了信息调制的问题了,但是这并不意味着调制后的信号就可以无限制地通过信道进行传输,这涉及到信道的极限容量。极限容量受到很多因素印象,极限容量有两种计算方法,分别是奈氏准则和香农定律。
一个低通信道中,信号的高频分量无法通过信道,如果低通信道的通频带越宽,那么可以通过的信号频率范围就大,可以传播更多码元却不会引起码间串扰(码元之间出现重叠,无法解析)。奈氏准则给出了理想情况下(没有噪声干扰的信道)
给定通频带带宽W(Hz),则码元传输速率是2W。这只是码元速率,具体到信息速率,还要乘以一个码元可以携带的bit量,所以V进制码元的公式如下:
实际情况中,一个信道里还有噪声干扰,所以不见得能达到奈氏准则的理想速率。香农公式给出了带有噪声的信道中,实际可以达到的最高速率。
其中的S/N又被称作信噪比,实际上是信噪功率比。
信噪比有两种写法,一是用S/N,这是便于后续计算的,有时候会给dB单位,你需要转化成S/N值。
看起来,奈氏准则和香农公式没有关系,其实,当你提高码元携带的bit量时,S就会提高(信号功率提高),但是S提高的同时,N也会提高,这样反而可能会导致S/N降低。所以说奈氏准则和香农公式时两个有关联的瓶颈,奈氏准则告诉你提高码元携带bit量可以提高速度,但是香农公式又告诉你如果提高bit量会降低S/N,可能会起反效果。
这道题就是简单的奈氏准则。
这道题两个都用了。如果V=2,那么此时奈氏准则上线低于香农公式,此时V就是瓶颈,我们可以提高V到16,则奈氏准则结果为32000,此时香农公式又会成为瓶颈。
传输媒介指的是信号实际的通路,这不是物理层的东西,物理层是抽象,而传输媒介是现实的东西,分为两种:
从这一点来看,导引和非导引本质一样,都是传电磁波,只不过导引技术将电磁波收束,集中起来。
下图给出目前所有传输媒体的频谱(根据奈氏准则,频率越高,对应的带宽越大),可以看到,光纤一骑绝尘。
原理:把两根互相绝缘的铜线绞合,只要绞合地恰当,两根铜线发射的电磁波就可以互相抵消,极大地降低信号干扰。
理论上绞合程度越高,速度越快,但是实际上绞合程度有上限,因此还诞生了其他方法,比如屏蔽,由此分为两大类:
以前的数字有线电视就是用的同轴线,抗干扰能力强,所以被广泛用于高速远距离通信。
然而呢,现在双绞线和光纤的速度都已经上来了,比价格,同轴电缆不如双绞线,比距离,同轴电缆不如光纤,所以现在同轴电缆已经基本不用了。
光纤的原理是,电转光,全反射传输,光转电:
光纤有比较多的种类:
光纤有三个常用波段,因为这三个波段衰减率是最小的。因为这三个波段的线缆粗细不同,所以这三个波段不可以混合使用。
总的来说,光纤的性能很好,欠缺点就是布置不太方便,成本较高。
非导引型其实就是无线传输。分为长波,中波,短波,微波。
长波和中波对应海事无线电和调幅无线电,基本是直线传输,带有一点绕行能力,所以放到海上,没有遮挡比较省心。
短波比长波和中波的路径要更加直,所以是通过大气电离层的反射来进行远距离传输的。
现在主要是用微波了,微波不能绕行,而且会穿透电离层,所以微波有两种接力方法:
信道复用是为了充分利用信道,防止占着信道不传输信息的情况出现,总之要尽可能让信道忙起来。
频分复用FDM中,一个用户自始至终占用一个频带。以前广播申请拍照其实就是给你分一个频带。FDM便于实现,但是缺点就是,容纳的用户总量有限,毕竟频带不能一直分下去。
时分复用TDM中,用户按照时间片轮转来占用信道,每次占用全部频段。TDM同样面临用户容量小的问题,毕竟时间片也不能一直分下去。
为了解决FDM和TDM的容量缺陷,两个方法各自衍生出了一些技巧:
实际上,TDM仍然有缺陷,你能保证N个时间片(一个TDM帧)中,每个用户都有要发送的内容吗?你能保证轮到你的时候你有东西发吗,如果没有,那是不是浪费了你的时间片。
因此就有一种思路:
统计时分复用(Statistic TDM):整体上按照时间片轮转,但是如果你没东西发,我就跳过你的时间片。
因此,STDM中,STDM帧长度不固定,根据用户要发的东西来确定,即按需动态分配时间间隙,这个确定的模块就是复用器。
电信号可以进行频率上分割,光信号同样,所以波分复用其实就是光信号的FDM。
以上两大类方法,其实本质上都是交错发送,没有一个是真正同时同频段的复用。码分复用(CDM)就是如此,多个不同地址用户共享的时候,叫做码分多址(CDMA)。整体思路如下:
方老师讲的比较细,第一次不容易理解,这篇文章讲的比较好:
码分复用原理
这篇文章里没有提到,为什么X=1就代表发送了1,X=-1代表发送了0,X=0代表没有发送?
首先明白 S x S_x Sx只可能是两种情况, S S S或者 S ‾ \overline{S} S,因此 S ⋅ ( S x + T x ) S\cdot (S_x+T_x) S⋅(Sx+Tx)的结果就是 S ⋅ S x S\cdot S_x S⋅Sx,这个结果在有信号的情况下,不是1就是-1,对应信号1和0。在没有信号的情况下,点积结果为0,所以0结果对应无信号。
CDMA的加密型比较强,很不错,缺点,我感觉就是把一个bit变成了m个bit(但是这个只是我的一个猜测,估计不是我想的这么简单,否则这效率也太低了)
CDMA考研计算可能会考,不过很简单就是了。