计算机网络之数据链路层
1 位置:在OSI模型中的第二层
2 功能
1)为网络层提供服务,良好的服务接口
2)保证数据传输的有效、可靠:a)处理传输错误:差错检测和控制;b)流量控制的两种方法:基于速率,基于反馈(更常用)
3 成帧
帧=帧头+载荷+帧尾;帧头主要是地址和标记信息;载荷是网络层传输下来的分组或包;帧尾是校验信息。
数据链路层使用物理层提供的服务,物理层处理的是位流,数据链路层处理的是帧(数据链路层的PDU)。
将原始的位流分散到离散的帧中,叫成帧,成帧的方法有四种:字符计数法;带字节/字符填充的标志字节法;比特填充的比特标志法;物理层编码违例法。其中使用最广泛的是中间两种。
1)字符计数法:在帧头的第一个字段,标记帧的长度。
优点:简单
缺点:一旦除错,无法恢复,即无法再同步。因此很少使用
2)带字节/字符填充的标志字节法:让每一帧都用一些特殊的字节作为开始和结束。帧头帧尾有字符flag标记,为了便于区分,在flag前添加转义字符ESC。案例如下:
缺点:容易造成帧界混淆(解决方法:增加转义字节);只能在8位字符的情况下使用。
3)比特填充的标志比特法
- 这是一种面向二进制位的帧格式,把所有需传输的数据以比特位一字排开,并以特殊的位模式01111110作为帧标志,即一个帧的开始(同时标志前一个帧的结束)
- 当帧内容中出现一个与帧标志相同的位串01111110,则在5个1后插入一个0,即变成01111101,接收方将自动删除第5 个1后的0。这称为位填充法(零比特填充法),也称为透明传输。
- 如果由于干扰,一个帧没有正确接收,则可扫描接收串,一旦扫描到01111110,即新的一帧从此开始。即可以再同步
优点:可以传输任意比特的帧;传输效率更高
案例:5个1后就插入1个0
4)物理层编码违例法:将冗余编码作为帧界
在曼切斯特编码中,连续高电平或连续低电平可用作帧边界;高-高电平对和低-低电平对没有使用,可用作帧边界。
5.差错处理
类型:1)单个错误:分散在各块中;2)突发错误:集中在某个块中,整个块都是错误
差错处理包括纠错和检错。纠错需要较多的冗余位,纠错的开销比较大,在有线网络中很少用,主要用于无线网络。局域网中通常采用检错码。
码距的计算:
6.检错码
1)为什么要用检错码:纠错需要较多的冗余位,信道利用率不高
2)局域网中,主要使用的是检错码
3)检错码类型:奇偶校验码(海明距离为2,检1位错);互联网校验和;循环冗余校验码
下面分三类检错码来介绍:
a)奇偶校验码
b)互联网校验和
c)循环冗余校验码
举一个十进制的例子:
做模二运算:
两道例题:
7.六个基本数据链路协议
概念:单工指数据的传输在某时是单向的;
最简单的三个协议:无限制的单工协议;单工停—等协议;有噪声信道的单工协议
协议的假设:
1)协议一:无限制的单工协议
2)协议二:单工的停—等协议
3)协议三:有错误信道的单工协议
有噪声就会产生差错,有差错就可能会引起以下这些问题:
a)对正确帧的确认;b)定时器超期:重传;c)重传定时器可防止死锁的产生
有可能收到重复帧,如何解决?
a)给每个帧一个独一无二的序列号;b) 序号也用来重组排序
基本工作机制:
1)发送方每发出一个帧,启动一个重传定时器
2)超时前,如果收到收方的确认,拆除定时器
3)由于数据帧丢失或错误或确认帧丢失,超时还未收到确认,重传,重置定时器
过渡:如何提高数据的传输效率:
1) 全双工;2)捎带确认(可以减少确认帧);3)批量发送数据(实例如下图:)
滑窗技术(协议4~协议6)
4)协议四:n=1的窗口滑动
窗口滑动的条件:
信道利用率情况:
例题:
求合适的w值:
例题:2014年考研题
5)回退n帧:适合出错率较少的高速信道
6)选择重传:适合出错率高的传输环境
接收方的接收策略选择:丢弃错帧,缓存后续正确接收帧;
发送方的重传策略选择:只重发出错帧。
举例:
否定确认重传NAK:收到错误帧后,给发送方发一个收到了错误的信号,那么在发送方的定时器到时前就可以重新发错误的帧。
新老窗口不能重合,否则会带来问题:
不重合时,就不会带来问题:
协议4-6的窗口大小情况如下图所示: