6. Protocol Operation (Protokollbetrieb)
6. Protocol Operation (Protokollbetrieb)
Das DNS Push Notification-Protokoll ist ein sitzungsorientiertes Protokoll und nutzt DNS Stateful Operations (DSO) [RFC8490].
Für Details zum DSO-Nachrichtenformat siehe die DNS Stateful Operations-Spezifikation [RFC8490]. Diese Details werden hier nicht wiederholt.
DNS Push Notification-Clients und -Server müssen DSO unterstützen. Ein einzelner Server kann DNS-Abfragen, DNS-Updates und DNS Push Notifications (unter Verwendung von DSO) auf demselben TCP-Port unterstützen.
Ein DNS Push Notification-Austausch beginnt damit, dass der Client den geeigneten Server mithilfe des in Abschnitt 6.1 beschriebenen Verfahrens ermittelt und dann eine TLS/TCP-Verbindung zu diesem herstellt.
Nach dem Herstellen der TLS/TCP-Verbindung zum Server wird ein typischer DNS Push Notification-Client sofort eine DSO-Keepalive-Operation ausgeben, um die DSO-Sitzung zu etablieren und eine Sitzungszeitüberschreitung und/oder ein Keepalive-Intervall anzufordern, das länger als die Standardwerte von 15 Sekunden ist, dies ist jedoch nicht erforderlich. Ein DNS Push Notification-Client kann zuerst andere Anfragen für die Sitzung ausgeben und nur später eine DSO-Keepalive-Operation ausgeben, wenn er dies für notwendig erachtet. Das Senden einer DSO-Keepalive-Operation oder einer Push Notification-Abonnementanfrage über die TLS/TCP-Verbindung zum Server signalisiert die DSO-Unterstützung des Clients und dient dazu, eine DSO-Sitzung zu etablieren.
Entsprechend dem aktuellen Satz aktiver Abonnements sendet der Server relevante asynchrone Push Notifications an den Client. Beachten Sie, dass ein Client darauf vorbereitet sein muss, Push Notifications für Abonnements zu empfangen (und stillschweigend zu ignorieren), die er zuvor entfernt hat, da es keine Möglichkeit gibt, die Situation zu verhindern, in der eine Push Notification vom Server zum Client unterwegs ist, während die UNSUBSCRIBE-Nachricht des Clients, die dieses Abonnement storniert, gleichzeitig vom Client zum Server unterwegs ist.