计算机网络之数据链路层控制及协议
1.数据链路层定义和功能
定义:提供功能和规程上的方法,以便建立、维护和释放网络实体间的数据链路
功能:在有差错的线路上进行无差错的数据传递
基本概念如下图所示:
确定一个数据帧的方法:
字符计数法:帧头一个域来表示整个帧的字符个数
带字符填充的首尾字符定界法:起始字符DLE STX,结束字符DLE ETX
带位填充的首尾标记定界法:起始于结束用01111110表示
2.差错控制
纠错码:发送方在数据块中加入足够多的冗余信息,接收方能够判断是否出错并纠正
检错码:发送方在数据块中加入一定冗余信息,接收方能够判断是否出错但不能判断错误位置
循环冗余检错码(CRC)
在信息码后拼接r位检验码(也称作校验和checksum),存在一个最高次幂为r的多项式,称为生成多项式
checksum生成过程:信息码后面补r个0,除生成多项式取余数即为checksum
例:
发送方数据帧:1101011011
发送方生成多项式:10011
数据帧除以多项式得余数为检验码:1110
接收方数据帧:11010110111110
接收方生成多项式:10011
若接收方数据帧除以生成多项式余数为0,证明发送正确
CRC检验的国际标准:
CRC-12:x12 + x11 + x3 + x2 + x + 1
CRC-16:x16 + x15 + x2 + 1
CRC-CCITT:x16 + x12 + x5 + 1
CRC-32:x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
3.数据链路层协议
无约束单工协议:发送方、接收方均无休止工作
单工停等协议:接收方每收到一个帧,给发送方一个回应
有噪声信道的单工协议:出错重传
具体协议类型:滑动窗口协议
发送端始终保持一个已发送尚未确认的帧序号表,称为发送窗口,上界表示下一个要发送的帧序号,下界表示未得到确认的帧序号,大小可变。每发送一个帧上界加1,每接收到一个正确的响应帧,下界加1
接收端有一个接收窗口,上界表示允许接收的最大帧,下界表示希望接收的帧,大小不变,当接收到希望接收的帧是上下界加1
下图描述了发送方和接收方的滑动窗口
**一比特滑动窗口协议:**窗口大小为1,信息帧中包括发送序号和接收序号,与单工停等协议一致。这种方法效率低,传输时间长,若双方同时开始发送会收到一倍的重复帧
**退后n帧协议:**连续发送多帧后等待确认,若出错,接收方从出错帧起丢弃后继帧,直到希望的帧到达,这种方法在出错率较高的场景不适用
注意:需要确保发送窗口小于Maxseq+1,否则若一个系列确认帧全部丢失,可能会造成不知是重传帧还是后续帧的情况
下图描述了所有应答帧丢失后可能会造成接收方无法确认重传帧还是新帧的问题
**选择重传协议:**接收窗口大于1,暂存出错的后续帧在缓存中,只重传坏帧
注意:需要确保发送窗口+接收窗口不大于(Maxseq+1),且发送窗口大小大于等于接收窗口若接收窗口大于(Maxseq+1)/2,可能会造成接收窗口前移后无法判断接收的帧是新帧还是重传帧
4.常用的数据链路层协议
高级数据链路控制规程HDLC:
站的类型:
主站:发送命令,接收响应,负责整个链路的控制
次站:接收命令,发送响应,配合主站完成链路控制
组合站:同时具有主站、次站功能
构型:
非平衡型:点到点和多点式,1个主站连接1-n个次站,适用于计算机与终端连接
平衡型:主站-次站式与组合站的连接,适用于计算机之间的连接
操作模式:
正规响应模式:主站向次站发出探询后,次站才能传输帧,适用于非平衡型点到点与多点式连接
异步响应模式:次站可以随时传输帧,适用于点到点非平衡型与主站-次站式平衡型
异步平衡模式:异步响应,双方同等能力,适用于组合站平衡构型
帧结构:
定界符:01111110
地址域:用来区分终端
控制域:序号+滑动窗口位+帧类型位+捎带确认
滑动窗口:3位,窗口大小为7
捎带确认:3位,第一个未收到的帧序号
帧类型位:1位,命令帧P,响应帧F
Internet数据链路层协议
点到点协议PPP:帧以单位发送,面向字符
PPP协议分为链路控制协议(LCP)和网络控制协议(NCP)
具体的帧构成如下,与HDLC类似