【计算机网络】数据链路层考研复习指导
链路层概述
网络链路有两种:
-
广播链路 点对点链路
在《自顶向下》中描述了数据链路层的4个功能/服务:
-
成帧 链路接入,如果是广播链路则要引入多路访问的问题;如果是点对点链路就没那么多事 可靠交付 差错检测和纠正
稍作了解不难发现它们之间的关系。成帧、链路接入(MAC协议)是基本功能,可靠交付是附加功能。可靠交付有两种实现方式:确认重传、差错纠正,其中差错纠正就是链路层的第4个服务。
此外还需要学习以太网(802.3)和WiFi(802.11),这两个技术只是局域网技术的一种,但它们两几乎垄断了现实生活,一个垄断了有线局域网,另一个垄断了无线局域网。它们既然如此强大一定有很多东西值得学习。
差错检测和纠正技术
在可靠交付中我们提到了2种方案:确认重传、差错纠正。对于无线链路来说,很容易受到信号干扰,因此采用差错纠正更合适。但对于有线链路,采用确认重传更加合适,因为差错纠正技术会传输更多的额外数据。
差错检测和纠正技术本身是一个很大的话题,可以用整本书来介绍,这里我们只是了解一些皮毛。所谓的比特差错是指数据传输过程中发生了比特翻转(0变1、1变0)。
假设要发送的数据是D,发送方会附加EDC(Error Detection and Correction)数据,由于可能有差错,接收方收到的是D’和EDC’数据。若数据发生了差错,接收方一般是可以检测到;但也可能运气不好,比特翻转的位置十分巧妙,接收方无法检测到差错。
任何技术都是双刃剑,复杂的差错检测技术:
-
可以降低检测不到差错的概率 但也增加了运算开销、增大了EDC体积
「自顶向下」介绍了3种差错检测技术,它们的复杂度、适用场景各不相同:
-
奇偶校验 检验和 循环冗余检测
多路访问链路和协议
广播链路上可能有多个结点,它们一起发数据就会冲突,因此我们要想办法把它们隔开,于是诞生了许多「多路访问协议」。
目前分为3种「多路访问协议」:
-
信道划分协议 随机接入协议 轮询协议
我们可以用这几个特性判断协议的好坏:
- 当只有1个结点发数据时,它应该有R的吞吐量
- N个结点发数据,每个结点都能享受R/N的吞吐量
- 个别结点崩溃不会影响其它结点
- 希望协议简单,这样才容易实现
信道划分协议
为了把多个节点分开,自然想到在时间或空间上分隔,就有了时分多路复用(TDM)和频分多路复用(FDM)。还有一种方法很天才,不容易想到,就是码分多址(CDMA)。
信道划分协议简单公平,但缺点明显。R速率的链路上有N个节点,每个节点只拿到了R/N的速率。若只有1个节点要用网络,其它节点休眠,那利用率很低。
另外波分多路复用和频分多路复用是同一个概念,光纤中光的频率和波长是有换算公式的(中学物理)。
随机接入协议
轮询协议
以太网(802.3)
WiFi(802.11)
其它
还有广域网、PPP、HDLC、网桥、交换机等概念需要整理。后续补充。