【计算机网络】第三章 链路层

第三章 链路层


数据链路层中主要的数据单元是 数据帧。报文(message)在数据链路层中被封装成帧然后传输。

3.1 数据链路层功能

数据链路层的主要作用是加强物理层传输原始比特流的能力,将物理层的可能出错的物理连接改造为逻辑上无差错的数据链路。

3.1.1 为网络层提供的服务

数据链路层能为网络层提供以下几种服务:

  1. 无确认的无连接服务:源机器发送数据帧时不需要先建立链路连接,目的机器收到的时候也不需要发挥确认。对于丢失的帧,数据链路层不负责重发而是交由上层处理。
  2. 有确认的无连接服务:源机器发送数据帧时不需要先建立链路连接,但是目的机器收到数据帧必须进行回传确认。源机器在指定时间内未收到回传报文时重传该数据帧,从而提高数据传输可靠性
  3. 有确认的面向连接服务:该服务的帧传输分为建立链路、传输帧、释放数据链路三个阶段。目的机器对收到的每一个帧都需要给出确认,源机器收到后才能发送下一帧

数据链路层连接的建立、维持和释放的过程称之为链路管理,它主要用于面向连接的服务,也就是有确认的面向连接的服务。

3.1.2 帧定界、帧同步与透明传输

两台主机互相传输信息的时候,会将网络层的包(packet)分组封装成帧。将一段数据前后添加首部和尾部就成了帧。首部和尾部中的一个重要信息就是确定帧的定界。而帧同步就是接收方应该从接收到的二进制比特流中区分出帧的起始和终止。比如在HDLC协议中用用标识为F(01111110)来标识帧的开始和结束,这个就是帧定界符。每种数据链路层协议都规定了帧的数据部分的最大长度——最大传送单元(MTU)

起始标志
地址
8位
控制
8位
信息
N位(可变)
帧校验序列(FCS)
16位
终止标志

但是如果数据中恰好出现和帧定界符相同的比特组合,接收方可能会将数据中的信息误以为是终止标志,导致帧被从中间截断。而数据链路层协议可以采用特殊的方法防止这种情况的发生,也就是无论传输的是什么组合的比特流,链路层都能传输完整的帧,不会将传输的信息误以为是结束标志,这就是透明传输

3.1.3 流量控制

由于收发双方会有各自的工作速率,可能会出现发送方发送能力超过接收方接受能力的现象。如果不加以限制发送方的速率,会导致源源不断到达的帧淹没接收方,导致接收方需要缓存的帧越来越多最终挤爆缓存,导致帧的丢失。因此流量控制就是心啊秩发送方的数据流量,使其发送速率不超过接收方接受速率。

3.1.4 差错控制

由于信道噪声等种种原因,帧在传输过程中可能会出现错误。用一定的方法使得发送方能够确认接收方是否已经正确收到其发送的数据的方法称之为差错控制。通常错误分为是位错误帧错误。位错误是帧中的某些位出现了差错,采用CRC循环冗余校验可以发现位错,通过自动重传请求ARQ方法来重传出错的帧。帧错误指的是帧的丢失、重复或失序,在数据链路层引入定时器和编号机制能够保证每一帧最终都有且仅有一次正确地交付给目的地点。

3.2 组帧

组帧指的是将网络层递交的分组按照一定规则封装成帧,这些需要解决帧定界、帧同步、透明传输等问题。

3.2.1 字符计数法

字符计数法是指在帧头部使用一个计数字段来表明帧内字符数,目的结点的数据链路层收到字节计数值的时候,就知道后面还有多少个字节数,从而确定帧结束的位置。这种方法的最大问题是如果计数字段出现错误,就会失去帧边界划分的依据,那么接收方就无法判断传输的结束位和下一帧的开始位置,从而导致后续的帧也失去边界,收发双方失去同步。

3.2.2 字符填充的首位定界符法

字符填充法使用特定字符来定界一帧的开始和结束。控制字符SOH放在最前面,表示帧首部的开始,控制字符EOT表示帧的结束。为了使信息为中出现的SOH和EOT不被误判为帧的首尾定界符,可以在信息中出现SOH和EOT的前面加一个特殊的转义字符ESC(ascii码为27)来加以区分,以实现数据的透明传输。

3.2.3 零比特填充的首位定界符法

零比特填充法允许数据帧包含任意个数的比特,也允许每个字符的编码包含任意个数的比特。它使用01111110来标识一帧的开始和结束,为了避免信息中的01111110被误判为首尾定界符,发送方的数据链路层会遍历信息位,在信息位中遇到连续的五个1的时候会在后面加多一个0;而接收方会做该过程的逆操作,在识别了帧的头部和尾部并提取出了其中的信息部分后,遍历信息部分,每遍历到第五个1的时候,自动删除后续的一个0。零比特填充法很容易通过硬件实现,性能优于字符填充法。

