1. Einleitung (Introduction)
Viele Kommunikationsprotokolle, die über das moderne Internet betrieben werden, verwenden Hostnamen. Diese werden häufig in mehrere IP-Adressen aufgelöst, von denen jede unterschiedliche Leistungs- und Verbindungsmerkmale aufweisen kann. Da bestimmte Adressen oder Adressfamilien (IPv4 oder IPv6) in einem Netzwerk blockiert, defekt oder suboptimal sein können, haben Clients, die mehrere Verbindungen parallel versuchen, die Chance, schneller eine Verbindung herzustellen. Dieses Dokument spezifiziert Anforderungen für Algorithmen, die diese für den Benutzer sichtbare Verzögerung reduzieren, und bietet einen Beispielalgorithmus.
Dieses Dokument definiert den Algorithmus für "Happy Eyeballs", eine Technik zur Reduzierung für Benutzer sichtbarer Verzögerungen auf Dual-Stack-Hosts. Diese Definition ersetzt die ursprüngliche Beschreibung in RFC 6555. Nachdem dieser Ansatz nun in großem Maßstab eingesetzt und über mehrere Jahre gemessen wurde, kann die Algorithmusspezifikation verfeinert werden, um ihre Zuverlässigkeit und allgemeine Anwendbarkeit zu verbessern.
Der Happy Eyeballs-Algorithmus des Wettlaufs von Verbindungen zu aufgelösten Adressen hat mehrere Stufen, um Verzögerungen für den Benutzer wann immer möglich zu vermeiden, während die Verwendung von IPv6 bevorzugt wird. Dieses Dokument erläutert, wie DNS-Abfragen beim Starten einer Verbindung auf einem Dual-Stack-Client behandelt werden, wie eine geordnete Liste von Zieladressen erstellt wird, zu denen Verbindungsversuche unternommen werden sollen, und wie die Verbindungsversuche um die Wette laufen.
1.1. Anforderungssprache (Requirements Language)
Die Schlüsselwörter "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" und "OPTIONAL" in diesem Dokument sind wie in BCP 14 [RFC2119] [RFC8174] beschrieben zu interpretieren, wenn und nur wenn sie in Großbuchstaben erscheinen, wie hier gezeigt.