计算机网络数据链路层知识总结

news/2024/5/15 12:55:36/文章来源:https://blog.csdn.net/m0_74229735/article/details/136463583

物理层知识总结传送门

计算机网络物理层知识点总结-CSDN博客

功能

功能概述

一些基本概念

  • 结点:主机、路由器
  • 链路﹔网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
  • 数据链路︰网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路
  • 帧:链路层的协议数据单元,封装网络层数据报

功能概述

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

漫画解释

功能

  • 为网络层提供服务。(无确认无连接服务,有确认无连接服务,有确认面向连接服务。)
  • 链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
  • 组帧。
  • 流量控制。
  • 差错控制(帧错/位错)。

封装成帧&透明传输

封装成帧、帧定界、帧同步

  • 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
  • 首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
  • 组帧的四种方法: 1.字符计数法,2.字符(节)填充法,3.零比特填充法,4.违规编码法。

透明传输

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

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

下面来介绍这几种方法。

组帧的四种方法

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

  • 这样做有一个很大的缺陷,就是第一个数错误的话,剩下的就全部错误了。因此不经常使用。
字符填充的首尾定界法
  • 发送方在封装帧时,数据的可能有图中两种类型,传输数据时可能会出现图中所述的错误

那么我们如何去解决这种错误呢?

  • 我们可以在特殊字符(SOH、EOT、ESC)前面填充一个转义字符来区分
  • 发送方在封装帧时,进行扫描,扫描到SOH、EOT、ESC(转义字符)时在其前面添加转义字符,以区分,告诉接受方这个和特殊字符相同的字符是数据,当然这些约定由双方之间的协议完成

零比特填充的首尾标志法

操作:

1.在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。

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

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

违规编码法

可以用“高-高”,“低-低”来定界帧的起始和终止。

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

差错控制

为什么会出现差错?

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

全局性:1.由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
解决办法:提高信噪比来减少或避免干扰。(对传感器下手)

局部性⒉.外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
解决办法:通常利用编码技术来解决。

差错种类

检错编码(位错)

奇偶校验码

循环冗余码(CRC)

  • 接收端如何检错
    把收到的每一个帧都除以同样的除数,然后检查得到的余数R。

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

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

纠错编码(海明码)

  • 海明码可以发现双比特错误,纠正单比特错误
  • 它的工作过程:
确定校验码的位数r

确定校验码和数据的位置
  • 校验码放在2的几次方的位置,如20,21,2^2…

求出校验码的值
  • 首先写出数据位对应的二进制,二进制位数由数据位最后一位(在下面的例子中为10)确定。所以是4位。
  • P1的值是所有二进制最后一位为1的实际值异或为0。 如何解释?

流量控制与可靠传输机制

什么是流量控制

  • 流量控制是数据链路层的一种功能,流量控制对数据链路上的帧的发送速率进行控制,以使接收方有足够的缓冲空间来接受每个帧
  • 流量控制的基本方法是由接收方控制发送方发送数据的速率
  • 常见的流量控制方式
数据链路层和传输层流量控制的区别
  • 数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
  • 数据链路层流量控制手段:接收方收不下就不回复确认。
  • 传输层流量控制手段:接收端给发送端一个窗口公告。

什么是可靠传输机制

  • 可靠传输机制是为了使数据可以正确稳定的传输和接收而制定的规则。
  • 数据链路层的可靠传输通常使用确认超时重传两种机制来完成。
  • 确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认
  • 超时重传是指发送方在发送某一个数据帧以后就开始一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧,直到发送成功为止。
  • 自动重传请求(Auto Repeat reQuest,ARQ),通过接收方请求发送方重传出错的数据帧来恢复出错的帧,是通信中用于处理信道所带来差错的方法之一。
  • 传统自动重传请求分为三种,即停等式(Stop-and-Wait)ARQ、后退N帧(Go-Back-N)ARQ以及选择性重传(Selective Repeat)ARQ。后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大,帧在线路上可以连续地流动,因此又称为连续ARQ协议。

