这节课呢我们先来讲解一下差错控制的检错编码。
首先我们问这样一个问题。差错从何而来,差错是什么呢?因为人无完人,链路自然也没有完全理想的链路。所以链路上它之所以不理想就是因为它会出现一些差错,而这些差错呢大概率都是由这个噪声引起的。
噪声呢主要分为两种,一种是全局性的噪声,那自然另一种就是局部性的。
那全局性的噪声呢主要是由于线路本身啊电气特性所产生的随机热噪声,那这种噪声呢是信道固有的,而且是随机存在的。
那面对这种随机性的噪声呢,我们的解决办法就是提高信噪比来减少或者是避免干扰。因为我们知道信噪比如果提高的话,信号的强度相对于噪声的强度就非常大,因此噪声对于我们信号的影响呢就变得很小了,所以就很有效地解决了这样一个随机热噪声的问题。
那如何提高信噪比呢?就是对传感器下手。这里面大家有一个了解就可以了,可以调整传感器它的硬件设置或者调整一些参数,都是可以提高信噪比的方法。
那另一种噪声就是局部性的噪声。它是由于外界特定的短暂原因所造成的冲击噪声,就比如说这些信号按部就班地往前走呢,突然被一个人打了一下啊,突然被外界打了一下,那这种短暂性的冲击性的噪声,是产生差错的主要原因。因为你撞一下,就会对这样一块的信号影响非常大,所以是我们产出差错的主要原因。
那针对这种局部性的噪声呢,我们的解决办法通常是利用编码技术来解决,这个我们稍后会着重去讲。
那我们说差错是由噪声引起的,那这两种噪声呢也就引起了我们对应的几种差错。主要分为两种,一种是位错,也就是比特错。另一种呢,就是帧错。帧错也就是我们链路层的一个数据传输单元——帧发生了错误。
首先这个位错我们讲解一下。它是比特位出错,1和0之间发生了一个转变。1变成0,或者是0变成1了。
而帧错呢它有三种情况。
假如说我们要传输三个帧,那这三个帧呢它在链路上面可能产出帧错有以下三种,第一个就是帧丢失,比如说2帧丢掉了。第二种呢就是重复帧,2重复发送了一次,接收端收到了两个2帧。第三种帧错就是帧的失序。啊,收到了132。接收端的收到的顺序呢,就是和发送端的发送顺序不一样了,颠倒了。那因此这种帧错呢叫做帧失序。那针对于这三种帧错呢,我们会采用一些帧编号,还有确认重传机制等等。这些,用来进行它们的差错控制。啊,以实现我们数据链路层对于网络层的一个可靠传输的功能。当然这个思想啊是过去OSI的观点,我们现在这个通信链路的质量已经大大提高了,所以说由于通信链路质量不好,所引起的差错的概率也就大大降低。所以现在因特网呢,它采用一个非常灵活的办法,啊针对不同的网络我们会选择是否采用确认和重传机制。那这个确认和重传机制啊是我们在下节课,滑动窗口以及我们在传输层会讲到的。
那我们回顾上节课讲过的这样一个知识点,链路层的功能,它为网络层提高服务,包括三种:无确认无连接,有确认无连接,有确认面向连接。
对于通信质量好,而且是有线传输链路呢,链路层协议就不会采用确认和重传机制了。而且也不要求链路层向网络层提供一个可靠传输的服务。那如果在链路层传输的时候呢,发生了差错啊,并且需要改正的话,改正错误的任务呢就交给上层协议,也就是说未来的传输层,由它们来完成。
那对于通信质量比较差的无线传输链路呢,链路层协议就会采用确认和重传机制。那数据层、数据链路层呢就要向上提供一个可靠传输的服务,也就是这两种,有确认无连接服务,有确认面向连接服务。
那讲完这些啊,我们就来看一下,链路层它为什么需要这样的差错控制呢?现在有两台主机要进行通信,中间呢有一系列的中间系统,这个是个交换机,还有3个路由器。当然这个地方呢也可以有一些路由器就是我没有画而已。
那假如说这个链路上面,嗯就有一个交换机,然后这是3个路由器。