题目
3-5 要发送的数据为1101011011。采用CRC的生成多项式是(X)=(X)^-4+X+1。试求应添加在数据后面的余数,并回答问题。(1)数据在传输过程中最后一个1变成了0,接收端能否发现?(2)数据在传输过程中最后两个1都变成了0,接收端能否发现?(3)采用CRC后,数据链路层的传输是否就变成了可靠的传输?
3-5 要发送的数据为1101011011。采用CRC的生成多项式是。试求应添加在数据后面的余数,并回答问题。
(1)数据在传输过程中最后一个1变成了0,接收端能否发现?
(2)数据在传输过程中最后两个1都变成了0,接收端能否发现?
(3)采用CRC后,数据链路层的传输是否就变成了可靠的传输?
题目解答
答案
(1) 原始数据为1101011011,计算CRC校验码得到1001。如果最后一个1变为0,那么接收端收到的数据为1101011010,计算得到的CRC校验码为0101,与发送端计算的1001不符,所以接收端可以发现错误。
(2) 如果最后两个1都变为0,接收端收到的数据为1101011000,计算得到的CRC校验码为1101,仍与发送端的1001不符,所以接收端还是可以发现错误。
(3) CRC码可以检测一定位数的错误,但是不能保证数据链路[1]层的传输变成可靠的,因为CRC码可能无法检测到所有错误,比如数据顺序反了但CRC码仍符合。所以采用CRC后,数据链路层传输的可靠性会有一定的提高,但不会变成完全可靠的。还需要更高层的协议来实现可靠传输。
解析
步骤 1:计算CRC校验码
首先,我们需要计算CRC校验码。给定的生成多项式是 $G(X) = X^3 + X + 1$。要发送的数据为1101011011,我们需要在数据后面添加3个0,然后用生成多项式进行除法运算,得到的余数就是CRC校验码。
步骤 2:添加CRC校验码
将计算得到的CRC校验码添加到原始数据后面,形成完整的发送数据。
步骤 3:分析错误检测能力
(1) 如果最后一个1变成0,计算CRC校验码,看是否与发送端计算的CRC校验码一致。
(2) 如果最后两个1都变成0,计算CRC校验码,看是否与发送端计算的CRC校验码一致。
(3) 分析CRC校验码的错误检测能力,判断数据链路层的传输是否变成可靠的传输。
首先,我们需要计算CRC校验码。给定的生成多项式是 $G(X) = X^3 + X + 1$。要发送的数据为1101011011,我们需要在数据后面添加3个0,然后用生成多项式进行除法运算,得到的余数就是CRC校验码。
步骤 2:添加CRC校验码
将计算得到的CRC校验码添加到原始数据后面,形成完整的发送数据。
步骤 3:分析错误检测能力
(1) 如果最后一个1变成0,计算CRC校验码,看是否与发送端计算的CRC校验码一致。
(2) 如果最后两个1都变成0,计算CRC校验码,看是否与发送端计算的CRC校验码一致。
(3) 分析CRC校验码的错误检测能力,判断数据链路层的传输是否变成可靠的传输。