3.2.4 违规编码法

在物理层进行比特编码的时候,通常采用违规编码法。比如曼彻斯特编码中将数据比特1编码成“高-低”电平,将数据比特0编码成“低-高”电平,而“高-高”电平和“低-低”电平是违规的,没有规定意义的。可以用这些违规的编码来定界真的起始和终止。

3.3 差错控制

利用编码技术进行差错控制一般有两类:自动重传请求ARQ向前纠错FEC。ARQ可以检测到差错,让发送端重发,因此ARQ是一种检错编码;而FEC不仅可以检测到差错,还可以知道比特流出错的地方,从而加以纠正,因此FEC是一种纠错编码

3.3.1 检错编码

检错编码都采用冗余编码技术,其核心思想是在有效数据被发送之前,先按照某一种方式附加一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余也跟着变换,使得码字遵从不变的规则。接收端根据收到的码字是否仍符合原规则判断是否出错。

1.奇偶校验码

奇偶校验码是奇校验码和偶校验码的统称,是最基本的检错码。它由n-1位信息元和1位校验元组成。在奇数校验码中,如果信息元中有奇数个1,则校验元为0;如果信息元中有偶数个1,则校验元为1,这样就保证了校验码中只会有奇数个1;在偶数校验码中,同理,使得校验码中有偶数个1。它只能检测有奇数个错误的情况,但是并不知道哪里错了,也不能发现偶数个错误的情况。

2.循环冗余码

循环冗余码(CRC)又称为多项式码。任何一个由二进制数位串组成的代码都可以与一个只含有0和1两个系数的多项式建立一一对应的关系。

在循环冗余码机制中,一个帧的数据部分由两部分组成:一个是信息部分,就是我们要通过链路层传输的信息;另一个是帧检验序列。(FCS)。首先,发送方和接收方会商定一个多项式G(x),使得这个帧的数据部分(就是信息部分+FCS)能够被预先确定的多项式G(x)整除。接收方又会用同样的G(x)去除收到的帧,如果结果没有余数,则认为没有差错。

首先,假设帧的信息部分有m bit,那么计算冗余码的步骤如下:

  1. 接收方和发送方商定G(x)为r阶的多项式,由此确定FCS的比特数为r bit,然后先初始化FCS部分,将FCS部分全部设为0,也就是帧的数据部分是有m+r bit组成
  2. 用帧的m+r信息位模2除以G(x),得出r位的余数。该余数就是FCS部分的值,将该r位的余数赋值给FCS部分,得到的m+r位的数据部分可以被G(x)整除
  3. 接收方接收数据后,使用同样的G(x)多项式对帧的数据部分进行模2运算,如果余数位0,则没有差错。

通过CRC循环冗余检测,链路层的协议已经可以实现无误差传输了,但是依然无法实现可靠传输,因为可能出现帧丢失的情况。

3.3.2 纠错编码

在数据通信的过程中,解决差错问题的一种方法是在每一个要发送的数据块上附加足够的冗余信息,使得接收方能够推导出发送方实际送出的是什么样的比特串。最常见的纠错编码是海明码,其原理是在有效信息内加入及格校验位形成海明码。当某一个位置出错后,就会引起有关的几个校验位的值的变化,因此不仅可以发现错位,还可以指出错误的位置。
在这里插入图片描述
海明距离也可以理解为是两个正确的编码作异或后1的位数,比如编码0000和编码0110异或后为0110,那么他的海明距离则为2。一组编码中最小的海明距离又称为该编码集的海明距离。对于海明距离,检测d位错,需要d+1位,纠正d位错,需要2d+1

在这里插入图片描述
在这里插入图片描述

海明码运算如下:

  1. 确认校验位的位置:假设有n位的有效信息(就是传输给接收方的数据),则会存在k位的海明码校验位,满足以下方程式: n + k < = 2 k − 1 n+k <= 2^k-1 n+k<=2k1如果需要检测两位错,那么需要增加一个校验位,也就是k+1位校验位。

  2. 确认校验位的位置:将第i位海明码插入到信息中的第2i-1个位置上,也就是第1个海明码在信息的第一位,第二个海明码在信息的第二位,第三个海明码在信息的第四位上。

  3. 分组形成校验关系:

  4. 校验位取值:

检错:
找到不满足奇偶校验的分组取交集

3.4 流量控制和可靠传输机制

前瞻 关键概念

3.4.1 流量控制、可靠传输与滑动窗口机制

流量控制涉及对链路上的帧的发送速率的控制,以是的接收方有足够的缓冲空间来接收帧,流量控制的基本方式有两种:停止-等待协议滑动窗口协议

停止-等待流量控制基本原理

