banner
NEWS LETTER

MAC层

Scroll down

由来:数据链路层负责的主要是关于如何传输数据的问题,考虑的是一个点到点的问题。但是,现实中许多网络传输都是多点对多点的,这就涉及到如何共用信道的问题。前面在物理层已经介绍过TDM等方法,但是其仍有许多信道资源上的浪费,因此在MAC层,根据流量来进行更高效的介质访问控制。

解决的问题:管理网络中多个站点如何共享传输介质的问题

信道分配问题

静态分配方法

基本不可取,因为网络的流量一般具有突发性,因此忽略该方法

动态分配方法(有线传输)

ALHOA协议

纯ALHOA

核心思路:每个站点有了包就往信道上丢,反正没收到就重传
冲突期:2t(t是每个帧的传输延迟)图片描述

时隙ALHOA

核心思路:把时间按照帧的传输时延均分,传输只能在时隙的边界开始
冲突期:t
成功减少了冲突期
图片描述

CSMA协议

纯CSMA

核心思想:在发送前监听信道,可以减少冲突期。
工作过程:
1、如果信道空闲,按p的概率发送帧
2、如果信道忙,则等待
3、如果两个站点同时发帧,那么崩溃
4、崩溃后等待一段时间,重新发
冲突期:(传播时延)

坚持CSMA和非坚持CSMA

非坚持CSMA:如果信道忙,那么等待随机时间后再发
坚持CSMA:如果信道忙,那么等到它空闲后,按照p概率发包,称为p-persist CSMA
图片描述

CSMA/CD(CSMA with collision detection)

核心思路:在CSMA的基础上,加入冲突检测。每当检测到冲突时,停止传输数据,并传输一个强化信号表示检测到冲突。然后退避一个随机的时间,再恢复传输
信道分为三个状态:冲突,传输,空闲
获得冲突状态至少也需要2的时间
指数退避算法:
1、从中随机选取一个数r,
2、退避时间=
工作过程:
1、载波监听:一边发送包,一边监听冲突
2、冲突检测:经过至少2以后,收到非自己发送的数据后,停止发送数据,并发送强化信号
3、随机退避,调用指数退避算法

## 动态分配方法(无线传输)  

无线传输的新问题

1、冲突检测困难,发送方有固定的范围,超出范围外的没法检测冲突
2、容易发生干扰
3、隐藏终端问题,A和C同时发给B,此时A和C互相无法看到,那么在B处发生冲突
图片描述
4、暴露终端问题,假设有四个节点A、B、C、D排列成一条直线,其中B正在给A发送数据。
问题核心:C能够听到B的传输信号,并因此误以为如果自己此时向D发送信息会造成冲突。但实际上,B和D之间没有重叠的通信范围,也就是说,B向A的数据传输不应该阻止C向D的数据传输。
图片描述

解决方法

MACA协议

工作过程:
1、发送方发送一个RTS(Request To Send)帧到地址,代表预约请求发送
2、接收方回复一个CTS(Clear To Send)帧个发送方,代表允许发送
3、发送方接收到CTS之后,发送数据帧
4、接收方返回ACK帧
5、如果未接收到CTS,那么调用指数退避算法,然后重新发送RTS
RTS(S to R) ->CTS(R to S) ->DATA(S to R)-> ACK(R to S)

CSMA/CA协议

工作过程:
发送方:
1、监听信道,要确保信道中有DIFS的时间是干净的,然后进入退避状态
2、随机退避,在信道不干净的时候暂停。只有干净的时候开始计数,等到计数为0的时候,发送帧
3、如果没有收到ACK帧,增加退避时间,重复2
接收方:
只要接收完成,那么在等待SIFS时间确保信道干净后,发送ACK帧
其中,DIFS的时间大于SIFC的时间(重要),为了确保发送ACK的优先级高于发送数据帧

另外,每个发送的帧都带有NAV信息,能够让其他站点知道信道大概需要被占用多久
为了防止高误码率,可以采用段突发机制,将帧分成很小的块,减小重传的可能性。从而使得传输更快

TXOP技术的使用:
使得高速站点的发送的更加的公平。
计算方法:c = ci/n,每个速度除以总的站点数就行了
不适用TXOP则是每个站点的加权平均数

MAC层协议的评价指标

  • 低负载:时延越低越好
  • 高负载:吞吐量越高越好

IEEE 802层

物理层(Physical Layer)

  • 信号编码/解码:负责将数据转换为适合通过传输介质发送的形式,以及接收时将其转换回数字信息。
  • 比特传输/接收:处理实际的数据位在物理媒介上的传输与接收过程。
  • 传输介质和拓扑结构:定义了使用何种类型的电缆或无线技术来传输数据,以及网络的物理布局。

