Part 3 数据链路层
3.1 基本概念
将源自网络层的数据可靠的传输到相邻节点的目标网络层
功能1:为网络层提供服务
功能2:连接的建立、维持、释放
功能3:组帧
功能4:流量控制
功能5:差错控制
3.2 封装成帧和透明传输
封装成帧:将数据加头加尾,相当于数据的打包
物理层主要受数据链路层的管理,数据链路层知道数据少了多了
数据链路层将网络层的IP数据报添加帧首部和帧尾部
透明传输:它根本不会管所穿的数据是啥东西,拿起来就直接传输
3.3 差错控制
数据链路层的差错检测是比特的错误,传输中的差错都是由于噪声引起的
3.3.1 为什么在数据链路层进行差错控制?
因为错误可以尽早的发现,不会让一个数据包发送了很长时间,等到达最终目的地的时候才被发现
3.3.2 检错编码(检查编码够不够)
a、奇偶校验码:检查奇偶位
b、循环冗余码:用传输数据除以生成多项式得到冗余码
3.3.3 纠错编码
第一步:确认校验码位数
第二步:确定校验码和数据的位置
第三步:求出校验码的值
第四步:检测与纠错
3.4 数据链路层的流量控制和可靠传输
流量控制:为了传输过程中发送速度和接受速度的匹配
可靠传输:发送端发啥,接收端收啥
这里面有三个协议需要关注下:停止等待协议、后退N帧协议(GBN)、选择重传协议(SR)
三种协议窗口的区别:
其实从滑动窗口引出的三种协议就是为了解决流量控制和可靠传输
3.4.1 停止等待协议
无差错情况:一帧一帧的传输,一点错误没有
有差错情况:发现有一个帧迟迟收不到确认,那就再重新传输一次
那么就有俩问题需要注意:
1、发完一个帧,要保留它的副本
2、数据帧和确认帧(ACK)必须编号
就是因为信道利用率低,所以才引出后退N帧协议和选择重传协议
3.4.2 后退N帧协议(GBN)
发送方:按序一个一个的进行发送(看上层网络层是如何传来的数据)
接收方:接收个N帧的时候,就给一个回复(把接收的数据部分传给上层网络层)
比如2帧丢失,那么之后的帧都丢失掉,确认方发送个1帧确认帧,然后发送方就从2帧开始重新发送了
3.4.3 选择重传协议(SR)
我们在上面可以看到,后退N帧协议有一个弊端,当一个帧出错,就要连带它后面的一批帧都要倒下,这肯定影响效率啊,那可不可以只重传出错的帧呢?
解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧(其实这里的乱序就是指里面少一些帧啦啥的)
SR协议需要着重注意的三点:
3.5 介质访问控制技术
插入一个小概念:
并行和并发的区别?
并发:一个处理器可以同时处理多个任务。这是逻辑上的同时发生。
并行:多个处理器同时处理多个不同的任务。这是物理上的同时发生。
有一个清晰地比喻:
并发:一个人同时吃三个苹果。并行:三个人同时吃三个苹果。
传输数据常用的两种链路:
点对点链路:比如打电话,常用于广域网
广播式链路:所有主机共享通信介质,常用于无线局域网
介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰
静态的:早已划分好
动态的:根据实际情况实时调整
3.5.1 静态划分信道(不产生冲突,不占全部带宽)
频分多路复用:按频率划分开,形成不同的帧
时分多路复用:按时间划分开,形成不同的帧
波分多路复用:传输的帧是光,按波长划分
码分多路复用:
3.5.2 动态划分信道
随机访问介质访问控制:(产生冲突,占全部带宽)
ALOHA协议:想发就发(就类似于互相用对讲机的时候,不听就说)
CSMA协议:先听再说,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据
CSMA/CD协议:先听再说,边听边说(总线以太网检测碰撞)
CSMA/CA协议:先听再说,边听边说(无线局域网避免碰撞)
轮询访问介质访问控制:(不产生冲突,占全部带宽)
轮询协议:主节点轮流邀请从属节点发送数据
令牌传递协议:拿一个令牌环形的去传递
3.6 局域网
定义:指在某一个区域内多台计算机互联成的计算机组,使用广播信道
拓扑结构有四种:
数据链路层的划分:LLC层和MAC层
IEEE 802.11是无线局域网通用的标准
IEEE 802.3是以太网通用的标准
无线局域网和以太网都使用星形拓扑结构
3.7 广域网的数据链路协议
其实不同的协议就是对IP数据报的不同包装形式
点对点协议PPP:目前使用的最广泛的数据链路层协议
HDLC协议:是一个在同步网上传输数据、面向比特的数据链路层协议
3.8 链路层设备
3.9 总结
参考自王道考研 计算机网络