发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接受一帧都要返回一个应答信号。如果接收方不反馈信号,发送方会一直等待。每次都只允许发送一帧,然后陷入等待接收方反馈的过程中,因此传输效率很低。

滑动窗口流量控制基本原理

任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方维持一组连续的允许接收帧的窗口,称为接收窗口。发送窗口用来对发送方进行流量控制。

发送端会发送其发送窗口中没有发送的帧,而每收到一个确认帧,发送窗口会向前滑动一个帧的位置,如果发送窗口中没有为发送的帧的时候,发送方会停止发送,从而达到流量控制的功能。在接收方,接收端收到数据帧后会将接收窗口向前移动一个位置,并且发回确认帧,如果接受的数据帧不在接收窗口之内,则会一律丢弃接收帧。

滑动窗口有以下特性:

  1. 只有接收窗口向前移动的时候,发送窗口才有可能向前移动,从而使得发送速率小于等于接受速率,实现流量控制功能
  2. 从滑动窗口的概念来看:
    • 停止-等待协议:发送窗口大小=1,接收窗口大小=1
    • 后退n帧协议:发送窗口大小>1,接收窗口大小=1
    • 选择重传协议:发送窗口大小>1,接收窗口大小>1

可靠传输基本原理

数据链路层的可靠传输使用确认超时重传两种机制实现。确认是一种无数据的控制帧,通过回复确认帧给发送方可以使得发送方知道哪些数据帧被接受了。有时候为了提高传输效率,接收方会将确认接收的信息放在一个发送给发送方的数据帧中,而不是单独的一个确认帧,这种叫做捎带确认超时重传是指发送方在发送某个数据帧之后会启用一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就会重发该数据帧。

而**自动重传请求(ARQ)**通过接收方请求发送方重传出错的数据帧来恢复出错的数据,是除了确认和超时重传之外常用的处理信道差错的方法之一。传统自动重传请求分为三种:停止-等待ARQ、后退N帧ARQ和选择性重传ARQ

以下介绍的都是三种ARQ技术

3.4.2 单帧滑动窗口与停止-等待协议

在停止-等待协议中除了数据帧丢失之外还有以下两种差错:

(1)到达接收方的帧已经损坏,接收方检查后将该帧丢弃,发送方发送该帧后超过规定时间没收到确认帧,则重传该帧

(2)数据帧正确传输并被接受,但是发回的确认帧损坏了,因此发送方收不到确认帧,会再次重发该帧。因此需要标识帧以避免数据帧被重复的接收,事实上由于停止等待协议发送窗口只有1,因此会使用0和1交替地标记数据帧,用ACK0和ACK1标记确认帧。如果接收方收到了相同发送序号的帧,则证明发送方进行了超时重传;如果发送方收到了相同序号的确认帧则证明接收方收到了同样的数据帧。

3.4.3 多帧滑动窗口与后退N帧协议(GBN)

在后退N帧的ARQ中,发送方不需要在收到上一个帧ACK后才发送下一帧,而是可以连续发送帧,直到发送窗口中没有未发送的帧。当接收方检测出失序的信息帧后,会要求发送方重发最后一个正确接收的信息帧之后所有的帧;或者当发送方发送了N个帧之后发现有一个帧在计时器超时之后仍未返回其确认信息,则会重传该帧以及该帧之后所有已发送的帧。换句话说,就是接收方只允许按顺序接收帧。并且还有累次确认的机制,发送 n号ACK帧表示前n个帧都收到了

后退N帧一方面因为连续发送数据提高了信道的利用率,另一方面重传又必须把在出错帧后的正确帧一起进行重传,降低了利用率。因此如果信道传输质量很差导致误码率较大的时候,后退N帧协议不一定优于停止—等待协议。

后退N帧的接收窗口大小为1,如果使用n比特对帧进行编号,那么其发送窗口的尺寸最大为2n-1,不然会导致无法分清新帧和旧帧

3.4.4 多帧滑动窗口与选择重传协议(SR)

为了进一步提高信道的利用率,可以设法只重传出现差错的数据帧或者计时器超时的帧,但此时必须加大接收窗口,使得先收下位于出错帧之后的正确的数据帧,然后等待错误帧到达后一并交付给上层。这就是选择重传ARQ协议

该协议除了超时重传之外,还采用了比上述协议更有效的差错处理策略,一旦接收方怀疑帧出错,可以发送一个否定帧NAK给发送方,要求发送方对NAK中指定的帧进行重传。选择重传协议可以避免重复传送本已正确到达接收端的数据帧,但是在接收端要设置相当容量的缓冲区来暂存那些暂未按序交付的数据帧。

选择重传协议中,发送窗口和接受窗口大小一般都一样,假设采用n比特进行帧编号,那么发送窗口大小W和接受窗口W W 发 + W 收 ≤ 2 n − 1 W_发+W_收 \leq 2^{n-1} W+W2n1



