Eine Möglichkeit der Zuordnung eines IP-Pakets ist die Nutzung des Type-of-Service-Bytes (ToS) im IPv4-Header. Dabei gibt es sind zwei Varianten. RFC 791 definiert mit den Bits 0 bis 2 acht Klassen, von »Routine« über »Immediate« bis zu »Network-Control«. Pakete mit einem höheren Octal-Wert in diesem 3-Bit-Feld werden vorrangig behandelt (IP-Precedence). Variante 2 verwendet die Bits 3 bis 6, um eine normale und vier besondere Service-Klassen zu kennzeichnen. Dies steht im RFC 1349.
Ungünstigerweise wird dieses vier Bit große Teilfeld des ToS-Byte ebenfalls als Type-of-Service bezeichnet. Es gibt also im IP-Header ein ToS-Byte und darin enthalten ist ein ToS-Feld. Pakete lassen sich anhand des ToS-Felds entsprechend der eingestellten Klasse Warteschlangen unterschiedlicher Priorität zuordnen. Im IPv6-Header ist ebenfalls ein Byte für eine Klasseneinteilung vorgesehen. Es wird treffend als »Class« bezeichnet und könnte ähnlich verwendet werden.
Eine Arbeitsgruppe der IETF stellte schon 1997 eine weitere Implementierung des ToS-Byte vor: Differentiated-Services (Diffserv). Es dient dazu, Pakete zu markieren. Ein Netzwerkknoten leitet dann das Paket entsprechend dem Eintrag an den nächsten weiter (Per-Hop-Behavior). Dazu erhält dieses Byte im IP-Header per Definition eine neue Bedeutung und wird in diesem Anwendungsfall dann als Differentiated-Service-Byte (DS-Byte) bezeichnet.
Die Diffserv-Spezifikation nach RFC 1349 legt sechs Bits fest, die dazu dienen, den Differentiated-Services-Code-Point festzulegen. Diese sechs Bits definieren verschiedene Service-Klassen zu. Jede Netzwerkkomponente entscheidet anhand dieser Bits, wie sie die entsprechenden Pakete behandelt, und steuert das Per-Hop-Behavior.
Die sechs Bits sind nochmals in zwei mal drei Bits unterteilt. Diese Struktur ist im RFC 1349 festgeschrieben. Letztlich ist es den Herstellern beziehungsweise den Netzwerkadministratoren freigestellt, wie sie diese Bits genau nutzen. Eine sinnvolle Diffserv-Anwendung ist daher nur möglich, wenn ein Managementsystem die notwendigen Service-Klassen-Zuordnungen durchgängig steuert.
Die vorhandenen Hardware-Queues beziehungsweise auf die zur Verfügung stehenden Links müssen die insgesamt 64 Codierungs-Möglichkeiten abbilden. Diese Mechanismen sollten in einer Domäne konsistent arbeiten und zwischen verschiedenen Domänen durch Mapping gesichert werden.