结点: 主机, 路由器
链路: 网络中两个结点之间的物理通道, 链路的传输介质主要有双绞线, 光纤 和微波, 分为有线链路和无线链路
数据链路: 网络中两个结点的逻辑通道, 把现实控制数据传输协议的硬件和软件加到链路上就构成了数据链路
帧: 链路层的协议数据单元, 封装网络层数据报
数据链层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据
(两个相邻结点传输数据)
数据链路层在物理层提供服务的基础上向网络层提供服务
其最基本的服务是将源自网络层的数据可靠地传输到相邻结点的目标机网络层
其主要作用是加强物理层原始比特流的功能
将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路
数据链路层功能
封装成帧:
就是在一段数据的前后部分添加首部和尾部, 这样就构成了一个帧
接收端在收到物理层上交的比特流后, 就能根据首部和尾部的标记, 从收到的比特流中识别帧的开始个结束
首部和尾部包含许多控制信息
他们的一个作用: 帧定界(确定帧的界限)
帧同步:接收方应当能从接受到的二进制比特流中区分出帧的起始和终止
透明传输 : 不过传输的数据是什么样的比特组合, 都应该在链路上传输
字符计数法:帧首部使用一个计数字段(第一个字节, 八位) 来标明帧内字符数
字符填充法
当传输的帧是由文本文件组成的时候, 不管从键盘上输入什么字符都可以放到帧里面传过去, 即透明传输
当传输的帧是由非ASCll组成(二进制代码的程序或图像), 就要采用字符填充方法实现透明传输
要添加转义字符, 在非尾部的数据中添加
零比特币填充法
保证透明传输: 在传输的比特流中可以传输任意的比特组合, 而不会引起对帧边界的错误判断
所以, 可以用"高高" , "低低"来定界帧的起始和终止
目前使用的组帧方法是零比特币填充法和违规编码法
来源: 由噪声引起的
全局性: 由于电路本身电气特性所产生的随机噪声(热噪声), 是信道固有的, 随机存在的
解决办法: 提高信噪比来减少或避免干扰, 从传感器设备上解决
局部性:外界特定的短暂原因所造成的冲击噪声, 是产生差错的主要原因
通常用编码技术来解决
由n-1位信息元和1位校验元组成
特点: 只能检查出奇数个比特错误, 检验能力位50%
海明码:发现双比特错, 纠正单比特错
工作原理: 牵一发而动全身
工作流程
举例: 要发送的数据: D=101101
数据的位数 k=6
满足不等式的最小r为4
也就是D=101101的海明码应该有6+4=10位
其中元数据6位, 校验码4位
D=101101
假设这4位校验码分别位 P1, P2 , P3 , P4—>放在2的几次方的位置
数据从左到右为:D1, D2, D3, D4---->按序把空填满
先填校验码
按序把空填入数据
填入实际值
求校验码的值
令所有要校验的异或为0
数据链路层的 流量控制是点对点的, 而传输层的流量控制是端对端的
控制手段: 接收方收不下就不回复确认
传输层的流量控制手段: 接收端给发送端一个窗口公告