3.5 介质访问控制

介质访问控制所要完成的主要任务是,为使用介质的每个节点隔离来自同一信道上其他节点所传输的信号,比如传在一条网线上传输着要分发给数个主机的信号,介质访问控制则是负责将他们区分开来而不致于混在一起。用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称之为介质访问控制子层(MAC)

3.5.1 信道划分介质访问控制

信道划分介质访问控制将使用介质的每一个设备与来自同一信道上的其他设备隔离开来的控制

下面介绍的是多路复用的概念,当传输介质的带宽超过了传输单个信号所需的带宽时,可以通过一条介质上同时携带多个传输信号的方法来提高信道的利用率。多路复用将多个信号组合在一条物理链路上进行传输,使得多个计算机共享物理信道资源。

1.频分多路复用(FDM)

频分复用是将一个物理信道的带宽分为若干个子信道,每个子信道传输一种信号,这就是频分多路复用。经典例子是使用电话线拨号上网,会规定4kHz以下的为电话线频段,而4kHz~50kHz为网络信号传输的频段。

2.时分多路复用(TDM)

时分复用是将一条物理信道按时间分成若干个时间片,轮流分配个多个信号使用。但是由于计算机数据的突发性,一个用户对已经分配到的子信道的利用率不高,因此普遍采用改进过的时分复用——统计时分多路复用(STDM),他不会采用固定的时隙,而是按需动态分配时隙,只有需要传输数据的时候才会分配到时间片。

3.波分多路复用(WDM)

波分多路复用是指光的频分多路复用,他在一根光纤中传输不同长度的波长的光信号,从而达到多路复用的效果。由于光的频率各不相同,各路光信号各不干扰,最后再用波长分解复用器将其分离开来。最常见的就是光纤入户,ISP的一条光纤传输多个信号,到达小区后小区的光调制解调器中被分离出来,然后转化为电信号后传输到各个终端。

4.码分多路复用(CDM)

码分多路复用是采用不同编码来区分各路原始信号的一种方式,它既共用信道的频率,又共享时间。同样一条A到B的路,时分复用是将运黄豆和运芝麻的车前后分批次发车;频分复用是将其中一条车道画给运芝麻,另外一条画给运黄豆;码分复用则是芝麻黄豆一起运,到了终点之后再用筛子把他们分离。

实际上更常用的叫法称之为码分多址(CDMA),其原理是每个比特时间再划分m个短的时间槽,称之为码片(Chip),m通常为64或128。每个站点会被指派一个唯一的码片序列,发送1的时候会发送该站点的码片序列,发送0的时候会发送码片序列的反码。当多个站点同时发送时,各路数据在信道中线性相加,为了可以分离出码片信号,要求各个站点的码片相互正交(码片可以看作是向量)。

比如,信道A的码片为00011011,向量形式为(-1 -1 -1 +1 +1 -1 +1 +1),那么A站发送这个序列表示1,发送该序列的反码11100100表示0。令向量S为A站的码片向量,T为B站的码片向量。那么两个站的码片向量需要正交,也就是向量S和T的规格化内积为0。
若T为(-1 -1 +1 -1 +1 +1 +1 -1)时,S和T正交。如果S都要发送1,T要发送0那么他们将会在公共信道上叠加,就是线性相加,得到S-T=(0 0 -2 2 0 -2 0 2)
到达站点C后,C负责讲他们分离,如果需要得到站点A的数据,那么只需 S ⋅ ( S − T ) = 1 S\cdot (S-T)=1 S(ST)=1,得到站点B的数据同理

例题和讲解如下:

https://www.bilibili.com/video/BV1G54y197qV/?spm_id_from=333.337.search-card.all.click&vd_source=be108bc9768bd84d1dc7d4473d6474d3

3.5.2 随机访问介质访问控制

在网络中,如果两个用户同时向对方发送消息,会导致帧冲突,又称碰撞。两个电路信号冲突后导致冲突双方都发送失败,因此因此用户需要按照一定规则反复重传他的帧,直到该帧无碰撞地通过信道。这个规则就是随机访问介质访问控制协议。常用的协议有ALOHA协议、CSMA/CD协议、CSMA/CA协议。其核心思想是:胜利者通过争用获得信道,从而获得信息的发送权。因此这又被称为争用型协议

与介质访问控制采用信道划分的机制相比,采用随机访问控制机制,那么个节点之间的通信就可以既不共享时间也不共享空间,。所以随机介质访问控制实质上是一种将广播信道转化为点到点信道的行为。

