循环冗余码(CRC)

更新时间:2024-05-27 03:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

循环冗余码(CRC)

(1)CRC的工作方法

在发送端产生一个循环冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循环冗余码同样的算法进行校验,若有错,需重发。

(2)循环冗余码的产生与码字正确性检验例子

54

例1.已知:信息码:110011 信息多项式:K(X)=X+X+X+1

43

生成码:11001 生成多项式:G(X)=X+X+1(r=4) 求:循环冗余码和码字。

5449854解:① (X+X+X+1)*X的积是 X+X+X+X 对应的码是1100110000。 1 0 0 0 0 1←Q(X) r G(x)→1 1 0 0 1 )1 1 0 0 1 1 0 0 0 0←F(X)*X 1 1 0 0 1 , 1 0 0 0 0 1 1 0 0 1 1 0 0 1←R(X)(冗余码) 98543

例2.已知:接收码字:1100111001 多项式:T(X)=X+X+X+X+X+1

43

生成码: 11001 生成多项式:G(X)=X+X+1(r=4) 求:码字的正确性。若正确,则指出冗余码和信息码。 解:①用字码除以生成码,余数为0,所以码字正确。 1 0 0 0 0 1←Q(X) r G(x)→1 1 0 0 1 )1 1 0 0 1 1 1 0 0 1←F(X)*X+R(x) 1 1 0 0 1 , 1 1 0 0 1 1 1 0 0 1 0←S(X)(余数) ②因r=4,所以冗余码是:1001,信息码是:110011 (3)循环冗余码的工作原理

循环冗余码CRC在发送端编码和接收端校验时,都可以利用事先约定的生成多项式G(X)来得到,K位要发送的信息位可对应于一个(k-1)次多项式K(X),r位冗余位则对应于一个(r-1)次多项式R(X),由r位冗余位组成的n=k+r位码字则对应于一个(n-1)次多项式T(X)=Xr*K(X)+R(X)。

(4)循环冗余校验码的特点 ①可检测出所有奇数位错; ②可检测出所有双比特的错;

③可检测出所有小于、等于校验位长度的突发错。

1. 给定一C类地址:192.168.5.0,要求划分20个子网,每个子网5 个主机。求子网掩码

和子网地址。

2.我们先假定一个环境,一个小小的公司中,目前有5个部门A至E,其中:A部门有10台PC(Host,主机),B部门20台,C部门30台,D部门15台,E部门20台,然后CIO分配了一个总的网段192.168.2.0/24给你,作为ADMIN,你的任务是为每个部门划分单独的网段,你该怎样做呢?

3.某单位为管理方便,拟将网络195.3.1.0划分为5个子网,每个子网中的计算机数不超过15台,请规划该子网。写出子网掩码和每个子网的子网地址。

我们先假定一个环境,一个小小的公司中,目前有5个部门A至E,其中:A部门有10台PC(Host,主机),B部门20台,C部门30台,D部门15台,E部门20台,然后CIO分配了一个总的网段192.168.2.0/24给你,作为ADMIN,你的任务是为每个部门划分单独的网段,你该怎样做呢?

实际上,这就是一个很典型的IP子网划分的问题,其中,192.168.2.0/24是一个C类网段,24是表示子网掩码中1的个数是24个,这是255.255.255.0的另外一种表示方法,每一个255表示一个二进制的8个1,最后一个0表示二进制的8个0,在计算机语言中以二进制表示为11111111 11111111 11111111 00000000,0表示可容纳的主机的个数。要划分子网,必须制定每一个子网的掩码规划,换句话说,就是要确定每一个子网能容纳的最多的主机数,即0的个数,显然,应该以这几个部门中拥有主机数量最多的为准,在本例中,C部门有30台主机,那么我们在操作中可以套用这样一个经典公式:

2N-2=Hosts 2N-2=30 N=5

N代表掩码中0的个数,5个零则意味着二进制掩码为11100000,即十进制的224.加上前面24个1,1 的总数为27个。

该掩码十进制表示为:255.255.255.224/27; 确定掩码规则以后,就要确认每一个子网的具体地址段。

以下让我们从A部门开始,一步一步DIY,其余B—E部门的操作可参照进行。 第一步:确定A部门的网络ID

网络ID,即本部门所在的网段,是由IP地址与掩码作\与运算\的结果。\与运算\是一种逻辑算法,其规则是:1与1为1;0与0 、0与1、1与0的结果均为0。

已知:当前的IP地址192.168.2.0的最后一位是0,二进制表示为00000000;而我们已经算出的掩码255.255.255.224的最后一位是224,二进制表示为11100000。

