🧸安清h:个人主页
🎥个人专栏:【计算机网络】【Mybatis篇】
🚦作者简介: 一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。
系列文章目录
【计算机网络篇】物理层 (CSDN热榜文章)
【计算机网络篇】数据链路层 功能|组帧|流量控制与可靠传输机制(CSDN热榜文章)
文章目录
[✨ CSMA/CA协议](#✨ CSMA/CA协议)
🎯一.协议
🚦1.1连续ARQ协议
连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。发送方收到了对第一个分组的确认,就会把发送窗口向前移动一个分组的位置。
在上图中,(b)中1-6有三种状态,分别为:
- 1:已发送并且收到确认的帧
- 2-5:已发送还没确认的帧
- 6:可以发送但是还没发送的帧
🚦1.2后退N帧协议
如果发送方只发送了前5个分组,而其中的第3个分组丢失了,这时的接收方只能对前两个分组确认,然后发送方把后面的分组都再重传一次。
✨累积确认
接收方一般都是采用累计确认的方式。接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认,这就表示:到这个分组为止的所有分组都已正确收到了。
- 优点:容易实现,即使确认丢失也不必重传
- 缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。
🚦1.3选择重传协议
当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传出出错的那一帧。一旦收到重新传来的帧后,就可以与已存于缓冲区的其余帧一并按正确的顺序递交高层。(累计确认不适用)
✨滑动窗口变量设置
发送端设立一个变量,称为发送窗口,用SWS;
接收端设立一个变量,称为接收窗口,用RWS;
发送窗口大小表示在没有收到确认帧的情况下,发送端最多可以发送的帧的个数(停止等待协议中SWS=1);
✨发送窗口规则
发送窗口内的帧是允许发送的帧,而不考虑有没有收到确认。发送窗口右侧所有的帧都是不允许发送的帧;
每发送完一个帧,允许发送的帧数就减一,发送窗口的位置不变;
发送端收到一个帧的确认,发送窗口就向右移动一个位置。
✨接收窗口大小根据需要设定
RWS=1 ( 一次只能接收一个帧)
RWS=SWS (可以将发送端发送的帧全部接收)
RWS>SWS (无意义)
🎯介质访问控制
🚦信道划分
频分复用技术(FDM):同样的时间占用不同的带宽资源
时分复用技术(TDM):不同的时间占用同样的带宽资源
码分复用技术(CDM):允许多个用户在同一时间使用相同频带进行通信
码片序列(chip sequence):每个站被指派唯一的mbit码片序列。如:发送比特1,则发送自己的mbit码片序列;发送比特0,则发送该码片序列的二进制反码。
码分多址(CDMA)的重要特点:
- 每个站分配的码片序列不仅必须各不相同,并且还必须正交;
- 码片向量和其他任何站码片向量的规格化内积都为0;
- 码片向量和自己的规格化内积为0;
- 码片向量和该码片的反码向量的规格化内积为-1。
🚦随机访问介质控制
✨ALOHA协议(了解)
用户有帧即可发送,不会监听。
✨载波监听多路访问(CSMA)
在发送数据之前,节点会先检测信道是否空闲,如果信道空闲,则可以发送数据;如果信道被占用,则等待一段随机时间后再次检查信道的状态。
CSMA有几种不同的形式,包括1-坚持CSMA、非坚持CSMA和p-坚持CSMA。1-坚持CSMA是指节点在检测到信道空闲后立即发送数据,如果信道忙,则持续监听直到信道空闲后立即发送。非坚持CSMA是指节点在检测到信道忙时,会随机等待一段时间再进行侦听,若发现信道不忙则立即发送。p-坚持CSMA则结合了前两者的特点,节点在信道空闲时以一定概率发送数据,忙时则等待一段时间后再侦听。
✨CSMA/CD协议
带有冲突检测的载波监听多路访问(Carrier Sense Multiple Access with Collision Detection)。协议的实质是载波监听和碰撞检测。CSMA/CD协议的工作流程可以概括为以下几个步骤:
载波监听(Carrier Sense):发送数据之前,先监听信道上是否存在信号。如果信道空闲,则可以发送数据;如果信道被占用,则等待。
发送数据(Send Data):当信道空闲时,将数据帧发送出去。
碰撞检测(Collision Detection) :在发送数据的同时,不断检测信道上是否有碰撞信号。如果检测到碰撞,则进入下一步处理冲突。就是计算机边发送数据边检测信道上的信号电压大小。
冲突处理(Collision Handling):一旦检测到碰撞,发送数据的节点会立即停止发送,并等待一段随机时间后再次尝试发送。等待的时间随着重试的次数增加而增加。
重传机制(Retransmission):在等待一段时间后,发送数据的节点会重新尝试发送数据。如果多次重传仍然失败,则放弃发送。
本图为传播时延对载波监听的影响,显然,在使用CSMA/CD协议时,一个站不可能同时进行发送和接收。因此,CSMA/CD的以太网不可能进行全双工通信,而只能进行半双工通信。
在t = 0时,A发送数据。B检测到信道为空闲。
在t = τ - δ 时(这里τ > δ > 0),A发送的数据还没有到达B时,由于B检测到信道是空闲,因此B发送数据。
经过时间δ / 2后,即在t = τ - δ / 2时,A发送的数据和B发送的数据发生了碰撞。但这时A和B都不知道发生了碰撞。
在t = τ 时,B检测到发生了碰撞,于是停止发送数据。
在t = 2τ - δ 时,A也检测到发生了碰撞,因而也停止发送数据。
以太网的端到端的往返时延2τ称为争用期,或碰撞窗口。经过争用期这段时间没有发生碰撞,才能肯定发送不会再出现碰撞。
最短有效帧长:64字节
🍔截断二进制指数退避
用来确定碰撞后重传的时机。
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
确定基本退避时间,一般是取为争用期 2τ 。
定义重传次数 k, k ≤10,即
k= Min[重传次数, 10]
从整数集合[0, 1,...,(2^k -1) ]中随机地取出一个数,记为 r。
重传所需的时延就是 r 倍的基本退避时间。
当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
- 推迟最大时间:当k=10时,r=1023,1023*2τ
- 推迟最小时间:0
✨无线局域网不能简单搬用CSMA/CD原因
无线局域网不能简单地搬用有线网络中使用的CSMA/CD(Carrier Sense Multiple Access with Collision Detection)协议,主要原因包括:
-
硬件实现成本:CSMA/CD协议要求网络中的每个站点在发送数据的同时,必须不间断地检测信道,以便发现是否有其他站点也在发送数据,从而实现"冲突检测"。在无线局域网的设备中,要实现这种功能的成本较高。
-
隐蔽站问题 :在无线网络中,由于信号传播的范围受限,可能存在两个站点相互之间无法听到对方的信号,但都能听到一个共同的接收站点的信号。这两个站点可能会同时向共同的接收站点发送数据,导致冲突,而发送站点无法检测到这一冲突。下图中,A和C同时向B发送数据时就会碰撞。
-
暴露站问题 :即使某个站点没有检测到信道上的其他信号,它也可能不是真的空闲。例如,一个站点可能只想发送数据给附近的另一个站点,而不是广播给所有站点。如果其他站点检测到信道忙,它们可能会推迟发送,即使它们的传输不会干扰到这个站点的传输。下图中,如果B向A发送数据,C准备向D发送数据,但是由于在其作用范围内检测到了发送数据时所发出的信号,就会推迟发送。
✨ CSMA/CA协议
无线局域网不能使用CSNA/CD,而只能使用改进的CSMA/CA协议。
🍔帧间间隔IFS
所有的站在完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。
这段时间的通称是帧间间隔 IFS (InterFrameSp7ace)。
帧间间隔长度取决于该站欲发送的帧的类型。高优先级帧需要等待的时间较短,因此
可优先获得发送权。
若低优先级帧还没来得及发送而其他站的高优先级帧已发送到媒体,则媒体变为忙态
因而低优先级帧就只能再推迟发送了。
🍔工作原理
载波侦听(Carrier Sense):
- 在发送数据之前,设备首先会侦听无线信道是否空闲。
- 如果信道忙(检测到其他设备的信号),设备会等待直到信道变为空闲。
随机退避(Random Backoff):
- 一旦信道空闲,设备不会立即发送数据,而是引入一个随机退避时间,这个时间是从一个预定义的范围内随机选择的。
- 这个退避时间的设置是为了避免多个设备在信道变为空闲的同时开始发送数据,从而减少冲突的可能性。
数据传输:
- 在完成退避时间后,设备会尝试发送数据帧。
确认机制(Acknowledgment, ACK):
- 接收设备在成功接收数据帧后,会发送一个ACK帧作为响应。
- 如果发送设备在一定时间内没有收到ACK,它会认为传输失败,然后重新执行CSMA/CA流程,并可能在再次发送前增加退避时间。
帧间间隔(Interframe Space, IFS):
- 在发送新的数据帧之前,设备会等待一个IFS时间段,以确保高优先级的帧(如ACK、CTS)可以优先发送。
- 不同类型的帧使用不同长度的IFS,例如SIFS(最短)、PIFS和DIFS。
RTS/CTS(Request to Send/Clear to Send):
- 在发送数据帧之前,发送设备可以发送一个RTS(Request to Send)帧来请求信道使用权。
- 接收设备在收到RTS后,如果信道空闲,会响应一个CTS(Clear to Send)帧。
- 其他设备在收到RTS或CTS后,会更新它们的退避计时器,以避免在这段时间内发送数据。
以上就是今天要讲的内容了,主要在协议与介质访问控制方面做了详细的描述,如果您感兴趣的话,可以订阅我的相关专栏。非常感谢您的阅读,如果这篇文章对您有帮助,那将是我的荣幸。我们下期再见啦🧸!