1、功能概述

  在研究链路层时,可以看成两个计算机的链路层直接通信,把物理层看成透明的。

  链路层有以下几个基本概念:

  结点:主机、路由器。

  链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路.。

  数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。

  :链路层的协议数据单元,封装网络层数据报。

  数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。

  数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

  功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。有连接一定有确认!

  功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。

  功能三:封装成帧。

  功能四:差错控制(帧错/位错)。

  功能五:流量控制(限制发送方哦~)。

2、封装成帧

  透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。

  当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

  封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

  首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

  组帧的四种方法:1.字符计数法,2.字符(节)填充法,3.零比特填充法,4.违规编码法。

2.1 字符计数法

  帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。

  痛点:鸡蛋装在一个篮子里了。当某个字符计数出现错误,会导致后面的数据全部出错。

2.2 字符填充法

  在帧的前后增加开始和结束字符。

  由于SOH和EOT都不在ASCII码表里表示字符,因此,当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。

  当传送的帧是由非ASCll码的文本文件组成时(二进制代码的程序或图像等)。就要采用字符填充方法实现透明传输。这是因为可能出现和SOH或EOT相同的二进制序列,如下图所示。

  开头的SOH和末尾的EOT才是真正的开始和结束标记,中间的SOH和EOT都是刚好和标记相同的二进制序列,为了解决这个问题,就采用字符填充法,在冲突的二进制序列前填充转义字符,如下图所示。

  接收端接收到帧后,再把ESC去掉,还原成原来的帧。

2.3 零比特填充法

  使用011111110作为帧的开始,即开头和末尾是0,中间全身1的字节。

  帧的数据部分,肯定会有概率出现连续6个1的二进制序列,因此,采用“5 1 1 0”操作:

  1、在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0,这样就使得数据不会出现连续的6个1;

  2、在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。

  这种方法保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。

2.4 违规编码法

  首先回顾一下曼彻斯特编码。

  一个二进制位用两个码元表示,在这种情况下,对于一个二进制位,不会出现连续的“高-高”和“低-低”,因此,可以用“高-高”,“低-低”来定界帧的起始和终止。

  由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果〉及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充违规编码法

3、差错控制

3.1 差错的由来

  概括来说,传输中的差错都是由于噪声引起的。

  全局性:由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。

  解决办法:提高信噪比来减少或避免干扰。(对传感器下手)

  局部性:外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。

  解决办法:通常利用编码技术来解决。

  链路层为网络层提供服务:无确认无连接服务,有确认无连接服务,有确认面向连接服务。

3.2 差错控制的作用和种类


  如果链路层没有差错控制,在第一个网络设备出错后,会把错误一直往下传递,最后接收端收到后发现错了又直接扔掉,极大的浪费网络资源。在链路层的差错控制下,可以在发现错误时直接做出反应,不会让错误一直向下传递。

  差错控制最简单的方式是冗余编码:在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。

  解决比特错的差错控制有两种:检错编码、纠错编码。

  需要注意的是:数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。

3.3 比特错的差错控制

3.3.1 检错编码

奇偶校验码

  对于 n-1 位长度的二进制数据,增加 1 位校验元。

  例题:如果一个字符S的ASCI编码从低到高依次为1100101,采用奇校验,在下述收到的传输后字符中,哪种错误不能检测?

  A.11000011  B.11001010  C.11001100  D.11010011

  解析:采用的是奇校验,源数据有4个1,加上校验位就是5个1。因此,只要不是5个1的,一定是错误的,如果是5个1,有50%几率错误,不能检测是不是错误。选择D。

  奇偶校验码特点:只能检查出奇数个比特错误,检错能力为50%。即,可以判断是不是错,但不能判断是不是对。