什么是滑动窗口机制

  • 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口
  • 发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。
  • 不同的滑动窗口协议窗口大小一般不同。
  • 发送方窗口内那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧的序列号代表了。

  • 发送端,每收到一个确认帧,发送窗口就向前滑动一个帧的位置,当发送窗口内没有可以发送的帧(即窗口内的帧全部是已发送但未收到确认的帧),发送方就会停止发送,直到收到接受方发送的确认帧使窗口移动,窗口内有可以发送的帧,之后才开始继续发送。
  • 接受端,当收到数据帧后,将窗口向前移一个位置,并发回确认帧,若收到的数据帧落在接受窗口之外则一律丢弃。

滑动窗口有以下重要特性:

  • 只有接受窗口向前滑动时(同时接受方发送确认帧),发送窗口才有可能(只有发送方收到确认帧才是一定)向前滑动。
  • 从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议只有在发送窗口大小和接收窗口大小有所差别。
  • 停止-等待协议:发送窗口大小=1,接受窗口大小=1;
  • 后退N帧协议:发送窗口大小>1,接受窗口大小=1;
  • 选择重传协议:发送窗口大小>1,接受窗口大小>1;
  • 当接受窗口的大小为1时,可保证帧的有序接受。

可靠传输、流量控制、滑动窗口之间的关系

停止-等待协议

  • 停止-等待协议也称为单帧滑动窗口与停止-等待协议
  • 当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议(stop-and-wait)。
  • 该协议规定发送方每发送一帧后就要停下来,等待接收方已正确接收的确认(acknowledgement)返回后才能继续发送下一帧。
  • 由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧加一个序号。
  • 由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了。
(1)为什么要有停止-等待协议?

在这里插入图片描述

(2)研究停止等待协议的前提
  • 虽然现在常用全双工通信方式,但是为了讨论方便,我们仅考虑一方发送数据(发送方),一方接收数据。
(3)停止-等待协议有几种应用情况?
  • 两种:无差错和有差错

1️⃣ 无差错情况

2️⃣ 有差错情况

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

② ACK确认帧丢失

3. ACK确认迟到超时帧

(4)停止等待协议性能分析
信道利用率

  • 发送方从开始发送数据到收到第一个确认帧ACK为止,这段时间称为一个发送周期
  • 信道利用率=发送时间/发送周期

由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又提出了后退n帧协议(GBN)和选择重传协议(SR)

后退N帧协议(GBN)

  • 后退n协议中,发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送若干个数据帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。且发送方在每发送完一个数据帧时都要设置超时定时器。只要在所设置的超时时间内仍未收到确认帧,就要重发相应的数据帧。
  • 如:当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。
  • 从这里不难看出,后退n协议一方面因连续发送数据帧而提高了效率,但另一方面,在重传时又必须把原来已正确传送过的数据帧进行重传(仅因这些数据帧之前有一个数据帧出了错),这种做法又使传送效率降低。
  • 由此可见,若传输信道的传输质量很差因而误码率较大时,后退N帧协议(GBN)不一定优于停止等待协议。此协议中的发送窗口的大小为k,接收窗口仍是1。
(1)后退N帧协议(GBN)的滑动窗口

(2)GBN发送方必须响应的三件事

上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。

(3)GBN接收方要做的事

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

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

(4)滑动窗口的长度

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

(5)性能分析

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

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

选择重传协议可以解决这个问题。

选择重传协议(SR)

  • 在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。由此诞生了SR(SELECTICE REPEAT)。
  • SR工作原理:当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以将已存于缓冲区中的其余帧一并按正确的顺序递交上一层。
  • 显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。
(1)滑动窗口

(2)SR发送方必须响应的三件事

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

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

超时事件

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

(3)SR接收方要做的事

(4)滑动窗口长度

信道划分介质访问控制

思维导图

传输数据的两种链路

  • 点对点链路 : 两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网
  • 广播式链路 : 所有主机共享通信介质。应用:早期的总线以太网、无线局域网,常用于局域网。典型拓扑结构:总线型、星型(逻辑总线型)

什么是介质访问控制?它有几种方法?

  • 介质访问控制(medium access control)简称MAC。 是解决共用信道的使用产生竞争时,如何分配信道的使用权问题
  • 常见的介质访问控制有下图所示几种方法:

静态划分信道–信道划分介质访问控制

简单了解一下相关概念

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

  • 下面来介绍几种多路复用技术。
频分多路复用 FDM

用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源
优点:充分利用传输介质带宽,系统效率较高 ; 由于技术比较成熟,实现也比较容易

