clicken zum download

Transcription

clicken zum download
Seminararbeit
PG Verteile Multimedia
”
Serversysteme“
Thema: RSVP & DiffServ
Andreas Goebels
Paderborn, den 21. März 2001
Inhaltsverzeichnis
1 Einleitung
1.1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 RSVP
2.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Designziele und ihre Realisierung in RSVP . . . . . . .
2.2.1 Unterstützung heterogener Empfänger . . . . .
2.2.2 variable Teilnehmerzahlen . . . . . . . . . . . .
2.2.2.1 Geplantes Abmelden eines Empfängers
2.2.2.2 Ausfall eines Empfängers . . . . . . .
2.2.3 Kanal- / Quellwechsel . . . . . . . . . . . . . .
2.2.4 dynamische Routen . . . . . . . . . . . . . . . .
2.2.5 angepasster Protokolloverhead . . . . . . . . . .
2.3 Beispielhafter RSVP Ablauf . . . . . . . . . . . . . . .
2.4 Komponenten an einem RSVP-Knoten . . . . . . . . .
2.4.1 Policy Control . . . . . . . . . . . . . . . . . . .
2.4.2 Admission Control . . . . . . . . . . . . . . . .
2.4.3 Packet Classifier . . . . . . . . . . . . . . . . .
2.4.4 Packet Scheduler . . . . . . . . . . . . . . . . .
2.5 Paket-Aufbau . . . . . . . . . . . . . . . . . . . . . . .
2.5.1 RSVP-Paket . . . . . . . . . . . . . . . . . . . .
2.5.2 Header . . . . . . . . . . . . . . . . . . . . . . .
2.5.3 Object . . . . . . . . . . . . . . . . . . . . . . .
2.6 Schwächen von RSVP . . . . . . . . . . . . . . . . . .
3 DiffServ
3.1 Definition . . . . . . . . . . .
3.2 Beispiel . . . . . . . . . . . .
3.3 Vorgehen . . . . . . . . . . . .
3.3.1 Packet Classification .
3.3.2 Traffic Conditioning .
3.3.2.1 Token-Bucket
3.3.2.2 RED . . . . .
3.3.2.3 RIO . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
5
6
6
7
7
8
9
9
9
10
10
10
10
11
11
11
12
13
.
.
.
.
.
.
.
.
14
14
14
14
15
16
16
16
16
Inhaltsverzeichnis
3.4
3.5
3.3.2.4 CBQ . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
DiffServ als Internet-Standard . . . . . . . . . . . . . . . . . . . . . . 17
Traffic Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Fazit und Ausblick
19
3
1 Einleitung
1.1
Abstract
Diese Seminararbeit wurde in Verbindung mit der Projektgruppe Verteilte Multimedia Serversysteme im WS 2000/2001 erstellt. Die Projektgruppe beschäftigt sich
mit der Übertragung digitaler Videodaten über Netze.
In diesem Zusammenhang ist es wichtig, daß den Empfängern ein bestimmter Quality of Service (QoS) garantiert werden kann. Da eine garantierte Güte in IP Netzwerken mit den bekannten Protokollen (TCP/UDP) nicht gegeben ist, müssen andere
Techniken entwickelt werden, um diese Funktionalität zu gewährleisten.
In dieser Arbeit wird einmal das RSVP Protokoll angesprochen, welches dynamisch
Bandbreiten und Empfänger- & Sendergruppen verwalten kann und mit hoher Wahrscheinlichkeit einen einmal zugesagten QoS für die gesamte Dauer einer Sitzung
anbietet. Zum anderen wird das Differentiated Services Modell erläutert, welches
die Bandbreite schon bei der Konzeption eines Netzes fix in verschiedene Klassen
aufteilt.
4
2 RSVP
2.1
Definition
Das Resource ReSerVation Protocol (RSVP) ist ein Signalisierungsprotokoll, welches im ISO-OSI Modell in der Schicht 4 angeordnet werden kann. Es verwaltet
dynamisch die zur Verfügung stehende Bandbreite und verteilt diese auf - ebenfalls möglicherweise dynamische - Sender- und Empfängergruppen. Dabei werden
vom Sender ausgehend die Datenströme, die dieser zur Verfügung stellen kann, den
Empfängern bekanntgemacht und diese reservieren Bandbreite an den Knoten, über
die die Datenpakete verschickt werden sollen, und zwar mit dem QoS, der von ihm
gewünscht wird.
RSVP ist nicht, wie z.B. TCP/IP, als point-to-point Struktur aufgebaut, sondern
spart Bandbreite durch einen multipoint-to-multipoint Aufbau. Identische Datenströme, die zu unterschiedlichen Empfängern geschickt werden, werden so lange wie
möglich über identische Routen geschickt.
Zusätzlich baut RSVP auf vorhandene Infrastruktur (TCP/UDP) auf und durch diese Systemunabhängigkeit und das Nutzen externer Routingalgorithmen ist es sehr
flexibel und leicht auf unterschiedlichsten Systemen einzusetzen.
2.2
2.2.1
Designziele und ihre Realisierung in RSVP
Unterstützung heterogener Empfänger
Nicht jeder Empfänger möchte oder kann die volle Qualität empfangen, die ein
Sender ggfs. zur Verfügung stellt. Zum Beispiel kann ein Empfänger mit Softwaredecoder vielleicht nur ein viertel des gesamten Datenstroms verarbeiten. RSVP soll
dieses berücksichtigen können und für diesen Empfänger sofort nur weniger Daten
weiterleiten, um nicht unnötig Netzwerkresourcen zu verschwenden. Dieser Punkt
wird auch in Zukunft immer wichtiger werden, wenn Netzwerkgebühren nicht mehr
nach Dauer einer Verbindung sondern nach übertragenem Datenvolumen abgerechnet werden. In diesem Fall muß dem Client die Wahl gelassen werden, wieviel er
bekommen und somit bezahlen möchte.
Dieses Designziel wird von RSVP gelöst, indem eine Reservierung empfängerinitiiert vorgenommen wird. Das bedeutet, daß ein Sender alle Empfänger darüber informiert, welche maximale Qualität er senden kann, aber der Empfänger selbst be-
5
2 RSVP
stimmt, welche Qualität er bekommen möchte. Da alle Router, über den der Sender
die maximale Qualität sendet, diesen Wert ihrer eigenen zur Verfügung stehenden
Bandbreite anpassen können, enthält der Empfänger also eine Obergrenze, nach unten kann er diesen Wert aber beliebig seinen Möglichkeiten bzw. seinen Bedürfnissen
anpassen. Der vom Empfänger gewünschte Quality of Service wird auf jedem Router,
über den dann die Pakete geschickt werden, gespeichert (siehe auch 2.2.4). Hierdurch
können Datenströme, die von einem Sender zu mehreren Empfängern geschickt werden, genau dann in die unterschiedlichen QoS -Werte aufgesplittet werden, wenn die
Wege sich teilen.
Abbildung 2.1: Heterogene Empfänger
2.2.2
variable Teilnehmerzahlen
Bei großen Empfängergruppen kann es sehr häufig vorkommen, das sich Mitglieder
abmelden oder daß neue hinzukommen. RSVP soll dieses nicht nur ermöglichen, sondern auch keinerlei erkennbare Skalierungsschwächen zeigen, ebenso kann die Menge
der Sender sich verändern, auch diese Fälle soll RSVP effizient abdecken.
RSVP arbeitet mit refresh messages, welche einen einmal gewählten Weg aufrecht
erhalten und auf Routing-Änderungen unbemerkt von Sender und Empfänger reagieren. Jeder neue Empfänger fragt alle Router auf dem Weg bis zum Empfänger,
ob die von ihm gewünschte Bandbreite noch zur Verfügung steht. Erst, wenn alle einzelnen Knoten dieses bestätigt haben, sendet der Sender auch zu dem neuen
Empfänger auf dem vorher definierten Weg, ohne daß die restlichen beteiligten Sender bzw. Empfänger dieses bemerken oder hierdurch eingeschränkt werden.
Das Abmelden eines Empfängers geht ähnlich effizient vonstatten. Es können generell zwei Fälle unterschieden werden:
2.2.2.1
Geplantes Abmelden eines Empfängers
In diesem Fall informiert der Empfänger einfach auf der gespeicherten Route zum
Sender alle beteiligten Knoten über sein Ausscheiden, und somit können die Knoten direkt die für diese Verbindung reservierte Bandbreite freigeben und neuen
Empfängern zur Verfügung stellen.
6
2 RSVP
2.2.2.2
Ausfall eines Empfängers
Bei einem Ausfall eines Empfängers kann dieser die beteiligten Knoten nicht mehr
informieren, diese leiten weiterhin alle Pakete an den Empfänger weiter und lassen
die Bandbreite für diese Verbindung reserviert. Aber dieses dauert nur solange, bis
ein TimeOut durch Ausbleiben der refresh messages auftritt. Wenn dieses geschieht,
geben die Knoten automatisch den belegten Speicherplatz frei.
2.2.3
Kanal- / Quellwechsel
Zum Beispiel bei Videokonferenzen ist es wichtig, dem Empfänger innerhalb einer
Sitzung die Auswahl eines Senders dynamisch zu ermöglichen, in diesem Szenario
etwa sollten immer von dem Sender Daten empfangen werden, der gerade die sprechende Person repräsentiert. Dabei muß sichergestellt sein, daß bei einem Wechsel
des Senders diese neue Reservierung immer Erfolg hat.
Generell gibt es drei Möglichkeiten, Verbindungen zu mehreren Sendern zu reservieren, um eben diesen Senderwechsel zu ermöglichen:
Abbildung 2.2: Quellwechsel am Beispielnetzwerk
1. Seperate Reservierung zu allen Sendern
Dieses ist der einfachste Fall, aber auch der ineffizienteste. Wir reservieren einfach am Beginn einer Übertragung zu allen Sendern einzeln die Bandbreite, die
wir irgendwann bei einem Wechsel des Senders benötigen. In diesem Beispiel
also sowohl Bandbreite von S1 zu E als auch von S2 zu E. Auf der Strecke R3
zu E haben wir hierbei unnötig reserviert, da wir niemals von beiden Sendern
gleichzeitig Pakete empfangen, aber trotzdem für diesen Fall Bandbreite reservieren. Gerade bei langen Wegen mit vielen Wegüberschneidungen und vielen
Sendern wird durch solch ein Vorgehen sehr viel Bandbreite verschwendet.
2. Seperate Reservierung jeweils zum aktuellen Sender
Die nächste Möglichkeit wäre es, die Reservierungen erst dann vorzunehmen,
wenn auch wirklich die Bandbreite benötigt wird, also hier erst Bandbreite
auf der Strecke S1 zu E zu reservieren, und dann beim Wechsel auf Sender
S2 die Bandbreite für die Verbindung S2 zu E zu reservieren. Dieses Vorgehen nutzt nur ein absolutes Minimum an Bandbreite, allerdings ist hiermit
das Designziel von RSVP verletzt, jederzeit zwischen verschiedenen Sendern
7
2 RSVP
wechseln zu können, ohne die Gefahr einer Ablehnung der Reservierung. Es
kann nämlich in diesem Beispielszenario durchaus vorkommen, daß bei einem
Wechsel auf Sender S2 die für diese Verbindung benötigte Bandbreite nicht
mehr zur Verfügung steht, da die Bandbreite durch einen neuen Empfänger
verbraucht wurde und die Reservierung damit fehlschlägt.
3. Reservierung mit Filtern an den Routern (distinct & shared reservation)
Dieses Vorgehen wird von RSVP durchgeführt, und bietet quasi einen Kompromiss zwischen den beiden vorherigen Punkten. Es wird strikt zwischen reservation und filtering unterschieden. In unserem Beispiel würde R3 entscheiden,
welche Pakete weitergeleitet werden, ob jetzt vom Sender S1 oder vom Sender
S2. Dadurch benötigt E nur die Bandbreite für einen Sender auf der Strecke
R3 zu E, aber da auf den Strecken von Sx bis R3 jeweils die Bandbreite zum
Übertragen der Pakete reserviert wurde, kann ein Senderwechsel einfach durch
Ändern der Filterregel in R3 vorgenommen werden und funktioniert auf jeden
Fall. Zwar ist in diesem Fall auch Bandbreite reserviert, die nie gleichzeitig
benutzt wird (von S1 zu R3 und gleichzeitig von S2 zu R3 ), aber dieses muß
geschehen, um Reservierungen garantieren zu können.
2.2.4
dynamische Routen
RSVP selbst enthält keinen Routing-Algorithmus, um systemunabhängiger eingesetzt werden zu können, es ist also auf externe Algorithmen angewiesen, welche die
Routen unabhängig von RSVP dauernd dynamisch anpassen (können). RSVP muss
mit solchen Routen-Änderungen fertig werden und den Quality of Service beibehalten können, ohne daß die Empfänger oder Sender davon etwas bemerken.
Dieses Designziel erfüllt RSVP, indem es mit sogenannten Soft States arbeitet. Soft
States sind eine Art Verbindung zwischen Sender und Empfänger, die in beide
Richtungen über dieselben Knoten führt und eben auch bei routing Änderungen
noch funktioniert. Diese Eindeutigkeit des Weges zwischen Sender und Empfänger
ist besonders wichtig, wenn man das letzte Designziel betrachtet. Wenn dort ein
Empfänger seinen Sender wechseln möchte, muß er dieses allen Routern bekannt
geben, die die Pakete vom Sender an ihn weiterleiten, da in diesen ggfs. die Filterregeln angepasst werden müssen. Ohne Zusatzfunktionen würden aber messages vom
Empfänger zurück an den Sender nicht unbedingt die gleichen Router passieren und
damit würde das filtering fehlschlagen.
Aus diesem Grund speichert RSVP beim Anlegen einer Verbindung in jedem Knoten, der passiert wird, den vorherigen Knoten, von dem aus das Paket geschickt
wurde. Durch diese gespeicherten Werte können jetzt Pakete vom Empfänger zum
Sender genau über die Rückwärtskanten“ geschickt werden. Dieses Prinzip funk”
tioniert auch bei Änderung der Route durch einen Routing-Algorithmus, da durch
die refresh messages laufend die Werte in den einzelnen Knoten angepasst und aktualisiert werden.
8
2 RSVP
2.2.5
angepasster Protokolloverhead
Zu guter letzt sollte der notwendige Overhead auf das notwendigste beschränkt
werden, um weder die einzelnen Router noch die Netzwerkbandbreite zu stark zu
beanspruchen.
Die Protokollfrequenz kann bei RSVP vollkommen dynamisch festgelegt werden, sie
wird in der Praxis antiproportional an die Anzahl der Empfänger und Sender angepasst, das bedeutet, daß, je mehr Empfänger in einem System vorhanden sind, desto
weniger Protokollnachrichten verschickt werden. Dieses beeinträchtigt natürlich andere Bereiche von RSVP, z.B. können Routenänderungen nicht mehr so schnell durch
TimeOuts erkannt werden, da die Frequenz der RESV- und PATH-Nachrichten eben
abnimmt. Dieses bedeutet eine zusätzliche Belastung der Gesamtbandbreite des Netzes.
2.3
Beispielhafter RSVP Ablauf
Der Aufbau einer RSVP-Verbindung zwischen einem Sender S und einem Empfänger
E läuft nach folgendem Schema ab:
Als erstes schickt der Sender eine PATH-Nachricht an alle Empfänger mit der maximalen Quality of Service, die er zur Verfügung stellen kann. Diese Nachricht wird
durch einen externen Routing Algorithmus über bestimmte Router geschickt. Diese Router können die maximale Qualität reduzieren, wenn an ihren Knoten nicht
ausreichend Bandbreite zur Verfügung steht. Gleichzeitig speichern sie bei sich den
Knoten, von dem die PATH-Nachricht an sie geschickt wurde, um einen eindeutigen
Rückweg zu definieren. Nach diesem Verarbeiten und ggfs. Modifizieren der PATHNachricht wird diese an den nächsten Router weitergeleitet, bis sie die Empfänger
erreicht hat.
Der Empfänger hat jetzt Informationen über den Content des Senders, über die
Qualität, die er maximal erhalten kann und er kennt den Knoten, an den er eine
Reservierung schicken muß. Wenn er jetzt eine Reservierung durchführen möchte,
schickt er eine RESV-Nachricht zurück, worin er gleichzeitig spezifiziert, welchen
QoS er benötigt und ebenfalls, ob und welches filtering er an den einzelnen Knoten
wünscht. Diese wird auf dem durch die PATH-Nachrichten definierten Weg zurückgeschickt und an jedem Knoten überprüft (siehe 2.4). Kommt eine RESV-Nachricht
beim Sender an, steht die Verbindung mit dem gewünschten QoS bereit und der
Sender kann Pakete verschicken.
2.4
Komponenten an einem RSVP-Knoten
In diesem Abschnitt werden die einzelnen Komponenten erläutert, die an einem
RSVP-Knoten vorhanden sind. Die ersten beiden, die Policy Control und die Admission Control, kümmern sich beim Aufbau einer Verbindung darum, ob der
Empfänger überhaupt Bandbreite reservieren kann oder darf, der Packet Classifier
9
2 RSVP
und der Packet Scheduler kümmern sich um den Versand der Pakete vom Sender
über den jeweiligen Router.
2.4.1
Policy Control
Die Policy Control ist ein sehr wichtiger Teilbereich von RSVP. Sie kümmert sich
ganz allgemein um Berechtigungen. Eine Reservierungsanfrage eines Empfängers
wird nicht automatisch weitergeleitet, sondern erst wird hier überprüft, ob genau
dieser Empfänger überhaupt vom Sender den Datenstrom erhalten darf (Kanalfreischaltungsprinzip z.B. bei PremiereWorld, FSK Beschränkungen etc.). Daher ist hier
auch die beste Stelle, Zahlungsmodalitäten abzuwickeln. Ein Beispiel für ein Berechtigungsprotokoll, welches von der Policy Control genutzt werden kann, ist z.B. das
COPS Protokoll. Wie dieses eingebunden werden kann wird beim Paketaufbau eines
RSVP Paketes näher beschrieben (siehe 2.5.1).
2.4.2
Admission Control
Die Admission Control ist zuständig für die Verwaltung der zur Verfügung stehenden
Bandbreite, sie entscheidet, ob bei einer neuen Reservierung die gewünschte Bandbreite bereitgestellt werden kann, ohne den Quality of Service der restlichen Reservierungen zu gefährden. Die Admission Control kann auch dazu eingesetzt werden,
die maximale Bandbreite pro Reservierung einzuschränken, um eine gleichmäßigere
Verteilung unter der gesamten Empfängermenge zu erreichen, und nicht nur wenige Nutzer mit unrealistisch hohen Reservierungen zu bedienen; dieses ist zusätzlich
hilfreich gegen Attacken auf das eigene Netz, die durch extreme Bandbreitenanforderungen sonst anderen Empfängern den Zugang verwehren könnten.
Erst wenn die Policy- und die Admission Control einer gewünschten Reservierung
zugestimmt haben, wird diese an den nächsten Knoten weitergeleitet, ein Nein von
einer dieser beiden Komponenten führt zur Ablehnung eines Reservierungswunsches.
2.4.3
Packet Classifier
Der Packet Classifier ist, wie der Name schon vermuten läßt, für die Klassifizierung
der Pakete vom Server zu den unterschiedlichen Empfängern zuständig. An dieser
Stelle wird das filtering durchgeführt, d.h. der Classifier entscheidet anhand der
Werte im filterSpec, ob und wohin ein Paket weitergeleitet wird. Er hängt es an
eine Queue an und dort enscheidet dann der Scheduler über den Zeitpunkt der
Weiterleitung.
2.4.4
Packet Scheduler
Der Packet Scheduler regelt die Quality of Service der Pakete an den Empfänger
anhand der Werte im flowSpec. Durch den Zeitpunkt der Weiterleitung kann er die
10
2 RSVP
Menge der Pakete steuern, die den Empfänger endgültig erreichen werden. Wie bereits anfangs beschrieben kann dieser QoS individuell von jedem Empfänger vorher
bestimmt werden, es muß also auch vom Scheduler jeder Empfänger separat verwaltet und behandelt werden.
2.5
2.5.1
Paket-Aufbau
RSVP-Paket
Ein RSVP Paket hat einen sehr flexiblen Aufbau, es besteht aus einem Header
und dann einer (fast beliebigen) Anzahl von Objekten. Je nach Typ der RSVP
Nachricht sind einige Objekte notwendig, andere optional, z.B. ist in jedem Paket
das SESSION Objekt enthalten, welches den Zielpunkt der Nachricht beschreibt.
Durch diesen sehr variablen Aufbau einer Nachricht ist RSVP sehr flexibel, dadurch
können z.B. Berechtigungsprotokolle wie COPS einfach eingebaut werden, allerdings
entsteht hierdurch auch der große Aufwand für die Router, da alle Pakete an jedem
Routerc erst entschlüsselt und verarbeitet werden müssen.
Im folgenden wird der Header aufgeschlüsselt und eine Übersicht über alle Objectund Message-Typen gegeben.
2.5.2
Header
Der Header besteht aus folgeden Feldern:
• Vers (4 Bit): Versionsnummer von RSVP, momentan 1.0
• Flags (4 Bit): Im Moment werden diese Bits noch nicht benutzt
• Message Type (8 Bit): Der Typ der Nachricht
– PATH : Eine Nachricht eines Senders an Empfänger
– RESV : Eine Reservierungsanfrage eines Empfängers an einen Sender
– PATHERR: Eine Fehlermeldung vom Sender
– RESVERR: Eine Fehlermeldung vom Empfänger
– PATHTEAR: Ein Aufgeben einer Verbindung durch den Sender
– RESVTEAR: Ein Aufgeben einer Verbindung durch den Empfänger
– RESVCONF : Eine Bestätigung einer Reservierung durch den Sender
• Checksum (16 Bit): Einerkomplement der Einerkomplementsumme der Nachricht (0 = keine Checksumme)
• Send TTL (8 Bits): Der TimeToLive-Wert aus dem IP Paket
• RSVP Length (16 Bit): Die Gesamtlänge des RSVP Paketes, einschließlich
Header und Länge aller Objekte
11
2 RSVP
2.5.3
Object
Ein Objekt besteht aus folgenden Feldern:
• Length (16 Bit): Die totale Länge des Objektes in Byte
• Class-Num (8 Bit): Beschreibt die Objektklasse, folgende Klassen sind vorhanden:
– NULL: Ein Null-Objekt, dieses wird von allen Empfängern ignoriert
– SESSION : Dieses Objekt muß in jedem RSVP Paket enthalten sein. Es
enthält die IP Adresse des Empfängers des aktuellen Paketes und den
Port, über den kommuniziert wird. Durch diese Daten wird die Sitzung
definiert.
– RSVP HOP : Dieses Objekt enthält die IP Adresse des letzten sendenden
RSVP-fähigen Knotens. Dieser Wert wird von jedem Knoten geändert,
indem jeder seine eigene IP-Adresse hier einträgt, der Wert wird gespeichert, um später den Rückweg der RESV-Nachrichten korrekt abwickeln
zu können (siehe 2.2.4).
– TIME VALUES : Enthält den Wert der refresh Periode. Hierdurch wird
die Protokoll-Frequenz bestimmt und damit die timeOut values.
– STYLE : Definiert die Reservierungsart und spezielle Daten, die nicht in
den flowSpec oder filterSpec Objekten enthalten sind. Dieses Objekt muß
in jedem RSVP Paket enthalten sein.
– FLOW SPEC : Beschreibt die verlangte Quality of Service einer RESVNachricht.
– FILTER SPEC : Beschreibt die Menge an Sendern, zu denen reserviert
werden soll.
– SENDER TEMPLATE : Muss in jeder PATH Nachricht vorhanden sein
und beschreibt den Sender anhand seiner IP Adresse und weiterer Senderspezifischer Daten.
– SENDER TSPEC : Muss in jeder PATH Nachricht vorhanden sein und
beschreibt den Datenstrom, den der Sender liefert (maximale QoS etc.).
– ADSPEC : Enthält OPWA (One Pass With Advertising) Daten einer
PATH Nachricht, das ist die maximale Qualität, die über alle Router
hinweg einem Empfänger zur Verfügung gestellt werden kann.
– ERROR SPEC : Eine genaue Fehlerspezifikation und -beschreibung.
– POLICY DATA: Daten, die in der Policy Control benötigt werden, um
zu entscheiden, ob ein Empfänger Daten empfangen darf.
– INTEGRITY : Enthält Daten zur Verifizierung einer RSVP Nachricht.
– SCOPE : Enthält eine explizite Liste von Sendern, an die eine Nachricht
weitergeleitet werden soll.
12
2 RSVP
– RESV CONFIRM : Enthält die IP Adresse eines Empfängers, der eine
Bestätigung seiner Reservierung wünscht.
• Class Type (8 Bit): Dieser Wert wird nur in Verbindung mit Class Num gesetzt,
die Aufsplittung in zwei Felder erfolgt aus Kompabilitätsgründen
• Object Contents: Die eigentlichen Daten des Objektes, die Länge dieses Feldes wird durch die Gesamtlänge des Objektes bestimmt und muß immer ein
Vielfaches von 4 betragen
2.6
Schwächen von RSVP
Bei RSVP fallen drei deutliche Schwächen auf:
• Sehr großer Verwaltungsaufand an den einzelnen Routern: Die Knoten müssen
jedes Paket differenziert betrachten und weiterleiten, und dazu erst den gesamten Header interpretieren. Außerdem müssen zu jedem reservierten Datenfluß
zwischen Sender und Empfänger mehrere Flußspezifische Daten gespeichert
und verwaltet werden und die Routen durch regelmäßige refresh messages aufrechterhalten werden. Durch diese Punkte wird sowohl die Bandbreite als auch
die Effizienz der Router sehr stark beeinträchtigt und macht RSVP dadurch
für große Netze, z.B. das Internet, vollkommen ungeeignet.
• RSVP Verbreitung: Jeder Knoten, über den geroutet wird, muß RSVP unterstützen, ansonsten kann die reservierte Quality of Service nicht garantiert
werden. Auch dieser Punkt ist in großen Netzwerken nur schwer zu realisieren.
Allerdings können RSVP Verbindungen prinzipiell auch über nicht RSVP-fähige Router aufgebaut werden, dann ist der gewünschte QoS aber nur noch mit
gewisser Wahrscheinlichkeit aufrechtzuerhalten.
• Dynamische Routenänderungen: RSVP kommt zwar gut mit Routenänderungen durch externe Algorithmen zurecht, da diese durch die dauernden refresh
messages erkannt werden, allerdings kann bei dem neu gerouteten Weg die
vorherige reservierte Bandbreite und damit der gewünschte Quality of Service
nicht garantiert werden. Diesem Nachteil wird im Moment durch verschiedene Mechanismen versucht, entgegenzuwirken, z.B. soll durch route pinning an
einmal gewählten Routen festgehalten werden.
13
3 DiffServ
3.1
Definition
Differentiated Services ist ein Modell, welches nicht dynamisch Bandbreite verwaltet,
sondern schon bei der Konzeption eines Netzes die zur Verfügung stehende Bandbreite in verschiedene Klassen aufteilt. Dadurch ist die Last an den Routern nicht
mehr, wie bei RSVP, abhängig von der Anzahl der Pakete, sondern nur noch von
der Anzahl der erzeugten Klassen.
Die einzelnen Klassen können dann an unterschiedliche Kunden verkauft werden
und bilden somit eine garantierte Bandbreite für diese Kunden. Um eine sinnvolle
Netzauslastung zu allen Zeitpunkten zu garantieren, können sich die Klassen untereinander Bandbreite ausleihen. Ebenso wie bei anderen Protokollen bietet DiffServ
die Möglichkeit, Pakete abzuweisen, wenn die Bandbreite überbucht wird, hier werden allerdings einige intelligentere Verfahren angewandt als beispielsweise in Standard IP Netzen.
3.2
Beispiel
Dieses Modell kann man am besten an einem Beipiel erläutern. Ein Provider könnte seine Bandbreite in zwei Klassen aufteilen, eine Standard Klasse mit 34% der
Bandbreite und eine Premium Klasse mit den restlichen 66%. Diese beiden Klassen
können nun an verschiedene Kunden verkauft werden, denen jeweils die 34 bzw. 66%
der Bandbreite garantiert werden. Sobald einer von beiden Kunden seine Bandbreite
nicht vollständig ausnutzt, kann der freie Teil von der anderen Klasse ausgeliehen“
”
werden. Diese zusätzliche Bandbreite muß allerdings sofort wieder freigegeben werden, wenn sie von dem eigentlichen Besitzer benötigt wird. Aus kommerzieller Sicht
bietet sich für den Provider die Möglichkeit an, Bandbreite zu überbuchen, d.h. die
verkaufte Bandbreite wird nur noch mit einer gewissen Wahrscheinlichkeit garantiert.
3.3
Vorgehen
Bei DiffServ müssen an den beteiligten Routern prinzipiell zwei Techniken angewandt werden: Einmal müssen die Pakete klassifiziert werden (packet classification),
14
3 DiffServ
Abbildung 3.1: Beispielhafte Konzeption eines Netzes in zwei Klassen
d.h. ihrer jeweiligen Bandbreite zugeordnet werden, und es muß geregelt werden, was
passiert, wenn eine Bandbreite überbucht wurde (traffic conditioning). Diese beiden
Techniken werden im folgenden erläutert:
3.3.1
Packet Classification
Die Klassifizierung von Paketen kann auf drei Arten erfolgen, wobei sich diese Verfahren auch kombinieren lassen:
• Klassifizierung durch Felder im IPvX
– IPv4: type of service field (TOS)
– IPv6: traffic class field (TC)
Diese Felder werden bisher noch nicht benutzt, es können also durch die neuen
Werte keine Fehlinterpretationen der IP Pakete vorkommen. Das Einbinden
von DiffServ in die Standardprotokolle hat natürlich den Vorteil, daß durch
diese Technik die gesamte DiffServ-Erweiterung abwärtskompatibel ist. Da das
Feld allerdings nicht unbedingt für diese Funktionalität vorgesehen war, kommen Schwierigkeiten auf, da Applikationen selbständig dieses Feld modifizieren
dürfen, und somit durch Benutzereingriffe Veränderungen der Klassen erreicht
werden können, was im allgemeinen Fall natürlich nicht erwünscht ist.
• Klassifizierung durch Inhalt
Ähnlich wie bei einem packet filtering in Firewalls werden Quell- und Ziel-
15
3 DiffServ
IP zusammen mit dem Port dazu genutzt, die Pakete zu identifizieren und
darüber der korrekten Klasse zuzuordnen.
• Klassifizierung durch Header
Man kann natürlich auch wieder, ähnlich wie bei RSVP, eine zusätzlichen
Header um die Pakete basteln, hierbei bietet sich MPLS (multi protocol label
switching) an, allerdings treten hier wieder ähnliche Schwierigkeiten auf, da
jeder Knoten MPLS unterstützen muß, um verbindliche Aussagen über die zur
Verfügung stehende Bandbreite machen zu können.
3.3.2
Traffic Conditioning
Durch traffic conditioning sollen Heuristiken zur Verfügung gestellt werden, die den
Datenfluß direkt reduzieren oder Pakete intelligent“ löschen können. Im folgenden
”
werden vier Verfahren kurz angerissen:
3.3.2.1
Token-Bucket
Beim Token-Bucket-Verfahren verteilt der Router Tokens. Nur die Pakete, die ein
Token erhalten haben, dürfen weitergeleitet werden. Um Bursts im Netzwerk ausgleichen zu können, besteht bei diesem Verfahren noch die Möglichkeit, Tokens bis
zu einer bestimmten Obergrenze zu speichern (im sog. Bucket). Durch dieses Verfahren kann der Router direkt auf die Datenrate der Pakete Einfluß nehmen, indem
er den Tokenfluß anpasst.
3.3.2.2
RED
Beim random early detection Verfahren werden Pakete, die sich in der Queue befinden, zufällig gelöscht. Dabei ist die Anzahl der zu löschenden Pakete abhängig vom
Füllstand der Queue, je mehr Pakete sich darin befinden, desto mehr Pakete werden
gelöscht. Der Vorteil bei der zufälligen Auswahl der zu löschenden Pakete liegt darin,
daß nicht - wie in normalen IP Netzen - immer nur die zuletzt eintreffenden Pakete
gelöscht werden, sondern daß alle Pakete und damit alle Datenströme an diesem
Router gleichmäßig gebremst werden.
3.3.2.3
RIO
RIO (RED with In and Out) ist eine Erweiterung des RED Prinzipes, hier wird noch
unterschieden zwischen inprofile und out-of-profile Paketen, wobei inprofile Pakete
mit einer kleineren Wahrscheinlichkeit verworfen werden.
3.3.2.4
CBQ
Beim class bases queuing wird das Round-Robin-Prinzip durchgeführt. Durch Zeitscheiben wird die Klassengewichtung der Pakete beeinflußt. Wenn zusätzliche Band-
16
3 DiffServ
breite zur Verfügung steht, werden erst die Klassen mit der höheren Priorität berücksichtigt und ihnen die freie Bandbreite zusätzlich zur Verfügung gestellt.
3.4
DiffServ als Internet-Standard
Bei der Implementierung von DiffServ als Internet-Standard wurde einmal das TOSfield des IPv4 (entsprechend das TC-field beim IPv6) völlig neu interpretiert, es wird
zum DS-field. Wie vorher schon erwähnt wird dieses Feld bisher nicht genutzt, es
treten also keine Schwierigkeiten bei dieser Uminterpretation auf. Zusätzlich betrachtet die Implementierung noch Teilnetze auf dem gerouteten Weg. In diesen
Teilnetzen unterscheidet DiffServ zwischen border-nodes und interior-nodes. Die
border-nodes befinden sich am Rand des Teilnetzes und können noch in ingressund egress-Knoten unterteilt werden. An diesen Randknoten wird der Hauptteil der
Analysearbeit durchgeführt, sprich die Klassifizierung wird bestimmt und direkt in
den Paketen gespeichert. Die interior nodes können daher einfach auf die vorberechneten Werte zugreifen und können die Pakete so sehr effizient den einzelnen Klassen
zuordnen, da sie im allgemeinen deutlich mehr Pakete betrachten müssen als die
border nodes. Dadurch ist das gesamte Teilnetz merklich effizienter.
3.5
Traffic Engineering
Bisher wurde angenommen, daß eine garantierte Bandbreite auch immer garantiert
ausgenutzt werden kann, in der Praxis gibt es aber immense Probleme, in einem
Teilnetz, in dem prinzipiell ausreichend Bandbreite vorhanden ist, alle Pakete so zu
routen, daß die Bandbreite optimal aufgeteilt ist und es nirgendwo zu Engpässen
kommt. Dieser Teilbereich von DiffServ ist momentanes Forschungsgebiet und bisher
noch nicht zufriedenstellend gelöst worden.
In diesem Beispiel stellt zum Beispiel die egress Kante den Flaschenhals dar und
Routingalgorithmen müssen intelligent versuchen, alle Pakete, die von den unterschiedlichen ingress Knoten kommen, zu routen, sodaß der egress Knoten optimal
ausgelastetet ist.
17
3 DiffServ
Abbildung 3.2: Teilnetz mit border nodes (B): ingress (I) und outgress (O)
18
4 Fazit und Ausblick
Beide Verfahren beschäftigen sich mit einem garantierten Quality of Service. RSVP
hat den Vorteil, sehr dynamisch auf verschiedenste Teilnehmergruppen und Routings durch ein Netzwerk reagieren zu können, allerdings ist der immense Protokolloverhead gerade im Internet einfach zu komplex, wodurch es hierfür vollkommen
ungeeignet ist. Es gibt aber schon Weiterentwicklungen dieser Technik (advanced reservation), welche den Overhead einzudämmen versuchen, wodurch dieses Protokoll
vielleicht doch noch einen sinnvollen Einsatz zuläßt.
DiffServ kann genau die Nachteile von RSVP ausgleichen, hier ist der Aufwand an
den einzelnen Routern unabhängig von der Anzahl der über ihn verschickten Pakete, sondern lediglich abhängig von der Anzahl der Klassen, die im allgemeinen
relativ gering ist (< 10). Allerdings ist das Traffic Engineering hier noch aktuelles
Forschungsgebiet und konnte bis jetzt noch nicht sinnvoll gelöst werden, wodurch
auch dieses Prinzip in seiner Grundform nicht wirklich praktikabel einsetzbar ist,
jedenfalls nicht in komplexen und dynamischen Netzen wie z.B. dem Internet.
Erfolgreicher als die beiden Einzelvarianten könnte auch eine Kombination aus beiden sein, wobei durch RSVP-Knoten der Zugang zu einen DiffServ (Teil-)Netz geregelt wird. Auch hieran wird im Moment geforscht.
19
Literaturverzeichnis
[1] Roland Balmer. Integration von Integrated und Differentiated Services, November 1999.
[2] Andreas Goebels. RSVP & DiffServ Presentation, Februar 2001.
[3] Network Working Group. RFC 2205: Resource ReSerVation Protocol (RSVP)
– Version 1 Functional Specification, September 1997.
[4] Network Working Group. RFC 2475: Architecture for Differentiated Services,
December 1998.
[5] Martin Karsten. RSVP Signalling for Commercial QoS, May 2000.
[6] Sebastian Lederer. Differentiated Services, 1999.
[7] Michael Lenhart. Kostenmodelle für Abrechnungen, Least Cost Routing und
Quality of Service, Januar 1998.
[8] Achim Meinerhagen. Network Support for Quality-of-Service Guarantees, November 1997.
[9] Stefan Menne. Das Resource Reservation Protocol, 1999.
[10] S. Hoch, S. Kolen, G.Schlipköther. RSVP - Resource Reservation Protokoll,
1999.
20