CRC循环冗余码

  大白话原理如下:

  最终发送的数据:要发送的数据 + 帧检验序列FCS

  当然,计算冗余码肯定不是单纯的相除,计算过程如下:

  1、加0,假设生成多项式G(x)的阶为r,则加r个o。

  2、模2,除法数据加0后除以多项式,余数为冗余码/FCS/CRC检验码的比特序列。

  例题:要发送的数据是1101011011,采用CRC校验,生成多项式是10011,那么最终发送的数据应该是?

  解题过程:

  生成多项式是10011,则G(x) = 1x4 + 0x3 + 0x2 + 1x1 + 1x0,阶r = 4,加4个0,数据变为:11010110110000

  接着使用模2除法:

  最后数据拼接上余数就是最终结果:11010110111110

  接收端收到数据帧后进行检错:

  把收到的每一个帧都除以同样的除数,然后检查得到的余数R。

  1、余数为0,判定这个帧没有差错,接受。

  2、余数为不为0,判定这个帧有差错(无法确定到位),丢弃。

  FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。

  对于上面的例子来说,就是用11010110111110除以10011。

  在数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生羞错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。“凡是接收端数据链路层接收的帧均无差错”。

  可靠传输:数据链路层发送端发送什么,接收端就收到什么。

  链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。

3.3.2 纠错编码

海明码

  海明码:发现双比特错,纠正单比特错。

  工作原理:动一发而牵全身。

  1、确定校验码位数r

  海明不等式:2r ≥ k + r +1,其中,r是冗余信息位,k是信息位。

  例如:要发送的数据为 D = 101101,此时信息位 k = 6,带入海明不等式求得最小的 r 为4。

  因此,对于 D 来说,校验码有 4 位。

  2、确定校验码和数据的位置

  设 4 位校验码分别为 P1、P2、P3、P4;数据从左到右为 D1、D2、…、D6

  校验码放在 2 的次方的位置,即 P1 放在 …01 位, P2 放在 …10 位, P3 放在 …100 位, P3 放在 …1000 位。数据依次填入空袭中。

  3、求出校验码的值

  P1 放在 …01 位,于是把 D 中右到左第1位为1的进行异或:P1 ⊕ D1 ⊕ D2 ⊕ D4 ⊕ D5 = 0,解得 P1 = 0;

  P2 放在 …10 位,于是把 D 中右到左第2位为1的进行异或:P2 ⊕ D1 ⊕ D3 ⊕ D4 ⊕ D6 = 0,解得 P2 = 0;

  P3 放在 …100 位,于是把 D 中右到左第3位为1的进行异或:P3 ⊕ D2 ⊕ D3 ⊕ D4 = 0,解得 P3 = 0;

  P4 放在 …1000 位,于是把 D 中右到左第4位为1的进行异或:P4 ⊕ D5 ⊕ D6 = 0,解得 P4 = 1;

  因此,海明码为:0010011101。

  4、检错并纠错

  假设发过去的数据第五位出错了,接收方收到的数据为:0010111101。

  由于校验码放在 2 的整数次方位置上,因此可以直接知道哪些是校验位,那些是信息位。接收方令所有要校验的位异或运算:

  P1 ⊕ D1 ⊕ D2 ⊕ D4 ⊕ D5 = 1

  P2 ⊕ D1 ⊕ D3 ⊕ D4 ⊕ D6 = 0

  P3 ⊕ D2 ⊕ D3 ⊕ D4 = 1

  P4 ⊕ D5 ⊕ D6 = 0

  再对异或结果从下到上排成二进制:0101,转成十进制是 5 ,因此可以知道是第 5 位出错了,发现第 5 位是 1,改为 0 即可纠错。

  纠正后数据为:0010011101。把校验码去掉,结果为:101101。

4、流量控制

4.1 流量控制的作用和种类

  较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。

  数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。

  数据链路层流量控制手段:接收方收不下就不回复确认。

  传输层流量控制手段:接收端给发送端一个窗口公告。

  流量控制的方法有:停止等待协议、滑动窗口协议。其中,滑动窗口协议有后退N帧协议(GBN)和选择重传协议(SR)

