Notes
网络
计算机网络
数据链路层-以太网

一、链路层概述

1.1 链路层是如何与网络层关联的

某旅行社指定旅游方案,目标是从北京市海淀区学院路的某大学到绍兴市鲁迅故里。那么旅行社首先决定使用地铁将游客运动到首都国际机场,然后乘坐飞机运送到杭州萧山国际机场,然后在萧山机场乘坐大巴到达杭州市滨江区,从滨江区搭乘杭绍地铁到达柯桥大阪湖,最后通过乌篷船到达鲁迅故里。

将游客比作网络层数据报。将每个运输区段(地铁、飞机、大巴)比作一条链路。那么选择道路的旅行社就是一个路由协议。

1.2 链路层提供的服务

  1. 成帧(framing),将数据包用帧封装起来。
  2. 链路接入。媒体访问控制(Media Access Control,MAC)。协调多个节点的帧传输。
  3. 可靠交付。提供差错检验和纠正。

1.3 链路层在何处实现

链路层主要是在网络适配器中实现(network adapter)。网络适配器又是又称网卡(Network Interface Card,NIC)。

二、差错检验和纠正技术

image.png

2.1 奇偶校验

增加一个奇偶校验位。

奇校验。增加一个校验位,使整个数据的1的数量为奇数。
偶校验。增加一个校验位,使整个数据的1的数量为偶数。

但是这种普通的奇偶校验只能检验出现奇数个或者偶数个错误的情况,未检测出差错的概率为50%。

2.2 二维奇偶校验

数据D中的d个bit被划分为i行j列,对于每行、每列计算奇偶值,产生的i + j + 1奇偶比特构成了链路层帧的差错检测比特。
image.png
上图中能够通过行列的联动奇偶性检测出错误的比特位。

2.3 循环冗余校验

原理:

  1. 在发送端,先把数据划分为组(即:一帧)。假定每组 k 个比特。
  2. 在每组后面,添加供差错检测用的 n 位冗余码一起发送。即:实际发送长度为:k+n 比特。
  3. 发送前双方协商n+1位的除数P,方便接收方收到后校验。
  4. 给K比特的数据添加除数减一个0(P-1)作为被除数,与第三步确定的除数做“模2除法”。得出的余数即FCS校验序列,它的位数也必须是(P-1)。
  5. 将FCS校验序列添加至K个比特位的后面发送出去。
  6. 接收方对接收到的每一帧进行校验,若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)。若余数 R ≠ 0,则判定这个帧有差错,就丢弃。

:::tip 对“模2除法”进行说明:

“模2除法”与“算术除法”类似,但它既不向上位借位,也不比较除数和被除数的相同位数值的大小,只要以相同位数进行相除即可。模2加法运算为:1+1=0,0+1=1,0+0=0,无进位,也无借位;模2减法运算为:1-1=0,0-1=1,1-0=1,0-0=0,也无进位,无借位。相当于二进制中的逻辑异或运算。 ::: image.png
image.png

:::caution CRC校验的性能分析 能够检测出所有的1bit差错。
能够检测出所有的2bit差错。
能够检测出所有长度=r或小于r位的错误(r标识FCS位数)。
出现长度为r+1的错误,检测不出的概率是1/(2^(r-1))。
出现长度大于r+1的错误时,检查不出的概率是1/(2^r)。
::: 3e8fd814fcdb0e84ffce794d8aba146.png

三、多路访问和链路协议

目的:为了协调发送和接收节点对共享信道的使用权利。

3.1 信道划分协议

信道划分协议可以分为时分多路复用(TDM)、频分多路复用(FDM)、码分多址(Code Division Multiple Access。CDMA)。信道划分协议主要是为所有在同一个共享信道上的节点划分广播信道带宽。

TDM时分复用

image.png
TDM将时间划分为时间帧,并进一步划分每个时间帧的N个间隙(这里的时间帧和链路层中的帧不是一个概念,时间帧是将一段时间划分为不同的时段,称为时间帧)。
:::tip TDM性能分析 TDM虽然消除了碰撞,且给每个节点在每个帧时间内分配了专用的传输速率R/N bps,但是它存在着主要缺陷:节点的传输速率被限制为R/N bps;节点必须在它的时隙内传输分组。对于特殊情况下,TDM的效果是很糟糕的。 :::

