20.11.2013 Aufrufe

Quality of Service (QoS)

Quality of Service (QoS)

Quality of Service (QoS)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Quality</strong> <strong>of</strong> <strong>Service</strong> (<strong>QoS</strong>)<br />

Hauptseminar<br />

Virtuelle Präsenz<br />

WS 03/04<br />

Netzwerkprotokolle<br />

<strong>Quality</strong> <strong>of</strong> <strong>Service</strong> (<strong>QoS</strong>)<br />

2003-11-20<br />

Steffen Moser<br />


Übersicht<br />

• Was ist <strong>QoS</strong>?<br />

• Situation heute<br />

• Gründe für Bedarf nach <strong>QoS</strong><br />

• Ansätze zur Realisierung von <strong>QoS</strong><br />

• Integrated <strong>Service</strong>s (Intserv)<br />

• Differentiated <strong>Service</strong>s (Diffserv)<br />

• Beispiel Linux<br />

• Zusammenfassung


Was ist <strong>QoS</strong>?<br />

• Definition nach ITU-T E.800:<br />

„Collective effect <strong>of</strong> service performances which<br />

determine the degree <strong>of</strong> satisfaction <strong>of</strong> a user <strong>of</strong> a service“.<br />

• Verschiedene Kriterien, die die Güte eines Dienstes in einem Datennetz<br />

beschreiben, sowie die Möglichkeiten, die ein Netzwerk bietet, einer<br />

Anwendung bestimmte Qualitäten verbindlich zuzusichern.<br />

• Ressourcen (Bandbreite, Pufferspeicher, CPU, usw.) sind nicht<br />

unbeschränkt verfügbar.<br />

• Details und mögliche Realisierungen später.


Situation heute<br />

• Das Internet als Beispiel für ein paketvermitteltes Netz:<br />

• Datenübermittlung in Form von kleinen Datenpakten des Internet<br />

Protokolls („IP“-Pakete).<br />

• IP-Pakete bestehen aus IP-Header + Nutzdaten (Payload):<br />

0 1 2 3<br />

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

|Version| IHL |Type <strong>of</strong> <strong>Service</strong>| Total Length |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| Identification |Flags| Fragment Offset |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| Time to Live | Protocol | Header Checksum |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| Source Address |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| Destination Address |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| Options | Padding |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

IP-Header (IPv4)


Situation heute (Forts.)<br />

• Shared medium<br />

• Insbesondere keine physikalische Verbindung oder Leitung, die einer<br />

Sitzung (z.B. Zugriff eines Webclients auf einen Webserver) fest<br />

zugeordnet bleibt - Gegensatz zu Telefonnetz.<br />

• Pakete (auch innerhalb einer Sitzung) können verschiedene Wege<br />

nehmen, Wegewahl erfolgt anhand von Tabellen.<br />

• Rechner, die Datenpakete weiterleiten, werden Router bzw. speziell<br />

IP-Router genannt.


Situation heute (Forts.)<br />

• IP-Router im heutigen Internet arbeiten nach dem „Best-Effort“- Prinzip,<br />

d.h.: Auslieferung von Daten nach bestem Bemühen.<br />

• Konkret:<br />

• Router besitzt Warteschlange für weiterzuleitende IP-Pakete,<br />

Abarbeitung der Warteschlange nach dem FIFO-Prinzip.<br />

• Ist die Warteschlange voll, und es kommen dennoch weitere IP-<br />

Pakete an, werden diese verworfen.<br />

Man spricht von Paketverlusten (packet loss).


Situation heute (Forts.)<br />

• IP-Pakete können also <strong>of</strong>fensichtlich verloren gehen.<br />

• Insbesondere keine Garantien seitens des Netzes bzgl. Zustellung,<br />

maximaler Paketlaufzeit, Bandbreite, usw. vorhanden.<br />

• Eine höhere Protokollschicht muss sich um die erneute Zustellung eines<br />