MAC子层(Media Access Control 子层)

1. 基本工作原理:广播与寻址

以太网是一种广播型网络,当一个站点(station)发送数据时,信号会沿着共享的总线向所有方向传播,网络上的每一个站点都能收到这个信号。

  • 寻址 (Addressing): 为了让数据能准确送达,每个数据帧都必须包含一个目的MAC地址
  • 接收机制: 网络上的所有站点都会检查帧的目的地址。只有目的地址与自身MAC地址匹配的站点才会完整地接收并处理该数据帧,其他所有站点则会忽略它。

2. 介质访问控制:CSMA/CD

为了解决多个设备在共享信道上同时发送数据造成的冲突(collision)问题,以太网采用了一种名为 CSMA/CD (载波侦听多路访问/冲突检测) 的协议。

CSMA/CD 工作流程

  1. 侦听信道 (Listen before talking): 在发送数据前,设备会先监听信道,确认是否空闲。
  2. 等待并发送 (Talk if quiet): 如果信道持续空闲超过一个帧间间隔 (IFG - Inter-Frame Gap) 的时间,设备就立即开始发送数据。
    • IFG: 在10Mbps以太网中,标准IFG为9.6µs(即发送96个bit所需的时间),用于让接收方有时间从接收模式切换回发送模式。
  3. 忙则等待 (Wait for quiet before talking): 如果侦听到信道正忙,设备会持续监听,直到信道变为空闲,并再等待一个IFG的时间后,立即发送。
  4. 边发边听 (Listen while talking): 在发送数据的整个过程中,设备会持续监听信道,以检测是否存在冲突。
冲突处理机制
  1. 检测到冲突: 如果在发送时检测到冲突(收到的信号与发出的信号不一致),立即停止发送数据。
  2. 发送Jam信号: 发送一个 32 bits (4 bytes) 的 Jam 信号,这是一个特殊的信号模式,目的是加强冲突信号,确保网络上所有设备都能检测到此次冲突。
  3. 指数退避算法 (Exponential Backoff):
    • 所有发生冲突的设备都会停止发送,并各自计算一个随机的退避时间
    • 退避时间的计算公式为 R × Slot Time,其中 Slot Time (时隙) 固定为 51.2µsR 是一个从 [0, 2^k - 1] 范围中选取的随机整数。k 是冲突的次数,但最大不超过10。
    • 等待完各自的随机时间后,设备会回到第1步,重新尝试发送。
  4. 放弃发送: 如果一个帧连续冲突16次后仍未成功发送,设备将放弃发送该帧并向上层报告错误。

3. 以太网帧结构

以太网帧定义了数据在网络上传输的标准格式。历史上存在DIX Ethernet和IEEE 802.3两种略有差异的格式,主要区别在于Type/Length字段的定义。

字段 字节数 功能描述
Preamble (前导码) 7 一系列交替的1和0 (101010...),用于接收端进行时钟同步。(物理层加的)
SOF (帧起始定界符) 1 10101011,明确标识帧的开始。
Destination Address 6(48位) 接收方的MAC地址。
Source Address 6(48位) 发送方的MAC地址。
Type / Length 2 DIX格式: 表示上层协议类型 (如 0x0800 代表IP)。802.3格式: 表示数据字段的长度。
Data 46-1500 承载的实际数据。如果数据不足46字节,则需要用Pad字段填充。
Pad (填充) 0-46 当数据字段不足46字节时,用于填充,以确保整个帧的最小长度。
Checksum (CRC) 4 循环冗余校验码,用于检测帧在传输过程中是否出错。

4. MAC 地址 (物理地址)

MAC地址是烧录在网络接口卡(NIC)上的全球唯一的硬件地址。

  • 格式: 48位 (6字节),通常用十六进制表示。
  • 结构:
    • 前24位: OUI (组织唯一标识符),由IEEE分配给硬件制造商(如 00-60-97 属于3COM)。
    • 后24位: 由制造商自行分配的序列号,确保每个网卡的地址唯一。
  • 特殊地址:
    • 广播地址: FF:FF:FF:FF:FF:FF,发送到此地址的帧会被网络上所有设备接收。

5. 帧长度限制

以太网规定了帧的最小和最大长度,这对于协议的正常运作至关重要。
==这部分必须要背下来==

最大帧长:1518 字节

  • 这个限制主要源于早期硬件(1978年)的RAM成本高昂,限制了设备缓存整个数据帧的能力。
  • 它由1500字节的最大数据负载加上18字节的头部和校验和组成。

