① 数据链路层的差错的检测和恢复(奇偶校验码,CRC校验,校验和),各种运算
在原始的物理传输线路上传输数据信号是有差错的,存在一定的误码率,数据链路层存在的目的就是给原始二进制位流增加一些控制信息 ,实现如何在有差错的线路上进行无差错传输
数据设定为M位,冗余位设定为R位,如果位数满足即认为不出错,如果位数不满足即肯定出错
差错产生的原因
信道的电气特性引起信号幅度,频率,相位的畸变,信号反射,串扰,闪电,大功率电机的启停等
计算机网络中出现的差错是连续的还是离散的差错? → 是连续的突发性的差错
比如传了一个这样的位串0001101001,连续的差错:比如一共出错了3位,连续的出错在一起。离散的差错:一共出错了3位,不是连续出的,是分散出的
保证帧正确,按序送交上层(顺序要对,不能重复也不能跳帧)。在接收方能够判断接收的数据是否正确,若错误还可能要恢复错误
纠错控制主要由接收方做,能检查出错并定位到是哪儿出错了
接收方通过反馈机制告诉发送方出错,发送方通过重发的方式恢复差错
☆自动纠错比检错反馈重发机制代价大,在发生数据丢失的情况下,只是自动纠错机制无法进行差错恢复,还是需要检错反馈重发机制
一个帧包括m个数据位,r个校验位(是冗余位,和m位的有效数据是无关的),称为n位码字(n=m+r),我们希望r尽量短,并且尽量有一个固定长度
加入了冗余位,使接收方知道有差错发生,但不知道什么差错,然后请求重发
加入了足够多的冗余位,使接收方不仅知道有差错发生,并知道哪些位发生差错
两个编码的海明距离: 两个编码不相同位的个数
例:0000000000与0000011111的海明距离是5
编码方案的海明距离: 编码方案中任两个编码海明距离的最小值
ASCII这样的连续编码的海明距离都是1
为检测d位错,编码方案的海明距离应至少为d+1
当发生d位错时,不会由一种合法编码变为另一种合法编码,也就是想要由一种合法编码变为另一种合法编码,需要d+1以上出错
对接收方来讲,它判定一个编码是否出错的唯一依据是这个编码是否是一个合法的编码。即使接收方收到了一个合法的编码,它也无法判断是否是一个合法编码,因为它不知道这个合法编码原本就是合法的,还是出错以后也依然是一个合法编码。因此需要海明距离应至少为d+1
在数据链路层一般是不用这种检错方法的,因为检错率太低
若接收方收到的字节奇偶结果不正确,就可以知道传输中发生了错误
增加奇偶校验位后海明距离由1变为2,因此根据“为检测d位错,编码方案的海明距离应至少为d+1”,可以检查出一位二进制位的差错
用这种方法,有一位出错时,就会由合法编码(奇校验时1的个数为奇数,偶校验时1的个数为偶数)变成一种非合法编码(奇数校验时1的个数为偶数,偶校验时1的个数为奇数)
为纠正d位错,编码方案的海明距离应至少为2d+1
当发生d位错时,出错编码仍然最接近于原始的正确编码
例:现在有一个编码方案,这个编码方案之中只有4种合法编码↓
0000000000
0000011111
1111100000
1111111111
它们之间的海明距离为5,按照定理,能够纠正2位错
假设接收方收到了这样的编码:0001100000,很明显这是个非法编码,怎么样纠正
呢?我们知道出错的位数是≤ 2位的,它和第一种的海明距离为2,和第二种为7,和
第三种为3,和第四种为8,离它最近的是第一种编码。它采用这种就近恢复的原则将
出错的编码恢复到原始编码
数据链路层用的最多的一种检错方法
但是高层(网络层,传输层)是不用这种检错方法的,而用检验和的方法
生成多项式G(x)
发方,收方事前约定。这里的约定是数据链路层的协议已经定义该协议使用什么生成多项式
生成多项式的高位和低位必须为1
生成多项式必须比传输信息对应的多项式短
(现在最多用的是CRC-32,生成多项式是32位,能否保证生成多项式比传输的对应的多项式短呢?从原始数据来讲保证不了,但是到数据链路层时加了传输层的头,网络层的头之后肯定能保证大于32位。比如现在的Internet网络,例如在传输层使用TCP加20个字节,在网络层IP又加了20个字节,已经超过32位了,所以肯定能保证)
理论上来讲生成多项式的阶越高,检错率越高
硬件实现CRC校验
四个多项式已经成为国际标准
CRC码(增加的r位冗余位检错码,即校验和)加在帧尾(效率比较高),使带CRC码的帧的多项式能被G(x)除尽:接收方接收时,用G(x)去除它,若有余数,则传输出错
• 模2加法运算定义为:(对应于逻辑异或)
0+0=0 0+1=1 1+0=1 1+1=0
例如0101+0011=0110
• 模2减法运算定义为:(对应于逻辑异或)
0-0=0 0-1=1 1-0=1 1-1=0
例如0110-0011=0101
• 模2乘法运算定义为:
0x0=0 0x1=0 1x0=0 1x1=1
• 模2除法运算定义为:
0 ÷1=0 1÷1=1
利用模2减求余数,余数最高位为1,则商1,否则商0,每商1位则余数减少1位,
直到余数位数少于除数位数
按位与运算:
按位与运算符”&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现
例如: 9 & 5
00001001(9的二进制补码)
&
00000101 (5的二进制补码)
00000001
可见9 & 5 =1
最高位作为符号位,若符号位为0,则表示正数,若符号位为1,则表示负数
其余各位代表数值本身的绝对值(以二进制表示)
绝对值相同的正数和负数,它们除了符号位不同外,其他各位都相同
一个数如果值为正,则它的反码与原码相同
一个数如果值为负,则将其符号位置为1,其余各位为对原码相应数据位取反
(取反:二进制中有0和1两种状态,取反就是取与当前状态相反的状态,1取反等于0,0取反等于1)
正数的补码与反码,原码相同
负数的补码则将其最高位置为1,其余各位为对原码的相应数据位取反,再对整个数加1
即 X为负数时,【X】补 = 【X】反+1
(+0)补 = 00000000
(-0)反 = 11111111
(-0)补 = 11111111 + 1 = 100000000→进位1舍去→00000000
假设用一个字节表示一个数,补码的表示范围为:-128 ----- +127
用反码表示的最小值为:-128,其反码为:10000000
用反码表示的最大值为:+127,其反码为:01111111
按位或运算符”|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的两个二进位有一个为1时,结果位就为1.参与运算的两个数均以补码出现
例如:9|5
00001001
| 00000101
00001101(十进制为13)
可见9|5=13
~为单目运算符,具有右结合性。其功能是对参与运算的数的各二进位按位求反
例如:~9
~(0000000000001001)结果为:1111111111110110
按位异或运算符” ^ ”是双目运算符。其功能是参与运算的两数各对应的二进位相异或。当两对应的二进位相异时,结果为1。参与运算数仍以补码出现
例如:9^5
00001001
^ 00000101
00001100(十进制为12)
左移运算符” << ”是双目运算符。其功能是把 ” << ”左边的运算数的各二进位全部左移若干位,由” << ”右边的数指定移动的位数,高位丢弃,低位补0
例如:a=00000011(十进制3),a << 4,结果为:00110000(十进制48)
右移运算符” >> ”是双目运算符。其功能是把” >> ”左边的运算数的各二进制全部右移若干位,” >> ”右边的数指定移动的位数
例如:a=15(00001111),a >>2,结果为00000011(十进制3)
计算方法例:
※CRC码计算还有一个好处:
我们希望不管m是多少位的,但是冗余位r是越短越好,而且最好位数是固定的。用这CRC码的好处就是生成多项式是多少阶的,那么最后的余数(冗余位)的位数就是多少位。如果是n阶的,那么最后就是4位
循环冗余校验法检验不出来的错的情况:收到的位串虽然是错误的,但是恰巧能被生成多项式整除,这个时候检测不出来
适用于高层协议,如IP,TCP,UDP等
校验码放在前面或后面影响都不大,所以绝大多数是放在前面的
检错率低于循环冗余校验法
在↓例子中,如果第1位和第9位同时出错,或者第2位和第10位同时出错···出错,那么它们取反相加的数是不变的,这个时候是检查不出错的。但是网络当中连续突发的错占绝大部分,这种跳跃性的出错概率很小,所以检验和的检错率还是比较高的
高层不用冗余校验法的原因是,冗余校验法主要采用除的计算方式,比累加的(校验和)计算方式效率要低,而数据链路层用这种方法可以用硬件实现,但是网络层和传输层一般只能通过软件实现,那么效率就降低了。而且数据链路层已经提供了比较可靠的支持,所以高层就可以用这种检错率相对低一点的检错法
检验字段初值置0,数据拆分成与检验字段等长的分片,不足部分补0,将所有分片逐位取反,并连续累加,丢弃最高进位,计算结果置于检验字段。接收端执行相同的过程(分段处理,取反累加,把累加出的校验和与校验码字段当中保存的校验和进行比对,如果是完全一致就没错),并将计算结果和传输过来的检验和进行比较以确定是数据是否出现差错
② 计算机通信中通常使用的差错检验方法
在LDPC(Low-Density Parity-Check,低密度奇偶校验)码用于纠错码时,能够抑制吞吐量下降并且高精度地进行差错检测的无线通信装置。在该无线通信装置中,CRC(Cyclic Rendancy Check,循环冗余校验)编码单元(101)基于LDPC码的校验矩阵的列权重,只对发送比特串的一部分比特进行CRC编码而生成CRC编码数据,LDPC编码单元(102)使用与CRC编码单元(101)进行CRC编码时使用的校验矩阵相同的校验矩阵,对CRC编码数据进行LDPC编码而生成LDPC编码数据
③ 在数据通信系统中为什么需要差错检验解决数据传输差错问题的方法主要有哪些
差错检验注意是为了防止数据在传输中出错了
主要方法是校验,如奇偶校验等
当然数据要求非常高的,可重复校验,就是同一数据发送多次,然后相互核对
④ 计算机网络,关于数据链路层差错检测的【循环冗余算法】
这个题目不完整。这类题目的做法是:要发送的数据为被除数,后面要加上CRC生成的多项式P(X)最高次幂个0。并且除数的位数是P(X)最高次幂+1。P(X)每个幂数代表着除数从右到左第几位为1,其余的都为0,就得出除数了。最后通过模2运算出余数,余数的位数等于被除数后面加的0的个数。模2运算即1+1=0,0+0=0,0+1=1,1-1=0,1-0=0,0-1=0,0-0=0
举个例子:要发送的数据为101110。采用CRC生成多项式是P(X)=X^3+1。试求应添加在数据后面的余数
答:除数P为1001,被除数为101110000(此处后面加了3个0),模2运算得出商Q=101011,余数R=011
最后PS:采用CRC检验后,数据链路层的传输并非变成了可靠运输。接收方进行CRC检验时,如果发现差错就简单的丢弃这个帧。另外,余数不为0则代表接收的数据有差错
⑤ 计算机网络的差错控制指的是什么
差错产生原因主要是由于线路本身电气特性所产生的随机噪音,信号振幅,频率和相位的衰减等设备故障因素造成
差错分为单比特差错和突发差错,单比特差错是指在传输的数据单元只有一个比特发生变化,而突发差错是有两个或两个以上的比特发生变化
--差错控制的两种方法
1.从硬件入手,但增加通信成本
2.传输过程中进行差错控制,在数据链路层采用编码进行查错CRC和纠错处理
⑥ 计算机网络中差错控制方法
一、总的方法折叠:
1、前向纠错。实时性好,单工通信采用。
2、自动重发请求(ARQ)。强调检错能力,不要求有纠错能力,双向通道采用。
3、混合纠错。上述两种方式的综合,但传输设备相对复杂。
二、分类方法折叠:
1、差错检测是差错控制的基础。能纠错的码首先应具有差错检测能力,而只有在能够判定接收到的信号是否出错才谈得上是否要求对方重发出错消息。具有差错检测能力的码不一定具有差错纠正能力。由于差错检测并不能提高信道利用率,所以主要应用于传输条件较好的信道上做为误码统计和质量控制的手段。
2、自动请示重发ARQ和前向纠错FEC是进行差错控制的两种方法。
一在ARQ方式中,接收端检测出有差错时,就设法通知发送端重发,直到正确的码字收到为止。ARQ方式使用检错码,但必须有双向信道才可能将差错信息反馈到发送端。同时,发送方要设置数据缓冲区,用以存放已发出的数据以便于重发出错的数据。
二在FEC方式中,接收端不但能发现差错,而且能确定二进制码元发生错误的位置,从而加以纠正。FEC方式使用纠错码,不需要反向信道来传递请示重发的信息,发送端也不需要存放以务重发的数据缓冲区。但编码效率低,纠错设备也比较复杂。
3、差错控制编码又可分为检错码和纠错码。
检错码只能检查出传输中出现的差错,发送方只有重传数据才能纠正差错;而纠错码不仅能检查出差错而且能自动纠正差错,避免了重传。
4、演播的检错码有:奇偶校验码、循环冗余码。
在实际通信网中,往往在不同的应用场合采用不同的差错控制技术。前向纠错主要用于信道质量较差、对传输时延要求较严格的有线和无线传输当中;差错检测往往用于传输质量较高或进行了前向纠错后的通路的监测管理之中>自动请求重发则多用于象计算机通信等对时延要求不高但对数据可靠性要求非常高的文件传输之中。
⑦ 简述计算机的网络故障分类及其解决方法
宽带连接错误:691(由于域上的用户名或密码无效而拒绝访问)。
宽带连接错误:内623(找不到电话薄项目)。
宽带连接错容误:678(远程计算机没响应)。
宽带连接错误:645产生原因为拨号软件文件受损造成(常见于XP系统) 。
宽带连接错误:721(远程计算机没有响应)。
以上信息仅供参考,星卡日租版办理即送20元话费,200G星卡专属定向流量包,刷视频、玩全网,更轻松、更自由,详情可登录广西电信网上营业厅查看,客服107号为您解答。
⑧ 电脑网络连接出现差错怎么办
解决方法1:方法是打开“控制面板”——“网络连接”,找到当前的本地连接,右击它,选“属性”,在“常规”选项卡中双击
“Internet协议 (TCP/IP)”,选择“使用下面的IP地址”,在“IP地址”中填写“192.168.0.1”,在“子网掩码”中填写
“255.255.255.0”,其他不用填写,然后点“确定”即可解决该问题。(如果当前计算机加入工作组或域,就要根据情况而设置)
解决方法2:可以在“网络连接“的”本地连接“的设置里把”无连接时通知我“的选项去掉就行了。
系统托盘区出现“受限制”的连接图标
采用虚拟拨号上网的用户安装SP2后,在托盘区中可能会看到一个新的网络连接图标,系统提示“此连接受限制或无连接,您可能无法
访问Internet或部分网络资源”。出现这个图标是由于没有指定IP地址,不过并不会影响正常的上网。如果要隐藏这个受限制的网络连接
图标,可以打开“网络连接”窗口,用右键单击受限制的网络连接,选择“属性”,并在弹出的对话框中取消“此连接被限制或无连接时
通知我”即可.3.检查连接,无问题,换根网线试试。
⑨ 在计算机网络中什么是crc校验和,怎么计算
CRC即循环冗余校验码
是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。
循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设要发送的信息用多项式C(X)表示,将C(x)左移R位(可表示成C(x)*2R),这样C(x)的右边就会空出R位,这就是校验码的位置。用 C(x)*2R 除以生成多项式G(x)得到的余数就是校验码。
谢谢 希望能帮助到你