4.2 停止-等待协议

  丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。

  除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制,选择停止-等待协议。

  虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。

  因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。
“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。

4.2.1 无差错的情况

4.2.2 有差错的情况

数据帧丢失或检测到帧出错

ACK丢失

ACK迟到

4.2.3 性能分析

  停止-等待协议的时序图如下所示。


  通过时序图可以看出,信道利用率太低。

  发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。

  信道吞吐量 = 信道利用率 × 发送发的发送速率

4.3 滑动窗口协议

4.3.1 后退N帧协议(GBN)

  发送窗口:发送方维持一组连续的允许发送的帧的序号。

  接收窗口:接收方维持一组连续的允许接收帧的序号。

1. GBN发送方必须响应的三件事

  1、上层的调用:上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。

  2、收到了一个ACK:GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。

  3、超时事件:协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有己发送但未被确认的帧。

2. GBN接收方要做的事

  1、如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。

  2、其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息: expectedseqnum(下一个按序接收的帧序号)。

3. 运行中的GBN

4. 滑动窗口的长度

  若采用n个比特对帧编号,那么发送窗口的尺寸WT应满足: 1 ≤ WT ≤ 2n-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。

5. GBN总结

  1、累积确认(偶尔捎带确认);

  2、接收方只按顺序接收帧,不按序无情丢弃;

  3、确认序列号最大的、按序到达的帧;

  4、发送窗口最大为 2n-1,接收窗口大小为1。

6. 性能分析

  优点:因连续发送数据帧而提高了信道利用率。

  缺点:在重传时必须把原来已经正确传送的数据帧重传,传送效率降低。

4.3.2 选择重传协议(SR)

  GBN协议的弊端:累计确认导致的批量重传。

  解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。

  选择重传协议的示意图如下:

1. SR发送方必须相应的三件事

  1、上层的调用:从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。

  2、收到了一个ACK:如果收到ACK,加入该帧序号在窗口内,则sR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。

  3、超时事件:每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。

2. SR接收方要做的事

  SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。

  如果收到了窗口序号外(小于窗口下界)的帧,就返回一个ACK。其他情况,就忽略该帧。

3. 运行中的SR

4. 滑动窗口长度

  发送窗口最好等于接受窗口,大了会溢出,小了没意义。

  WTMAX = WRMAX = 2n-1,其中,n 表示用于标编号的比特个数。如编号为 1 2 3 4,总共 4 个,可以用两个比特来表示,即 00、01、10、11,因此 n = 2。

5. SR总结

  1、对数据帧逐一确认。收一个确认一个

  2、只重传出错帧

  3、接收方有缓存

5、介质访问控制

5.1 概述

  传输数据使用的两种链路:点对点链路、广播式链路。

  点对点链路:两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网。

  广播式链路:所有主机共享通信介质。应用:期的总线以太网、无线局域网,常用于局域网。典型拓扑结构:总线型、星型(逻辑总线型)

  介质访问控制:采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。

  信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。

5.2 静态划分信道

5.2.1 频分多路复用 FDM

  用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。

  优点:充分利用传输介质带宽,系统效率较高;由于技术比较成熟,实现也比较容易。

5.2.2 时分多路复用 TDM

  将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。

  频分复用类似于“并行”,时分复用类似于“并发”。

  改进的时分复用:统计时分复用STDM。

  每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,一个STDM帧满了就发出。STDM帧不是固定分配时隙,而是按需动态分配时隙。

5.2.3 波分多路复用 WDM

  波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。

