概述
链路是从一个结点到相邻结点的物理路线,数据链路则是在链路的基础上增加了一些必要的硬件和软件实现
数据链路层位于物理层和网络层之间,它的核心任务是在直接相连的节点(如相邻的交换机,路由器)之间提供可靠且高效的数据传输
数据的流动
帧的流动
一、数据链路层的主要功能:
1.封装成帧
将网络层传递下来的数据包(IP数据报)封装成帧,添加头部和尾部信息
结构:| 帧头 | 数据(Payload) | 帧尾 |;
帧头:包含物理地址(MAC地址),控制信息(如帧类型);帧尾:包含错误检测码,头和尾的一个重要作用就是进行帧定界
帧定界(确定帧的边界,以便接收端能够正确地识别和处理数据)的方法:比特填充,字节填充,特殊字符
比特填充:比特填充是一种在帧中插入特定比特模式以实现帧定界的方法,在HDLC(高级数据链路控制)协议中,使用了标志字段来标识帧的开始和结束。标志字段的比特模式为01111110
。为了防止数据中出现与标志字段相同的比特模式,当数据中连续出现5个1时,发送方会自动插入一个0,这一过程称为比特填充。接收方在收到数据时会检查比特序列,如果发现连续5个1后跟一个0,则将该0删除,以恢复原始数据。
字节填充:字节填充是在帧中插入特定的字节以实现帧定界的方法。在PPP(点对点协议)中,使用了标志字段(flag)来标识帧的开始和结束,通常为0xC0
(十六进制)。为了确保数据中不会出现与标志字段相同的字节,当数据中出现与标志字段相同的字节时,发送方会插入一个转义字符(通常为0xDB
),然后将该字节的值转换为另一个值。接收方在收到数据时会检查字节序列,如果发现转义字符,则将后续字节转换回原始值,并删除转义字符。
特殊字符:以太网使用前导码作为帧的开始标志。前导码是一个特定的比特模式,通常为10101010
,用于同步发送方和接收方的时钟。前导码之后是帧的起始定界符(SFD,Start Frame Delimiter),其比特模式为10101011
,用于明确标识帧的开始。以太网帧的结束则通过物理层的信号来标识,例如检测到信号的结束或超时机制
2.透明传输
透明传输是指在数据传输过程中,确保数据能够被准确地传输和接收,而不受数据内容本身的影响。换句话说,无论数据中包含什么样的比特模式或字节序列,都能够被正确地传输和处理。
方法:面向字节的数据链路使用字节填充,面向字符的数据链路使用比特填充
3.差错控制
循环冗余校验(CRC)
工作过程
发送端:
将要发送的数据视为一个二进制多项式
M(x)
。将
M(x)
左移n
位(n
是生成多项式的次数)。用左移后的
M(x)
除以生成多项式G(x)
,得到余数R(x)
。将
R(x)
附加到原始数据的末尾,形成最终的传输数据T(x)
。
接收端:
接收到数据后,将其视为一个二进制多项式
T'(x)
。用
T'(x)
除以生成多项式G(x)
,检查余数是否为零。如果余数为零,认为数据无错误;否则,认为数据传输过程中出现了错误。
点对点PPP协议:
PPP协议中帧的格式:
透明传输 :
面向字节的异步链路:字节填充法(插入转义字符)
面向比特的同步链路:比特填充法
差错检测:
能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
工作状态(不是太懂)
当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机
分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
媒体接入控制(介质访问控制)————广播信道
广播信道就像一个大房间,信息会被所有人听到。媒体接入控制(MAC)就是一种规则,用来管理谁在什么时候说话,避免混乱。
数据链路层的两个子层
逻辑链路控制LLC子层,媒体接入控制MAC子层。
MAC地址,IP地址以及ARP协议
MAC地址
使用点对点信道的数据链路层不需要使用地址,使用广播信道的数据链路层必须使用地址来区分各主机
广播信道的数据链路层必须使用地址(MAC)
单播MAC地址
主机B将单播帧发送出去,主机A和C都会收到该单播帧
主机A的网卡发现该单播帧的目的的MAC地址与自己的MAC地址不匹配,丢弃该帧
主机C的网卡发现该单播帧的目的的MAC地址与自己的MAC地址匹配,接受该帧
广播 MAC地址
主机B讲该广播帧发送出去,主机A和C都会收到该广播帧,发现该帧首部中的目的地址字段的内容是广播地址,就知道该帧是广播帧,主机A和主机C都接受该帧,并将该帧交给上层处理
多播MAC地址
主机A将该多播帧发送出去,主机B,C,D都会收到该多播帧
主机B和C发现该多播帧的目的MAC地址在自己的多播组列表中,主机B和C都会接受该帧
主机D发现该多播帧的目的MAC地址不在自己得多播组列表中,则丢弃该多播帧
给主机配置多播组列表进行私有应用时,不得使用公有的标准多播地址
IP地址
IP地址属于网络层的范畴,不属于数据链路层的范畴
从网络体系结构中看IP地址与MAC地址
数据包转发过程中IP地址与MAC地址变化情况
可以看出在数据包转发过程中MAC地址在不断的改变,那么我们如何不断得到新的目标MAC地址呢?
ARP协议(地址解析协议)