数据链路层
作用:加强物理层的传输原始比特流,把物理层改成逻辑上的无差错。
第一部分
链路:物理通道
数据链路:逻辑通道,即把数据传输的协议加在链路上
帧:数据链路层的传输单元,同时封装网络层的数据报。
数据链路层的功能
1.为网络层提供服务
—1.无确定无连接服务。
—2.有确定无连接服务。
—3.有确定有链接服务。
2.链路管理:连接的建立,维持,释放(适用于面向连接服务)
3.封装成帧
4.流量控制
5.差错控制
6.寻址问题:(一般考虑广播信道)
封装成帧
1.字符计数法:
即第一个字节位(1字节8bit),表明帧内的字符数
51234
代表有五个字节 组成一个帧。
2.字符填充法:
即数据中出现了控制字符,使用转义字符进行转义,若数据中出现了转义字符,继续添加转义字符。
3.零比特填充法(常用)
发送端:扫描信息,只要出现五个连续的1,在后面添加一个0
接收端:与上面相反。
4.违规编码法:
根据导图来理解。
差错控制(来源于噪声)
出现的情况
1.bit位错误:1/0,0/1
2.帧错:丢失,重复,失序。
链路上的差错主要考虑比特位错 两种
注意:这里说的比特位错是指的一组比特,与物理层的编码的bit(单个比特)不同
帧是多组比特。
①检验编码 (奇偶校验码/循环冗余码)
奇偶校验码: n-1个信息元 和 一位校验元 =n
其中奇偶校验码:只能检查出奇数个比特错 即只发生1、3、5…个1/0变化因此只有50%的检错能力
CRC 循环冗余码:
发送端
—生成多项式的阶为r,则在原来的传输信息最右边添加r个0,然后进行异或运算。
—阶的运算:
即生成多项式的位数为(N-1)其中N为生成多项式的位数
例如:
传输信息1000101 生成多项式:10011 位数为5 所以在原始信息位数添加4个0------- 10001010000 然后进行异或运算。然后把余数和后面添加的0000进行异或运算。
接收端
–通过除于生成多项式,如果余数为0,则没有发生差错,反之出现差错。
②纠错编码:海明码
作用:发现双比特错,纠正单比特错误。
如图:
1.确定校验码位数r
2^r>=k+r+1 其中r为冗余码位数 ,k为最初的传信息的位数。
2.确定校验码和数据的位置。
第一步:放在2的几次方位置 :意思是只能放在2^a (a=0,1,2…)
第二步:依次按顺序进行排列。
3.求出校验码的值:使用的异或运算。、
看p1 的二进制最后一位 然后把最后一位相同的所有代码进行异或运算 如图所示。然后p2,p3 依次进行如上运算 求出p1,p2,p3,p4的值。
4.进行检错
如图所示 第五位出现错误,然后按照如上图的方法进行异或运算 然后得到结果0101 进行二进制转十进制的运算 0*2^3 +1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 5
流量控制与可靠传输机制
其中
流量控制在链路层:点对点;控制机制:接收方不回复确认
流量控制在运输层:端到端 ;控制机制:接收端给发送端发送一个窗口公告。
可靠传输:发什么,收什么。
流量控制:控制发送的速率。
滑动窗口解决的问题:①流量控制,②可靠传输(自动重传)
流量控制方法
丢包:即数据包的丢失。
1.停止——等待协议 发送窗口为1,接收窗口为1
2.滑动窗口协议
①后退N帧协议(GBN)发送窗口>1,就收窗口为1
②选择重传协议(SR)发送窗口>1,就收窗口>1
1.停止——等待协议 发送窗口为1,接收窗口为1
优点:简单 缺点:信道利用率过低
应用情况
1.无差错
2.有差错(主要讲解)
如图所示:
2.滑动窗口协议
①后退N帧协议(GBN)发送窗口>1,就收窗口为1
优点:信道利用率提高 缺点:传输速率降低
重点内容
1.累计确认:即几个帧才发送一个ACK(确认帧)进行确认。
2.接收方只按顺序接受帧,不按顺序的直接进行丢弃。
3.确认序号最大的,按序号到达的帧
4.发送窗口最大为2^n-1(其中n代表的是n比特对帧进行的编号),接受窗口大小为1.
②选择重传协议(SR)发送窗口>1,就收窗口>1
前两种的最终优化,因此是个欧气满满的协议。
重点内容
1.对数据帧进行逐一的确认,收一个确认一个。
2.只重传出现错误的帧。
3.接受方具有缓存的功能。
4.W发max = W收max = 2^(n-1)
以上图片均来至哔哩哔哩2019王道考研计算机网络,感谢王道考研提供的知识帮助。