《计算机网络(第8版)》第三章主要围绕数据链路层展开,深入探讨了其功能、协议以及相关技术。为了帮助读者更好地掌握本章核心知识,以下提供了部分精选课后习题的超详细解析,旨在从原理层面加深理解,而非简单地提供答案。
1. 数据链路层的主要功能是什么?
详细解析:
数据链路层在OSI参考模型和TCP/IP体系结构中处于物理层之上,网络层之下。它的核心任务是为相邻节点(直接相连的设备)之间提供可靠、有效的数据传输服务。其主要功能可分解为以下几点:
- 成帧:将网络层下发的数据包(IP数据报)封装成帧,添加帧首部和帧尾部,以界定帧的开始与结束,并实现帧的同步。
- 透明传输:通过字节填充或比特填充等方法,确保无论原始数据中出现什么样的比特组合,都能作为帧的数据部分被正确识别和传输,而不会被误认为是帧的边界。
- 差错控制:通过循环冗余检验(CRC)等检错技术,发现传输过程中可能出现的比特差错。对于可靠性要求高的链路,还可能使用ARQ(自动重传请求)等协议来实现差错纠正(即重传出错的帧)。
- 流量控制:协调发送方和接收方的处理速度,防止快速的发送方“淹没”处理能力慢的接收方。常用的方法有停止-等待协议和滑动窗口协议(如后退N帧GBN、选择重传SR)。
- 链路管理:对于面向连接的通信(如PPP协议在建立连接时),负责数据链路的建立、维持和释放。
2. 简述停止-等待协议的工作原理。它存在哪些效率问题?如何改进?
详细解析:
* 工作原理:这是最简单的流量控制和差错控制协议。其核心是“发一帧,等一确认”。
1. 发送方发送一个数据帧后,必须停止发送,等待接收方的确认帧(ACK)。
- 接收方收到正确的数据帧后,回送一个ACK。
- 发送方收到ACK后,才能发送下一个数据帧。
- 如果数据帧在传输中出错或丢失,接收方会丢弃它并不发送ACK;或者ACK丢失,发送方会设置一个超时计时器。超时后,发送方会重传原来的数据帧。
- 效率问题:
- 信道利用率极低:在等待ACK的往返时延(RTT)期间,信道处于空闲状态。对于长时延、高速率的信道(如卫星信道),大部分时间都在等待,利用率可能远低于1%。
- 简单但低速:严格的一对一应答机制无法充分利用信道带宽。
* 改进方案:
采用滑动窗口协议。允许发送方在未收到确认的情况下,连续发送多个帧(窗口大小内的帧)。接收方可以累积确认或选择性确认。这极大地提高了信道利用率。主要改进协议有:
- 后退N帧协议(GBN):发送窗口 > 1,接收窗口 = 1。接收方按序确认,若某帧出错,则丢弃该帧及之后所有帧,发送方需从出错帧开始全部重传。
- 选择重传协议(SR):发送窗口和接收窗口都 > 1。接收方可以缓存乱序到达但正确的帧,并单独进行确认(否定确认NAK或重复ACK)。发送方只重传真正丢失或出错的帧,效率最高。
3. PPP协议的主要特点是什么?它适用于什么场景?
详细解析:
PPP(点对点协议)是数据链路层最重要的协议之一,用于在两个直接相连的节点(如用户计算机与ISP路由器之间)传输数据包。
- 主要特点:
- 简单:协议设计简洁,没有复杂的流量控制和序号机制(可靠性由上层TCP保证)。
- 封装成帧:使用特殊的字符(0x7E)作为帧定界符,并支持异步线路的字节填充和同步线路的比特填充来实现透明传输。
- 支持多种网络层协议:通过协议字段(如0x0021代表IP数据报)可以同时承载多种网络层协议的数据包。
- 提供链路控制协议(LCP):用于自动建立、配置、测试和维护数据链路连接(如协商认证方式、最大帧长度等)。
- 提供网络控制协议(NCP):为不同的网络层协议(如IP、IPX)提供独立的配置接口(如动态分配IP地址)。
- 支持身份验证:常用的有PAP(密码认证协议,明文传输)和CHAP(挑战握手认证协议,更安全)。
* 适用场景:
PPP广泛应用于拨号上网、ADSL宽带接入、路由器之间的专线连接等场景。它是用户计算机接入互联网时,在数据链路层最常用的协议。随着光纤宽带的普及,PPPoE(PPP over Ethernet)协议将PPP帧封装在以太网帧中,使得PPP协议在以太网接入环境中得以延续使用。
4. 简述CSMA/CD协议的工作原理。为什么在以太网中要规定最小帧长?
详细解析:
CSMA/CD(载波监听多点接入/碰撞检测)是以太网(传统共享式以太网)的核心介质访问控制协议。
- 工作原理:可以概括为“先听后发,边发边听,冲突停发,随机重发”。
- 载波监听:任何站点在发送前和发送中,都会持续监听信道。如果监听到信道忙,则推迟发送;如果空闲,则开始发送。
- 碰撞检测:在发送过程中,站点继续监听信道。如果检测到信号电压发生突变(表明与其他站点的信号发生了碰撞),则立即停止发送,并发送一个短小强化的干扰信号(Jamming Signal),以告知所有站点发生了碰撞。
- 随机重发:停止发送后,站点等待一段随机时间(通过二进制指数退避算法计算),然后重新尝试发送。重试多次失败后则报错。
* 规定最小帧长的原因:
这是为了确保碰撞检测机制能够正常工作。
- 假设一个帧太短,在帧的全部比特发送完毕之前,信号还未传播到网络的最远端。
- 此时,远端的站点可能开始发送,从而产生碰撞。
- 但发送方由于帧已发完,已经停止了对信道的监听,将无法检测到这次碰撞,导致传输失败而不知情。
- 因此,必须保证帧的发送时间不小于信号在网络中最远两点间往返传播的时间(即争用期,2τ)。这样,在帧发送完毕前,碰撞信号一定能传回发送方。
- 对于10Mbps传统以太网,争用期为51.2μs,对应最小帧长为 64字节(512比特)。这个规定是CSMA/CD协议能够可靠运行的基础。
学习建议:
本章是理解局域网和广域网底层通信的关键。课后习题的练习应着重于理解协议设计的初衷、解决问题的思路以及各协议之间的演进关系(如从停止-等待到滑动窗口)。建议结合Wireshark等抓包工具观察实际帧结构(如以太网帧、PPP帧),将理论与实际观察相结合,方能深刻掌握数据链路层的精髓。