1. ALOHA协议
  • 纯ALOHA协议:纯ALOHA协议的基本思想是当网络中任何一个节点需要发送信息的时候,可以不进行检测直接发送信息。如果一段时间内没有收到确认则视为发生了碰撞。但是碰撞后不能立即重传,因为这样子会造成再次碰撞,因此纯ALOHA协议会让各个站点随机等待一段时间再进行重传。
  • 时隙ALOHA协议:时隙ALOHA会将所有各站点在时间上同步起来,并将时间划分为一段段等长的时隙(Slot),规定只能在每一个时隙刚开始的时候传递一个帧。这样就避免了用户发送数据的随机性,减少了产生冲突的可能性并且提高了信道的利用率。但是各个站点之间仍没有同步措施,也就是各个站点只会在约定好发送数据的间隔,一个站点在某时隙开始时发送数据,它是不知道该时隙是否有别的站也在发送数据,因此依然会有冲突。
2. CSMA协议

ALOHA协议有着很高的碰撞率,哪怕是时隙ALOHA协议,每个站点都是随心所欲地在划好的时隙上发送信息的。如果每个信道都在发送之前先侦听一下信道是否空闲,就可以大大降低碰撞概率,提高信道的利用率,这就是**载波侦听多路访问(CSMA)**的基本思想。

  • 1-坚持CSMA:

    该协议的基本思想是:一个节点要发送数据时,首先侦听信道,如果信道空闲则直接发送;如果信道忙,则继续等待,并且持续侦听直到信道空闲;如果发生冲突,则等待一段时间后重新开始侦听信道。故协议名中的“1-坚持”的意思是监听到信道空闲时发送数据的概率为1(在有数据要发送的情况下)。

    传播时延对1-坚持CSMA协议影响较大,假设A开始发送数据并且数据未到达B时,B会误以为信道空闲, 于是立刻发送数据,这就会导致冲突。哪怕不考虑时延该协议也会导致冲突,比如A在发送数据,准备发送信息的B和C侦测到信道忙则继续等待,A发送完数据后B和C侦测到信道空闲,立刻发送信息,则会导致冲突。

  • 非坚持CSMA

    该协议的基本思想为:一个节点发送数据时会首先侦听信道是否空闲,如果空闲则发送数据;如果信道忙则等待一个随机时间后重复上述过程。这种做法降低了多个节点等待信道空闲后同时发送信息的冲突的概率,但是增加了数据平均时延。可见,提高信道利用率会以增加数据在网络中的延迟时间为代价。

  • p-坚持CSMA

    该协议用于分时信道,其基本思想为:一个节点要发送数据首先侦听信道,如果忙则等待并持续监听,直到信道空闲;如果信道空闲,则有p概率立刻发送数据,有1-p概率将该发送任务推迟到下一个时隙;如果下一个时隙仍空闲,则又有p概率在该时隙发送,有1-p的概率推迟到再下一个时隙,以此类推。该思想主要是降低1-坚持CSMA中多个节点同时发送数据导致冲突的概率;采用坚持侦听的目的是克服非坚持CSMA中由于随机等待造成的延迟时间较长的缺点。因此该协议为非坚持CSMA和1-坚持CSMA的折中方案。

3. CSMA/CD协议

载波监听多路访问/碰撞控制(CSMA/CD)协议是是CSMA协议的改进方案,适用于总线型网络或半双工网络环境。CSMA/CD的工作流程概括为**“先听后发,边听边发,冲突停发,随机重发”**

CSMA/CD协议不能同时进行发送和接收,因此采用CSMA/CD协议的以太网只能进行半双工通信。假设t为单程传播时延,则A站在发送数据的2t时间之内就可以知道是否发生碰撞。因此2t时间被称为争用期,又称为冲突窗口碰撞窗口。每个站在发送数据后的该段时间内都存在碰撞的可能,之后经过了争用期还未检测到碰撞时才能确信这次发送没有发生碰撞。

为了确保发送站在发送数据的同时能够检测到可能存在的碰撞,需要,帧的传输时延要至少两倍于信号在总线中的传播时延。所以在CSMA/CD总线网中所有数据帧需要大于一个最小帧长度。任何站点收到比最小帧长度还要小的帧则直接丢弃,因为这个帧一定是源站监测到冲突后被停发了的。以太网规定的争用期长度为51.2微秒

最 小 帧 长 = 总 线 传 播 时 延 x 数 据 传 输 速 率 x 2 最小帧长 = 总线传播时延x数据传输速率x2 =线xx2

一旦发生冲突,该协议采用二进制指数退避算法来避免再次冲突。其算法如下:

  1. 确定基本退避时间,一般等于争用期长度
  2. 定义参数k,当重传次数小于10的时候,k等于重传次数;重传次数大于10的时候,k恒为10
  3. 从离散的整数集合[0,1,…,2k-1]中随机需拿出一个数r,重传所需的退避时间就是r倍的基本退避时间
  4. 当重传次数达到10次以及以上的时候,随机数区间将会固定为[0…1023]当重传次数达到16次仍未成功时,则视为网络拥挤,帧无法发出,抛弃帧并向上层报错。