FDM频分复用

FDM将R bps的信道划分为不同的频段(每个频段具有R/N的带宽),不同的节点对应着不同的频段。如图:
image.png
FDM和TDM有着类似的弊端。

CDMA,码分多址

码分多址协议为每个节点分配一个编码,然后发送方通过这个特殊的编码对要发送的数据进行编码,如此这些数据可以同时的在信道上进行传输且接收方能够根据这些编码准确地收到信息,抗干扰能力强。


:::tip 一个比喻 可以做下面的一个比喻:假设甲乙丙在河流的上游给下游的A、B、C运送木材。
TDM:他们三组人约定好在下面的半小时内,前十分钟由甲运送木材A接收,中间十分钟乙运送木材B接收,最后十分钟,丙运送木材C接收。


FDM:他们约定将河道分成三个部分,河道左边属于甲和A,中间属于乙和B,右边属于丙和C,进行木材运输。


码分多址:甲乙丙在运送前都在木头上写上自己的名字,这样木材可以同时在河流之中传输,A看到是甲送过来的,就接住,其他的木材就不管了,BC同理。
:::

3.2 随机接入协议

在随机接入协议中,每个结点总是以全部的速率(R)发送帧,如果发生碰撞,那么就不断重发这些帧,直到这些帧无碰撞地通过为止。但是这个结点在经历碰撞之后,并不是立即重发,而是等待一个时延。

3.2.1时隙Aloha

时隙Aloha是随机接入协议的一种,是最简单的时隙接入协议。
它规定所有帧都由L比特组成,时间被划分为L/R的时隙,也就是说每个时隙是传输一帧的时间。节点只在时隙开始的时候进行传输,并且每个节点都知道时隙是何时开始的。如果在一个时隙中有两个或者多个帧发生了碰撞,那么在所有时隙结束之前检测到该事件。

时隙Aloha的传输机理
如果某个节点需要传输一个帧,那么他将在下一个时隙开始时将这个准备好的帧传送到信道上去,这时就产生了两种情况:

  1. 这个帧在信道上没有遇到任何别的帧(即没有产生碰撞),那么这个帧就成功以R的速率全速得到传输。
  2. 如果这个帧遇到了其他结点发出的帧,那么就发生了碰撞,因此发送节点检测到了碰撞事件,准备重新传输这一帧。但是这个结点并不会马上重传这一帧,它将“置一次硬币”,如果以p的概率掷出了硬币的正面,那么就在下个时隙的开始重新发送此帧,但是如果以1-p的概率掷到了反面,那么就等待,下一个时隙再掷一次硬币

:::tip 时隙Aloha的性能分析 时隙Aloha最大的优点是如果某个时隙只有一个节点是活跃的,那么他的帧将全速送出。但是,如果发生碰撞,就会有很多的时隙失效。时隙Aloha的效率为: 当有大量节点活跃时,长期运行中成功时隙的份额。即 成功时隙/全部时隙 。
N个结点任意一个传送成功的效率为:
Np(1-p)^(N-1) [这也是时隙Aloha的效率] :::

3.2.3 纯Aloha

想发就发。思想:不监听信道,不按时间槽发送,随机重发
image.png
冲突检测、处理 :
① 出现冲突 : 如果发送时 ,出现了冲突 , 数据被丢弃 , 或部分出错 , 发送失败 ;

② 接收方处理 : 接收方没有收到数据 , 或收到错误数据 , 那么向发送方发送错误信息 , 或者干脆不回送确认信息 ;

③ 发送方处理 : 如果发送方在超时时间内没有收到接收方的确认信息 , 那么就重传之前的数据 ;

:::info 纯 ALOHA 协议 与 时隙 ALOHA 协议 对比 :

① 吞吐量对比 : 纯 ALOHA 协议 比 时隙 ALOHA 协议 吞吐量低 ;

② 发送时机对比 : 纯 ALOHA 协议 想发就发 , 时隙 ALOHA 协议 只有在时间片 开始时 , 才能发 ;
:::