verloren gegangenen Pakets kümmern.<br />

Im Allgemeinen ist dies die Transportschicht (im Falle von TCP), im Falle<br />

von UDP muss die Anwendung selber den Fehler behandeln.


Gründe für Bedarf nach <strong>QoS</strong><br />

• Verschiedene Anwendungen haben unterschiedliche Anforderungen an<br />

ein Netz:<br />

• Anwendungen im Bereich der virtuellen Präsenzen sind stark<br />

interaktiv, d.h., Paketlaufzeiten (Pufferfüllstand in Routern) sollten<br />

möglichst klein gehalten werden.<br />

• Übertragung von multimedialen Daten in Echtzeit (z.B. für virtuelle<br />

Treffen, Videokonferenzen) benötigt zugesicherte Bandbreite.<br />

• Unterschiedliche Prioritäten z.B. bei layered video coding.<br />

• Herunterladen von S<strong>of</strong>tware, Mail, News, usw. problemlos mit<br />

niedrigerer Priorität möglich (insbesondere keine Zusicherungen<br />

erforderlich).


Ansätze zur Realisierung von <strong>QoS</strong><br />

• Geändertes Drop-Verhalten von Routern in Abhängigkeit des Inhalts der<br />

Datenpakete und der gemachten Zusicherungen.<br />

• Dazu Einordnen der Pakete in Datenflüsse, anschließend Behandlung<br />

mittels verschiedener Algorithmen:<br />

• Fair Queuing, Class Based Fair Queuing, Token Bucket Filter, ...<br />

• Zugangsknoten des Netzes überprüft, ob die Ressourcen, die eine<br />

Anwendung anfordert, verfügbar sind.<br />

• Falls ja, Reservierung der Ressourcen und Erlauben des Zugangs.<br />

• Falls nein, wird der Anwendung nur „Best Effort“ zugeteilt (wie heute<br />

üblich)


Ansätze zur Realisierung von <strong>QoS</strong><br />

• Zwei verschiedene Ansätze bzw. Vorschläge zur konkreten Realisierung<br />

der vorgestellten Konzepte:<br />

• Integrated <strong>Service</strong>s (IntServ)<br />

• RFC 1633<br />

• Differentiated <strong>Service</strong>s (DiffServ)<br />

• RFC 2475


Integrated <strong>Service</strong>s<br />

• Verschiedene <strong>Service</strong>-Klassen:<br />

• Guaranteed <strong>Service</strong> (für Echtzeitanwendungen)<br />

• Controlled Load (statistische Garantie)<br />

• Best Effort (wie bekannt)<br />

• Resource Reservation Protocol (RSVP) dient zur Reservierung von<br />

Ressourcen:<br />

• Medien-Server teilt den einzelnen Routern zwischen Server und<br />

Client mit, wieviel Ressourcen (z.B. Bandbreite) benötigt wird.<br />

• Anschließend erhält er eine Nachricht, ob die Reservierung<br />

erfolgreich war.


Integrated <strong>Service</strong>s (Forts.)<br />

• Bewertung:<br />

• Modulares Konzept: RSVP ist vollkommen unabhängig von den<br />

konkret verwendeten Mechanismen in den Routern (Abstraktion).<br />

• Sehr detaillierte Möglichkeiten:<br />

• Pro Datenfluss verschiedene Qualitäten möglich.<br />

• Ressourcenbedarf in den Routern sehr hoch: für jeden Datenfluss<br />

benötigt der Router einen eigenen Zustand.<br />

• Skaliert in großen Netzen schlecht.


Integrated <strong>Service</strong>s (Forts.)<br />

• Was passiert bei Änderung des IP-Routings (dynamisches Routing)?<br />

• Würde ein einfacheres Konzept für viele Anwendungen nicht bereits<br />

ausreichen?


Differentiated <strong>Service</strong>s<br />

• Grundsätze:<br />

• Unterscheidung zwischen Kern- (core) und Randnetzen (edge).<br />

