(1)当数据信号从发送端出发经过物理线路时,由于物理线路存在着噪声,因此数据信号通 过物理线路传输到接收端时,接收信号必然是数据信号与噪声信号电平的叠加。在接收端 接收电路在取样时对叠加后的信号进行判断,以确定数据的0、1值。如果噪声对信号叠加 的结果在电平判决时引起错误,这时就会产生传输数据的错误。
物理线路的噪声分为两类:热噪声和冲击噪声。其中,热噪声是由传输介质导体的电 子热运动产生的。热噪声的特点是:时刻存在,幅度较小,强度与频率无关,但是频谱很宽。 热噪声是一种随机的噪声,由热噪声引起的差错是一种随机差错。
冲击噪声是由外界电磁干扰引起的。与热噪声相比,冲击噪声的幅度比较大,它是引起 传输差错的主要原因。冲击噪声持续时间与数据传输中每比特的发送时间相比可能较长, 因此冲击噪声引起的相邻多个数据位出错呈突发性。冲击噪声引起的传输差错是-种突发 差错。引起突发差错比特位的长度称为突发长度。通信过程中产生的传输差错是由随机差 错与突发差错共同构成的。
(2)采取差错检测、差错 控制与流量控制等方法,将有差错的物理线路改进成无差错的数据链路,向网络层提供高质 量的数据传输服务。
误码率是指二进制比特在数据传输系统中被传错的概率,它在数值上近似等于= /。其中,N为传输的二进制比特总数,为被传错的比特数。
(1)误码率是衡量数据传输系统正常工作状态下传输可靠性的参数。数据信号在物理 线路传输过程中一定会因为噪声、干扰等原因出现错误,传输错误是正常并且是不可避免 的,但是一定要控制在一个允许的范围内。
(2)对于一个实际的数据传输系统,不能笼统地说误码率越低越好,要根据实际传输要 求提出误码率要求。在数据传输速率确定后,要求传输系统的误码率越低,则传输系统的设 备就会越复杂,相应造价也就越高。
(3)对于实际数据传输系统,如果传输的不是二进制数,需要折合成二进制数来计算。
(4)差错的出现具有随机性,在实际测量一个数据传输系统时,只有被测量的传输二进 制位数越大,才会越接近真实的误码率值。
在计算机通信中,研究检测与纠正比特流传输错误的方法称为差错控制。差错控制的 目的是减少物理线路的传输错误,目前还不可能做到检测和校正所有的差错。人们在设计 差错控制方法时提出以下两种策略。
(1)第一种策略是采用纠错码。纠错码为每个传输单元加上足够多的冗余信息,以便 接收端能够发现,并能够自动纠正传输差错。
(2)第二种策略采用检错码。检错码为每个传输单元加上一-定的冗余信息,接收端可 以根据这些冗余信息发现传输差错,但是不能确定是哪一位或哪些位出错,并且自己不能够自动纠正传输差错。
纠错码方法虽然有优越之处,但是实现起来困难,在一般的通信场合不易采用。检错码 方法虽然需要通过重传机制达到纠错目的,但是工作原理简单,实现起来容易,因此得到了 广泛的使用。
奇偶校验码:方法简单,但检错能力差,一般只用于 通信要求较低的环境。
●垂直奇偶校验
●水平奇偶校验
●水平垂直奇偶校验(方阵码)
奇偶校验
根据被传输的一-组二进制代码的数位中“1"的个数 是奇数或偶数来进行校验。采用奇数的称为奇校验, 反之, 称为偶校验。
通常专门设置一个奇偶校验位,用它使这组代码 中“1"的个数为奇数或偶数。若用奇校验,则当接收 端收到这组代码时,校验“1"的个数是否为奇数,从 而确定传输代码的正确性。
奇校验:就是让原有数据序列中(包括你要加上的一 位) 1 的个数为奇数
例: 1000110 (0)必须添0 , 这样原来有3个1已经是奇 数了,添上0之后1的个数还是奇数个。
偶校验:就是让原有数据序列中(包括你要加上的一 位) 1 的个数为偶数
例:1000110(1)必须加1,这样原来有3个1要想1的 个数为偶数就只能添1了。
奇偶校验能够检测出信息传输过程中的部分误码(奇数位 误码能检出,偶数位误码不能检出), 同时,它不能纠错。
在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。
循环冗余编码( CRC ) : 是应用最广泛的检错码编 码方法,具有检错能力强与实现容易的特点。
循环冗余编码( CRC )工作原理
●将要发送的数据比特序列当做一一个多项式 f(x)的系 数(例如,1011001可以看出一元多项式 , 在发送端用收发 双方预先约定的生成多项式G(x)去除,求得一一个余 数多项式R(x)。
●将余数多项式加到数据多项式后发送到接收端。
●在接收端,用同样的生成多项式G(x)去除接收数据 多项式f'(x) 。
●如果余数为0,表示传输无差错;否则,表示传输有 差错,由发送方重发数据,直至正确为止。
CRC校验的工作过程:
●接收端对多项式f'(x)采用同样的运算,即
● f'(x) / G(x)=Q(x)+R'(x)/G(x) ,式中R'(x)为余数多项 式。
●根据R'(x)是否等于0来判断是否出现错误。
CRC校验工作原理:
●实际的CRC校验码生成是采用二进制模二算法(即减法 不错位、加法不进位) , 这是一种异或操作。
CRC校验码的生成过程实例:
●发送数据比特序列为110011 ( 6比特), 即f(x)=110011
●生成多项式比特序列为11001(5比特,k=4),即 G(x)=11001
●将发送数据比特序列乘以24,那么产生的乘积应为 1100110000
●将乘积用生成多项式比特序列去除,按模二算法求余数多项式
如果在数据传输过程中没有发生错误,接收端收到的带 有CRC校验码的数据比特序列一定能被相同的生成多项式整除。即
接收端通过检错码检查数据帧是否出错,一旦发现错误,通常采用反馈重发(automatic request for repeat,ARQ)方法来纠正。图中给出了反馈重发纠错过程示意图。
(1)发送端将数据经过校验码编码器产生校验字段,并将校验字段与数据一起通 过物理线路发送到接收端。为了适应反馈重发的需要,发送端在存储器中保留发送数 据的副本。
(2)接收端通过校验码译码器判断数据传输中是否出错。如果数据传输正确,接收端 通过反馈信号控制器向发送端发送“传输正确"(ACK)信息。发送端的反馈信号控制器收 到ACK信息后,将不再保留发送数据的副本。如果数据传输不正确,接收端向发送端发送 “传输错误"(NAK)信息。 (3)发送端的反馈信号控制器收到NAK信息后,将根据保留数据的副本重新进行发送,直到正确接收为止。协议规定了最大重发次数。如果超过协议规定的最大重发次数,接 收端仍然不能正确接收,那么发送端停止重传,并将向高层协议报告传输出错信息。
数据链路层主要包括以下几个方面的功能。
1.数据链路管理
当收发双方开始进行通信时,发送端需要确认接收端已经做好了接收的准备。为了做 到这一点,收发双方必须事先交换必要的信息,建立数据链路连接;在数据传输过程中要维 护数据链路;当通信结束时,要释放数据链路。数据链路层链路管理功能包括数据链路的建 立、维护与释放。
2.帧同步
数据链路层传输数据单元是帧。物理层的比特流是封装在帧中传输的。帧同步是指接 收端应该能够从收到的比特流中正确地判断出一帧的开始位与结束位。
3.流量控制
发送端发送数据超过物理线路的传输能力或超出接收端的帧接收能力时,就会造成链 路拥塞。为了防止出现链路拥塞,数据链路层必须具有流量控制功能。
4. 差错控制
为了发现和纠正物理线路传输差错,使有差错的物理线路变成无差错的数据链路,数据 链路层必须具有差错控制功能。
5.透明传输
当传输的数据帧数据字段中出现某些特定的控制字符的二进制代码序列时就必须采取 适当的措施,使接收端不至于将数据中的系统代码误认为是控制字符。数据链路层必须保 证帧数据字段可以传输任意的二进制比特序列,即需要保证帧传输的“透明性”问题。
6.寻址
在点-多点链路连接的情况下,数据链路层要保证每一帧都能传送到正确的接收端,因 此数据链路层必须具备寻址的功能。
数据链路层与网络层、物理层的关系
1.数据链路层与网络层的关系
数据链路层在OSI参考模型中处于网络层与物理层之间。网络层的主要功能是为联 网计算机之间的通信寻找- -条最佳的传输路径。如图所示,如果Internet中的主机A 要向主机B传送数据,那么主机A的网络层就会启动路由选择算法,找出一条到达主机B 的传输路径。这条传输路径要经过路由器1、路由器2、路由器3的多跳才能够到达主机B。 这条传输路径是由多段链路组成。
注意:
(1)网络层路由选择算法找出的传输路径一般都是由多段链路组成。如果数据链路层 要能够保证网络层的数据经过每-.段链路传输时都不会出现差错,那么网络层数据经过多 段链路传输也就不会出错。因此,数据链路层就是为保证网络层数据传输的正确性提供服 务的。
(2)由于数据链路层的存在,网络层不需要知道物理层具体采用了哪种传输介质与通 信设备;是采用模拟通信方法,还是采用数字通信方法;使用的是有线信道,还是无线信道。 只要接口关系与功能不变,物理层所采用的传输介质与通信设备的变化,对网络层不会产生
影响。因此,数据链路层可以为网络层屏蔽物理层传输技术的差异性提供服务。
2.数据链路层与物理层关系
数据链路连接建立在物理线路连接上。在物理层完成物理线路连接并提供比特流传输 能力的基础上,数据链路层才能够传输数据链路层协议数据单元——帧。数据链路层协议软件控制数据链路的建立、帧传输与释放过程,同时通过流量控制与差错控制功能来保证数 据在数据链路上的正确传输,为网络层提供服务。
图中给出了数据链路层与物理层协议工作过程示意图。理解数据链路层与物理层关 系,需要注意以下问题。
(1)主机A与主机B之间要传输数据,首先要建立物理线路连接。
(2)建立物理线路连接后才能传输比特流;能够传输比特流,才能传输数据链路层的控 制帧;控制帧通过协商来建立数据链路。
(3)建立数据链路之后才能进入数据帧传输阶段。数据链路层协议使用控制帧,来协 调和控制数据帧的传输过程,保证帧传输的可靠性。
(4)当数据帧传输结束时,数据链路层协议通过控制帧来协商释放数据链路。
(5)数据链路释放后,物理线路连接还应该存在,最后才是释放物理线路连接。
(6)释放物理线路连接之后,主机A与主机B之间的通信关系才完全解除。
从以上讨论中可以看出:数据链路层是在物理层比特流传输功能的基础上,为网络层提供服务。
(1)链路是由物理线路与通信设备构成的。物理线路可以是有线的,也可以是无线的。 物理线路连接相邻的两个结点,中间没有其他的交换结点或转接结点。
图中给出了一个简单的例子,那就是连接收发双方的物理线路是电话线。由于电话 线是用来传输模拟语音信号的,在电话线上传输计算机产生的数字信号就必须使用调制解 调器Modem,实现数字信号与模拟信号之间的转换。收发双方的物理层通过电话线与 Modem完成比特流的传输。因此,电话线与Modem就构成了连接收发双方物理层,实现 比特流传输的链路。
(2)在没有采取差错控制机制的链路上传输比特流是会出错的。在计算机网络中,设 计数据链路层的目的就是为了发现和纠正链路在传输过程中可能出现的差错,使有差错的 链路变成无差错的数据链路。数据链路是由实现数据链路层协议的硬件、软件与链路组成。
HDLC(High-Level Data Link Control)协议是一种广为使用的链路层协议,具有以下特点:
帧机构:
针对面向字符型协议“控制帧与数据帧格式不同”的缺点,HDLC协议定义了如图3-10 所示的帧结构,其中用8位控制字段C的bo与br位来标识三种不同类型的帧:信息(I)帧、 监控(S)帧与无编号(U)帧。
信息(I帧用于传送网络层的IP分组数据。监控(S)帧用于协调发送端与接收端的信 息帧传输、确认与流量控制。无编号(U)帧用于实现设置数据链路配置方式与数据传输方 式等链路控制功能。三种帧的功能不同,但是帧格式相同。
HDLC是通过在帧中规定特定的位的数值与出现的顺序来管理数据链路的工作过程的。
HDLC 协议的工作过程大致如下:
HDLC 协议在数据链路层中起到了关键的作用,它提供了可靠的数据传输和错误检测功能,确保了数据在链路中的正确传输。但需要注意的是,具体的 HDLC 实现可能会有所不同,上述特点和工作过程是一般情况下的描述。在实际应用中,还需要根据具体的网络设备和协议规范来确定其详细特性。
●特点:利用已定义好的一种标准字编码的一个子集来执 行通信控制功能。
●可以利用ASCII码中的控制字符来实现。
●典型代表是IBM公司提出的二进制同步通信(BSC) 协 议。
面向比特型
●最有影响的是高级数据链路控制协议(HDLC)
面向字符型
●特点:利用已定义好的一种标准字编码的一个子集来执 行通信控制功能。
●可以利用ASCII码中的控制字符来实现。
●典型代表是IBM公司提出的二进制同步通信(BSC) 协 议。
面向字符型数据链路层协议的缺点:
●控制报文与数据报文的格式不一致;
●系统每增加一种功能需要设定一个新的控制字符,因此功能 扩展困难;
●采用停止等待方法,收发双方只能交替工作,协议效率低, 通信线路的利用率低;
●不能实现数据的透明传输。