3.2.4 带有碰撞检测的载波侦听多路访问(CSMA/CD)

CSMA(载波监听多路访问)是在ALOHA协议上面做了更多改进并且应用于现实中MAC层截止访问控制(MAC)的协议。所谓载波监听,就是“讲前先听”。网络站点监听载波(别的用户的数据)是否存在并随之采取相应的行动。
载波侦听:也就是说,先听听别人有没有在说话,如果别人没有在说话,那么就说话,如果别人正在说话没那么就闭嘴
碰撞检测:如果和别人同时开口说话,那么也马上闭嘴,随即等待一个时间内,过会再说

:::tip 带碰撞和不带碰撞的差别 如果不带碰撞检测,那么虽然碰撞了仍然完整传输,造成浪费,如果带碰撞检测就可以立即停止传输。
::: image.png
image.png

二进制指数后退算法


以太网使用截断二进制指数退避算法来确定碰撞后重传的时机。这种算法让发生碰撞的站在停止发送数据后,不是等待信道变为空闲后立即再发送数据,而是退避一个随机的时间。一以减小再次发生碰撞的概率。具体算法如下:

  1. 协议规定了基本退避时间为2t,具体的争用期时间通常取51.2us,对于10Mb/s的以太网,在争用期内可发送512bit,即64字节。
  2. 从离散的整数集合【0,1,……(2^k-1)】中随机取一个数,记为r,重传应推后的时间就是r倍的争用期。
  3. 当重传次数不超过10时,参数k等于重传次数;当重传次数超过10时,k就不再增大一直等于10。
  4. 当重传16次仍然不能成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告(例如上图)。

:::tip CSMA/CD效率 d1表示信号在任意两个适配器之间传播的最大时间,d2表示传输一个最大长度的以太帧的时间。则效率:
1/(1+5*d1/d2) :::

3.3 轮流协议

轮询协议(polling protocol)让某个节点成为主节点,主节点以循环的方式轮询每个节点,主节点会发送报文给每一个节点,告诉他它能够发送的最大的帧数,在某节点传输一些帧后,主节点会告诉下一个结点能够传输的最大帧数。这个协议消除了困扰随机接入协议的碰撞和空时隙


令牌传递协议(token-passing protocol)。有一个令牌在结点之间互相传递,当某节点需要发送帧时,它拥有令牌即可发送,如果他不需要发送时,立即将令牌传送给下一个结点。令牌是分散的,效率很高,但是当某一结点产生问题可能导致整个信道的崩溃。

四、交换局域网

下图是交换局域网的一个示例:
image.png

4.1 链路层寻址和ARP(地址解析协议)

4.1.1 MAC地址

主机或者路由器的适配器(网络接口)有链路层地址。链路层地址也称LAN地址、物理地址、MAC地址。
:::info MAC地址的格式 MAC地址有48位(6字节),前三字节(高位24位)由IEEE的注册管理机构RA向厂家分配,后三字节(低24位)由厂家自行指派必须保证生产出的适配器没有重复地址。这种48位地址称为MAC-48。MAC地址不可更改,但是可以更改通信时的MAC地址,也相当于“更改”了MAC地址。
MAC地址具有扁平结构,IP地址是分层的。就像人一样,可以将IP地址比作人的家庭住址,那么MAC地址就是身份证号,当人搬家时,家庭住址会发生改变,但是身份证号不会发生改变。
::: image.png
当某个适配器要向其他适配器发送某些帧时,发送适配器会将接收适配器的MAC地址插入这些帧中,并将这些帧广播到局域网上,当某个适配器接收到这个帧时,对比这个帧内的MAC地址是不是自己的MAC地址,如果是,则解封装这个帧,并向上层传递,如果不是,那么久丢弃这个帧。我们注意到,适配器实际上是能够接收到寻址地址不是它的帧。
有时候适配器需要局域网内所有适配器都接收并处理某些帧,那么他就会规定一个广播地址。广播地址一般是48个1组成的字符串,换算成十六进制是“ffffffffffff”。

4.1.2 地址解析协议