5.2.4 码分多路复用 CDM

  码分多址(CDMA)是码分复用的一种方式。

  1个比特分为多个码片/芯片(chip),每一个站点被指定一个唯一的m位的芯片序列。

  发送1时,站点发送芯片序列,发送0时,发送芯片序列反码(通常把0写成-1).

  多个站点同时发送数据时,要求各个站点芯片序列相互正交。

  合并:各路数据在信道中被线性相加。

  分离:合并的数据和源站规格化内积。

  下面用一个例子来解释上面的描述。

  假设A站点1的芯片序列为(+1 -1 -1 +1 +1 +1 +1 -1),则芯片序列反码为(-1 +1 +1 -1 -1 -1 -1 +1)

  假设B站点1的芯片序列为(+1 -1 +1 +1 -1 +1 +1 +1),则芯片序列反码为(-1 +1 -1 -1 +1 -1 -1 -1)

  现在A站点和B站点都要发送数据,根据上面的要求,各个站点芯片序列相互正交。

  A的10转成芯片序列为(+1 -1 -1 +1 +1 +1 +1 -1 -1 +1 +1 -1 -1 -1 -1 +1);

  B的01转成芯片序列为(+1 -1 +1 +1 -1 +1 +1 +1 -1 +1 -1 -1 +1 -1 -1 -1);

  A和B对应序列位相乘再相加:(+1)×(+1)+(-1)×(-1)…(+1)×(-1),如果结果为0,说明A和B的数据相互正交,就可以一起发出去。如果不等于0,则不正交,不可以一起发出去。

5.3 动态分配信道

  动态分配信道的特点是信道并非在用户通信时固定分配给用户。

  其中,随机访问介质访问控制中,所有用户可以随时发送消息,发送信息时占用全部带宽,因此,是一种会冲突的协议。

5.3.1 ALOHA协议

  纯ALOHA协议思想:不监听信道,不按时间槽发送,随机重发。想发就发。

  如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。发送方超时后等一随机时间再重传。

  时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。控制想发就发的随意性。

  纯ALOHA比时隙ALOHA吞吐量更低,效率更低。

  纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。

5.3.2 CSMA协议

  CSMA协议的全称是:载波监听多路访问协议(Carrier Sense Multiple Access)。

  CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。

  当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。

  MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。

  CSMA协议的思想:发送帧之前,监听信道。

1-坚持CSMA

  坚持指的是对于监听信道忙之后的坚持。

  1-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程

  优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。

  缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。

非坚持CSMA

  非坚持指的是对于监听信道忙之后就不继续监听。

  非坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。

  优点:采用随机的重发延迟时间可以减少冲突发生的可能性。

  缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。

p-坚持CSMA

  p-坚持指的是对于监听信道空闲的处理。

  p-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。忙则等待一个随机的时间之后再进行监听。

  优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。

  缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。

三种CSMA对比总结

1-坚持CSMA 非坚持CSMA p-坚持CSMA
信道空闲 马上发 马上发 p概率马上发,1-p概率等到下一个时隙再发送
信道忙 继续坚持监听 放弃监听,等一个随机时间再监听 放弃监听,等一个随机时间再监听

5.3.3 CSMA/CD协议

  载波监听多点接入/碰撞检测CSMA/CD (carrier sense multiple access with collision detection)

  CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。

  MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。.

  CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。

  设一个站点A到站点B的时延为t,只要经过2t时间没有检测到碰撞,就能肯定这次发送不会发生碰撞。

  发生碰撞后,采用阶段二进制指数规避算法进行重传:

  1、确定基本退避(推迟)时间为争用期2t。

  2、定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10。

  3、从离散的整数集合[0,1,2-1]中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间,即2r t 。

  4、当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。

  第一次重传,k=1,r从{0,1}选;

  重传推迟时间为0或2r,在这两个时间中随机选一个;

  若再次碰撞,则在第二次重传时,k=2,r从{0,1,2,3}选;重传推迟时间为0或2r或4r或6t,在这四个时间中随机选一个;

  若再次碰撞,则第三次重传时,k=3,r从{0,1,2,3,4,5,6,7}选…

  若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。

  最小帧长问题

  帧的传输时延至少要两倍于信号在总线中的传播时延。

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

  以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。