使用二进制指数退避算法可以是重传需要推迟的平均时间随着重传次数的增大而增大,因而减低了发生碰撞的概率,有利于系统稳定。

4. CSMA/CA协议

在无线环境下,CSMA/CD协议不适用,主要原因有:

  • 接收信号的强度往往小于发送信号的强度,而且无限介质上信号强度的动态变化范围很大,因此实现碰撞检测需要较高的硬件实现代价
  • 在无线通信中,并不是所有站点都能够听见对方,也就是存在隐蔽站问题

为此802.11标准定义了广泛用于无线局域网的CSMA/CA协议,其中CA为碰撞避免而非原来的碰撞检测。碰撞避免不能完全避免碰撞,而是指协议设计要尽量避免碰撞。由于无线信道通信质量远不如有线信道,因此802.11使用**链路层确认/重传(ARQ)**方案,站点需要收到接收者的确认帧后,才可以发送下一帧

为了避免碰撞,802.11规定站发送完之后,必须再等待很短一段时间(用于监听)才能发送下一帧。这段时间称之为帧间间隔(IFS),帧间间隔取决于该站发送的帧的类型,802.11规定了3种IFS:

  • SIFS:短SIFS,用于分隔属于一次对话的各个帧。使用SIFS的帧类型有ACK帧,CTS帧,分片后的数据帧以及所有回答AP探寻的帧。
  • PIFS:点协调IFS,中等长的IFS,在PCF操作中使用。
  • DIFS:分布式协调IFS,最长的IFS,用于异步帧竞争访问的时延,比如用RTS预约信道前的等待

CSMA/CA的算法归纳如下:

1)如果站点最初有数据要发送(而不是发送失败后的重传),而且检测到信道空闲,则在等待了DIFS后,发送整个数据帧

2)否则,站点执行CSMA/CA退避算法,选取一个随机回退时间。一旦检测到信道忙,则退避计时器不变,只要信道空闲,退避计时器就开始倒计时。

3)当退避计时器倒计时结束后,站点发送整个帧并且等待确认

4)发送站若收到确认,就知道已发送的帧被接受了。如果要继续发送则从2)开始

如果发送站在规定时间内没有收到ACK确认帧,就必须重传该帧,直到收到确认。

处理隐蔽站问题:RTS和CTS

假设站A和站B都在AP的覆盖范围内,但是A和B相距较远,彼此都听不到对方的广播,那么在A和B都检测到信道空闲的时候,都向AP发送信息,从而导致碰撞。为了解决该问题,802.11允许发送站对信道进行预约。源站在发送数据帧之前要广播一个很短的请求发送控制帧(RTS)该帧包含有本次通信所需维持的时间,能够被其范围内包括AP在内的站点听到。如果信道空闲,则AP广播一个允许发送CTS帧,它包括这次通信所需的持续时间(从RTS中复制的),该帧也能够被AP范围内包括A和B在内的站点听到。B和其他站带你听到CTS后,会在CTS指明的时间能一直发送。也就是说,CTS有两个作用:1.给请求源明确的发送许可2.告诉其他站在你在预约期内不要发送。

使用RTS和CTS会导致网络通信效率下降,但是这两种帧都很短,和帧冲突导致的重传相比,他们对网络通信效率的影响微乎其微。

CSMA/CD和CSMA/CA的区别
  • CSMA/CD可以检测冲突,但是无法避免;CSMA/CA发送数据的同时不能检测信道冲突,该协议只能尽量避免碰撞。
  • 传输介质不同。CSMA/CD使用的是总线型以太网;CDMA/CA使用的是802.11无线网
  • 检测方式不同。CSMA/CD通过电缆中的电压变化来检测,而CSMA/CA使用的是能量检查/载波检测。

3.5.3 轮询访问介质控制:令牌传送协议

在轮询访问中,用户不能随机发送信息,而是要通过一个集中控制的监控站,以循环的方式轮询每一个节点,再决定信道的分配。当某节点使用信道时,其他信道不可以使用信道。典型的轮询访问介质控制时令牌传递协议

令牌传递协议中,一个**令牌(Token)**沿着环形总线在各节点计算机中依次传递。令牌是一个特殊的MAC控制帧,它本身不包含信息,仅仅是控制信道使用,可以确保一个时刻仅有一个站点独占信道。环上的站带你想要传递信息必须等待令牌

该种结构适合负载十分高的广播信道,也就是多个节点同一时刻发送数据概率很高的信道。这种信道如果采用上述的随机介质访问控制,那么发送冲突的概率将会非常大。轮询访问控制不共享时间和空间,只是在随机介质访问控制的基础上限制了能够发送数据的节点仅有一个。