作用:将网络层地址(IP)与链路层地址(MAC)之间进行转换。
image.png
假设IP地址为222.222.222.220的主机要向222.222.222.222的主机发送IP数据,在上图中,他们位于同一个子网中。为了发送数据报,该源必须要向它的适配器提供IP数据报和目的主机222.222.222.222的MAC地址。然后发送适配器将构造一个包含目的地MAC地址的链路层帧,并把该帧发送进局域网。
那么发送端是怎么确定接收端的MAC地址的呢?实际上,它使用了ARP,发送端将222.222.222.222的IP地址作为参数送入ARP中,它将返回一个对应的MAC地址49-BD-D2-C7-56-2A。
但是值得注意的是,ARP只为在同一个子网上的IP提供地址解析服务,如果发送端的IP地址和接收端的IP地址不在同一个子网中(例如使用北京海淀的节点去查询浙江绍兴的一个节点),那么ARP将返回一个错误。
:::tip ARP和DNS的对比 DNS为因特网中任何地方的主机解析主机名,而ARP只为在同一个子网上的主机和路由器接口解析IP地址。如果一个节点试图用ARP为另一个子网中的节点解析MAC地址,那么ARP将返回一个错误。 :::


ARP是如何工作的
每台主机或路由器在内存中存有一个ARP表,该表用于解析IP地址与MAC地址之间的映射关系。这个ARP表也包含一个寿命值(TTL),它指出从表中删除每个映射的时间。
image.png
但是如果主机上没有存这个IP的地址呢?那么它将构造一个ARP分组,这个分组包含了发送和接收IP地址和MAC地址,ARP查询分组和响应分组有相同的格式,这个分组将询问子网上所有的主机和路由器(使用广播的方式FFFFFFFFFFFF),以确定找出要解析的IP分组的MAC地址。一次ARP查询等价于一个人在教室里面大喊:“家住清华东路35号的那个人的身份证号是多少?!”。

4.1.3 发送数据报到子网之外

现在考虑当子网中的某主机要向子网之外(也就是跨越路由器的另一个子网)的主机发送网络层数据报,如下图所示,显示了一个由一台路由器互联两个子网所组成的简单网络:
image.png
在上图中需要注意几点:每台主机仅有一个IP地址和一个适配器,一台路由器对它的每个接口都有一个IP地址。对路由器的每个接口,(在路由器中)也有一个ARP模块和一个适配器。上图的路由器有两个接口,所以它有两个IP地址,两个ARP模块和两个适配器,当然,网络中的每个适配器都有自己的MAC地址。
:::tip 我们定义子网1的网络地址为111.111.111/24,子网2的网络地址为222.222.222/24。假如子网1上的一台主机将向子网2上的一台主机发送数据报。特别是,假设主机111.111.111.111要向主机222.222.222.222发送一个IP数据报。和往常一样,发送主机向它的适配器传递数据报。但是,发送主机还必须向它的适配器指示一个适当的目的MAC地址。仔细观察上图,我们可以发现,为了使一个数据报从111.111.111.111到子网2上的主机,这个数据报必须首先发送给路由器接口111.11.111.110,它是通往最终目的路径上的第一跳路由器的IP地址。因此,对于该帧来说,适当的MAC地址是路由器接口111.111.111.110的适配器地址,即E6-E9-00-17-BB-4B。发送主机通过ARP获取111.111.111.110的MAC地址。一旦发送适配器有了这个MAC地址,它创建一个帧(包含了寻址到222.222.222.222的数据报),并把该帧发送到子网1中。在子网1上的路由器适配器看到该链路层帧是向它寻址的,因此把这个帧传递给路由器的网络层。路由器现在必须决定该数据报要被转发的正确接口。这是通过查询路由器中的转发表来完成的。转发表告诉这台路由器该数据报要通过路由器接口222.222.222.220转发。然后该接口把这个数据报传递给它的适配器,适配器把该数据报封装到一个新的帧中,并且将帧发送进子网2中。这时,该帧的目的MAC地址确实是最终目的地MAC地址。路由器接下来通过ARP获取这个MAC地址。 :::

4.2 以太网