时分多路复用TDM

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

这样做有一个弊端,就是当ABC都不传输数据的时候,D仍然要等待,不能直接传输。信道利用率只有1/4.

改进时分复用——统计时分复用STDM
  • ABCD中任何一个想传输数据时,直接发送即可。不用等到自己的时间段,信道利用率大大提高。

波分多路复用WDM

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

码分多路复用 CDM
  • 码分多路复用是采用不同的编码来区分各路原始信号的一种复用方式。与FDM和TDM不同,它既共享信道的频率,又共享时间。下面举一个 直观的例子来理解码分复用,如下图所示。

  • 假设 A 站要向 C 站运输黄豆, B 站要向 C 站运输绿豆, A 与 C 、 B 与 C 之间有一条公共的道路,可以类比为广播信道。
  • 频分复用方式下,公共道路被划分为两个车道,分别提供给 A 到 C 的车和 B 到 C 的车行走,两类车可以同时行走,但只分到了公共车道的一半,因此频分复用(波分复用也一样)共享时间而不共享空间。
  • 时分复用方式下,先让 A 到 C 的车走一趟,再让 B 到 C 的车走一趟,两类车交替地占用公共车道。公共车道没有划分,因此两车共享了空间,但不共享时间。
  • 码分复用与另外两种信道划分方式大为不同,在码分复用情况下,黄豆与绿豆放在同一辆车上运送,到达 C 后,由 C 站负责把车上的黄豆和绿豆分开。
  • 因此,黄豆和绿豆的运送,在码分复用的情况下,既共享了空间,也共享了时间。

  • 码分多址( code oivision Multiple Access , CDMA )是码分复用的一种方式,其原理是每比特时间被分成 m 个更短的时间槽,称为码片( ChiP ) ,通常情况下每比特有 64 或 128 个码片。每个站点被指定一个唯一的 m 位代码或码片序列
  • 发送 1时,站点发送mbit码片序列;发送0 时,站点发送mbit码片序列的反码
  • 当两个或多个站点同时发送时,各路数据在信道中线性相加。
  • 为从信道中分离出各路信号,要求各个站点的码片序列相互正交。

  • 简单理解就是, A 站向 C 站发出的信号用一个向量来表示, B 站向 C 站发出的信号用另一个向量来表示,两个向量要求相互正交。向量中的分量,就是所谓的码片。
  • 举个例子计算加深理解:
  • 假如站点 A 的码片序列被指定为 000 110 11 ,则 A 站发送 000 110 11 就表示发送比特 1 ,发送111 001 00 就表示发送比特 0 。
  • 按惯例将码片序列中的 0 写为-l ,将 1 写为+ l , A 站的码片序列就是-l - l -l + l + l -l + l + l。
  • 令向量 S 表示 A 站的码片向量,令 T 表示 B 站的码片向量。
  • 两个不同站的码片序列正交,且向量 S 和 T 的规格化内积为(S*T)/8= 0 ,所以令向量 T 为- l - l + l -1 + l + l + l - 1。

S和T具有以下运算性质:

  • 当 A 站向 C 站发送数据 l 时,就发送了向量 -l ,-l ,-l ,+l,+l,-l,+l,+l。
  • 当 B 站向 C 站发送数据 0 时,就发送 T 向量+l, +l, -1 ,+1, -l ,-l ,-l ,+1
  • 两个向量到了公共信道上就进行叠加,实际上就是线性相加,得到 S + T = ( 0 0 -2 2 0 -2 0 2 )
  • 到达 C 站后,进行数据分离。如果要得到来自 A 站的数据,那么就让 S 与 S + T 进行规格化内积,得到 S·( S +T ) = l 所以 A 站发出的数据是 1 。
  • 同理,如果要得到来自 B 站的数据,那么 T . ( S + T ) =- 1 因此从 B 站发送过来的信号向量是一个反码向量,代表 0 。

什么是规格化内积:就是内积结果再除以向量的维数,如向量s(1,2,3)点乘向量t(7,8,9)的规格化内积为(1*7+2*8+3*9)/ 3 = 50 / 3

动态分配信道

  • 特点:信道并非在用户通信时固定分配给用户
