数据链路层三个基本问题
- 封装成帧
- 透明传输
- 差错检验
循环检验冗余原理:
- 在发送端,先把数据划分为组,假设每组K个比特
- 假设待传送的数据M=100100,K=(6)
- M的后面再添加供差错检验的n为冗余码一起发送
冗余码的计算:
- 用二进制的模2运算进行2^n*M的运算(即在M后添加n位的0)
- 得到的M是被除数,与之前选定好的n+1位的除数p运算,进行按位与,相同得0,不同得1,得到的余数就是冗余码(n位)
- 在数据帧后面添加上冗余码成为帧检验序列FCS
接收方的操作:
- 收到的数据帧作为被除数除以n+1位的除数p
- 若余数位0,则数据无误,否则丢弃
例题:
这个题相当于发送阶段,解析如下:
这个题相当于接收方的检验,解析如下:
CRC检验码的比特序列为000110,(收到的数据帧的后n位,即除数的-1位)。