以太网帧结构如下所示:
image.png
考虑从一台主机向另一台主机发送一个IP数据报,且这两台主机在相同的以太局域网上。设发送适配器(即适配器A)的MAC地址是AA-AA-AA-AA-AA-AA,接收适配器(即适配器B)的MAC地址是BB-BB-BB-BB-BB-BB。发送适配器在一个以太网帧中封装了一个IP数据报,并把该帧传递到物理层。接收适配器从物理层收到这个帧,提取出IP数据报,并将该IP数据报传递给网络层。在这个场景下,我们解释下上图所示的以太网帧的6个字段:

数据字段(46-1500字节): 这个字段承载了IP数据报。以太网的最大传输单元(MTU)是1500字节。这意味着如果IP数据报超过了1500字节,则主机必须将该数据报分片。数据字段的最小长度是46字节。这意味着如果IP数据报小于46字节,数据报必须被填充到46字节。当采用填充时,传递到网络层的数据报括IP数据报和填充部分。网络层使用IP数据报首部中的长度字段来去除填充部分。
目的地址(6字节): 这个字段包含了传该帧到局域网上的适配器的MAC地址,在本例中为AA-AA-AA-AA-AA-AA。
类型字段(2字节): 类型字段允许以太网复用多种网络层协议。为了理解这点,我们需要记住主机能够使用除了IP以外的其他网络层协议。事实上,一台给定的主机可以支持多种网络层协议,以对不同的应用采用不同的协议。因此,当以太网帧到达适配器B,适配器B需要知道它应该将数据字段的内容传递给哪个网络层协议(即分解)。IP和其他链路层协议都有它们各自的、标准化的类型编号。此外,ARP协议有自己的类型编号,并且如果到达的帧包含ARP分组(即类型字段的值为十六进制的0806),则该ARP分组将被多路分解给ARP协议。注意类型字段和网络层数据报中的协议字段、运输层报文段的端口号字段相类似;所有这些字段都是为了把上一层中的某协议与上一层的某协议结合起来。
CRC(4字节): CRC(循环冗余检测)字段的目的是使得接收适配器(适配器B)检测帧中是否引入了差错。
前同步码(8字节): 以太网帧以一个8字节的前同步码字段开始。该前同步码的前7字节的值都是10101010;最后一个字节是10101011。前同步码字段的前7字节用于“唤醒”接收适配器,并且将它们的时钟和发送方的时钟同步。为什么这些时钟会不同步呢?记住适配器A的目的是根据以太局域网类型的不同,分别以10Mbps、100Mbps或者1Gbps的速率传输帧。但是适配器A不会以精确的额定速率传输帧;相对于额定速率总有一些漂移,局域网上的其他适配器不会预先知道这种漂移。接收适配器只需通过锁定前同步码的前7字节的比特,就能够锁定适配器A的时钟。前同步码的第8个字节的最后两个比特(第一个出现的是两个连续的1)警告适配器B:“重要的内容”就要到来了。

所有的以太网技术都向网络层提供无连接服务。以太网技术都向网络层提供不可靠服务。特别是,当适配器B收到一个来自适配器A的帧,它对该帧执行CRC校验,但是当该帧通过CRC校验时它不发送确认帧,而当该帧没有通过CRC校验时它也不发送确认帧。当某帧没有通过CRC校验,适配器B只是丢弃该帧。因此,适配器A根本不知道它传输的帧是否到达了B并通过了CRC校验

:::tip 以太网最大帧和最小帧 据RFC894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的帧开始定界符,具体就是:7字节前导同步吗+1字节帧开始定界符+6字节的目的MAC+6字节的源MAC+2字节的帧类型+1500+4字节的FCS。

按照上述,最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1514字节,为什么不是1526字节呢? 原因是当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据, 因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,其最大值是6+6+2+1500=1514。

以太网规定,以太网帧数据域部分最小为46字节,也就是以太网帧最小是6+6+2+46+4=64。除去4个字节的FCS,因此,抓包时就是60字节。当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面填充以满足数据帧长不小于64字节。由于填充数据是由MAC子层负责,也就是设备驱动程序。
:::

4.3 链路层交换机

