数据链路层将比特合成帧为单位进行传输

可以在出错时只重发出错的帧,而不用重发全部数据,提高了效率

组帧: 封装成帧 主要解决 帧定界、帧同步、帧传输

组帧要加首部、尾部

网络中以帧为最小单位进行传输,而分组(即IP数据报)仅仅是包含在帧的数据部分,不需要尾部

字符计数法(脆弱)

在帧头部使用一个计数字段来标明帧内字符数,可以确定帧结束位置 计数字段的字节数包含自身

如果计数字段出错,则后续将无法确认帧结束位和开始位

字符填充的首尾定界符法(复杂 不兼容)

开始: DLE STX

结束: DLE ETX

如果在数据段出现DLE字符,发送方在每个DLE字符前再插入一个DLE,接收方会自己删除DLE,数据仍不变

比特填充的首尾标志法

01111110 来标识一帧的开始与结束

发送方 每5个连续的1会自动在后面插入一个0

接收方 每5个连续的1会删除后面的0

容易用硬件实现 性能优于字符填充

违规编码法

曼彻斯特编码法: 1 : 高-低电平 0: 低-高电平

高-高 低-低是违规编码 可以用于标识首尾 局域网IEEE 802采用这种方法编码

不采用任何填充技术

只适用采用冗余编码的特殊编码环境

差错控制

传输中的差错都是由噪声引起的.

噪声分成两类:

信道固有的,持续存在的热噪声: 可通过提高信噪比来减少或避免

外界特定原因所造成的冲击噪声: 需要利用编码技术来进行差错控制

差错控制: 自动重传请求(ARQ)-检错编码、前向纠错(FEC)-纠错编码

ARQ: 接收端通知发送端重发,直到正确

FEC: 接收端发现差错,并可以确定错误位置,加以纠正

检错编码

奇偶校验码

通过增加冗余位来使码字中 1 的个数保持为奇数或偶数的编码方法.

只能发现奇数个比特的错误

循环冗余校验码

假设一个帧有m位,其对应的多项式为G(x),则计算冗余码的步骤如下:

  1. 加0: 假设G(x)的阶为r,在帧的低位端加上r个0

  2. 模2除: 利用模2除法,用G(x)对应的数据串去除1)中计算出的数据串,得到的余数为冗余码(共r位,前导0不可去除)

多项式为模2运算. 加法不进位,减法不借位(其实就是异或操作)

纠错编码

m个信息位插入r个校验位组成m+r个码字,必须满足2^r>=m+r+1

海明码

可发现双比特错,纠正单比特错

纠错d位 需要码距为2d+1的编码方案 检错d位 只需要d+1位

流量控制与可靠传输

流量控制

使接收方有足够的缓冲空间来接收帧

基本方法: 由接收方来控制发送方发送数据的速率