下面让我们来做一个与运算。要注意,由于掩码的后五位为0,那么IP地址只有前三位参加运算,而后五位仅仅列出,不参加运算。⑴ 0 0 0 0 0 0 0 0 与 1 1 1 0 0 0 0 0

0 0 0 0 0 0 0 0 (十进制:0) ⑵

0 0 1 0 0 0 0 0 与 1 1 1 0 0 0 0 0

0 0 1 0 0 0 0 0 (十进制:32) .......

这样就得到了A部门的网络ID为192.168.2.32/27,依此类推,根据主机数最多为30个的原则,B部门为192.168.2.64/27,C部门为192.168.2.96/27等等。

第二步,确定A部门的地址范围。

细心的朋友可能会发现,如果A部门的网络ID从32开始、并且主机数为30的

时候,似乎B部门的ID应该是从62开始才对,为什么B部门的ID为64呢?这是因为,根据局域网规范,网络中必须要有两个保留地址作为网络专用,一个叫网络回环地址,代表网络本身,其地址全为0;一个叫广播地址,专用于主机进行数据广播。其地址全为1,这两个地址是不得被主机占用或分配的,在本例中,A部门网络地址全为0时(只是后面5位!),二进制表示为00100000, 其十进制值为32;当网络地址全为1时,二进制表示为00111111,十进制值为63;由此可见:192.168.2.32仅仅是A部门网络的本网地址(即网络ID),而192.168.2.63为A部门网络的广播地址。现在再看看前面提到的公式?之所以要减一个2,就是要减去不能被分配和占用的这两个地址。所以,A部门实际上可分配给每个主机的地址范围为192.168.2.33 - 192.168.2.62,掩码均为255.255.255.224;所以,B部门的网络ID是从64起算的,与运算的图示如下: 0 1 0 0 0 0 0 0 与 1 1 1 0 0 0 0 0

0 1 0 0 0 0 0 0 (十进制:64)

显然,192.168.2.64是B部门网络的本网地址,并且不难算出,192.168.2.95是B部门网络的广播地址,B部门实际上可分配给每个主机的地址范围为192.168.2.65 - 192.168.2.94,同理可参照计算出C-E部门的地址范围。

于是,你圆满的完成了任务,可CIO还想考验一下你的能力,又提出了两个问题: 1、 公司各部门现有条件下的网络可扩展性怎样? 2、 公司目前可支持的子网数到底有多大?

不要紧张,这些纸老虎都是一捅就破的。第一个问题,所谓可扩展性,其实就是说在目前网络规划的条件下,各部门所能增加的主机数量,还不明白吗?就是有效的主机数减去现有主机数的值,对A部门而言,30-10=20,那么,A部门还能增加20台主机,当然C部门就无法再增加了。

对第二个问题,我们仍然要用到那个熟悉的经典公式: 2N-2=可支持的子网数 23-2=6

这里的N表示掩码中借位的个数,掩码从CIO给定的的24位(24个1)变成了27位(27个1),\借用\了三位,所以N用3代换(至于为什么要减2,各位朋友可以自己思考一下),结果为6,表示一共可以划分6个子网,而当前只有5个部门,已划分了5个子网,还可以再增加一个部门,再划一个子网。

到此,CIO交办的任务全部完成,等着提职加薪吧! 事情\似乎\完满解决了,可能朋友们还有觉得本例中有那么一些说不清的地方........ 如果C部门的主机数不是刚好30台,而是31,33等无法整除的数,怎么办?其实,在计算的时候,用常规算法如果出现了小数等无法除尽的时候,只需要把小数收上来就行了,注意,不是四舍五入,比如结果为5.3或5.2时,必须收整,使N为6,目的是为了让子网可容纳的主机只多不少,这样才能最大限度的保证网络ID的正确

某单位为管理方便,拟将网络195.3.1.0划分为5个子网,每个子网中的计算机数不超过15台,请规划该子网。写出子网掩码和每个子网的子网地址。

答:因为网络IP地址第一段为195判断是C类,

1)对C类地址,要从最后8位中分出几位作为子网地址:

∵22<5<23,∴选择3位作为子网地址,共可提供7个子网地址。

2)检查剩余的位数能否满足每个子网中主机台数的要求:

∵ 子网地址为3位,故还剩5位可以用作主机地址。而

25>15+2,所以可以满足每子网15台主机的要求。

3)子网掩码为255.255.255.224。

(11100000B = 224D)

本文来源:https://www.bwwdw.com/article/9gp7.html

Top