随机访问介质访问控制
  • 在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。
  • 在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧的冲突(碰撞,即前面所说的相互干扰),导致所有冲突用户的发送均以失败告终。
  • 为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过。这些规则就是随机访问介质访问控制协议,常用的协议有ALOHA 协议、 CSMA 协议、 CSMA/CD 协议和 CSMA/CA 协议等,它们的核心思想都是:胜利者通过争用获得信道,从而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议。
  • 如果介质访问控制采用信道划分机制,那么结点之间的通信要么共享空间,要么共享时间,要么两者都共享:而如果采用随机访问控制机制,那么各结点之间的通信就可既不共享时间,也不共享空间。所以随机介质访问控制实质上是一种将·广播信道转化为点到点信道·的行为。
ALOHA 协议
  • ALOHA协议分为两种,纯ALOHA协议和时隙ALOHA协议。接下来分别介绍他们。
纯ALOHA协议

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

时隙ALOHA协议

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

CSMA协议

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

如何检测?

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

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

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

1. 1—坚持CSMA
  • 坚持指的是对于监听信道忙之后的坚持。
  • 1-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。
  • 如果有冲突(一段时间内未收到肯定回复〉,则等待一个随机长的时间再监听,重复上述过程。
  • 优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
  • 缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
2.非坚持CSMA
  • 非坚持指的是对于监听信道忙之后就不继续监听。
  • 非坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。
  • 优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
  • 缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
3.P—坚持CSMA
  • p-坚持指的是对于监听信道空闲的处理。
  • p-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。忙则等待一个随机的时间之后再进行监听
  • 优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
  • 发生冲突后还是要坚持把数据帧发送完,造成了浪费。
对比总结

CSMA/CD协议

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

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

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

问:监听之后为啥还会发生冲突呢?

答:因为电磁波在总线上总是以有限的速率传播的。

问:最迟多久才能知道自己发送的数据没和别人碰撞?

① 传播时延对载波监听的影响

答:最多是两倍的总线端到端的传播时延(2T)

总线的端到端往返传播时延只要经过2T时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞。

问:如何确定碰撞后的重传时机?

② 截断二进制指数规避算法确定碰撞后的重传时机
答:

最小帧长问题

如果帧的长度太小,可能在站点停止传送之前,就已经传送完了。因此需要确定一个最小帧长。

CSMA/CA协议

CSMA/CA主要用于无线局域网。CSMA/CD主要用于有线局域网。

工作原理
  • 发送数据前,先检测信道是否空闲。
  • 空闲则发出RTS (request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;
  • 信道忙则等待。
  • 接收端收到RTS后,将响应CTS (clear to send )。
  • 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。
  • 发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。
CSMA/CA 和 CSMA/CD 对比

轮询访问介质访问控制
  • 轮训访问控制的产生

  • 轮询访问控制的特点:在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配。当某结点使用信道时,其他结点都不能使用信道。
  • 这里我们只讨论两类:轮询协议与令牌传递协议
轮询协议

轮询协议要求节点中有一个被指定为主节点,其余节点是从属节点。

主节点以循环的方式轮询每一个从属节点,“邀请”从属节点发送数据(实际上是向从属节点发送一个报文,告诉从属节点可以发送帧以及可以传输帧的最大数量),只有被主节点“邀请”的从节点可以发送数据,没有被“邀请”的节点不能发送,只能等待被轮询。

  • 从主节点向从节点发送的报文信息可以看出,如果一个节点要发送的数据很多,它不会一直发送到结束,它发送到最大数据帧就是结束,主节点开始轮询下一个节点,等再次轮询到它时才能继续发送。即如果从节点要发送的数据很多时,它不是一次性发送结束的。

令牌传递协议
  • 令牌传递又称“标记传送”,局部网数据送取的一种控制方法,多用于环形网
  • 令牌由专用的信息块组成,典型的令牌由连续的8位“1”组成。当网络所有节点都空闲时,令牌就从一个节点传送到下一个节点。当某一节点要求发送信息时,它必须获得令牌并在发送之前把它从网络上取走。一旦传送完数据,就把令牌转送给下一个节点,每个节点都具备有发送/接收令牌的装置。使用这种传送方法决不会发生碰撞,这是因为在某一瞬间只有一个节点有可能传送数据。最大的问题是令牌在传送过程中丢失或受到破坏,从而使节点找不到令牌从而无法传送信息。
  • TCU:环接口干线耦合器。它的主要作用是传递经过的所有帧,为接入站发送和接收数据提供接口。它的状态有两种:收听状态和发送状态。
  • 没有人使用令牌时,令牌则在环路中循环。

局域网

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

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

  • 特点1:覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
  • 特点2:使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)
  • 特点3:通信延迟时间短,误码率低,可靠性较高。
  • 特点4:各站为平等关系,共享传输信道。
  • 特点5:多采用分布式控制和广播式通信,能进行广播和组播。

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

拓扑结构

传输介质

介质访问控制方法

局域网分类

IEEE 802 标准

MAC子层和LLC子层

以太网与IEEE 802.3

(1)以太网概述

  • 此节内容是关于IEEE 802.3标准的学习
  • 以太网应当按DIX Ethernet V2标准,但是它与IEEE 802.3只有一丢丢不同,因此通常将802.3局域网简称为以太网。
  • IEEE 802.3标准是一种基带总线型的局域网标准,它描述物理层和数据链路子层MAC子层的实现方法。
     

(2)以太网提供无连接、不可靠的服务

(3)传输介质及拓扑结构

(4)10BASE-T以太网

(5)适配器和MAC地址

  • 计算机与外界局域网的连接是通过主机箱内插入的一块网络接口板[又称网络适配器(Adapter)网络接口卡(Network Interface Card, NIC)]实现的。
  • 网卡上装有处理器和存储器,是工作在数据链路层的网路组件。
  • 网卡是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码及数据缓存功能等。

(6)以太网DIX Ethernet V2标准的MAC帧的格式

  • 前同步码:其功能是使接收器建立比特同步。编码形式为多个“1”或“0”交替构成的二进制序列,最后一比特为“0”。在这种编码形式下,经过曼彻斯特编码后为一周期性方波。
  • 帧开始界符(sfd):该字段的功能是指示一帧的开始。
  • 目的地址和源地址:目的地址字段用来指出帧要发住的工作站。源地址段指示发送该帧的工作站地址。
  • 类型指明了上层所有的协议是什么
  • 帧检验序列(FCS)处于帧的最后,其长度为32比特,用于检验帧在传输过程中有无差错。

(7)高速以太网

无线局域网IEEE 802.11

(1)IEEE 802.11标准简介

IEEE 802.11是无线局域网的一系列协议标准,它们制定了MAC层协议,运行在多个物理层标准上。除基本的协调访问问题外,标准还进行错误控制(以克服通道固有的不可靠性)、适宜的寻址和关联规程(以处理站的可携带性和移动性)、互联过程(以扩展无线站的通信范围),并且允许用户在移动的同时进行通信。


802.11的MAC层采用CSMA/CA协议进行介质访问控制。冲突避免要求每个发送结点在发
送帧之前先侦听信道。如果信道空闲,那么结点可以发送帧;发送站在发送完一-帧之后,必须再
等待一个短的时间间隔,检查接收站是否发回帧的确认ACK。如果接收到确认,那么说明此次发
送未出现冲突,发送成功;如果在规定的时间内没有接收到确认,那么表明出现冲突,发送失败,
重发该帧,直到在规定的最大重发次数之内,发送成功。


注意:在无线局域网中,即使在发送过程中发生了碰撞,也要把整个帧发送完毕。而在有线
局域网中,发生冲突则结点立即停止发送数据。要熟悉局域网的各种协议。

(2)IEEE 802.11的MAC帧头格式

  • 几种不同功能的帧头格式

(3)无线局域网的分类

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

802.11标准规定无线局域网的最小构件是基本服务集( Basic Service Set, BSS)。 一个基本服
务集包括一个基站和若干移动站。所有的站在本BSS内都可以直接通信,但在与本BSS外的站
通信时都要通过本BSS的基站。基本服务集中的基站也称接入点(Access Point, AP),其作用和
网桥相似。


一个基本服务集可以是孤立的,也可通过接入点(AP)连接到一个主干分配系统(Distribution
System,DS), 然后再接入另一个基本服务集,构成扩展的服务集(Extended Service Set, ESS), 扩展服务集(ESS)还可通过称为门桥(Portal) 的设备为无线用户提供到非802.11 无线局域网(如到.
有线连接的因特网)的接入。门桥的作用相当于一个网桥。基本服务集和扩展服务集如图所示。


移动站A从某个基本服务集漫游到另一个基本服务集时,仍然能保持与另一个移动站B进
行通信。

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

数据链路层设备

网桥

  • 首先我们了解一下·冲突域和广播域·
  • 冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。
  • 广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。

(1)基本概念

  • 两个或多个以太网通过网桥连接后,就成为一个覆盖范围更大的以太网,而原来的每个以太网就称为一个网段
  • 网桥工作在链路层的MAC子层,可以使以太网各网段成为隔离开的碰撞域。
  • 如果把网桥换成工作在物理层的转发器,那么就没有这种过滤通信量的功能。
  • 由于各网段相对独立,因此一个网段的故障不会影响到另一个网段的运行。
  • 注意:网桥处理数据的对象是帧,所以它是工作在数据链路层的设备,中继器、放大器处理数据的对象是信号,所以它是工作在物理层的设备。

(2)网桥信息处理方式


网络1和网络2通过网桥连接后,网桥接收网络1发送的数据帧,检查数据帧中的地址,如
果是网络2的地址,那么就转发给网络2;如果是网络1的地址,那么就将其丢弃,因为源站和
目的站处在同-一个网段,目的站能够直接收到这个帧而不需要借助网桥转发。

(3)网桥的吞吐量举例


如图所示,设每个网段的数据率都是10Mb/s,那么三个网段合起来的最大吞吐量就变
成了30Mb/s。如果把两个网桥换成集线器或转发器,那么整个网络仍然是—个碰撞域(即冲突域),
当A和B通信时,所有其他站点都不能通信,整个碰撞域的最大吞吐量仍然是10Mb/s。

(4)基本特点

网桥的基本特点:

①网桥必须具备寻址和路径选择能力,以确定帧的传输方向;
②从源网络接收帧,以目的网络的介质访问控制协议向目的网络转发该帧;
③网桥在不同或相同类型的LAN之间存储并转发帧,必要时还进行链路层上的协议转换。注意,一般情况下,存储转发类设备都能进行协议转换,即连接的两个网段可以使用不同的协议;
④网桥对接收到的帧不做任何修改,或只对帧的封装格式做很少的修改;
⑤网桥可以通过执行帧翻译互联不同类型的局域网,即把原协议的信息段的内容作为另-种协议的信息部分封装在帧中;
⑥网桥应有足够大的缓冲空间,因为在短时间内帧的到达速率可能高于转发速率。

(5)优缺点

①能过滤通信量;

②扩大了物理范围;

③可使用不同的物理层;

④可互联不同类型的局域网;

⑤提高了可靠性;

⑥性能得到改善。

网桥的缺点:

①增大了时延;

②MAC子层没有流量控制功能(流量控制需要用到编号机制,编号机制的实现在LLC子层);

③不同MAC子层的网段桥接在一起时,需要进行帧格式的转换;

④网桥只适合于用户数不多和通信量不大的局域网,否则有时还会因传播过多的广播信息而产生
网络拥塞,这就是所谓的广播风暴

网桥必须具有路径选择的功能,接收到帧后,要决定正确的路径,将该帧转送到相应的目的
局域网站点。根据路径选择算法的不同,可将网桥分为·透明网桥和源路由网桥·

(6)透明网桥

  • 透明网桥以混杂方式工作,它接收与之连接的所有LAN传送的每一-帧。
  • 到达帧的路由选择过程取决于源LAN和目的LAN:
  • ①如果源LAN和目的LAN相同,那么丢弃该帧;
  • ②如果源LAN和目的LAN不同,那么转发该帧;
  • ③如果目的LAN未知,那么扩散该帧。

自学习算法:

  • 当网桥刚连接到以太网时,其转发表是空的,网桥按照自学习算法处理收到的帧。
  • 该算法的基本思想是:若从站A发出的帧从某端口进入网桥,那么从这个端口出发沿相反方向一定可把一个帧传送到站A。
  • 所以网桥每收到一个帧,就记下其源地址和进入网桥的端口,作为转发表中的一个项目(源地址、进入的接口和时间)。
  • 在建立转发表时,把帧首部中的源地址写在“地址”一栏的下面。
  • 在转发帧时,则根据收到的帧首部中的目的地址来转发。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入端口当作转发端口。网桥就是在这样的转发过程中逐渐将其转发表建立起来的。

(7)源路由网桥(选择最佳路由)

  • 在源路由网桥中,路由选择由发送数据帧的源站负责,网桥只根据数据真正的路由信息对帧进行接收和转发。

源路由的生成过程是:

  • 在未知路径前,源站要先发送一一个发现帧;途中的每个网桥都转发此帧,最终该发现帧可能从多个途径到达目的站;
  • 目的站也将一一发送应答帧; 每个应答帧将通过原路径返回,途经的网桥把自己的标志记录在应答帧中;源站选择出一个最佳路由。
  • 以后,凡从这个源站向该目的站发送的帧的首部,都必须携带这一路由信息。

局域网交换机

(1)基本概念

  • 桥接器的主要限制是在任一时刻通常只能执行一个帧的转发操作,于是出现了局域网交换机,又称以太网交换机。
  • 从本质上说,以太网交换机是一个多端口的网桥,它工作在数据链路层。交换机能经济地将网络分成小的冲突域,为每个工作站提供更高的带宽。

(2)原理

  • 以太网交换机的原理是,它检测从以太端口来的数据帧的源和目的地的MAC(介质访问层)地址,然后与系统内部的动态查找表进行比较,若数据帧的MAC地址不在查找表中,则将该地址加入查找表,并将数据帧发送给相应的目的端口。

(3)特点

(4)两种交换模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1028642.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS实战开发-如何实现一个自定义抽奖圆形转盘

介绍 本篇Codelab是基于画布组件、显式动画,实现的一个自定义抽奖圆形转盘。包含如下功能: 通过画布组件Canvas,画出抽奖圆形转盘。通过显式动画启动抽奖功能。通过自定义弹窗弹出抽中的奖品。 相关概念 Stack组件:堆叠容器&am…

STM32第十节(中级篇):EXTI(第一节)——EXTI功能框图及初始化结构体讲解(包括STM32中断应用总结)

目录 前言 STM32第十节(中级篇):EXTI(第一节)——EXTI功能框图及初始化结构体讲解(包括STM32中断应用总结) EXTI功能框图 EXTI初始化结构体讲解 STM32中断应用总结 NVIC介绍 优先级 优先…

后端常问面经之并发

volatile 关键字 volatile关键字是如何保证内存可见性的?底层是怎么实现的? "观察加入volatile关键字和没有加入volatile关键字时所生成的汇编代码发现,加入volatile关键字时,会多出一个lock前缀指令”lock前缀指令实际上相…

Radash一款JavaScript最新的实用工具库,Lodash的平替!

文章目录 Lodash 的痛点进入正题--Radash特点 举例几个常用的api 一说lodash应该大部分前端同学都知道吧,陪伴我们好多年的JavaScript工具库,但是自从 ES6 出现后就慢慢退出前端人的视线,能ES6写的代码绝对不会用Lodash,也不是完全…

C#预处理器指令(巨细版)

文章目录 一、预处理器指令的基本概念二、预处理器指令的基本规则三、C# 预处理器指令详解3.1 #define 和 #undef3.2 #if、#else、#elif 和 #endif3.3 #line3.4 #error 和 #warning3.5 #region 和 #endregion 四、高级应用:预处理器指令的最佳实践4.1 条件编译的最佳…

PS从入门到精通视频各类教程整理全集,包含素材、作业等复发(2)

PS从入门到精通视频各类教程整理全集,包含素材、作业等 最新PS以及插件合集,可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制,今天先分享到这里,后续持续更新 初级教程素材 等文件 https://www.alipan.com/s/fC…

【edge浏览器无法登录某些网站,以及迅雷插件无法生效的解决办法】

edge浏览器无法登录某些网站,以及迅雷插件无法生效的解决办法 edge浏览器无法登录某些网站,但chrome浏览器可以登录浏览器插件无法使用,比如迅雷如果重装插件重装浏览器重装迅雷后仍然出现问题 edge浏览器无法登录某些网站,但chro…

【生活】如何学习理财

文章目录 1. 了解基本财务知识2. 制定预算4321理财法则 3. 学习投资知识股票债券基金外汇房地产 4. 了解保险知识人身保险人寿保险健康保险意外伤害保险 财产保险财产损失保险责任保险信用保险 5. 寻求专业建议6. 持续学习和实践参考 首先我们想文心一言提问:如何学…

二十二、软考-系统架构设计师笔记-真题解析-2018年真题

软考-系统架构设计师-2018年上午选择题真题 考试时间 8:30 ~ 11:00 150分钟 1.在磁盘调度管理中,应先进行移臂调度,再进行旋转调度。假设磁盘移动臂位于21号柱面上,进程的请求序列如下表所示。如果采用最短移臂调度算法,那么系统…

EXCEL VBA根据表数据写入数据库中

EXCEL VBA根据表数据写入数据库中 Option Explicithttps://club.excelhome.net/thread-1687531-1-1.htmlSub UpdateAccess()Const adStateOpen 1Dim vData, i As Variant, j As LongDim AccessTable As String, ExcelTable As String, ExcelFile As String, AccessFile As Str…

力扣.21. 合并两个有序链表(c语言)

题目描述: 解题方法: struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {if(!list1)return list2;if(!list2)return list1;struct ListNode* l1list1,*l2list2,*newheadNULL,*newtailNULL;while(l1&&l2){if(l…

[羊城杯 2020]EasySer

[羊城杯 2020]EasySer 进入页面,发现是ubuntuapache2,但是好像没啥用 尝试访问/robots.txt,得到 访问/star1.php/,查看源码,得到提示 一看就知道是ssrf,使用http://127.0.0.1/ser.php,得到…

uniapp 微信小程序 前端登录流程

步骤: 1. 从uniapp button 中通过 getphonenumber 获取 encryptedData、iv 2. 调用 uni.login() 获取 wx code,然后用wx code 获取session_key、unionid 等信息(老用户直接用union_id调后端登录接口即可,新用户需进行加密解密获…

EXCEL通过VBA字典快速分类求和

EXCEL通过VBA字典快速分类求和 汇总截图 Option ExplicitOption Explicit Sub answer3() Dim wb As Workbook Dim sht As Worksheet Set wb ThisWorkbook Set sht wb.Worksheets(2) Dim ss1 As Integer Dim ss2 As Integer Dim i As Integer Dim j As Integer j 1Dim aa()…

智慧旅游中数据可视化的革新作用

在数字化浪潮席卷全球的今天,数据可视化技术已成为链接信息与用户的重要桥梁,尤其在智慧旅游领域,它的作用更是日益凸显。随着智慧旅游的概念越来越被重视,数据可视化成为其提供高效、直观服务的关键手段之一。本文将探讨数据可视…

C#使用SQLite(含加密)保姆级教程

C#使用SQLite 文章目录 C#使用SQLite涉及框架及库复制runtimes创建加密SQLite文件生成连接字串执行SQL生成表SQLiteConnectionFactory.cs 代码结构最后 涉及框架及库 自己在NuGet管理器里面安装即可 Chloe.SQLite:ORM框架Microsoft.Data.Sqlite.Core:驱…

数据结构学习——链表面试题

1. 删除链表中等于给定值 val 的所有结点。 203. 移除链表元素 - 力扣(LeetCode) 方法一: struct ListNode* removeElements(struct ListNode* head, int val) {struct ListNode* prevNULL;struct ListNode* curhead;while(cur){if(cur-&…

零基础入门转录组数据分析——绘制差异火山图

零基础入门转录组数据分析——绘制差异火山图 差异分析的火山图(Volcano Plot)在生物信息学数据分析中,特别是在基因表达差异分析中,是一个非常直观和有用的工具。 本教程将从导入的数据结构开始,一步步带大家在R中绘制好看的火山图,最后对火山图进行解读,确保读者理解…

修复系统中缺失的VCRUNTIME140.dll文件DLL错误问题

在计算机编程中,动态链接库(DLL)是一种重要的组件,它提供了许多功能和资源供程序使用。其中,VCRuntime140.dll是Visual C Redistributable Packages的一部分,它包含了运行C应用程序所需的运行时库。本文将详…

Rust那些事之深入理解文件系统的flush

Rust那些事之深入理解fs的flush 在 Rust 中,fs 模块提供了文件系统操作的函数,包括向文件写入数据。其中一个常用的函数是 fs::write,它允许用户将数据写入文件。然而,重要的是要注意,fs::write 不会自动刷新或同步数据…