• Router in Kernnetzen (hoher Datendurchsatz) sollen möglichst wenig<br />

Last durch <strong>QoS</strong> haben, möglichst viel Arbeit soll zu den Randnetzen<br />

verlagert werden.<br />

• Router sollen keine Zustände für einzelne Flüsse benötigen,<br />

stattdessen Abstraktion von Datenflüssen und Definition einiger<br />

Traffic-Klassen.<br />

• Umfunktionierung des Type <strong>of</strong> <strong>Service</strong>-Feldes (TOS) im IPv4-Header als<br />

sog. DiffServ CodePoint (DSCP)


Differentiated <strong>Service</strong>s (Forts.)<br />

• TOS-Feld:<br />

0 1 2 3 4 5 6 7<br />

+-----+-----+-----+-----+-----+-----+-----+-----+<br />

| | | |<br />

| PRECEDENCE | TOS | MBZ |<br />

| | | |<br />

+-----+-----+-----+-----+-----+-----+-----+-----+<br />

1000 -- minimize delay<br />

0100 -- maximize throughput<br />

0010 -- maximize reliability<br />

0001 -- minimize monetary cost<br />

0000 -- normal service<br />

• DSCP-Feld:<br />

0 1 2 3 4 5 6 7<br />

+---+---+---+---+---+---+---+---+<br />

| DSCP | CU |<br />

+---+---+---+---+---+---+---+---+<br />

DSCP: differentiated services codepoint<br />

CU: currently unused<br />

Expedited Forwarding (Premium <strong>Service</strong>) EF 101110<br />

Best Effort BE 000000<br />

Assured <strong>Service</strong> Class 1 Drop Prec Low AF11 001010<br />

Assured <strong>Service</strong> Class 1 Drop Pred Med. AF12 001100<br />

Assured <strong>Service</strong> Class 1 Drop Pred High AF13 001110<br />

Assured <strong>Service</strong> Class 2 Drop Pred Low AF21 010010<br />

Assured <strong>Service</strong> Class 2 Drop Pred Med. AF22 010100<br />

.<br />

.<br />

Assured <strong>Service</strong> Class 4 Drop Pred High AF43 100110


Differentiated <strong>Service</strong>s (Forts.)<br />

• Router in Randnetzen klassifizieren IP-Pakete anhand verschiedener<br />

Kriterien (Source-/Dest.-IP, Source-/Dest.-Port, Medienlayer) und setzen<br />

den DSCP für jedes Paket.<br />

• Router in Kernnetzen interpretieren lediglich den DSCP und teilen die<br />

Pakete in unterschiedliche „Per Hop Behaviour“-Klassen (PHB) ein.


Differentiated <strong>Service</strong>s (Forts.)<br />

• Angeboten werden:<br />

• vier Klassen Assured <strong>Service</strong> mit je drei unterschiedlichen Drop<br />

Precedences (siehe Beschreibung DSCP-Feld).<br />

• Anwendung: Layered video coding<br />

• eine Klasse Premium <strong>Service</strong> (Expedited Forwarding) für „gut<br />

zahlende Kunden“.<br />

• Emuliert eine gemietete Leitung (d.h. leere Puffer in Routern)<br />

• Garantien<br />

• Best-Effort


Differentiated <strong>Service</strong>s (Forts.)<br />

• Bewertung:<br />

• Wie wird geregelt, wie viele Pakete für Expedited Forwarding markiert<br />

werden dürfen?<br />

• Wie viel Last dieser Art verkraftet das Netz?<br />

• Zugangskontrolle<br />

• Bandwidth broker<br />

• Gute Skalierbarkeit<br />

• Entlastung der Kernnetze von Klassifierzungsaufgaben


Beispiel Linux<br />

• Linux-Kernel 2.4 kann DiffServ „von Haus aus“<br />

• Konfiguration von Filtern, Queuing Disciplines<br />

