# Timeout Media Access Control

Timeout Media Access Control (T-MAC, engl. „Zeitüberschreitungs-Medienzugriffskontrolle“) ist ein Netzwerkprotokoll für Sensornetze. Es wandelt das Sensornetzprotokoll Sensor Media Access Control (S-MAC) ab, um sparsamer im Energieverbrauch zu sein.
Netzwerkprotokolle legen bis ins kleinste Detail fest, wie die Computer eines Rechnernetzes untereinander Daten austauschen. Sensornetze bestehen aus winzigen, drahtlos kommunizierenden Sensorknoten, die in großer Zahl in einem Gebiet ausgebracht werden, sich selbständig vernetzen und ihre Umgebung in Gruppenarbeit solange mit Sensoren überwachen, bis ihre Energiereserven erschöpft sind. Sie bilden damit eine Sonderform des mobilen Ad-hoc-Netzes und stellen gänzlich andere Anforderungen an ein Netzprotokoll als beispielsweise das Internet.
T-MAC wurde 2003 von Tijs van Dam und Koen Langendoen von der Technischen Universität Delft vorgestellt.

## Protokollaufbau

Sensorknoten können in einen Standby-Betrieb wechseln, in dem sie alle Bauteile bis auf die interne Uhr abschalten. Ein zentrales Anliegen von Sensornetzprotokollen ist es, die Dauer dieser Schlafphasen zu maximieren, um Energie zu sparen. T-MAC setzt wie sein Vorgänger S-MAC auf einen grundlegend regelmäßigen Wechsel von Wach- und Schlafphasen. Durch das von S-MAC übernommene Synchronisationsschema werden im Netz möglichst große Gruppen gebildet, die dem gleichen Tagesrhythmus folgen.
Anders als bei S-MAC legen sich Sensorknoten bei T-MAC jedoch früher schlafen, wenn sie innerhalb einer festgelegten Zeitspanne TA kein Aktivierungsereignis (engl. activation event) wie eine Nachrichtenankündigung oder das Freiwerden des Kommunikationsmediums für eigene Übertragungen wahrnehmen. Dieser Timeout war namensgebend für das Protokoll. Bei T-MAC wachen also alle Knoten einer Gruppe gleichzeitig auf, gehen jedoch zu unterschiedlichen Zeitpunkten schlafen. Die Länge der Zeitspanne TA muss auf die restlichen Umstände des Protokolls abgestimmt werden, um sicherzustellen, dass die Knoten sich nicht deaktivieren, bevor andere Sensorknoten Kontakt herstellen konnten.

### Zukünftige Sendeanfrage

S-MAC folgt bei der Datenübertragung dem Rendezvous-Schema. Dabei sendet der Sender eine Sendeanfrage (RTS, request to send), die vom Empfänger mit einer Sendefreigabe (CTS, clear to send) bestätigt wird. Der Sender überträgt daraufhin seine Daten stückweise in Form von Datenpaketen. Jedes Paket wird vom Empfänger mit einer Empfangsbestätigung (ACK, acknowledgement) bestätigt. Kommt ein Datenpaket nicht an, so bleibt das ACK aus und der Sender schickt das letzte Datenpaket erneut. Sowohl Sendeanfrage als auch Sendebestätigung enthalten die erwartete zeitliche Dauer der nachfolgenden Datenübertragung, so dass mithörende Knoten das voraussichtliche Kommunikationsende abschätzen können.
T-MAC ergänzt dieses Schema um eine zukünftige Sendeanfrage (FRTS, future request to send) (vgl. Abbildung). Bekommt ein Sensorknoten RTS und CTS benachbarter Knoten mit, so würde er als Folge davon nach dem klassischen Schema Stillschweigen bewahren, um die anlaufende Kommunikation nicht zu stören. Bei T-MAC hat ein solcher Knoten die Möglichkeit, direkt nach dem mit angehörten CTS eine zukünftige Sendeanfrage an seinen gewünschten Gesprächspartner auszusenden. Dieser FRTS informiert den Angesprochenen nicht nur über den bestehenden Kontaktwunsch, sondern auch über die zeitliche Dauer der anderen Kommunikation. Sowohl Sender als auch Empfänger des FRTS können daraufhin eine genau bemessene Schlafphase einlegen.
Um das FRTS überhaupt erst zu ermöglichen, wird der Beginn der Datensendung nach dem CTS verzögert. Dazu verschickt der Sender zunächst ein Datensignal (DS, data send), das keinerlei Nutzdaten enthält, aber dem Empfänger versichert, dass die eigentliche Datensendung demnächst beginnt. Je nach Netztopologie können DS und FRTS beim Empfänger kollidieren, d. h. sich im Kommunikationsmedium überlagern und gegenseitig unlesbar machen; das ist jedoch unerheblich, da der Empfänger nicht auf den Inhalt der Nachrichten angewiesen ist. Der Sinn des DS-Paketes besteht darin, das Medium für den Zeitraum zwischen dem Empfang des CTS und dem Anfang der eigentlichen Datenübertragung zu belegen, um eine Übernahme des Mediums durch einen anderen Knoten zu verhindern.
Die beiden mit Hilfe des zukünftigen Sendeantrags verabredeten Sensorknoten wachen zu einem vereinbarten Zeitpunkt auf und starten ihrerseits das Rendezvous-Manöver.

### Priorisierung durch Anfragenablehnung

T-MAC schlägt eine zweite Neuerung vor, die es den Sensorknoten ermöglicht, eigene Prioritäten zu berücksichtigen. Die Knoten sammeln zu sendende Mitteilungen in einem Nachrichtenausgang, bis sie Gelegenheit haben, ihre Daten zu versenden. Je nach anfallender Datenmenge und Größe des zur Verfügung stehenden Speichers ist es möglich, dass dieser Nachrichtenausgang voll läuft. Ist das der Fall, so wird der Sensorknoten bevorzugt Nachrichten versenden mögen, statt welche zu empfangen. Nachrichten versenden kann der Knoten jedoch erst, nachdem er erfolgreich eine Sendeanfrage gestellt hat.
Nach T-MACs zweitem Vorschlag bekommen Sensorknoten die Möglichkeit, eine an sie gerichtete Sendeanfrage abzulehnen, wenn sie stattdessen lieber selbst Daten senden möchten. Dazu ignorieren sie die empfangene Sendeanfrage und senden sofort ihrerseits eine Sendeanfrage aus. Der Sender der ersten Sendeanfrage nimmt diese zweite Sendeanfrage wahr und ersieht daraus, dass der Angesprochene zunächst Wichtigeres zu tun hat; er sieht daher von weiteren Anfragen ab.
Die Entwickler bemerkten selbst, dass bei dieser zweiten Neuerung Vorsicht geboten ist. Gibt es im Netz ein hohes Datenaufkommen, so ist es wahrscheinlich, dass gleichzeitig die Nachrichtenausgänge mehrerer Knoten voll laufen. In der Folge würden zu viele Knoten Anfragen ablehnen, was den Datendurchsatz stark senken würde oder gar ganz zum Erliegen brächte.

## Quellen

Hauptquelle:
* T. van Dam, K. Langendoen: An Adaptive Energy-Efficient MAC Protocol for Wireless Sensor Networks. (PDF; 284 kB) In: Proceedings of the First ACM Conference on Embedded Networked Sensor Systems (SenSys), Los Angeles, Kalifornien, November 2003.
Einzelnachweise:
* ↑ s. Hauptquelle