链路层协议要解决哪些问题。有哪些二层网络,其链路层协议是什么
链路层(数据链路层,OSI模型第二层)的主要功能是在物理层提供的物理连接基础上,提供可靠的数据传输服务。它负责将原始的物理连接转化为无差错、有逻辑结构的数据链路,为网络层提供服务。
一、链路层协议要解决的核心问题
帧定界(Framing)
- 将比特流划分为一个个逻辑数据单元——帧(Frame)。
- 解决“如何识别一个帧的开始和结束”的问题。
- 常见方法:字符计数法、标志字节法(如HDLC使用
0x7E)、字节填充、位填充等。
透明传输(Transparency)
- 确保任意比特组合的数据都能在链路上传输,不会被误认为是控制信息(如帧边界标志)。
- 通过字节填充或位填充实现。
差错检测与纠正(Error Detection & Correction)
- 检测传输过程中可能出现的比特错误(如噪声干扰)。
- 常用技术:
- 差错检测:CRC(循环冗余校验)、校验和。
- 差错纠正:海明码(Hamming Code),用于某些无线链路。
流量控制(Flow Control)
- 防止发送方发送速度过快,导致接收方来不及处理。
- 常见机制:滑动窗口协议(Sliding Window Protocol)。
可靠传输(Reliable Delivery)
- 在不可靠的物理链路上实现帧的可靠交付。
- 使用确认(ACK)、超时重传、序列号等机制。
- 典型协议:停等协议、回退N帧(GBN)、选择重传(SR)。
介质访问控制(Medium Access Control, MAC)
- 在共享介质环境中(如以太网、无线网络),决定哪个设备可以使用信道。
- 解决信道争用问题。
- 常见多路访问协议:
- CSMA/CD(载波侦听多路访问/冲突检测)——用于传统以太网。
- CSMA/CA(载波侦听多路访问/冲突避免)——用于Wi-Fi。
- 令牌传递(Token Ring、FDDI)。
- 轮询(Polling)。
链路管理
- 建立、维持和释放数据链路连接(尤其在面向连接的链路中,如PPP、HDLC)。
寻址(Addressing)
- 在局域网中标识设备,使用MAC地址(48位物理地址)。
- 实现同一网络内主机之间的识别与通信。
二、常见的二层网络及其链路层协议
| 二层网络类型 | 链路层协议 | 主要特点 |
|---|---|---|
| 以太网(Ethernet) | IEEE 802.3 + IEEE 802.2 LLC | 最广泛使用的局域网技术;使用CSMA/CD(半双工)或全双工交换;MAC地址寻址;帧格式包含目的/源MAC、类型/长度、数据、FCS。 |
| 无线局域网(Wi-Fi) | IEEE 802.11 (802.11a/b/g/n/ac/ax) | 使用CSMA/CA避免冲突;支持移动性;包含物理层和MAC子层;MAC层负责接入控制、加密、QoS等。 |
| 令牌环网(Token Ring) | IEEE 802.5 | 通过传递令牌控制信道使用权;无冲突;已被以太网取代。 |
| FDDI(光纤分布式数据接口) | ANSI X3T9.5 | 使用双环结构提供高可靠性;基于令牌传递;用于主干网,现已少用。 |
| PPP(点对点协议) | PPP (Point-to-Point Protocol) | 用于点对点连接(如拨号、DSL);支持身份验证(PAP/CHAP)、多协议封装、链路控制(LCP)、网络控制(NCP)。 |
| HDLC(高级数据链路控制) | HDLC (ISO 13239) | 面向比特的同步协议;常用于专线或路由器间串行链路;支持多种配置(平衡/非平衡)。 |
| 帧中继(Frame Relay) | Frame Relay (ITU-T Q.922) | 广域网技术;简化版X.25;基于虚电路(PVC/SVC);差错检测但不纠错。 |
| ATM(异步传输模式) | ATM (ITU-T I.361) | 面向连接;使用固定长度信元(53字节:5字节头 + 48字节数据);支持QoS;曾用于骨干网,现逐渐淘汰。 |
| 蓝牙(Bluetooth) | IEEE 802.15.1 | 短距离无线通信;支持点对点和微微网(Piconet);MAC层处理跳频和时隙分配。 |
| Zigbee(低速无线个域网) | IEEE 802.15.4 | 低功耗、低速率;用于物联网;CSMA/CA接入机制。 |
三、链路层的子层划分(IEEE 802标准)
在局域网中,数据链路层被划分为两个子层:
LLC(Logical Link Control,逻辑链路控制)- IEEE 802.2
- 提供统一接口给网络层。
- 处理帧的封装、服务访问点(SAP)寻址。
MAC(Medium Access Control,介质访问控制)
- 负责帧的封装、MAC地址、介质访问控制方式。
- 不同网络有不同的MAC协议(如以太网MAC、Wi-Fi MAC)。
总结
链路层协议的核心任务是:成帧、差错控制、流量控制、可靠传输、介质访问控制和物理寻址。不同的二层网络根据其应用场景(局域网、广域网、无线等)采用不同的链路层协议,如以太网使用IEEE 802.3,Wi-Fi使用IEEE 802.11,点对点链路使用PPP或HDLC。
帧定界(Framing)和透明传输 是不是由网卡硬件解决了。差错检测与纠正、流量控制、可靠传输 等需要在软件层解决?
这是一个非常好的问题,涉及到链路层功能在硬件与软件之间的分工。我们可以从现代计算机网络系统的实际架构出发,对帧定界、透明传输、差错检测、流量控制和可靠传输等功能的实现层次进行精确划分。
一、总体原则:硬件与软件的协同分工
链路层的功能通常由网卡(NIC, Network Interface Card)硬件和操作系统内核中的网络协议栈软件共同完成。
一般遵循以下原则:
- 靠近物理层的功能 → 由硬件实现(高效、实时)
- 靠近网络层的功能 → 由软件实现(灵活、可配置)
二、各项功能的具体实现层次分析
| 功能 | 是否由网卡硬件解决 | 说明 |
|---|---|---|
| 1. 帧定界(Framing) | ✅主要由硬件完成 |
- 网卡在接收比特流时,会自动识别帧的起始和结束。
- 例如以太网帧以前导码(Preamble) + SFD(Start Frame Delimiter)标志帧开始,硬件据此同步并提取帧。
- 接收端网卡检测到
0x55 55 55 55 55 55 D5(即1010...1010 1011)就知帧开始。 - 结论:帧定界完全由网卡硬件完成,无需CPU干预。
|2. 透明传输(Transparency)| ⚠️部分由硬件处理,但机制由协议定义|
- 透明传输的机制(如字节填充、位填充)是协议规定的,其实现取决于具体链路类型:
- PPP(串行链路):使用字节填充(如
0x7D转义),通常由串口控制器或软件完成 →偏向软件实现。 - HDLC / Frame Relay:使用位填充(5个1后插入0),常由专用通信芯片或WAN接口卡实现 →硬件实现。
- 以太网:不需要填充机制(因是固定帧结构),所以不涉及透明传输问题。
- PPP(串行链路):使用字节填充(如
- 结论:透明传输的实现方式依赖于链路类型,多为硬件处理,但在PPP等场景下由软件处理。
|3. 差错检测与纠正| ✅主要由硬件完成|
- 差错检测(CRC):
- 发送方网卡在帧末尾自动生成 CRC 校验码。
- 接收方网卡自动校验 CRC,若出错则直接丢弃帧,不通知上层。
- 这个过程完全在网卡内部完成,效率极高。
- 差错纠正:
- 一般不在传统以太网中使用(由上层重传)。
- 在无线链路(如Wi-Fi、蜂窝网络)中,前向纠错(FEC)常由基带处理器或无线模块硬件实现。
- 结论:差错检测基本由硬件完成;纠正视链路类型,也多为硬件实现。
|4. 流量控制(Flow Control)| ✅/⚠️硬件支持 + 软件协同|
- 全双工以太网:支持IEEE 802.3x 流控(PAUSE帧)。
- 当接收方缓冲区满时,网卡可自动发送PAUSE帧要求对方暂停发送。
- 此功能可在硬件层面实现(如交换机和网卡支持)。
- 半双工或无线网络:使用CSMA/CA、退避算法等,MAC层行为由硬件逻辑控制。
- 但滑动窗口类流量控制(如TCP的流量控制)属于端到端控制,由操作系统协议栈实现 →软件层。
- 结论:链路层流量控制(如PAUSE帧)由硬件实现;端到端流量控制由软件实现。
|5. 可靠传输(Reliable Delivery)| ❌通常不由链路层硬件提供(除特定网络)|
- 以太网、Wi-Fi、PPP等局域网技术不提供可靠传输:
- 帧丢失、出错时只丢弃,不重传。
- 可靠性由上层(如TCP)保证。
- 例外情况:
- 帧中继、ATM、HDLC等广域网协议支持确认与重传机制,常由通信设备(如路由器WAN卡)的专用芯片实现 →硬件或固件实现。
- Wi-Fi(IEEE 802.11)MAC层提供可选的ACK机制:
- 每个单播数据帧需接收方回复ACK。
- 若未收到ACK,发送方自动重传。
- 这个过程由无线网卡硬件和驱动协同完成,接近硬件层。
- 结论:大多数情况下,可靠传输不由传统以太网链路层提供;但在Wi-Fi、广域网等场景中,MAC层具备有限可靠性,由硬件/驱动实现。
三、典型场景对比:以太网 vs Wi-Fi vs PPP
| 场景 | 帧定界 | 透明传输 | 差错检测 | 流量控制 | 可靠传输 |
|---|---|---|---|---|---|
| 以太网(有线) | 硬件 | 不需要 | 硬件(CRC) | 硬件(PAUSE帧) | 否(由TCP负责) |
| Wi-Fi(802.11) | 硬件 | 硬件(位/字节处理) | 硬件(CRC) | 硬件(CSMA/CA) | 是(MAC层ACK+重传) |
| PPP(拨号/DSL) | 软件/固件 | 软件(字节填充) | 软件或硬件 | 软件(LCP协商) | 可选(需配置,一般不用) |
四、总结:硬件 vs 软件分工模型
| 层面 | 实现位置 | 原因 |
|---|---|---|
| 帧定界、CRC校验、物理寻址(MAC过滤) | ✅ 网卡硬件 | 高速、实时处理需要 |
| 透明传输(填充机制) | ⚠️ 视链路而定(PPP→软件,HDLC→硬件) | 协议特性决定 |
| 介质访问控制(CSMA/CD, CSMA/CA) | ✅ 硬件逻辑或固件 | 实时性要求高 |
| 链路层流量控制(PAUSE帧) | ✅ 硬件支持 | 快速响应缓冲区压力 |
| 链路层可靠传输(ACK/重传) | ✅ 在Wi-Fi等中由硬件/驱动实现 | 局部重传提升效率 |
| 端到端流量控制、可靠传输 | ❌ 操作系统网络栈(如TCP) | 跨网络路径,需全局控制 |
🔍关键理解:
链路层是一个“软硬结合”的层次。现代网卡不是被动设备,而是具有智能处理能力的协处理器。它承担了帧处理、CRC、MAC控制等核心任务,极大减轻了CPU负担。而操作系统协议栈则负责更高层的逻辑(如PPP协商、桥接、VLAN标签处理等)。
最终结论
- 帧定界、差错检测:主要由网卡硬件解决。
- 透明传输:视链路类型,PPP等由软件处理,HDLC/Wi-Fi由硬件处理。
- 流量控制:链路层流控(如PAUSE帧)由硬件支持;端到端流控由软件(TCP)实现。
- 可靠传输:一般不由以太网提供;在Wi-Fi等链路中由MAC层硬件/驱动实现,但仍非完全可靠,最终依赖TCP。
因此,不能简单地说“硬件解决底层,软件解决上层”,而应理解为:链路层的多数功能在现代系统中由硬件高效执行,但软件保有最终控制权和配置能力,形成软硬协同的体系。