计算机网络

计算机网络_数据链路层的三个问题

2019-09-29  本文已影响0人  不会编程的程序猿甲

数据链路层解决的三个问题


封装成帧:在数据前后加帧头帧尾进行定界


透明传输:数据中有控制符如何正确的传输,采用字节填充法解决,即在数据中出现的控制符和转义字符前面插入转义字符,在接收时去掉转义字符。

字节填充法解决透明传输

差错校验:在数据后面加帧检测序列来进行差错检验,典型的检错方法:循环冗余检验CRC

补充CRC原理(原文链接:https://blog.csdn.net/wenqiang1208/article/details/71641414

1.基本概念

(1)模2运算:实际上是按位异或运算,即相同为0,相异为1,也就是不考虑进位、借位的二进制加减运算。如:1111+1010 = 0101

(2)FCS:其实就是冗余码,帧检验序列(Frame Check Sequence)

(3)生成多项式:其实就是除数,比如下面将要用到的除数p = 1101

2.计算n位冗余码

现假定待传输的数据M = 101001(k = 6),除数p = 1101 (n = 3)比n多一位

这n位冗余码可以用下面的方法得出:

(1)用二进制的模2运算进行(2^n)乘M的运算,相当于在M后面添加n个0,即M后面添加3个0

(2)现在得到M = 101001000(k+n = 9)位的数除以除数p(n = 3)位,得到商是Q(不关心),余数R =001(n位)R就是冗余码FCS

3.接收端检验

现在加上FCS后发送的帧是101001001

在接收端把接收到的数据M = 101001001以帧为单位进行CRC检验:把收到的每一个帧都除以相同的除数p(模2运算),然后检查得到的余数R。

结果有两种情况:

(1)余数R = 0,则判断这个帧没有问题,就接受

(2)余数R != 0,则判断这个帧有差错,就丢弃。


点对点信道的数据链路层

点对点通信
上一篇 下一篇

猜你喜欢

热点阅读