5.3.4 CSMA/CA协议

  载波监听多点接入/碰撞避免CSMA/CA (carrier sense multiple access with collision avoidance)

  无线局域网无法做到360°全面碰撞检测,当A和C都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会导致冲突.

  工作原理

  发送数据前,先检测信道是否空闲。

  空闲则发出RTS (request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。

  接收端收到RTS后,将响应CTS (clear to send)。

  发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。

  接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。

  发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。

  CSMA\CD与CSMA\CA异同

  相同点:

  CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入。

  不同点:

  1.传输介质不同:CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】。

  ⒉.载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测〈ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。

  3.CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。

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

6.1 局域网的基本概念

  局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。

  特点1:覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。

  特点2:使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)。

  特点3:通信延迟时间短,误码率低,可靠性较高。

  特点4:各站为平等关系,共享传输信道。

  特点5:多采用分布式控制和广播式通信,能进行广播和组播。

  决定局域网的主要要素为:网络拓扑,传输介质与介质访问控制方法。

  网络拓扑

  传输介质

  有线局域网常用介质:双绞线、同轴电缆、光纤。

  无线局域网常用介质:电磁波。

  介质访问控制方法

  1、CSMA/CD常用于总线型局域网,也用于树型网络。

  ⒉、令牌总线常用于总线型局域网,也用于树型网络
它是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。

  3、令牌环用于环形局域网,如令牌环网。

