Es muss bereits im Voraus klar gestellt werden, dass ganze Bücher über Quality-of-Service gibt. Es ist also nicht möglich alles in einem kurzen Artikel zu erfassen. Dennoch möchte ich trotzdem die Gelegenheit nutzen mein Wissen und Erfahrungen mit euch zu teilen. Vieles musste ich recherchieren, denn von der Theorie auf die Praxis liegen Welten. Wenn ich Traffic zuordne und klassifiziere, dann denke ich selten, welche Bits welchen Wert haben.

Ich hoffe, falls jemand dieses Artikel liest, dass es hilfreich ist und falls ich Fehler gemacht habe, dann freue ich mich über ein kurzes Feedback.

Artikel in dieser Reihe:
Quality of Service (QoS) – Kurze Einführung
Quality of Service (QoS) – Congestion Management

Woher kommt QoS und wie funktioniert das?

1981 wurde das ToS-Byte innerhalb des IP-Headers durch das RFC-791 definiert.

Schauen wir uns ein IP-Header ein bisschen mehr detailliert an

Ver | IHL | TOS | Packet Length
Identification | Flags | Fragment Offset
Time to live | Protocol | Header Checksum
Source address
Destination address
Options | Padding
Data

Am Anfang war das ToS-Byte wie folgt definiert:

0 ¦ 1 ¦ 2 ¦ 3 ¦ 4 ¦ 5 ¦ 6 ¦ 7
Precedence¦ Type of Service

Die erste drei Bits (Precedence bit) wurden verwendet um den Vorrang zu definieren. Je höher dieser Wert, desto wichtiger war dieses IP-Paket. Das wurde bedeuten, dass im Falle einer Überlastung der maximale Bandbreite, Pakete mit niedriger Priorität einfach verworfen wären, um die Übertragung wichtigere Pakete gewährleisten zu können.

Die Bits restlichen 5 Bits (Type of Service bit) wurden genutzt um verschiedene Werte für Throughput, Delay oder Zuverlässigkeit festzusetzen.

Precedence Bit

Mit drei Bits können wir nur folgende Werte erzeugen:

000 = (0) Routine
001 = (1) Priority
010 = (2) Immediate
011 = (3) Flash
100 = (4) Flash Override
101 = (5) Critical
110 = (6) Internetwork Control
111 = (7) Network Control

Mit Type of Service hingegen haben wir Bits 3-5 für Delay, Throughput und Reliability zur Verfügung. Bits 6-7 sind reserviert für zukünftige Funktionen.

Delay (Bit 3)
0 = Normal delay / 1 = low delay

Throughput (Bit 4)
0 = Normal Throughput / 1 = High throughput

Reliability (Bit 5)
0 = Normal reliability / 1 = High reliability

Differentiated Services

Fast 20 Jahre später wurde das TOS-Byte im RFC-2474 neudefiniert. Nicht nur die Verwendung der Bits wurde geändert sondern auch der Name. Aus TOS-Byte entstand das DS-Feld (Differentiated Services). Das DS-Feld stellt uns 6 Bits zur Verfügung:

0 ¦ 1 ¦ 2 ¦ 3 ¦ 4 ¦ 5 ¦ 6 ¦ 7

Bits 0-5 wird von dem DSCP-Feld (Differentiated Services Code Point) belegt. Somit stehen 64 verschiedene Werte zur Verfügung. Bits 6-7 sind reserviert, oder besser gesagt „Currently Unused“.

Innerhalb des DSCP-Feldes findet man mehrere Teile:

Bits 0-2 = Class
Bits 3-4 = Drop
Bit 5 = Unused

DSCP Binary Decimal IP Precedence
Default 000000 0 0
CS1 001000 8 1
AF11 001010 10 1
AF12 001100 12 1
AF13 001110 14 1
CS2 010000 16 2
AF21 010010 18 2
AF22 010100 20 2
AF23 010110 22 2
CS3 011000 24 3
AF31 011010 26 3
AF32 011100 28 3
AF33 011110 30 3
CS4 100000 32 4
AF41 100010 34 4
AF42 100100 36 4
AF43 100110 38 4
CS5 101000 40 5
EF 101110 46 5
CS6 110000 48 6
CS7 111000 56 7

Mit „Differentiated Services Code Point“ jeder Router verarbeitet alle IP-Pakete auf die selbe Art und Weise. Es entsteht ein neues Konzept „PHB (Per-Hop Fordwarding Behaviour). Jeder Router kann den Verkehr basiert auf seine Klassifizierung verwalten.

Per-Hop Forwarding Behaviour. CS, AF & EF?

CS steht für Class Selector. Wie wir das oben in der Tabelle gesehen haben, die Class-Selectors enden immer mit 000 und werden gebraucht, um eine Rückwärtskompatibilität mit Netzwerk-Geräte, welche nicht DSCP-Konform sind, zu sichern. Die ersten 3 Bits stehen für die IP-Precedence. Zum Beispiel CS3 in Binär 011000 (011 = 3).

AF steht für Assured Forwarding und wird eingesetzt wo man Bandbreite garantieren muss.

EF steht für Expedited Forwarding und wird gebraucht um einen Low-Delay Service zu garantieren.

Wie kommt man von DSCP AF41 zu 100010?

Nehmen wir ein paar Werte als Beispiel und erklären wir Diese, damit es die Tabelle für uns einfacher wirkt.

AF41 = 100010

Die ersten drei Bits (0-2 / 100 ) teilen das Paket zu einer Klasse zu. In unserem Fall entspricht den binärischen Wert 100, im Dezimal wäre das 4.

Die nächsten zwei Bits (3 & 4) definieren die Drop-Wahrscheinlichkeit. Je höher dieser Wert, desto höher ist die Wahrscheinlichkeit, dass dieses Paket verworfen wird. Mit zwei Bits können wir drei Werte darstellen:

1 = 0 ¦ 1 - Low Drop Probability
2 = 1 ¦ 0 - Medium Drop Probability
3 = 1 ¦ 1 - HIgh Drop Probability

Bits 3 & 4 in unserem Fall haben die Werte 01, demzufolge haben eine „Low Drop Probability“

Das fünfte Bit ist 0 und wird ignoriert. So zusammen gefasst:

AF41
Bits 0-2 = 100 = 4
bits 3-4 = 01 = 1

Also AF100(4)01(1)

AF41 vs AF43 (34 vs 38)

AF43 hat eine höhere Dezimale Precedence als AF41, aber der Verkehr von AF41 wird bevorzugt, weil die Drop-Wahrscheinlichkeit kleiner ist 01 vs 11. Warum? AF4x gehören zu der selben Klasse, nähmlich CS4. Drop-Prioritäten werden nur innerhalb der selben Klasse verglichen. AF43 hat eine höhere Drop-Wahrscheinlichkeit innerhalb der Klasse 4 (CS4).

AF21 vs AF43

Hier ein konkretes Beispiel. AF21 hat eine kleinere Drop-Wahrscheinlichkeit als AF43. Dennoch gehört AF21 zu der Klasse 2 (CS2) und deswegen ist es AF43 (CS4) unterliegend.

Wenn man ein ganz wenig nach oben scrollt, sieht man das auf der Tabelle ganz ersichtlich. Man könnte zum Verständnis die Tabelle wie folgt darstellen:

  Low Drop Probability Medium Drop Probability High Drop Probability
CS1 AF11
001010
AF12
001100
AF13
001110
CS2 AF21
010010
AF22
010100
AF23
010110
CS3 AF31
011010
AF32
011100
AF33
011110
CS4 AF41
100010
AF42
100100
AF43
100110
CS5 EF
101110
   

Die ersten drei Bits in dem DSCP-Wert ist entscheidend, Dieser sagt aus, in welcher Klasse sich befindet. Die nächsten zwei Bits beschreiben wie hoch die Wahrscheinlichkeit ist, dass dieses Paket verworfen wird in Falle einer Congestion.

Wie klassifiziere ich mein Netzwerk-Verkehr am besten?

Es gibt keine Regel wie man die Daten im Netzwerk behandeln soll. Jeder hat seine Bedürfnisse und die sind von Geschäft zu Geschäft anders.

Dennoch kann man eine Empfehlung geben…

  • Video: AF41
  • Critical Data: AF31
  • Transactional Data (SQL, SAP): AF21
  • Bulk Data (Email, FTP): AF11

Wie oben bereits erwähnt. Für eine Person sind FTP Daten viel wichtiger als SQL. Somit kann man keine klare Regel dafür erstellen.

Hinterlasse einen Kommentar

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..