und Traffic-Klassen mit Hilfe des Utilities „tc“.<br />

• Konzept:


Beispiel Linux (Forts.)<br />

• Beispielkonfiguration:<br />

• Edge Router (Klassifizierung):<br />

1. tc qdisc add dev eth0 handle 1:0 root dsmark indices 64<br />

2. tc class change dev eth0 classid 1:1 dsmark mask 0x3 value 0xb8<br />

3. tc class change dev eth0 classid 1:2 dsmark mask 0x3 value 0x68<br />

4. tc class change dev eth0 classid 1:3 dsmark mask 0x3 value 0x48<br />

5. tc filter add dev eth0 parent 1:0 protocol ip prio 4 handle 1: u32 divisor 1<br />

6. tc filter add dev eth0 parent 1:0 protocol ip prio 5 handle 2: u32 divisor 1<br />

7. tc filter add dev eth0 parent 1:0 prio 4 u32<br />

match ip dst 10.0.0.0/24<br />

police rate 1Mbit burst 2K continue<br />

flowid 1:1<br />

8. tc filter add dev eth0 parent 1:0 prio 5 u32<br />

match ip dst 10.0.0.0/24<br />

flowid 1:2<br />

9. tc filter add dev eth0 parent 1:0 prio 4 u32<br />

match ip dst 10.1.0.0/16<br />

match ip src 192.1.0.0/16<br />

match ip protocol 6 0xff<br />

match ip dport 0x17 0xffff<br />

flowid 1:3


Beispiel Linux (Forts.)<br />

• Beispielkonfiguration:<br />

• Core Router<br />

(Umsetzung PHB)<br />

1. tc qdisc add dev eth0 handle 1:0 root dsmark indices 64 set_tc_index<br />

2. tc filter add dev eth0 parent 1:0 protocol ip prio 1 tcindex mask 0xfc shift 2<br />

3. tc qdisc add dev eth0 parent 1:0 handle 2:0 cbq<br />

bandwidth 10Mbit allot 1514 cell 8 avpkt 1000 mpu 64<br />

4. tc class add dev eth0 parent 2:0 classid 2:1 cbq<br />

bandwidth 10Mbit<br />

rate 1500Kbit avpkt 1000 prio 1 bounded isolated<br />

allot 1514 weight 1 maxburst 10 defmap 1<br />

5. tc qdisc add dev eth0 parent 2:1 pfifo limit 5<br />

6. tc filter add dev eth0 parent 2:0 protocol ip prio 1<br />

handle 0x2e tcindex classid 2:1 pass_on<br />

7. tc class add dev eth0 parent 2:0 classid 2:2 cbq<br />

bandwidth 10Mbit rate 5Mbit avpkt 1000 prio 7<br />

allot 1514 weight 1 maxburst 21 borrow<br />

8. tc qdisc add dev eth0 parent 2:2 red limit 60KB min 15KB<br />

max 45KB burst 20 avpkt 1000 bandwidth 10Mbit<br />

probability 0.4<br />

9. tc filter add dev eth0 parent 2:0 protocol ip prio 2<br />

handle 0 tcindex mask 0 classid 2:2 pass_on


Zusammenfassung<br />

• IntServ und DiffServ mächtige Konzepte zur Realisierung von<br />

<strong>QoS</strong> in IP-Netzen.<br />

• Insbesondere DiffServ skaliert in großen Netzen gut<br />

• Bis heute allerdings Einsatz dieser Technologien nur in Versuchs-netzen<br />

(Test beds).<br />

• Keine Versuchsanwendung aus dem Bereich der virtuellen<br />

Präsenzen bekannt, die von <strong>QoS</strong> eines zu Grunde liegenden<br />

Netzes direkt Gebrauch macht.<br />

• Langfristige Entwicklung in Richtung: „You get what you pay for“.


Zusammenfassung (Forts.)<br />

• Diskussion, Fragen und Anregungen

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!