交换机的任务是接收入链路层帧并将它们转发到出链路,它自身对子网中的主机和路由器是透明的。这就是说,某主机/路由器向另一个主机/路由器寻址一个帧(而不是向交换机寻址该帧),顺利地将该帧发送进局域网,并不知道某交换机将会接收该帧并将它转发到另一个结点。这些帧到达该交换机的任何输出接口之一的速率可能暂时会超过该接口的链路容量。为了解决这个问题,交换机输出接口设有缓存,这非常类似于路由器接口为数据报设有缓存,接下来考察下交换机运行的原理。

4.3.1 交换机转发和过滤

过滤是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能。转发是决定一个帧应该被导向哪个接口,并把该帧移动到那些接口的交换机功能。交换机的过滤和转发借助于交换机表完成。该交换机表包含某局域网上某些主机和路由器的表项。交换机表中的一个表项包括:

  1. 一个MAC地址
  2. 通向该MAC地址的交换机接口
  3. 表项放置在表中的时间

image.png

帧的转发和数据转发之间有相似点,但它们之间的差距也是很大的,例如交换机转发分组基于MAC地址而不是基于IP地址,交换机表与路由器的转发表的构造方式也有很大差别。

为了理解交换机过滤和转发的工作过程,假定目的地址为DD-DD-DD-DD-DD-DD的帧从交换机接口x到达,交换机用MAC地址DD-DD-DD-DD-DD-DD索引它的表。有三种可能的情况:

  1. 表中没有对于DD-DD-DD-DD-DD-DD的表项。在这种情况下,交换机向除接口x外的所有接口前面的输出缓存转发该帧的副本。换言之,如果没有对于目的地址的表项,交换机广播该帧。
  2. 表中有一个表项将DD-DD-DD-DD-DD-DD与接口x联系起来。在这种情况下,该帧从包括适配器DD-DD-DD-DD-DD-DD的局域网网段到来。无需将该帧转发到任何其他接口,交换机通过丢弃该帧执行过滤功能即可。
  3. 表中有一个表项将DD-DD-DD-DD-DD-DD与接口y!=x联系起来。在这种情况下,该帧需要被转发到与接口y相连的局域网段。交换机通过将该帧放到接口y前面的输出缓存完成转发功能。

五、WIFI

WIFI属于数据链路层和物理层。Wi-Fi是基于IEEE 802.11标准的WLAN。WLAN(Wireless Local Area Network,无线局域网)有许多标准协议,如IEEE 802.11协议族、HiperLAN协议族等。

5.1 频段、信道、带宽

【工作频段】将频率划分成多段,如2.4GHz频段(2.412GHz-2.484GHz)
【无线信道】将频段划分成多个信道,信道是用于传输无线电波信号的通道,一个信道在同一时间内只有一台设备能发送信号
【信道带宽】模拟信道的带宽W=f2-f1,f2信道能通过的最高频率,f1为信道能通过的最低频率。带宽越大,数据传输速率越大。

5.2 IEEE 802.11常见的技术标准

image.png

5.3 CSMA/CA碰撞避免

在以太网中CSMA-CD协议可以通过线缆的电压变化完成全面的碰撞检测,但是在无线局域网CSMA-CD无法做到360°全面检测碰撞。当A和C都检测不到信号,认为信道空闲时, 同时向终端B发送数据帧,就会导致冲突.(设A在B的电磁波范围,C在B电磁波范围内,而A不在C电磁波范围,此时AB可以相互传输数据,BC可以相互传输数据) image.png
若此时C正在与B通信发送数据,而A无法知道BC在通信;若直接发送可能会导致冲突。即 C是A的隐蔽站,因此需要碰撞避免协议
:::tip CSMA/CA碰撞避免的原理 发送数据前,先检测信道是否空闲。

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

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

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

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

发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。 ::: 总结一下就是三个手段避免冲突:
1.预约信道
2.ACK帧
3.RTS/CTS帧(可选)(主要是为了解决隐蔽站问题)

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

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

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

  3. CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。
    ::: CSMA/CD超有礼貌!讲之前不仅要听,在自己说话前还要先等一下
    来自这里 (opens in a new tab)