Preface
计算机网络是考研408基础综合中的一门课程,它的重要性不言而喻。然而,计算机网络的知识体系庞大且复杂,各类概念、协议和技术相互关联,让人在学习时容易迷失方向。在进行复习时,面对庞杂的的知识点,很多人会感到困惑和焦虑。本文整理了计算机网络这门课程的相关知识点,帮助大家构建清晰的知识框架,同时也是对自己学习成果的总结与复盘。本文参考了王道计算机教育——计算机网络考研复习指导这本书和对应的视频,总结过程中难免会出现错误,殷切希望各位读者批评指正。
第3章 数据链路层
概述:数据链路层的主要功能是封装成帧(组帧)、差错控制、可靠传输、流量控制和介质访问控制。
1.组帧(什么是组帧?为什么要组帧?)
组帧是将数据封装成特定格式的帧(Frame)的过程,以便在网络中传输,数据链路层之所以要把比特组合成帧为单位传输,是为了在出错时只重发出错的帧,而不必重发全部数据,从而提高效率。帧是数据链路层的基本传输单位,包含数据和控制信息。
组帧的主要目的是确保数据在传输过程中能够被正确识别、分割和重组。
2.常用的组帧方法有哪些?
常用的组帧方法有四种,分别为字符计数法、字节填充法、零比特填充法和违规编码法。
①字符计数法
原理:在帧头部使用一个计数字段来标明帧内字符数。
缺点:任何一个计数字段出错,都会导致后续所有帧无法定界。
②字节填充法
原理:使用特定字符来定界一帧的开始与结束,在上图中,控制字符SOH放在帧的最前面,表示帧的首部开始,控制字符EOT表示帧的结束。为了使信息位中出现的特殊字符不被误判为帧的首尾定界符,可在特殊字符前面填充一个转义字符来加以区分。
缺点:额外字节开销、传输效率降低、处理复杂度增加、错误传播风险、不适用于高吞吐量场景以及兼容性问题。
③零比特填充法
原理:零比特填充法允许数据帧中包含任意个数的比特,也允许每个字符的编码包含任意个数的比特。它使用一个特定的比特模式,即01111110来标志一帧的开始和结束。为了不是信息位中出现的比特流01111110被误判为帧的首尾标志,发送方的数据链路层在信息位中遇到5个连续的“1”时,将自动在其后插入一个“0”;而接收方做该过程的逆操作。
缺点:额外比特开销、传输效率降低、处理复杂度增加、错误传播风险、不适用于高吞吐量场景、兼容性问题以及时钟同步要求。
④违规编码法
原理:使用违规信号表示帧的开头和结尾(这种方法需要物理层配合)。例如,使用曼彻斯特编码时将数据比特“1”编码成“高-低”电平对,将数据比特“0”编码成“低-高”电平对,而“高-高”电平对和“低-低”电平对在数据比特中是违规的,可以借用这些违规编码序列来定界帧的起始和终止。
缺点:依赖特定的物理层编码、兼容性问题、错误检测能力有限、传输效率降低、处理复杂度增加、不适用于高吞吐量场景以及时钟同步要求。
3.差错控制
通常用编码技术进行差错控制,主要有两类:自动重传请求ARQ和前向纠错FEC。在ARQ方式中,接收端检测到差错时,就设法通知发送端重发,直到接收到正确的码子为止。在FEC方式中,接收端不但能发现差错,而且能确定比特串的错误位置,从而加以纠正。因此,差错控制又可分为检错编码和纠错编码。差错控制如下图所示。
检错编码
①奇偶校验码
奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错编码。它由n位数据和1位检验位组成,检验位的取值(0或1)将使整个检验码中“1”的个数为奇数或偶数。如下图所示。
1)奇校验码:附加一个检验位后,码长为n+1的码字中“1”的个数为奇数。
2)偶校验码:附加一个检验位后,码长为n+1的码字中“1”的个数为偶数。
例如,7位数据1001101对应的奇校验码为10011011,对应的偶校验码为10011010。它只能检测奇数位的出错情况,但是不知道哪些位错了,也不能发现偶数位的出错情况。
②循环冗余码
循环冗余码(Cyclic Redundancy Code,CRC)又称为多项式码,其主要思想如下:
1)数据发送方和接收方约定生成多项式G(x)(最高位和最低位必须为1)。k位位串可视为阶数为k-1的多项式的系数序列。例如,可用多项式x3+x2+1表示位串1101。
2)发送方基于待发送的数据和G(x),计算出冗余码,将冗余码附加到数据后面一起发送。
3)接收方收到数据和冗余码后,通过G(x)来计算收到的数据和冗余码是否产生差错。
假设一个待传送m位的数据,CRC运算产生一个r位的冗余码,称为帧检验序列(FCS)。这样形成的帧将由m+r位组成。在所要发送的数据后面增加r位冗余码,虽然增大了传输开销,但是可以进行差错检测,这种代价往往是值得的。这个带检验码的帧刚好能被预先确定的多项式G(x)整除。接收方用相同的多项式去除收到的帧,若无余数,则认为无差错。
循环冗余码检错的步骤与例子如下:
PS:理论上可以证明循环冗余校验码的检错能力有以下特点:
1)可检测出所有奇数个错误。
2)可检测出所有双比特错误。
3)可检测出所有小于等于检验位长度的连续错误。
PS:循环冗余码是具有纠错功能的,只是数据链路层仅使用了它的检错功能,检测到出错的帧则直接丢弃,是为了方便协议的实现。
纠错编码
最常见的纠错编码是海明码,其实现原理是在有效信息位中加入几个检验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。某一位出错后,就会引起有关的几个检验位的值发生变化,这不但可以发现错位,而且能指出错位的位置,为自动纠错提供依据。
海明码的设计思路:将信息位分组进行偶校验,多个校验位能携带多种状态信息,多个校验位标注出错位置。
海明码的求解步骤包括:(1)确定校验位数量。(2)确定校验位的分布。(3)求校验位的值。(4)检错纠错。
以数据码1010为例,讲述海明码的编码原理和过程。
(1)确定校验位数量
设n为有效信息的位数,k为检验位的位数,则信息位n和检验位k应满足n+k≤2^k-1。数据码1010的信息位是4,要满足上述不等式,则k最小取3。设信息位D4D3D2D1(1010),共四位,检验位为P1P2P3,共三位,对应的海明码为H7H6H5H4H3H2H1。
(2)确定校验位的分布
规定检验位Pi在海明码为2^(i-1)的位置上,其余各位为信息位,因此有:
P1的海明码位号为2^(i-1)=2^0=1,即H1为P1。
P2的海明码位号为2^(i-1)=2^1=2,即H2为P2。
P3的海明码位号为2^(i-1)=2^2=4,即H4为P3。
将信息位按原来的顺序插入,则海明码各位的分布如下:
H7 H6 H5 H4 H3 H2 H1 D4 D3 D2 P3 D1 P2 P1 1 0 1 0 (3)求校验位的值
每个数据位用多个检验位进行检验,但要满足条件:被检验数据位的海明码位号等于检验该数据位的各检验位海明码位号之和。另外,检验位不需要再被检验。分组形成的检验关系如下:
H3:3=2+1→3=2^1+2^0→011
H5:5=4+1→5=2^2+2^0→101
H6:6=4+2→6=2^2+2^1→110
H7:7=4+2+1→7=2^2+2^1+2^0→111
检验位Pi的值为第i组(由该检验位的数据位)所有位求异或。根据上述分组得
P1=H3⊕H5⊕H7=D1⊕D2⊕D4=0⊕1⊕1=0
P2=H3⊕H6⊕H7=D1⊕D3⊕D4=0⊕0⊕1=1
P3=H5⊕H6⊕H7=D2⊕D3⊕D4=1⊕0⊕1=0
所以,1010对应的海明码为1010010(下划线加粗为检验位,其他为信息位)。
(4)纠错
每个检验位分别利用检验位和参与形成该检验位的信息位进行奇偶检验检查,构成k个检验方程:
S1=P1⊕D1⊕D2⊕D4
S2=P2⊕D1⊕D3⊕D4
S3=P3⊕D2⊕D3⊕D4
若S3S2S1的值为“000”,则说明无错;否则说明出错,且这个数就是错误位的位号,如S3S2S1=001,说明第1位出错,即H1出错,直接将该位取反就达到了纠错的目的。
以数据码1010为例的海明码求解的具体步骤如下图所示:
PS:需要注意的是,海明码有1位纠错,2位检错的能力,为了区分1位错和2位错,还需添加“全校验位”对整体进行偶校验。如下图所示:
4.流量控制与可靠传输机制
流量控制
流量控制是指由接收方控制发送方的发送速率,使接收方有足够的缓冲空间来接收每个帧。 常见的流量控制方法有两种:停止-等待协议和滑动窗口协议。数据链路层和传输层均有流量控 制的功能,它们都用到了滑动窗口协议,但也有所区别,主要体现如下:
1)数据链路层控制的是相邻结点之间的流量,而传输层控制的是端到端的流量。
2)数据链路层的控制手段是接收方收不下就不返回确认。传输层的控制手段是接收方通过 确认报文段中的窗口值来调整发送方的发送窗口。
① 停止-等待流量控制基本原理
发送方每次只允许发送一个帧,接收方每 接收一个帧都要反馈一个应答信号,表示可以接收下一帧,发送方收到应答信号后才能发送下一帧。 若发送方没有收到接收方反馈的应答信号,则需要一直等待。发送方每发送完一个帧,就进入等待 接收方确认信息的过程中,因而传输效率很低。
② 滑动窗口流量控制基本原理
在任意时刻,发送方都维持一组连续的允 许发送帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口表示在还未收到对方确认信息的情况下,发送方最多还能发送多少个帧和哪些帧。 同理,在接收方设置接收窗口是为了控制可以接收哪些帧和不可以接收哪些帧。下图给出了发送窗口的工作原理:
![]()
图 发送窗口控制发送方的发送速率:(a)允许发送0~4号共5个帧;(b)允许发送1~4号共4个帧;(c)不允许发送任何帧;(d)允许发送5~7号共3个帧 发送方每收到一个按序确认的确认帧,就将发送窗口向前滑动一个位置。这样,就有一个新 的序号落入发送窗口,序号落入发送窗口内的数据帧可以继续发送。当窗口内没有可以发送的帧 (即窗口内的帧全部是已发送但未收到确认的帧)时,发送方就停止发送。
下图给出了接收窗口的工作原理:
![]()
图 WR=1的接收窗口的意义:(a)准备接收0号帧;(b)准备接收1号帧;(c)准备接收4号帧 接收方每收到一个序号落入接收窗口的数据帧,就允许将该帧收下,然后将接收窗口向前滑 动一个位置,并发回确认。这样,就有一个新的序号落入接收窗口,序号落入接收窗口内的数据 帧即为准备接收的帧。若收到的帧落在接收窗口之外,则一律丢弃
滑动窗口具有以下重要特性:
1)只有接收窗口向前滑动(同时接收方发送了确认)时,发送窗口才有可能(只有发送方 收到确认后才一定)向前滑动。
2)从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议只在发送窗口大小 与接收窗口大小上有所差别:
停止-等待协议:发送窗口WT=1,接收窗口WR=1。
后退N帧协议:发送窗口 WT>1,接收窗口WR=1。
选择重传协议:发送窗口WT>1,接收窗口WR>1。
若采用n比特对帧编号,则后两种滑动窗口协议还需满足WT+WR≤2^n。
3)当接收窗口的大小为1时,可保证帧的有序接收。
4)在数据链路层的滑动窗口协议中,窗口大小在传输过程中是固定的(与传输层不同)。
可靠传输机制
可靠传输是指发送方发送的数据都能被接收方正确地接收,通常采用确认和超时重传两种机 制来实现。确认是指接收方每收到发送方发来的数据帧,都要向发送方发回一个确认帧,表示已正确地收到该数据帧。超时重传是指发送方在发送一个数据帧后就启动一个计时器,若在规定时间内没有收到所发送数据帧的确认帧,则重发该数据帧,直到发送成功为止。 使用这两种机制的可靠传输协议称为自动重传请求(ARQ),它意味着重传是自动进行的, 接收方不需要对发送方发出重传请求。在 ARQ 协议中,数据帧和确认帧都必须编号,以区分确认帧是对哪个帧的确认,以及哪些帧还未确认。ARQ协议分为三种:停止-等待(Stop-and-Wait) 协议、后退N帧(Go-Back-N)协议和选择重传(Selective Repeat)协议。
①单帧滑动窗口与停止-等待协议(S-W)
在停止-等待协议中,发送方每次只能发送一个帧,当发送方收到接收方的确认帧之后,才可 以发送下一个帧。从滑动窗口的角度看,停止-等待协议的发送窗口和接收窗口大小均为1。 在停止-等待协议中,除数据帧丢失外,还可能出现以下两种差错:
(a)到达接收方的数据帧可能已遭破坏,接收方利用前面介绍的差错检测技术检出后,简单地将该帧丢弃。为了应付这种可能的情况,发送方装备了计时器。在一个帧发送后,发送方等待确认,当计时器超时的时候,若仍未收到确认,则重发该数据帧。如此重复,直到该数据帧正确到达为止。如下图所示:
(b)数据帧正确而确认帧被破坏,此时接收方已收到正确的数据帧,但发送方收不到确认帧,因此发送方会重传已被接收的数据帧,接收方收到相同的数据帧时会丢弃该帧,并重传一个该帧对应的确认帧。
对于停止-等待协议,因为每发送一个数据帧就停止并等待,所以用1比特来编号就已足够。 发送的帧交替地用0和1来标识,确认帧分别用ACK0和ACK1来表示,当收到的确认帧有误时, 就重传已发送的数据帧。若连续出现相同序号的数据帧,则表明发送方进行了超时重传。若连续出现相同序号的确认帧,则表明接收方收到了重复帧。
停止-等待协议的正常传输情况示例如下图所示:
在停止-等待协议中,还会出现几种异常情况,分别为数据帧丢失、确认帧丢失,如下图所示:
对于停止-等待协议的特点总结如下:
②多帧滑动窗口与后退N帧协议(GBN)
在后退N帧协议中,发送方可在未收到确认帧的情况下,将序号在发送窗口内的多个数据帧 全部发送出去。后退N帧的含义是:发送方发送N个数据帧后,若发现这N个帧的前一个数据 帧在计时器超时的时候仍未收到其确认信息,则该帧被判为出错或丢失,此时发送方不得不重传该出错帧及随后的N个帧。这意味着,接收方只允许按顺序接收帧。
在下图中,发送方向接收方发送数据帧。发送方发完0号帧后,可以继续发送后续的1号帧、2号帧等。发送方每发送完一个数据帧,就要为该帧设置超时计时器。因为连续发送了许多帧,所以确认帧必须指明是对哪个帧的确认。为了降低开销,GBN协议允许接收方进行累积确认,即允许接收方不需要每收到一个正确的数据帧就立即发回一个确认帧,而可在连续收到多个正确的数据帧后,对最后一个数据帧发回确认信息,也就是说,对某个数据帧的确认就代表该数据帧和之前所有的帧均已正确无误地收到。ACKn表示对n号帧的确认,表示接收方已正确收到 n号帧及之前的所有帧,下次期望收到n+1号帧(也可能是0号帧)。接收方只按序接收数据帧。 图中,虽然在有差错的2号帧之后接着收到了正确的6个数据帧,但接收方必须将这些帧丢弃。接收方虽然丢弃了这些未按序出现的无差错帧,但应重发已发送的最后一个确认帧ACK1(这是为了防止已发送的确认帧 ACK1丢失)。
后退N帧协议的正常传输情况如下图所示:
对后退N帧协议的总结如下:
③多帧滑动窗口与选择重传协议(SR)
为了进一步提高信道的利用率,可以设法只重传出现差错和计时器超时的数据帧,但此时必 须加大接收窗口,以便先收下失序但正确到达且序号仍落在接收窗口内的那些数据帧,等到所缺序号的数据帧收齐后,再一并送交上层。这就是选择重传协议。
为了使发送方仅重传出错的帧,接收方不能再采用累积确认,而要对每个正确接收的数据帧 逐一进行确认。显然,选择重传协议比后退N帧协议更复杂,且接收方需要设置足够的帧缓冲区 (帧缓冲区的数目等于接收窗口的大小而非序号数目,因为接收方不能接收序号在窗口下界以下或窗口上界以上的帧)来暂存那些失序但正确到达且序号落在接收窗口内的数据帧。每个发送缓冲区对应一个计时器,当计时器超时的时候,缓冲区的帧就重传。另外,选择重传协议还采用了比上述其他协议更有效的差错处理策略,即一旦接收方检测到某个数据帧出错,就向发送方发送一个否定帧NAK,要求发送方立即重传NAK指定的数据帧。在下图中,2号帧丢失后,接收方仍可正常接收并缓存之后收到的数据帧,待发送方超时重传2号帧并被接收方成功接收后,接收窗口就可向前移动,而当发送方收到2号帧的确认后,发送窗口就可向前移动。在某个时刻, 接收方检测到10号帧出错,向发送方发出否定帧NAK10,在此期间接收方仍可正常接收并缓存之后收到的帧,发送方收到否定帧NAK10后立即重传10号帧。
选择重传协议的接收窗口WR和发送窗口WT都大于1,一次可以发送或接收多个帧。若采用 n比特对帧编号,需满足条件①:WR+WT≤2^n(否则,在接收方的接收窗口向前移动后,若有一个或多个确认帧丢失,则发送方就会超时重传之前的旧数据帧,接收窗口内的新序号与之前的旧序号出现重叠,接收方就无法分辨是新数据帧还是重传的旧数据帧)。此外,还应满足条件②:WR≤WT(否则,若接收窗口大于发送窗口,则接收窗口永远不可能填满,接收窗口多出的空间 就毫无意义)。由①和②不难得出WR≤2^(n-1)。一般情况下,WR和 WT的大小是相同的。
选择重传协议的正常传输情况如下所示:
对选择重传协议的特点总结如下图所示:
5.介质访问控制
介质访问控制所要完成的主要任务是,为使用介质的每个结点隔离来自同一信道上其他结点 所传送的信号,以协调活动结点的传输。。用来决定广播信道中信道分配的协议属于数据链路 层的一个子层,称为介质访问控制(Medium Access Control,MAC)子层。
常见的介质访问控制方法有信道划分介质访问控制、随机访问介质访问控制和轮询访问介质 访问控制。其中前者是静态划分信道的方法,而后两者是动态分配信道的方法。
① 信道划分介质访问控制(频分多路复用、时分多路复用、波分多路复用、码分多路复用)
频分复用(FDM)
频分复用(Frequency Division Multiplexing,FDM)是指将信道的总频带划分为多个子频带, 每个子频带作为一个子信道,每对用户使用一个子信道进行通信。如下图所示。
优点:各节点可同时发送信号,充分利用了信道带宽
缺点:FDM技术只能用于模拟信号的传输
时分复用(TDM)
时分复用(Time Division Multiplexing,TDM)是指将信道的传输时间划分为一段段等长的 时间片,称为TDM帧,每个用户在每个TDM帧中占用固定序号的时隙,每个用户所占用的时隙 周期性地出现(其周期就是 TDM的长度),所有用户在不同的时间占用同样的信道资源。TDM 帧实际上是一段固定长度的时间,它与数据链路层的帧不是同一个概念。如下图所示。
缺点:每个节点最多只能分配到信道总带宽的1/m,如果某节点暂时不发送数据,会导致被分配的“时隙”闲置,信道利用率低。
统计时分多路复用(Statistic Time Division Multiplexing,STDM)又称为异步时分复用,在TDM的基础上,动态按需分配时隙。如下图所示
优点:如果需要时,一个节点可以在一段时间内获得所有的信道带宽资源,如果某节点暂时不发送数据,可以不分配“时隙”,信道利用率高。
波分复用(WDM)
波分复用(Wavelength Division Multiplexing,WDM)即光的频分复用,它在一根光纤中传输 多种不同波长(频率)的光信号,因为波长不同,各路光信号互不干扰,最后用光分用器将各路波长分解出来。因为光波处于频谱的高频段,有很大的带宽,所以可以实现多路的波分复用。如下图所示。
码分多路复用(CDM)
码分复用(Code Division Multiplexing,CDM)是采用不同的编码来区分各路原始信号的一种复用方式。与 FDM和TDM不同,它既共享信道的频率,又共享时间。如下图所示。
实际上,更常用的名词是码分多址(Code Division Multiple Access,CDMA),其原理是将每个比特时间再划分成m个短的时间槽,称为码片(Chip),通常m的值是64或128,下例中为简单起见,设m为8。每个站点被指派一个唯一的m位码片序列。发送1时,站点发送它的码片序 列;发送0时,站点发送该码片序列的反码。当两个或多个站点同时发送时,各路数据在信道中线性相加。为了从信道中分离出各路信号,要求各个站点的码片序列相互正交。
简单理解就是,A 站向C站发出的信号用一个向量来表示,B站向C站发出的信号用另一个向量来表示,两个向量要求相互正交。向量中的分量,就是所谓的码片。
主要流程如下:
②随机访问介质访问控制(ALOHA协议、CSMA协议、CSMA/CD协议、CSMA/CA协议)
在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户都能根据自己 的意愿随机地发送信息,占用信道的全部速率。在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧冲突(也称碰撞),导致所有冲突用户的发送均以失败告终。为了解决随机访问发生的冲突,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无冲突地通过,这些规则就是随机访问介质访问控制协议,其核心思想是:胜利者通过争用获得信道,进而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议。
ALOHA协议
ALOHA协议分为纯 ALOHA 协议和时隙 ALOHA协议两种。
纯ALOHA协议的基本思想是,当总线形网络中的任何站点需要发送数据时,可以不进行任 何检测就发送数据。若在一段时间内未收到确认,则该站点就认为传输过程中发生了冲突。发送站点需要等待一段时间后再发送数据,直至发送成功。
时隙 ALOHA协议同步各站点的时间,将时间划分为一段段等长的时隙(Slot),规定站点只 能在每个时隙开始时才能发送帧,发送一帧的时间必须小于或等于时隙的长度。这样做避免了用 户发送数据的随意性,降低了产生冲突的可能性,提高了信道的利用率。
两种协议的对比如下图所示。
CSMA协议
ALOHA 网络发生冲突的概率很大。若每个站点在发送前都先监听公用信道,发现信道空闲 后再发送,则会大大降低冲突的可能性,从而提高信道的利用率,载波监听多路访问(Carrier Sense Multiple Access,CSMA)协议依据的正是这一思想。CSMA协议是在ALOHA 协议基础上提出的 一种改进协议,它与ALOHA协议的主要区别是多了一个载波监听装置。
根据监听方式和监听到信道忙后的处理方式的不同,CSMA协议分为三种。
1-坚持CSMA
1-坚持CSMA的基本思想是:当站点要发送数据时,首先监听信道;若信道空闲,则立即发 送数据;若信道忙,则继续监听直至信道空闲。“坚持”的含义是监听到信道忙时,继续坚持监 听信道;“1”的含义是监听到信道空闲时,立即发送帧的概率为1。
非坚持CSMA
非坚持CSMA的基本思想是:当站点要发送数据时,首先监听信道;若信道空闲,则立即发 送数据;若信道忙,则放弃监听,等待一个随机的时间后,再重新监听。
p-坚持CSMA
p-坚持CSMA只适用于时分信道,其基本思想是:当站点要发送数据时,首先监听信道;若 信道忙,则持续监听(即等到下一个时隙再监听),直至信道空闲;若信道空闲,则以概率p发 送数据,以概率1-p推迟到下一个时隙再继续监听;直到数据发送成功。
三种不同类型的CSMA协议比较
三种不同类型的CSMA协议比较 信道状态 1-坚持 非坚持 p-坚持 空闲 立即发送数据 立即发送数据 以概率p发送数据,以概率1-p推迟到下一个时隙 忙 继续坚持监听 放弃监听,等待一个随机时间后再监听 持续监听(等到下一时隙再监听),直至信道空闲 CSMA/CD协议
载波监听多路访问/冲突检测(CSMA/CD)协议是 CSMA协议的改进方案,适用于总线形网络 或半双工网络环境。对于全双工网络,因为全双工采用两条信道,分别用来发送和接收,在任何 时候,发收双方都可以发送或接收数据,不可能产生冲突,所以不需要CSMA/CD协议。
CSMA/CD的工作流程可简单地概括为“先听后发,边听边发,冲突停发,随机重发”。
CSMA/CA
CSMA/CD 协议已成功用于使用有线连接的局域网,但在无线局域网环境下不能简单地搬用 CSMA/CD协议,特别是冲突检测部分,主要有两个原因:
1)接收信号的强度往往远小于发送信号的强度,且在无线介质上信号强度的动态变化范围 很大,因此若要实现冲突检测,则硬件上的花费会过大。
2)在无线通信中,并非所有站点都能够听见对方,即存在“隐蔽站”问题。
为此,802.11标准定义了广泛用于无线局域网的CSMA/CA协议,它对CSMA/CD协议进行 修改,将冲突检测改为冲突避免(Collision Avoidance,CA)。“冲突避免”并不是指协议可以完 全避免冲突,而是指协议的设计要尽量降低冲突发生的概率。因为802.11无线局域网不使用冲突 检测,一旦站点开始发送一个帧,就会完全发送该帧,但冲突存在时仍发送整个帧(尤其是长数据帧)会严重降低网络的效率,所以要采用冲突避免技术来降低冲突的概率。
③轮询访问(令牌传递协议)
在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮 询每个结点,再决定信道的分配。典型的轮询访问控制协议是令牌传递协议。
在令牌传递协议中,一个令牌(Token)沿着环形总线在各站之间依次传递。令牌是一个特 殊的控制帧,它本身并不包含信息,仅控制信道的使用,确保同一时刻只有一个站独占信道。当 环上的一个站希望发送帧时,必须等待令牌。站点只有取得令牌后才能发送帧,因此令牌环网络 不会发生冲突(因为令牌只有一个)。站点发送完一帧后,应释放令牌,以便让其他站使用。因 为令牌在网环上是按顺序依次传递的,所以对所有入网计算机而言,访问权是公平的。
令牌环网络中令牌和数据的传递过程如下:
1)当网络空闲时,环路中只有令牌帧在循环传递。
2)当令牌传递到有数据要发送的站点时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去。
3)数据帧沿着环路传输,接收到的站点一边转发数据,一边查看帧的目的地址。若目的地址和自己的地址相同,则接收站就复制该数据帧,以便进一步处理。
4)数据帧沿着环路传输,直到到达该帧的源站点,源站点收到自己发出去的帧后便不再转 发。同时,通过检验返回的帧来查看数据传输过程中是否出错,若出错则重传。
5)源站点传送完数据后,重新产生一个令牌,并传递给下一站点,交出信道控制权。
6.局域网
局域网(Local Area Network,LAN)是指在一个较小的地理范围(如一所学校)内,将各种 计算机、外部设备和数据库系统等通过双绞线、同轴电缆等连接介质互相连接起来,组成资源和 信息共享的计算机互连网络。主要特点如下:
1)为一个单位所拥有,且地理范围和站点数目均有限。
2)所有站点共享较高的总带宽(即较高的数据传输速率)。
3)较低的时延和较低的误码率。
4)各站为平等关系而非主从关系。
5)能进行广播和多播。
局域网的介质访问控制方法主要有CSMA/CD协议、令牌总线协议和令牌环协议,其中前两 种协议主要用于总线形局域网,令牌环协议主要用于环形局域网。
三种特殊的局域网拓扑实现如下:
● 以太网(目前使用范围最广)。逻辑拓扑是总线形结构,物理拓扑是星形结构。
●令牌环(Token Ring,IEEE 802.5)。逻辑拓扑是环形结构,物理拓扑是星形结构。
● FDDI(光纤分布数字接口,IEEE802.8)。逻辑拓扑是环形结构,物理拓扑是双环结构。
以太网与IEEE802.3
以太网是目前最流行的有线局域网技术。以太网逻辑上采用总线形拓扑结构,所有计算机共 享同一条总线,信息以广播方式发送,以太网使用CSMA/CD方式对总线进行访问控制。
以太网采用两项措施来简化通信:
①采用无连接的工作方式,既不对发送的数据帧编号,又 不要求接收方发送确认,即以太网尽最大努力交付数据,提供的是不可靠服务,对差错的纠正则 由高层完成;
②发送的数据都使用曼彻斯特编码的信号,每个码元的中间出现一次电压转换,接 收方利用这种电压转换方便地将位同步信号提取出来。
以太网常用的传输介质有4种:粗缆、细缆、双绞线和光纤,它们的适用情况如下:
计算机与外界局域网的连接是通过主板上嵌入的一块 网络适配器(Adapter)[又称网络接口卡 (Network Interface Card,NIC)] 实现的。适配器上装有处理器和存储器,工作在数据链路层。适 配器和局域网的通信是通过电缆或双绞线以串行方式进行的,而适配器和计算机的通信则是通过 计算机的I/O总线以并行方式进行的。因此,适配器的重要功能就是进行数据的串并转换。
各种传输介质的适用情况 标准名称 10BASE5 10BASE2 10BASE-T 10BASE-F 传输介质 同轴电缆(粗缆) 同轴电缆(细缆) 非屏蔽双绞线 光纤对(850nm) 编码 曼彻斯特编码 曼彻斯特编码 曼彻斯特编码 曼彻斯特编码 拓扑结构 总线型 总线型 星型 点对点 最大段长 500m 185m 100m 2000m 最多结点数目 100 30 2 2
以太网的MAC地址
IEEE802 标准为局域网规定了一种 48 位的全球地址,是指局域网上的每台计算机中固化在适 配器的ROM中的地址,称为物理地址或MAC地址(因为这种地址用在 MAC帧中),这个地址用 于控制主机在网络上的数据通信。全世界所有的局域网适配器都具有不同的地址,一台计算机只要 没有更换适配器,不管其地理位置如何变化,其MAC地址都不会变化。
MAC地址长6字节,一般用由连字符(或冒号)分隔的 12个十六进制数表示,如02-60-8c-e4 bl-21。高24位为厂商代码,低24位为厂商自行分配的适配器序列号。
适配器从网络上每收到一个 MAC 帧,首先都要用硬件检查 MAC 帧中的目的地址。若是发 往本站的帧,则收下,否则丢弃该帧。这里“发往本站的帧”包括以下三种帧:
1)单播帧(一对一),即收到的帧的目的地址与本站的MAC 地址相同。
2)广播帧(一对全体),即发送给本局域网上所有站点的(全1地址)。
3)多播帧(一对多),即发送给本局域网上一部分站点的帧。
以太网的MAC帧
以太网MAC帧格式有两种标准:DIX Ethernet V2标准(即以太网V2标准)和 IEEE 802.3 标准。这里只介绍最常用的以太网V2的MAC帧格式,如下图所示。
各个字段的含义如下:
目的地址:6字节,帧在局域网上的目的适配器的MAC地址。
源地址:6字节,传输帧到局域网上的源适配器的MAC地址。
类型:2字节,指出数据字段中的数据应交给哪个上层协议处理,如网络层的IP协议。
数据:46~1500字节,承载上层的协议数据单元(如IP数据报)。以太网的最大传输单元是 1500字节,若IP数据报超过1500字节,则必须将该IP数据报分片。此外,由于CSMA/CD算 法的限制,以太网帧必须满足最小长度是64字节,当数据字段的长度小于46 字节时,MAC 子层就在数据字段的后面加一个整数字节的填充字段,以确保帧长不小于64字节。
检验码(FCS):4字节,检验范围从目的地址段到数据字段,算法采用32位CRC码,不但 要检验MAC帧的数据部分,而且要检验目的地址、源地址和类型字段,但不检验前导码。
802.11 帧共有三种类型,即数据帧、控制帧和管理帧。
802.11 数据帧由以下三部分组成:
1)MAC首部,共30字节。帧的复杂性都在 MAC 首部。
2)帧主体,即帧的数据部分,不超过2312字节。它比以太网的最大长度长很多。
3)帧检验序列 FCS是 MAC尾部,共4字节。
802.11局域网的MAC帧如下:
7.数据链路层设备
数据链路层的设备有网桥、交换机,其特性总结如下: