有线和无线网络在数据链路层的特性存在差异,具体为:
- CSMA/CD 用于有线网络,通过检测和处理冲突来维持网络的稳定性。
- CSMA/CA 用于无线网络,强调冲突的预防,以应对无线信道共享的挑战
1 有线网 CSMA/CD
有线网 CSMA/CD (Carrier Sense Multiple Access with Collision Detection,载波侦听多路访问与冲突检测)
在有线网络中,设备间通过网线相互连接,它的工作原理是
- 载波侦听CS:设备在发送数据之前会先监听网络,以检测是否有其他设备在传输数据。如果检测到网络空闲,则开始发送数据。
- 多路复用MA:总线型网络,许多计算机以多点接入的方式连接在一根总线上
- 冲突检测CD : 在数据发送过程中,设备持续监听网络。如果检测到冲突 (即两个或多个设备同时发送数据导致信号混合) ,发送数据的设备会停止传输,并发送一个"冲突信号"以通知网络上的其他设备。
- 重传数据: 发生冲突后,设备会等待一段随机的时间后再次尝试发送数据。这个随机等待时间称为"退避算法",可以有效减少后续冲突的可能性。
有线网的CSMA/CD依赖于网线共享介质,设备在数据发送的过程中,还可以检测网线状态
2 无线网 CSMA/CA
CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,载波侦听多路访问/冲突避免)
与有线网不同的是,无线网通过电磁波进行数据交互。无线是半双工工作模式,无线客户端没有同时进行接收和发送的能力,无法检测到冲突。
因此无线网使用的机制是冲突避免。
- 载波侦听CS:设备在发送数据之前也会监听无线信道,检查是否有其他设备在使用。只有信道空闲,设备才会继续执行发送操作。
- 多路复用MA:多个计算机可以同时接入
- 冲突避免CA :
- 发送请求:为了尽量避免冲突,在发送数据之前,设备可能会先发送一个"准备发送"信号 (如RTS,即请求发送 ) ,并等待接收设备返回"允许发送"信号 (如CTS,即清除发送) 。
- 数据发送:收到 CTS 信号后,设备才会发送数据。
- ACK确认:数据发送成功后,接收设备会发送一个确认信号 (ACK) 。如果发送设备在规定时间内没有收到 ACK,它会认为数据丢失并重新发送。
ACK机制
- 数据帧成功发送并被接收设备接收到后,接收设备会发送一个 ACK (Acknowledgment)帧 给发送设备,表示数据成功到达。
- 如果发送设备在指定时间内未收到 ACK,它会认为数据丢失并重新发送
- 保证了数据传输的可靠性,避免了数据丢失后无反馈导致的传输失败
RTS/CTS 机制 (Request to Send / Clear to Send)
引入"准备发送"请求 (RTS) 和"允许发送"确认 (CTS) 这两个控制帧,在发送数据之前确保信道空闲,减少隐蔽节点问题
- RTS(Request to Send):发送设备首先向接收设备发送一个 RTS 帧,表明自己想要发送数据
- CTS (Clear to Send):接收设备在确认信道空闲后,会回复一个 CTS 帧,允许发送设备进行数据传输
隐藏节点与暴露节点
- 隐藏节点:在接收者AP的通信范围内而在发送者STA1通信范围外的节点STA2
- 暴露节点 :在发送者STA1的通信范围之内而在接收者AP通信范围之外的节点STA2
- 问题:STA1发送时,STA2错误地认为不能向STA1范围之外的接受者AP2发送
- 解决:只有当收到AP1的CTS帧时才保持安静;若没有收到,则说明AP1不再STA2的范围内,此时STA2发送数据不会发到AP1,也就不会影响SAT1向AP1发送
即:收到CTS帧则静默,没收到则认为信道空
随机退避算法(Random Backoff Algorithm)
当信道忙碌时,设备不会立即重新尝试发送数据,而是会等待一个随机的时间段后再尝试。
- 随机等待时间由 退避算法 (Backoff Algorithm) 决定,以减少多个设备同时再次尝试发送数据的可能性,从而避免冲突
- 具体做法:
- 每次检测到信道忙碌后,设备会生成一个随机退避时间。
- 退避时间越长,设备等待的时间越久,从而分散重试时间点,降低冲突概率
- 退避时间最短的站优先发送数据帧,该最短时间称为退避窗口
- 其他设备再次检测到信道忙碌生成退避时间时,则新的退避时间 = 上次退避时间 - 退避窗口
帧间间隔 (Interframe Space, IFS)
用于控制设备在发送数据帧之间的等待时间,以确保无线信道的公平性和有效性。
EEE 802.11 标准定义了几种不同类型的 IFS
- 短帧间间隔 (Short Interframe Space,SIFS)
- 用于高优先级的操作,如 ACK 确认帧、CTS 帧、以及从站的响应帧
- 确保重要数据能够迅速传输而不受其他帧的干扰
- 点协调功能帧间间隔 (Point Coordination Function Interframe Space, PIFS)
- 用于集中控制模式下,接入点 (AP) 在无竞争的情况下使用,如在 PCF (点协调功能) 模式下的优先级操作
- 用于在竞争前启动通信,以便接入点在竞争阶段之前获得信道控制权
- 分布式协调功能帧间间隔 (Distributed Coordination Function Interframe Space, DIFS)
- 用于普通数据帧的传输,通常在竞争环境中使用
- 正常数据帧在竞争信道时使用的间隔,确保优先级较低的设备在优先级较高的操作完成后再尝试发送数据
- 扩展帧间间隔 (Extended Interframe Space, EIFS)
- 当一个设备接收到一个有错误的数据帧时,它会等待 EIFS 时间后再试图发送数据
- 最长,避免网络中更多的冲突或干扰发生。
- 当设备认为信道状况不佳时,会使用更长的等待时间以减少进一步的冲突。
- NAV 是其它设备的一个时间记时器,当设备的 NAV 计时器大于零时,设备会认为信道正在被其他设备占用,因此不会尝试进行传输,被禁止访问介质。
- ACK 之后有个 DIFS (分布式协调功能帧间间隔),这是个竞争窗口,容许优先级低的设备再尝试发送数据
载波侦听 (Carrier Sensing)
物理载波侦听与虚拟载波侦听
- 物理载波侦听:在设备发送数据之前,它会先侦听无线信道,检查是否有其他设备在使用该信道。如果信道空闲,设备才会继续后续的发送操作。
- 虚拟载波侦听 :是通过网络分配器 (如无线接入点) 来管理信道的占用情况,利用控制帧 (如 RTS/CTS)来减少冲突
网络分配向量(Network Allocation Vector,NAV)
- 无线设备在信道上听到某些控制帧 (如 RTS/CTS 或数据帧) 时设置的一个计时器,表示该设备预计信道会被占用的时间,设备会在 NAV 计时器归零之前避免传输数据
- 一种虚拟载波侦听机制,与物理载波侦听相结合有助于更准确地判断信道状态,减少冲突
- 工作原理:
- NAV 设置: 当一个设备在无线信道上接收到某个帧 (如 RTS 或 CTS) 时,它会读取该帧中的持续时间字段 (Duration Field) 。这个字段表示该帧预期的占用时间,包括发送数据帧和接收 ACK 所需的时间。接收设备会根据这个持续时间设置自己的 NAV 计时器
- 信道占用判断: 当设备的 NAV 计时器大于零时,设备会认为信道正在被其他设备占用,因此不会尝试进行传输。NAV 计时器归零后,设备会再次检查信道是否空闲,如果空闲,则可以开始自己的传输。