最小帧长:64 字节

  • 这是确保冲突检测机制能够正常工作的关键。
  • 原因: 在一个最大尺寸的以太网中,信号从一端传播到最远端再返回所需的最长时间(即Slot Time, 2τ ≈ 51.2µs),就是设备能够检测到冲突的最晚时间点。
  • 为了确保发送方在发送完一帧之前一定能检测到可能发生的冲突,帧的传输时间必须大于等于这个Slot Time
  • 51.2µs 的时间在10Mbps以太网上传输的数据量为 10Mbps × 51.2µs = 512 bits = 64 bytes
  • 因此,任何以太网帧都必须至少有64字节长。如果数据部分不足46字节,就必须用Pad字段填充至46字节,以满足最小帧长要求。
  • 隐藏MAC层差异,提供统一接口给网络层:LLC子层向网络层提供了标准化的服务接口,使得即使底层的MAC协议不同,上层的应用程序也不需要关心这些差异。
  • 流量控制和错误控制:确保数据能够按照正确的速度传输,并且在发生错误时可以采取适当的措施进行恢复。
  • 通过网桥互连局域网:允许不同的局域网通过网桥连接起来,形成更大的网络结构。图片描述

以太网

图片描述
图片描述
特别说明:MDU大小为1500bytes,为了网络层计算中特此备注

设备

设备方面,有集线器和交换机两种,集线器是形式上星型,逻辑上总线型,交换机是形式上和逻辑上都是总线型。使用交换机可以消除冲突,所以不需要CSMA/CD了

自动协商机制(FAST往上都有)

在FAST以太网往上,都有这个机制,说白了就是和接收方约定,使用哪个速度进行传输

载波扩展(GB往上)

为了解决高速以太网中传输距离过短这个条件,就使用了这个技术,说白了就是确定一个最小帧长,没达到的时候就用冗余的信息填充

最小帧长的计算

必须要使得总帧的发送时长大于等于RTT,即
但是对于较快的网络来说,这样的方法实在有些浪费。所以为了减少浪费,下面又推出了帧突发机制

帧突发(GB往上)

允许发送者发送多个帧的连接信息,第一个帧携带额外的冗余信息,剩下的不用。但是只有连续的帧才能这样
然后设置了一个最大的多帧长度,防止一直连接下去。

暂停帧(GB往上)

由于千兆以太网网上太快了,很可能造成缓冲区溢出,所以必须进行流量控制。
采用暂停帧的方法,如果接收方处理不过来了,那么就发送一个暂停帧,让它缓一缓再发。

网桥

作用

用来连通不同的LAN

表项内容

  • 目的地址
  • 接口

后向学习算法(必考)

工作过程:
1、收到帧,储存到缓存中
2、查找过去的表
3、根据收到的帧中的源地址信息和表信息,如果源地址和目的地址来源于同一个LAN,那么丢弃该帧
4、反之将其发送到对应的端口。
5、将受到的帧中的端口和源地址添加到查找表中
6、如果查找表中没有目的地址的端口,那么泛洪(所有端口转发)

生成树算法

只需要知道它用来解决冗余拓补中,容易出现环导致广播风暴的问题就行

VLAN

在交换机中,标记每个端口的“颜色”,相同端口进入的帧,只能传给相同颜色的端口,这样就构建了VLAN

特别注意:VLAN交换机也可以和非VLAN交换机同时工作,只需要在非VLAN交换机收到含有VLAN ID的帧的时候,无视掉就行了

如果您喜欢我的文章,可以考虑打赏以支持我继续创作.

其他文章
目录导航 置顶
  1. 1. 信道分配问题
    1. 1.1. 静态分配方法
    2. 1.2. 动态分配方法(有线传输)
      1. 1.2.1. ALHOA协议
      2. 1.2.2. CSMA协议
      3. 1.2.3. 无线传输的新问题
      4. 1.2.4. 解决方法
    3. 1.3. MAC层协议的评价指标
  2. 2. IEEE 802层
    1. 2.1. 物理层(Physical Layer)
    2. 2.2. MAC子层(Media Access Control 子层)
      1. 2.2.1. 1. 基本工作原理:广播与寻址
      2. 2.2.2. 2. 介质访问控制:CSMA/CD
      3. 2.2.3. 3. 以太网帧结构
      4. 2.2.4. 4. MAC 地址 (物理地址)
      5. 2.2.5. 5. 帧长度限制
  3. 3. 以太网
    1. 3.1. 设备
    2. 3.2. 自动协商机制(FAST往上都有)
    3. 3.3. 载波扩展(GB往上)
      1. 3.3.1. 最小帧长的计算
    4. 3.4. 帧突发(GB往上)
    5. 3.5. 暂停帧(GB往上)
  4. 4. 网桥
    1. 4.1. 作用
    2. 4.2. 表项内容
    3. 4.3. 后向学习算法(必考)
    4. 4.4. 生成树算法
    5. 4.5. VLAN
请输入关键词进行搜索