我学习的方向和数据链路层也涉及很少 so...
数据链路层使用的信道主要有以下两种类型:
1.点对点信道。这种信道使用一对一的点对点通信方式。
2.广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发
(1) 封装成帧
(2) 透明传输
(3) 差错控制
n
封装成帧
(framing)
就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
首部和尾部的一个重要作用就是进行
帧定界
。
n
在传输过程中可能会产生
比特差错
:
1
可能会变成
0
而
0
也可能变成
1
。
n
在一段时间内,传输错误的比特占所传输比特总数的比率称为
误码率
BER (Bit Error Rate)
。
n
误码率与信噪比有很大的关系。
n
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
n
在数据链路层传送的帧中,广泛使用了
循环冗余检验
CRC
的检错技术。
n
在发送端,先把数据划分为组。假定每组
k
个比特。
假设待传送的一组数据
M
= 101001
(现在
k
= 6
)。我们在
M
的后面再添加供差错检测用的
n
位
冗余码
一起发送
n
用二进制的模
2
运算进行
2
n
乘
M
的运算,这相当于在
M
后面添加
n
个
0
。
n
得到的
(
k
+
n
)
位的数除以事先选定好的长度为
(
n
+ 1)
位的
除数
P
,得出
商
是
Q
而
余数
是
R
,余数
R
比除数
P
少
1
位,即
R
是
n
位。
n
现在
k
= 6,
M
= 101001
。
n
设
n
= 3,
除数
P
= 1101
,
n
被除数是
2
n
M
= 101001000
。
n
模
2
运算的结果是:
商
Q
= 110101
,
余数R = 001。
n
把余数
R
作为
冗余码
添加在数据
M
的后面发送出去。发送的数据是:
2
n
M
+
R
即:101001001,共 (k + n) 位。
110101←Q(商)
P (除数) →1101 101001000←2nM (被除数)
1101
1110
1101
0111
0000
1110
1101
0110
0000
1100
1101
001 ←
R
(
余数
)
,作为
FCS
n
(1)
若得出的余数
R
= 0
,则判定这个帧没有差错,就
接受
(accept)
。
n
(2)
若余数
R
¹
0
,则判定这个帧有差错,就
丢弃
。
n
但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。
n
只要经过严格的挑选,并使用位数足够多的除数
P
,那么出现检测不到的差错的概率就很小很小。