数据链路层
1.1数据链路层基本概念
1.2数据链路层功能概述
2. 封装成帧与透明传输
透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
2.1 透明传输的实现方法
(1)字符计数法
(2)字符填充法
(3)零比特填充法
(4)违规编码法
3.差错控制----------避免资源浪费
3.1差错来源
3.2检错编码
奇偶校验码:只能检查出奇数个比特错误,检错能力为50%
CRC循环冗余码
接收端检错过程:把收到的每一个帧都除以同样的除数,然后检查得到的余数R
1.余数为o,判定这个帧没有差错,接受。
⒉余数为不为0,判定这个帧有差错(无法确定到位),丢弃。FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。
PS:
在数据链路层仅仅使用循环冗余检验CRc差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。“凡是接收端数据链路层接收的帧均无差错”。
“可靠传输”:数据链路层发送端发送什么,接收端就收到什么。
链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
3.3 纠错编码(海明码)
海明码:发现双比特错,纠正单比特错---------------动一发而牵全身
(1)确认校验码位数
(2)确定校验码和数据的位置
(3) 求校验码的值
(4)检测并纠错
4.流量控制与可靠传输
流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧(减少传输出错与资源浪费)
可靠传输是 发送端发送什么,接收端就要受到什么
链路层: (点对点) 接收方收不下就不回复确认
传输层: (端到端) 接收端会给发送端一个窗口提示
流量控制方法:
4.1停止等待协议
简单!
信道利用率太低!
无差错的情况
有差错的情况
4.2后退N帧协议(GBN)
发送连续多个数据帧,以增大信道利用率
4.3选择重传协议(SR)
SR接收方要做的事
来者不拒!!!
滑动窗口最好等于接收窗口(大了会溢出,小了没意义)
SR协议重点总结
1.对数据帧逐一确认,收一个确认一个
2.只重传出错帧
3.接收方有缓存
5. 介质访问控制技术
5.1 信道划分介质访问控制
频分多路复用FDM
时分多路复用FDM
统计时分复用STDM
波分多路复用WDM
码分多路复用CDM
6.随机接入协议
6.1 ALOHA协议
纯ALOHA协议
时隙ALOHA协议
1.纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
2.纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。
6.2 CSMA协议(载波侦听多路访问)
坚持CSMA
非坚持CSMA
P-坚持CSMA
7.轮训访问介质访问控制
7.1轮询协议
7.2令牌传递协议
8.CSMA/CD协议
9.CSMA/CA协议