DiffServ (kurz für Differentiated Services) ist ein Schema zur Klassifizierung von IP-Paketen. Diese Klassifizierung kann vom Netzwerk-Scheduler zur Priorisierung von IP-Datenpaketen verwendet werden, um eine Dienstgüte (englisch: Quality of Service, QoS) sicherzustellen. DiffServ wurde erstmals 1998 in der RFC 2474[1] beschrieben. Im Gegensatz zum IntServ-Verfahren werden die Ressourcen für Verkehrsklassen und nicht für einzelne Verbindungen angefordert.
Die ursprüngliche Spezifikation von IPv4 in RFC 791[2] definierte ein Type-of-Service-Byte (ToS-Byte) im IP-Header, in den Bits 8 bis 15. Drei Bits kodierten eine Präzedenz zwischen 0 und 7, drei weitere Bits markierten Pakete für geringe Latenz, hohen Durchsatz und hohe Verlässlichkeit. Eine spätere RFC gab einem der verbleibenden Bits die Bedeutung „minimiere finanzielle Kosten“.
DiffServ beschreibt ein alternatives Verfahren, um die Bits des ToS-Bytes zu nutzen: Die ursprünglichen sechs Bits kodieren einen Differentiated Services Codepoint (DSCP) zwischen 0 und 63. Die verbleibenden zwei Bit werden in RFC 3168[3] für Explicit Congestion Notification (ECN) verwendet.
DSCPs dienen lediglich der Klassifizierung, nicht aber der Priorisierung. Das heißt, dass ein höherer Zahlenwert nicht unbedingt einer bevorzugten Behandlung entspricht. Stattdessen verweist ein DSCP auf ein Weiterleitungsverhalten (englisch Per-hop behavior, PHB). Dieses spezifiziert, wie genau mit einem Paket verfahren wird. Die beabsichtigte Architektur ist, an den Grenzen des Netzwerks, zum Beispiel auf Border-Routern, eine Klassifizierung der Pakete vorzunehmen, beispielsweise anhand von Portnummern. Router innerhalb des Netzwerkes nutzen hingegen lediglich das DS-Feld, um ein PHB auszuwählen.
In mehreren RFCs werden Weiterleitungsverhalten (PHBs) definiert, die für verschiedene Arten von Netzwerkverkehr und Ressourcenverwaltung geeignet sind. Die entsprechenden DSCPs werden von der IANA verwaltet und zugeteilt. Die Class Selector PHBs (RFC 2474[1]) sind rückwärtskompatibel zu den acht Präzedenzwerten aus RFC 791[2] und sind Vertreter einer prioritätsbasierten Ressourcenverteilung. Expedited Forwarding (EF, RFC 3246[4]) beschreibt ein Verhalten für Pakete, die eine geringe Latenz benötigen. Assured Forwarding (AF, RFC 2597[5]) beschreibt ein PHB, das Pakete in vier Klassen mit je drei Prioritäten aufteilt. Das Standardverhalten mit dem Codepoint 0 wird Best Effort (BE) genannt.
Um einen Missbrauch zu verhindern, muss sichergestellt werden, dass das DS-Feld tatsächlich an den Netzwerkgrenzen gesetzt wird. Beispielsweise könnte eine Dringlichkeitsklasse dazu missbraucht werden, um für den eigenen Dienst eine höhere Priorität gegenüber „durchschnittlichen“ Diensten zu erlangen. Um dies zu verhindern, werden an den Übergängen zu aktiven Netzwerkkomponenten so genannte „Trust Boundaries“ definiert. An dieser Stelle werden die DS-Felder der Pakete gesetzt, möglicherweise einfach auf den Standardwert 0. Solche Trust Boundaries können Switchports, an denen Endgeräte von Kunden angeschlossen sind, oder Router von Service-Providern, die Kundennetze anbinden, sein.
<ref>
-Tag; kein Text angegeben für Einzelnachweis mit dem Namen RFC2474.<ref>
-Tag; kein Text angegeben für Einzelnachweis mit dem Namen RFC791.