DSP

ALOHA协议简介

2019-07-13 20:18发布

写在最前

由于实验室需要,我要做一些网络仿真的工作。无论能否毕业,都希望能够把学习的东西用博客记录下来,作为见证我研究生阶段的学习过程,仅此而已。

ALOHA网络的历史背景

One of the early computer networking designs, development of the ALOHA network was begun in September 1968 at the University of Hawaii under the leadership of Norman Abramson along with Thomas Gaarder, Franklin Kuo, Shu Lin, Wesley Peterson and Edward Wheldon. The goal was to use low-cost commercial radio equipment to connect users on Oahu and the other Hawaiian islands with a central time-sharing computer on the main Oahu campus. The first packet broadcasting unit went into operation in June 1971. Terminals were connected to a special purpose “terminal connection unit” using RS-232 at 9600 bit/s.[11]
以上摘自维基百科,简要概括一下:ALOHA最初在1968年由夏威夷大学的一个团队所设计。AlOHA目的是要用低成本的商业无线电设备进行Oahu与夏威夷其它岛屿的无线通信(通过一台部署在Oahu的时分计算机上)。ALOHAnet 最重要的贡献在于其利用共享介质来进行终端的传输。ALOHAnet 全部的终端节点与集线器(hub)用同一个频率进行传输,而不像ARPANET任意节点只能通过一根网线与一个节点通信。这种共享介质需要解决的是如何确定“哪个”节点“何时”发送消息。ALOHAnet 通过确认/和重传的机制来解决共享介质中可能出现的冲突问题。由于节点之间不需要商量“谁拥有发消息的权利”(像令牌网),因此这种机制大量接地了协议和网络的复杂性。这种机制后来叫做 pure ALOHA 或者 随机接入信道,成为了以太网及Wi-Fi 网络的基础。其它版本的ALOHA(如,时隙ALOHA)也被应用到卫星通信及无线数字通信网中(ARDIS,Mobitex,CDPD 和GSM)。

THE ALOHA SYSTEM–Another alternative for computer communications

有很多网络教材有介绍ALOHA,但是个人觉得还是直接看论文舒服一点。这是ALOHA的论文,夏威夷大学的人写的。一下是论文的主要内容。

The ALOHA System

这里写图片描述 如图可以看到,整个系统由两个部分组成:1、中央电脑为中心的中央节点,功能是接受终端的信号并作出处理,并把ackMessage发送到终端上。中间有一个HP 2115计算机作为MENEHUME(分封无线电网路之中央讯号处理节点)。后面就是发送/接受的modem和对应的设备。(这种结构其实就是Server/Client结构,由于70年代的时候个人pc还没普及,需要由多台终端来共享一台计算机,个人认为)。2、系统包含了k个终端,每个终端可以独立的接受和发送消息。 消息从MENEHUME发送到终端是完全没有问题的,只要在MENEHUME上构造一个优先级的队列及进行有序发送就可以了。但是从终端到MENEHUME就存在不能进行直接的复用的问题。这是因为整个系统的任意时刻只有一小部分的终端会被激活,以及终端数据的突发性质,使得复用的机制为这个系统带来效率的降低。因此,这个系统引入了随机接入通信来解决终端发送到MENEHUME的问题。 这里写图片描述 上图,向我们演示了终端之间的发送的packet存在冲突的时候,会如何进行处理。终端的主要算法在一下伪代码给出: # ALOHA N=1 while N<= max : send(frame) wait(ack_on_return_channel or timeout) if (ack_on_return_channel): break # transmission was successful else: # timeout wait(random_time) N=N+1 else: # Too many transmission attempts 简要概括就是:终端发消息,等待确认消息或者触发超时。若接受到确认消息就发送下一条消息,若是超时,则随机等待一段时间,重传没发送成功的packet。
大体的算法是如此,跟以太网的CSMA/CD中的机制有点类似。

一些数学证明

这里写图片描述
这里写图片描述

补充

ALOHA system 有以下几点的特性:
  • 固定的帧长度,以及共享信道(channel)或介质(medium)。
  • 数据帧携带目的节点的地址
  • 节点在共享信道上发送数据帧,并且监听共享信道
  • 一个节点可以在任意时刻发送数据帧,不管信道的状态
  • 节点可以知道它发送的数据帧是否成功到达或者与其它数据帧发生冲突了。 (An ACK maybe used, or the node listens to the downlink broadcast channel in the original ALOHA system for its own frame)

参考文献

  1. Abramson N. THE ALOHA SYSTEM: another alternative for computer communications[C]//Proceedings of the November 17-19, 1970, fall joint computer conference. ACM, 1970: 281-285.
  2. https://www.seas.upenn.edu/~kassam/tcom370/n99_12.pdf
  3. Bonaventure O. Computer Networking: Principles, Protocols, and Practice[M]. The Saylor Foundation, 2011.