6.2 局域网的分类

  以太网:以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps) 、千兆以太网(1000 Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD。

  令牌环网:物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。已是“明日黄花”。

  FDD1网(Fiber Distribubed Data Interface):物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。

  ATM网(Asynchronous Transfer Mode):较新型的单元交换技术,使用53字节固定长度的单元进行交换。

  无线局域网(Wireless Local Area Network,WLAN):采用IEEE 802.11标准。

  IEEE 802系列标准是IEEE 8O2 LAN/MAN标准委员会制定的局域网、城域网技术标准(1980年2月成立)。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。

  IEEE 802标准所描述的局域网参考模型只对应oSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。

6.2.1 以太网

  以太网(Ethernet)指的是由xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。

  以太网在局域网各种技术中占统治性地位:

  1.造价低廉(以太网网卡不到100块);
  2.是应用最广泛的局域网技术;
  3.比令牌环网、ATM网便宜,简单;
  4.满足网络速率要求:10Mb/s~10Gb/s.

  以太网的两个标准:

  DIX Ethernet V2:第一个局域网产品(以太网)规约。

  IEEE 802.3:IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(帧格式有一丢丢改动)

  以太网提供无连接、不可靠的服务。

  无连接:发送方和接收方之间无“握手过程”。

  不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。

  以太网只实现无差错接收,不实现可靠传输。

  以太网传输介质与拓扑结构的发展

  使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议。以太网拓扑:逻辑上总线型,物理上星型。

  10BASE-T以太网

  10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。

  适配器与MAC地址

  计算机与外界有局域网的连接是通过通信适配器的。

  在局域网中,硬件地址又称为物理地址,或MAC地址。【实际上是标识符】

  MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21。

  以太网MAC帧

  最常用的MAC帧是以太网V2的格式。


  高速以太网

  速率≥10OMb/s的以太网称为高速以太网。

  100BASE-T以太网:在双绞线上传送10OMb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议支持全双工和半双工,可在全双工方式下工作而无冲突。

  吉比特以太网:在光纤或双绞线上传送1Gb/s信号。支持全双工和半双工,可在全双工方式下工作而无冲突。

  10吉比特:10吉比特以太网在光纤上传送10Gb/s信号。只支持全双工,无争用问题。

6.2.2 无线局域网

  IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。

  802.11的MAC帧头格式


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

  无固定基础设施无线局域网的自组织网络

7、广域网

  广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。

  广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。

7.1 PPP协议

  点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。只支持全双工链路

  PPP协议应满足的要求

  简单:对于链路层的帧,无需纠错,无需序号,无需流量控制;

  封装成帧:帧定界符;

  透明传输:与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充;

  多种网络层协议:封装的IP数据报可以采用多种协议;

  多种类型链路:串行/并行,同步/异步,电/光…

  差错检测:错就丢弃;

  检测连接状态:链路是否正常工作;

  最大传送单元:数据部分最大长度MTU;

  网络层地址协商:知道通信双方的网络层地址;

  数据压缩协商。

  PPP协议无需满足的要求

  纠错;

  流量控制;

  序号;

  不支持多点线路。

  PPP协议的三个组成部分

  一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。

  链路控制协议LCP:建立并维护数据链路连接。

  网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。

  PPP协议的状态图

  PPP协议的帧格式

7.2 HDLC协议

  高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的.数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现。

  采用全双工通信.

  所有帧采用CRc检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。

  HDLC的站

  1、主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等。

  2、从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制。

  3、复合站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。

  三种数据操作方式:

  1.正常响应方式
  2.异步平衡方式
  3.异步响应方式

  HDLC的帧格式

  信息帧(I)第1位为0,用来传输数据信息,或使用捎带技术对数据进行确认;

  监督帧(S)10,用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能;

  无编号帧(U) 11,用于提供对链路的建立、拆除等多种控制功能。

7.3 PPP协议和HDLC协议对比

  HDLC、PPP只支持全双工链路。

  都可以实现透明传输。

  都可以实现差错检测,但不纠正差错。

PPP协 面向字节 2B协议字段 无序号和确认机制 不可靠
HDLC协议 面向比特 没有 有编号和确认机制 可靠

8、链路层设备

8.1 物理层拓展以太网

  如果集线器出问题,整个网络都崩溃,因此采用以下形式。

8.2 链路层拓展以太网

  网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。

  网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。

  网桥优点:

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

  透明网桥:“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备(自学习)。

  源路由网桥:在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。方法:源站以广播方式向欲通信的目的站发送一个发现帧。

8.3 冲突域和广播域

  冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。

  广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。

能够隔离冲突域 能够隔离广播域
物理层设备【傻瓜】(中继器、集线器) × ×
链路层设备【路人】(网桥、交换机) ×
网络层设备【大佬】(路由器)

[计算机网络-03] 数据链路层相关推荐

  1. 【计算机网络】数据链路层 : 总结 ( 封装成帧 | 流量控制与可靠传输 | 差错控制 | 介质访问控制 | 局域网 | 广域网 | 数据链路层设备 ) ★★★

    文章目录 一.数据链路层 功能 二.封装成帧 ★ 三.流量控制 和 可靠传输 ★★ 1.停止等待协议 ★ 2.后退 N 帧 ( GBN ) 协议 ★ 3.选择重传 ( SR ) 协议 ★ 四.差错控制 ...

  2. 计算机网络:数据链路层

    计算机网络:数据链路层 数据链路层是 OSI 分层模型的第二层.该层是最复杂的层之一,具有复杂的功能和责任.数据链路层隐藏底层硬件的详细信息,并将自身表示到上层作为通信介质. 数据链路层在某种意义上直 ...

  3. 【计算机网络】数据链路层(五)—— 广域网(PPP 协议与 HDLC 协议)

    [计算机网络]数据链路层(五)-- 广域网(PPP 协议与 HDLC 协议) 一.广域网 二.PPP 协议 PPP协议应满足的要求 PPP协议的三个组成部分 PPP协议的帧格式 三.HDLC 协议 H ...

  4. 3.1.1计算机网络(数据链路层 差错控制 循环冗余码 海明码 流量控制)

    目录 数据链路层 数据链路层基本概念 数据链路层功能概述 封装成帧 透明传输 组帧的四种方法: 1.字符计数法 ​2.字符填充法 ​3.零比特填充法 4.违规编码法 差错控制 差错从何而来? 数据链路 ...

  5. 计算机网络笔记——数据链路层

    计算机网络笔记--数据链路层 3. 数据链路层 3.1 数据链路层的功能 3.2 组帧 字符计数法 字符填充的首尾界符法 比特填充的首尾标志法(零比特填充法) 物理编码违例法 3.3 差错控制 3.3 ...

  6. 计算机网络总结——数据链路层

    本篇文章是对 湖科大计算机网络微课堂 中数据链路层的笔记总结,希望对大家有所帮助. 文章目录 3.1数据链路层概述 3.2封装成帧 (1)封装成帧 (2)透明传输: 3.3差错检测 (1)奇偶校验 ( ...

  7. 【计算机网络】数据链路层(三)—— 介质访问控制

    [计算机网络]数据链路层(三)-- 介质访问控制 一.什么是介质访问控制 二.静态划分信道 (一)信道划分介质访问控制 1. 频分多路复用(FDM) 2. 时分多路复用(TDM) 3. 波分多路复用( ...

  8. 计算机网络2————数据链路层

    计算机网络2----数据链路层 文章目录 计算机网络2----数据链路层 一.链路层概述 1.链路层的概念 2.链路层任务 3.结点间链路类型 4.链路设备 二.PPP协议和HDLC协议 1.PPP协 ...

  9. 计算机网络03:数据链路层

    数据链路层 概述 链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点 数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路 数据链路层以帧为单位传输和处理数据 ...

  10. 计算机网络之数据链路层原理

    链路层数据发送模型 当网络上的两台主机进行通信的时候,链路层是如何进行数据传输的呢?以及数据链路层数据可能会遇到那些问题呢?搞清楚这些问题之前,先让我们看下面经典的数据链路层数据发送模型. 主机H1与 ...

最新文章

  1. (原)Eclipse 字体过小问题
  2. jmeter响应数据Unicode编码转换为汉字
  3. React + Canvas 像素风格取色器
  4. AD9910高速集成DDS芯片(芯片阅读笔记-串行模式篇-22个寄存器SPI通信周期控制)
  5. 互联网时代下,看租赁电商如何玩转消费金融
  6. 洛谷 P2324 [SCOI2005]骑士精神 解题报告
  7. nvidia控制面板点了没反应win7_win7系统Nvidia控制面板怎么设置?
  8. 与非CCR代码互操作
  9. php遍历文件制作删除,使用PHP遍历文件目录与清除目录中文件的实现详解
  10. Android百度SDK定位
  11. 数据库事务的4大特性与隔离级别
  12. Python、Lua和Ruby——脚本大P.K.
  13. Intel-VT 与虚拟化限制
  14. class文件如何在linux下打开_Linux下文件的三个时间属性
  15. 关于Mysql以及Sqlyog的下载以及使用记录
  16. Zigbee和WiFi的信道重叠
  17. 动态规划-分苹果:m个苹果,n个盘子的分法个数
  18. HTML超链接引用到地图,HTML超链接
  19. Spark血缘字段解析
  20. mac访达中显示隐藏的文件夹和文件

热门文章

  1. Python爬取某宝商品数据案例:100页的价格、购买人数等数据!
  2. logstash grok mysql_logstash -grok插件语法介绍
  3. SpringBoot Web项目 解析
  4. 机器人学回炉重造(4):动力学仿真(附牛顿-欧拉递归逆动力学算法matlab代码)
  5. 盘点4种常用的推荐算法
  6. Java实现 LeetCode 274 H指数
  7. 如何对CAD图纸快速测量?
  8. 京东宙斯php版本sdk不能用_一个SDK引发的“血案”
  9. 【贪心法】黑白连线问题
  10. 《NLP汉语自然语言处理原理与实践》郑捷书中代码