3.6 局域网

局域网的基本概念和体系结构

局域网(LAN)指的是在一个较小的地理范围(比如一座学校内),将各种计算机、外部设备和数据库系统通过连接介质相联系起来,组成资源和信息共享的计算机互联网络。局域网的特性主要由三个元素决定:拓扑结构、传输介质、介质访问控制方式,其中最重要的是介质访问控制方式。IEEE 802对于局域网的定义之对应于ISO参考模型的物理层和数据链路层
特点:

  • 所有站点共享较高的带宽
  • 较低的时延和误码率
  • 各个站点都是平等关系而非主从关系
  • 采用广播信道而非点对点

TIPS:广播

主要结构:星型拓扑、树形拓扑、总线型拓扑(日常使用的拓扑,可靠性高,信道利用率高)、环形拓扑
介质访问控制:CSMA/CD(总线型、树形)、令牌总线(总线型、树形)、令牌环(环形)

分类:

  • 以太网:最广泛。使用CSMA/CD,逻辑拓扑为总线型,物理拓扑为星型
  • 令牌环网
  • ATM网
  • FDDI网
  • 无线局域网(WLAN)

3.6.2 以太网和IEEE 802.3

IEEE 802.3一种局域网和城域网的标准。IEEE 802又将数据链路层划分为两个子层,分别是LLC逻辑链路控制子层和MAC介质访问控制子层。LLC负责识别网络层协议然后对他们进行封装,并且直接为网络层提供服务,建立和释放数据链路层逻辑连接,差错控制,加序号;MAC子层负责数据帧的封装和拆卸,比特差错检测,寻址,竞争处理,MAC子层屏蔽了不同物理链路的差异性。以太网又称为802.3局域网

以太网提供的是无连接的无差错接收(没有链接机制,但是有纠错机制)

1.以太网的传输介质与网卡

以太网常用四种传输介质:粗缆、细缆、双绞线和光纤。

计算机与外界局域网的连接是通过主机箱内的一块网络接口板(又称网络适配器,简称网卡)实现的。网卡能够实现与局域网传输介质之间的物理连接和电信号匹配,还涉及到帧的发送与接收,帧的封装与拆封、介质访问控制、数据的编码与解码以及缓存。

全世界的每一块网卡在出厂时都有一个唯一的如身份证号一样的唯一代码,称为介质访问控制地址(MAC)

10BASE-T以太网:传送基带信号的双绞线以太网T表示双绞线,10表示10Mb/s

2.以太网的MAC帧

每一块网卡中的MAC地址又称为物理地址。MAC地址长6字节,一般由12个16进制数表示,其中的高24位为厂商代码,低24位为厂商自行分配的网卡序列号。由于在网络总线上使用的是广播通信,因此网卡从网络上每接收到一个MAC帧,首先检查MAC帧中的MAC地址。如果是发往本站的帧,则会收下,否则就丢弃。

MAC帧格式如下:
在这里插入图片描述

前导码:使得接收端和发送端时钟同步。前导码又可以分为两部分:前7个字节是前同步码,用于快速实现MAC帧的比特同步;剩余1个字节为帧开始定界符,表示后面信息就是MAC帧。

MAC帧不需要帧结束符,因为以太网传输帧的时候各帧之间会有一定的间隙,接收端只需要找到开始定界符,那么后面连续到达的比特流就是该MAC帧

地址:通常使用6字节(48bit)地址

类型:2字节,指出数据域中携带的数据应该交给哪个协议实体处理。

数据:46-1500字节,包含高层协议的消息。

填充:0-46字节。当帧太短的时候进行填充,使之满足最小长度

校验码FCS:4字节,校验范围从目的地址段到数据段末尾。会校验MAC帧的数据部分、目的地址、源地址和类型地址。

3.高速以太网

速率达到或超过100Mb/s的以太网称为高速以太网,称为100BASE-T,使用交换机作为交换,可以使用半双工或全双工,半双工时使用CSMA/CD,工作在全双工情况下不会有冲突。吉比特以太网同理
10吉比特以太网不使用铜线只使用光纤,而光纤是全双工的,因此不使用CSMA/CD

3.6.3 IEEE 802.11 无线局域网

1.无线局域网的组成

无线局域网可以分为两大类:有固定基础设施的无限局域网和无固定基础设施的无线局域网
WIFI只是WLAN的一种,WLAN可以覆盖数千米,包括蜂窝数据结构也是WLAN。

(1)有固定基础设施无线局域网

IEEE的802.11协议标准是面向有固定设施无线局域网的,使用该协议的局域网又称为WiFI,使用星型拓扑结构,其中心称为接入点(AP),在MAC层使用CSMA/CA协议。

