# 3.1 数据链路层功能 ## 一、数据链路层概述 ### 1.1 数据链路层的位置 **OSI模型**:第二层 **TCP/IP模型**:网络接口层的一部分 ### 1.2 数据链路层的作用 **作用**: - 将物理层提供的比特流传输服务转换为可靠的帧传输服务 - 实现相邻节点之间的可靠数据传输 **特点**: - 节点到节点(hop-to-hop)的传输 - 相邻节点之间的通信 --- ## 二、数据链路层的主要功能 ### 2.1 成帧(Framing) **功能**: - 将网络层传下来的IP数据报封装成帧 - 帧是数据链路层的传输单位 **帧的结构**: ``` | 帧首部 | 数据(IP数据报) | 帧尾部 | ``` **帧定界方法**: - 字符计数法 - 字符填充法 - 零比特填充法 - 违规编码法 ### 2.2 差错控制 **功能**: - 检测传输中产生的比特差错 - 纠正差错或重传出错帧 **方法**: - **检错编码**:CRC循环冗余检验 - **纠错编码**:海明码 **机制**: - 确认(ACK) - 超时重传 - 自动重传请求(ARQ) ### 2.3 流量控制 **功能**: - 控制发送方的发送速率 - 防止接收方缓冲区溢出 **方法**: - **停止-等待协议** - **滑动窗口协议**: - 后退N帧协议(GBN) - 选择重传协议(SR) ### 2.4 介质访问控制(MAC) **功能**: - 控制多个节点对共享信道的访问 - 解决信道争用问题 **方法**: - **信道划分**: - 频分多路复用(FDM) - 时分多路复用(TDM) - 码分多路复用(CDM) - **随机访问**: - ALOHA - CSMA - CSMA/CD - CSMA/CA - **轮询访问**: - 令牌传递 ### 2.5 链路管理 **功能**: - 数据链路的建立、维持和释放 - 主要用于面向连接的服务 **过程**: - 建立连接 - 数据传输 - 释放连接 --- ## 三、数据链路层的子层 ### 3.1 LLC子层(逻辑链路控制) **功能**: - 向上层提供服务接口 - 差错控制 - 流量控制 **特点**: - 与介质无关 - 为网络层提供服务 ### 3.2 MAC子层(介质访问控制) **功能**: - 帧的封装和解封 - 物理寻址(MAC地址) - 介质访问控制 - 差错检测 **特点**: - 与具体介质相关 - 不同的局域网有不同的MAC协议 --- ## 四、数据链路层提供的服务 ### 4.1 无确认的无连接服务 **特点**: - 不建立连接 - 不确认 - 不保证可靠传输 **应用**: - 实时通信 - 局域网(以太网) ### 4.2 有确认的无连接服务 **特点**: - 不建立连接 - 有确认 - 重传出错帧 **应用**: - 无线通信 ### 4.3 有确认的面向连接服务 **特点**: - 建立连接 - 有确认 - 保证可靠传输 - 按序交付 **应用**: - 可靠传输要求高的场合 --- ## 五、数据链路层与网络层的关系 ### 5.1 层次关系 ``` 网络层(IP数据报) ↓ 数据链路层(封装成帧) ↓ 物理层(比特流) ``` ### 5.2 区别 | 特性 | 数据链路层 | 网络层 | |-----|-----------|--------| | 传输范围 | 相邻节点 | 端到端 | | 寻址方式 | MAC地址 | IP地址 | | 传输单位 | 帧 | 分组(数据报) | | 路由选择 | 无 | 有 | --- ## 六、考研重点 1. **数据链路层的功能**: - 成帧 - 差错控制 - 流量控制 - 介质访问控制 - 链路管理 2. **LLC子层和MAC子层**: - 各自的功能 - 区别 3. **数据链路层提供的服务**: - 无确认的无连接服务 - 有确认的无连接服务 - 有确认的面向连接服务 4. **数据链路层与网络层的关系** --- *下一节:3.2 组帧*