第4讲-数据链路层;一、数据链路层设计问题;Date;2.数据链路层的主要功能
链路管理:建立、维持和释放数据链路。
帧同步:接收方应能从收到的比特流中
准确区分出一帧的开始和结束位置。
流量控制:控制发送数据速率。
差错控制:检测接收的帧是否有错。
区分数据和控制信息
透明传输:无论所传的数据如何组合,
都应能够在链路上传送。
寻址:保证每一帧都能送到正确的目的站,
接收方也应知道发方是哪个站。;3.为网络层提供的服务
(1)无确认的无连接服务:
事先不需建立连接
事后不必释放
目标节点对收到的帧不作确认。
适用于
误码率很低的线路,错误恢复留给高层;
实时业务
大部分局域网;3.为网络层提供的服务
(2)有确认的无连接服务:
事先不需连接,但
对所发送的每一帧都进行单独确认,
帧出错时立即重发。
适用于不可靠的信道,如无线网。
???网络层有确认不就可以了吗,为什么链路层还要确认???
(3)有确认的面向连接的服务:
建立数据链路、帧传输、释放数据链路。
为网络层进程间提供可靠的传送比特流的服务
适用于与路由器(转发包)的连接。;4.帧传输
将比特流分成离散的帧,并计算每个帧的校验和
成帧方法:
(1)字符计数法
在帧头中用一个域来表示整个帧的字符个数
缺点:若计数出错,对本帧和后面帧有影响;字符计数法;(2)带字符填充的首尾字符定界法
起始字符DLESTX,结束字符DLEETX
字符DLE填充(发送端)和删除(接收端) ;(3)带位填充的首尾标记定界法
帧的起始和结束都用一个特殊的位串,称为标记(flag)
“0”比特插入删除技术:
为避免在传送的数据中出现帧边界符,
当发送方数据链路层数据中遇到5个连续的“1”时
自动在其后插入一个“0”到输出比特流中。
接收时将此“0”删除。;带位填充的首尾标志法;(4)物理层编码违例法
只适用于物理层编码有冗余的网络
注意:在很多数据链路协议中,
使用字符计数法和一种其它方法的组合。;差错控制
检错、纠错
一般方法:接收方给发送方一个反馈(响应)
出错情况
帧(包括发送帧和响应帧)出错
帧(包括发送帧和响应帧)丢失
通过计时器和序号保证每帧最终仅交给目的网络层一次
6.流量控制
收发双方设备的工作速率、缓冲存储空间差异
基于反馈机制;前向信道;1.前向纠错方法
每个要发送的数据块上附加足够的冗余信息,
使接收方能发现并纠正传输中的错误。
使用纠错码传数据:效率低;
适用于不可能重传的场合;
大多数情况采用检错码加重传
2.检错码
(1)奇偶校验码
偶校验:使该组数据连校验位在内的码字中“1”的个数为偶数
奇校验:使该组数据连校验位在内的码字中“1”的个数为奇数
(2)循环冗余校验码;循环冗余码(CRC码,多项式编码)
一个k位的帧可看作一个k-1次多项式的系数序列
例如:110001,可看成多项式x5+x4+1的系数序列
生成多项式G(x)
发方、收方事前商定;
生成多项式的高位和低位必须为1
生成多项式必须比传输信息对应的多项式短。
CRC码基本思想:
校验和(checksum)加在帧尾,使
带校验和的帧的多项式能被G(x)除尽;
收方接收时,用G(x)去除它,
若有余数,则传输出错。
;CRC校验和计算算法
设G(x)为r阶,在帧的末尾加r个0,使帧为m+r位,相应多项式为xrM(x);
按模2除法用对应于G(x)的位串去除对应于xrM(x)的位串;
按模2减法从对应于xrM(x)的位串中减去余数(等于或小于r位),结果就是要传送的带校验和的多项式T(x)。;1001001101;Date;CRC的检错能力
能检查出全部单个错
能检查出全部离散的二位错
能检查出全部奇数个错
能检查出全部长度小于或等于k位的突发错
能以[1-(1/2)k-1]的概率检查出长度为(k+1)位的突发错;反馈信道;二、差错控制;Thenotationis(seq,ack,packetnumber).
(a)Normalcase.(b)Abnormalcase(alwayssendtwice).
An