计算机网络杂记-05

随机接入 CSMA/CD 协议

Carrier Sense Multiple Access with Collision Detection 载波监听多路访问/碰撞检测

在早期的以太网中,采用的是随机接入的方式,即任何一个站点都可以在任何时刻发送数据帧,但是由于多个站点同时发送数据帧会造成碰撞,因此需要进行碰撞检测,如果检测到碰撞,就立即停止发送数据帧,然后等待一段随机的时间后再次发送。

MA 多址接入,即多个站点共享同一个信道,每个站点都有机会发送数据帧。

CS 载波监听,即在发送数据帧之前,先监听信道,如果信道空闲,就发送数据帧,否则等待一段时间后再次监听。(先听后说)

CD 碰撞检测,即在发送数据帧的过程中,如果检测到碰撞,就立即停止发送数据帧,然后等待一段随机的时间后再次发送。(边说边听)

争用期

争用期是指在发送数据帧之前,先监听信道,如果信道空闲,就发送数据帧,否则等待一段时间后再次监听。

最小帧长

最小帧长是指发送数据帧的最小长度,如果发送的数据帧长度小于最小帧长,就会出现碰撞检测失效的情况。

  • 以太网的最小帧长是 64 字节,如果发送的数据帧长度小于 64 字节,就会出现碰撞检测失效的情况。

  • 最小帧长的目的是为了保证在发送数据帧的过程中,能够检测到碰撞。

  • 在争用期内,没有检测到碰撞,就可以认为发送的数据帧没有发生碰撞。如果检测到碰撞,就立即停止发送数据帧,然后等待一段随机的时间后再次发送。所以但凡长度小于 64 字节的数据帧都是由于碰撞而异常终止的无效帧。

最大帧长

最大帧长是指发送数据帧的最大长度,如果发送的数据帧长度大于最大帧长,就会出现碰撞检测失效的情况。最大帧长为 1518 字节。

二进制指数退避算法

二进制指数退避算法是指在发送数据帧的过程中,如果检测到碰撞,就立即停止发送数据帧,然后等待一段随机的时间后再次发送。

  • 若连续发生 k 次碰撞,就等待一个 0 到 2^k-1 之间的随机数,然后再次发送数据帧。

  • 若连续发生 16 次碰撞,就等待一个 0 到 2^16-1 之间的随机数,然后再次发送数据帧。 2^16-1 = 65535,即最大等待时间为 65535 微秒,即 65.535 毫秒。16 次仍不成功,就放弃发送数据帧,并向上层报告发送失败。

信道利用率

信道利用率是指在发送数据帧的过程中,信道被利用的时间与总时间的比值。

应考虑以下这种理想情况

  • 各个主机发送帧不发生碰撞

  • 总线一旦空闲,就立即有主机发送帧

  • 发送一帧的时间为 t + T0,其中 t 为传播时延,T0 为帧长

S(max) = 1 / (1 + a)

a = t / T0

随机接入 CSMA/CA 协议

在无线局域网中,仍然可以使用随机接入的方式,但是由于无线信道的特殊性,无法进行碰撞检测,因此需要采用其他的方式来避免碰撞。

为何无线网路不能使用 碰撞检测

  • 对硬件要求高,需要在发送数据帧的过程中,能够检测到碰撞。

  • 存在隐藏终端问题,即 A 与 B 之间存在 C,A 与 C 之间存在 B,A 与 B 之间无法检测到碰撞,但是 A 与 C 之间存在碰撞。

Carrier Sense Multiple Access with Collision Avoidance 载波监听多路访问/碰撞避免

  • 802.11 无线局域网采用的是随机接入的方式,但是由于无线信道的特殊性,无法进行碰撞检测,因此需要采用其他的方式来避免碰撞

  • 由于不可能避免所有碰撞,并且无线信道误码率较高,802.11 标准使用了数据链路层的 ARQ 机制来保证可靠传输。

  • 802.11 的 MAC 层定义了两种基本的协议,即 DCF 分布式协调函数和 PCF 点对点协调函数。

    • Distributed Coordination Function 分布式协调函数: 采用的是随机接入的方式,即任何一个站点都可以在任何时刻发送数据帧。
    • Point Coordination Function 点对点协调函数: 采用的是集中控制的方式,即只有一个站点可以在任何时刻发送数据帧。

InterFrame Space 帧间间隔

  • IFS 是指在发送数据帧的过程中,需要等待的时间。

  • IFS 的长度与发送的数据帧的类型有关,即发送的数据帧的类型不同,IFS 的长度也不同。

  • IFS 的长度越长,优先级越高,即发送的数据帧的类型越重要。

  • 常用的 IFS 有以下几种类型

    • SIFS Short InterFrame Space 短帧间间隔;GitHub Copilot: SIFS是Short InterFrame Space的缩写,是一种短帧间间隔。在802.11协议中,SIFS是指在发送数据帧的过程中,需要等待的最短时间。SIFS的长度比PIFS和DIFS都要短,通常为16微秒。SIFS的作用是在发送数据帧的过程中,保证高优先级的数据帧能够优先传输。在802.11协议中,SIFS主要用于ACK帧和CTS帧的发送。
    • PIFS PCF InterFrame Space PCF 帧间间隔
    • DIFS DCF InterFrame Space DCF 帧间间隔;GitHub Copilot: DIFS是DCF InterFrame Space的缩写,是一种DCF帧间间隔。在802.11协议中,DIFS是指在发送数据帧的过程中,需要等待的时间。DIFS的长度比SIFS长,比PIFS短,通常为34微秒。DIFS的作用是在发送数据帧的过程中,保证低优先级的数据帧能够等待一段时间,以便高优先级的数据帧能够优先传输。在802.11协议中,DIFS主要用于发送数据帧和ACK帧之间的间隔。
    • EIFS Extended InterFrame Space 扩展帧间间隔

协议的工作原理

协议的退避算法


信道预约与虚拟载波监听

为了提高信道利用率,802.11 无线局域网采用了信道预约的方式,即在发送数据帧之前,先发送 RTS 帧,然后接收 CTS 帧,最后发送数据帧。