Aller au contenu principal

5.3. Échange de capacités (Capabilities Exchange)

Lorsque deux pairs Diameter établissent une connexion de transport, ils DOIVENT échanger les messages d'échange de capacités, comme spécifié par la machine d'états des pairs (section 5.6). Ce message permet de découvrir l'identité et les capacités du pair (version du protocole, identifiants d'applications Diameter prises en charge, mécanismes de sécurité, etc.).

Le récepteur n'émet des commandes qu'aux pairs qui ont annoncé le support de l'application Diameter définissant la commande. Un nœud Diameter DOIT mettre en cache les Application Id supportées pour ne pas envoyer inutilement des commandes ou AVP non reconnus.

Un récepteur de CER sans application commune avec l'émetteur DOIT renvoyer un CEA avec Result-Code DIAMETER_NO_COMMON_APPLICATION et DEVRAIT fermer la connexion de transport. Recevoir un CER ou CEA d'un pair se présentant comme relais (relay, section 2.4) DOIT être interprété comme une application commune.

Le récepteur du CER DOIT calculer l'intersection entre ses Application Id et toutes les AVP Application-Id du CER (Auth-Application-Id, Acct-Application-Id, Vendor-Specific-Application-Id). La valeur Vendor-Id dans Vendor-Specific-Application-Id NE DOIT PAS être utilisée dans ce calcul. L'émetteur du CEA DEVRAIT inclure toutes ses applications comme indication pour le récepteur.

Les implémentations DEVRAIENT tenter d'abord TLS/TCP et DTLS/SCTP avant le CER/CEA. Pour les anciennes implémentations, la sécurité PEUT encore être négociée via Inband-Security AVP. Alors, sans mécanisme commun, le CEA DOIT porter DIAMETER_NO_COMMON_SECURITY et DEVRAIT fermer la connexion.

Les CER d'inconnus PEUVENT être ignorés ou recevoir un CEA DIAMETER_UNKNOWN_PEER; dans les deux cas la connexion se ferme. Si la politique l'autorise, un CEA de succès PEUT être renvoyé; la durée de vie de l'entrée pair égale celle du transport. En cas de panne de transport, les transactions en attente vers ce pair inconnu PEUVENT être abandonnées.

Les messages CER et CEA NE DOIVENT PAS être proxifiés, redirigés ou relayés.

Sans proxification du CER/CEA, un agent en amont peut ne pas avoir de pair pour l'application du Command Code. L'answer porte alors le bit E et DIAMETER_UNABLE_TO_DELIVER (section 7).

Sauf CER, une requête avec Auth-Application-Id ou Acct-Application-Id, ou un Command Code applicatif, NE PEUT être transférée qu'à un hôte ayant explicitement annoncé l'application (ou l'identifiant d'application Relay).