802.11标准规定无线局域网的最小构件为基本服务集合(BSS),一个BSS包括一个接入点和若干个移动站,各站点在本BSS内通信和BSS外的通信都需要经过本BSS的AP。一个BSS可以是孤立的,也可以 通过AP连接到一个分配系统(DS),然后再连接到另外一个BSS,就构成了一个扩展服务集合(ESS)。ESS可以通过一种叫做门户的设备为无线用户提供有线以太网连接接入。我们曾经存在的数据漫游费就是因为跨BSS访问导致的。

(2)无固定基础设施移动自组网络

无固定基础设施移动自组网络又称为自组网络。自组网络没有接入点,而是由一些平等状态的移动站相互通信组成的临时网络。各个节点地位平等,中间节点都具有转发功能,因此可以作为路由器。

2.802.11局域网的MAC帧

MAC帧格式

802.11有三种帧:数据帧、控制帧和管理帧

数据帧由以下三部分组成:

  1. MAC首部,共30字节,帧的复杂性都在首部
  2. 帧主体
  3. 帧检验序列

3.6.4 VLAN基本概念和原理

一个以太网是一个广播域,如果一个以太网中有太多的计算机会导致:

  • 以太网中有大量广播帧
  • 一个单位不同部门使用一个局域网,对信息保密和安全不利
  • 跨以太网之间的信息共享不方便

虚拟局域网能够把一个较大的局域网划分为一个个较小的逻辑上的VLAN,而每个VLAN是一个较小的广播域。802.3ac标准定义了支持VLAN格式的扩展,他在以太网帧中插入一个四字节的标识符,称为VLAN标签,用于指明了发送该帧的计算机属于哪个虚拟局域网。在该标签内,前两个字节用于标记表示该帧为一个802.1Q帧,后2字节中,前四个位闲置,后12位用于指示从属的VALN的VID。

TIPS:虚拟局域网可以跨局域网组建的

优点:有效共享了网络资源(跨网组建VLAN)、简化网络管理、提高网络安全性

划分方式:基于交换机端口划分、基于网卡地址划分、基于网络层地址划分

3.7 广域网

在这里插入图片描述

PPP协议

点对点协议,是使用串行线路通信的面向字节的协议,只支持全双工链路。设计的目的是建立点对点链接发送数据,是一种尽可能简单的服务

PPP协议需要满足的要求

在这里插入图片描述
不需要负责纠错、流量控制、帧排序,不需要支持多点线路

PPP协议的三个组成

在这里插入图片描述

PPP帧的组成部分

在这里插入图片描述

HDLC协议

高级数据链路控制协议,是面向比特的数据链路层协议,使用9比特填充实现透明传输
在这里插入图片描述
在这里插入图片描述
PPP和HDLC异同
相同:

  • 都只支持全双工链路
  • 都可以实现透明传输
  • 都可以检错但是不进行纠错
    区别:
  • PPP面向字节,HDLC面向比特
  • PPP协议帧有两个Byte的协议字段
  • HDLC有序号和确认机制,但是PPP没有
  • PPP不可靠,HDLC可靠
    实际应用中HDLC的可靠传输的功能都交给了TCP来实现了,而不需要HDLC再进行一次排序和可靠传输,因此平时使用PPP更多,因为PPP更简单,时延更短,传输速率更快

广域网和局域网的异同

3.6 数据链路层设备

集线器连接的主机和集线器为一个冲突域,一个冲突域中每次只能有一台主机传输信息。

网桥

根据MAC帧目的地址对帧进行转发和过滤。网桥会选择转发,而不像集线器一样广播。
在这里插入图片描述

在这里插入图片描述
优点:

  1. 过滤通信量,增大吞吐量
  2. 扩大了物理范围
  3. 提高了可靠性
  4. 可以互联不同物理层、不同MAC子层和不同速率的以太网

透明网桥:以太网的站点不知道所发送的帧会经过哪几个网桥,是一种即插即用的网桥,使用自学习算法来获知哪个主机对应哪个接口,其网桥内部有一个转发表。
在这里插入图片描述

原路由网桥:在发送帧的时候,将详细的最佳路由信息放在帧首部。源站会以广播的方式向目的站发送一个发现帧,从而找到最佳路由信息

多接口网桥——以太网交换机

在这里插入图片描述
以太网交换机独占传输媒体带宽,比如其中一个交换机的带宽为10Mb/s,那么连接在交换机上的设备都是10Mb/s
直通式交换机:检查目的地址就立马转发。延迟小,但是可靠性低,无法支持具有不同速率的端口的交换
存储转发式交换机:将帧放入高速缓存,并且检查是否正确,延迟大,可靠性高,支持具有不同速率的端口的交换,较为常用
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值