• Aucun résultat trouvé

A.9 Description des unités MAPPDU

A.9.5 MAPArbitrateProtocolsRequest

Une fois qu'une connexion a été établie pour un domaine donné entre deux nœuds, cette unité MAPPDU peut servir à arbitrer le choix des protocoles de transport qui seront utilisés pour l'acheminement des données. Cette unité MAPPDU doit être envoyée par le nœud appelant lors de l'établissement de la connexion initiale. Elle peut également être envoyée par tout nœud s'il devient nécessaire, à un moment quelconque, de procéder à un nouvel arbitrage du choix des protocoles de transport.

Cette unité MAPPDU indique au récepteur quels sont les protocoles de transport pris en charge par l'émetteur. Cela comprend les protocoles monodiffusion et multidiffusion, pour les deux niveaux de fiabilité. Il faut noter qu'il est obligatoire d'indiquer dans cette unité MAPPDU le protocole monodiffusion fiable utilisé pour la connexion existante (cela permet au récepteur de rejeter une

transition de protocole monodiffusion fiable en sélectionnant simplement le protocole déjà en cours d'utilisation).

L'émetteur peut assigner à chaque protocole de transport énuméré dans cette unité MAPPDU une valeur de pondération des préférences. Dans le cas des protocoles multidiffusion, il y a également un champ utilisé par un nœud aval pour indiquer combien de nœuds de son sous-arbre peuvent prendre en charge le protocole. Le nœud amont peut utiliser cette information pour mieux sélectionner les protocoles multidiffusion d'un métacanal donné.

Cette unité MAPPDU sert également à communiquer au récepteur un identificateur de référence de domaine. Cette valeur, conjuguée à l'adresse réseau de l'émetteur, peut ensuite servir au récepteur pour identifier de façon univoque un domaine donné. Cela est nécessaire dans le cas où le domaine ne peut pas être déterminé de façon implicite. En particulier, cette valeur est utilisée lors de la création de connexions monodiffusion fiables supplémentaires, ou en cas d'émission d'unités PDU de données non fiables.

Si deux nœuds adjacents tentent de lancer simultanément un nouvel arbitrage, la demande du nœud aval est ignorée. Cette situation peut être détectée aux deux nœuds, étant donné qu'ils recevront tous deux une demande d'arbitrage alors qu'ils s'attendent à recevoir une confirmation. Le nœud amont répond en rejetant la demande (et en continuant d'attendre la confirmation). Le nœud aval répond en traitant la demande (et en cessant d'attendre la confirmation). Si le nœud aval désire toujours procéder à un nouvel arbitrage, il peut émettre une autre demande (après avoir envoyé la confirmation).

Le tableau ci-dessous résume le contenu des unités MAPArbitrateProtocolsRequest.

Identificateur de référence de domaine Fanion de données à suivre

Menu de protocoles de transport

Identificateur de référence de domaine: il s'agit d'une valeur assignée localement, qui est utilisée par l'émetteur pour désigner un domaine particulier. A la fin du processus d'arbitrage, l'émetteur peut utiliser cette valeur pour indiquer à quel domaine une unité PDU MAPConnectRequest est associée.

Elle sert également à indiquer à quel domaine une unité PDU MAPData non fiable est associée.

Fanion de données à suivre: quand il est mis à un, ce fanion indique qu'il y a trop de protocoles de transport pour une seule unité MAPPDU et que le récepteur doit attendre l'arrivée d'unités PDU MAPArbitrateProtocolsRequest subséquentes avant d'entreprendre le traitement. La dernière unité PDU de la séquence devrait réinitialiser ce fanion.

Menu de protocoles de transport: ce champ contient une série d'entrées de demande de protocoles de transport (Transport Protocol Request Entries). Il s'agit d'une liste des protocoles de transport que l'émetteur peut utiliser aux fins de la conférence. Il devrait s'agir de la liste complète des protocoles pris en charge par l'émetteur (les protocoles non fiables sont facultatifs). Le protocole monodiffusion fiable utilisé pour acheminer cette MAPPDU doit figurer dans la liste. Chaque entrée contient un champ permettant à l'appelant de préciser quels sont les protocoles qu'il préfère utiliser. Pour un type de protocole donné, l'émetteur devrait également énumérer les entrées par ordre de préférence. Il revient au récepteur de sélectionner les protocoles pouvant effectivement être utilisés pour la connexion. Dans le cas des protocoles monodiffusion, le récepteur devrait tenter de sélectionner, si possible, les protocoles préférés. Dans le cas des protocoles multidiffusion, le récepteur devrait sélectionner tous les protocoles qui sont communs à l'émetteur et au récepteur. Il peut ne pas y avoir de protocole multidiffusion commun pour un niveau de fiabilité donné (toutes les données seront

monodiffusion non fiable commun (les données non fiables seront alors acheminées par les connexions fiables).

A.9.5.1 Entrée de demande de protocoles de transport

Le menu est simplement une série d'entrées de demande de protocole de transport (Transport Protocol Request Entries), dont le format est défini dans le tableau ci-dessous.

Identificateur de protocole de transport Type de protocole de transport

Adresse réseau

Fanion de taille maximale fixe d'information utile Taille maximale d'information utile

Pondération de préférences (facultatif) Compte de nœuds (facultatif)

Nombre de connexions (facultatif) Données de configuration (facultatif)

Identificateur de protocole de transport: ce champ identifie de façon univoque le protocole de transport. Les valeurs de ce champ devront être normalisées, mais il sera également possible de préciser des valeurs exclusives.

Type de protocole de transport: ce champ est mis à l'une de ces quatre valeurs: monodiffusion fiable, monodiffusion non fiable, multidiffusion fiable ou multidiffusion non fiable.

Adresse réseau: il s'agit de l'adresse à laquelle on peut joindre l'expéditeur au moyen du protocole.

Fanion de taille maximale fixe d’information utile: il s'agit d'un fanion booléen qui indique si la taille maximale d'information utile est négociable ou non pour cette entrée de protocole de transport. De plus amples renseignements sont fournis ci-dessous, à l'entrée "Taille maximale d'information utile".

Taille maximale d’information utile: ce champ précise la taille maximale d'information utile prise en charge par le protocole. Si le fanion de taille maximale fixe d'information utile est réinitialisé, il s'agit de la taille maximale prise en charge par la mise en œuvre locale (mais une taille inférieure peut être négociée). Si le fanion de taille maximale fixe d'information utile est mis à un, il s'agit de la taille exacte à utiliser pour accepter cette entrée de protocole de transport. Le protocole MAP utilisera les valeurs négociées pour établir la taille maximale des trames de données (de plus amples renseignements concernant les trames de données sont présentés à la section MAPData). La plus petite taille maximale d'information utile prise en charge par le protocole MAP est de 128.

Pondération de préférences: ce champ facultatif sert à signaler au récepteur quels sont les protocoles préférés. Une valeur plus élevée signale qu'un protocole est préféré à un protocole ayant une valeur moins élevée. En l'absence de ce champ, on suppose que la valeur de pondération de préférences est de zéro. Ce champ n'est pas utilisé par les protocoles multidiffusion quand l'unité MAPPDU est acheminée en aval.

Compte de nœuds: ce champ facultatif n'est utilisé que pour les protocoles multidiffusion (fiables et non fiables), et seulement quand l'unité MAPPDU est acheminée en amont. Il indique combien de nœuds, au niveau de l'émetteur ou à un niveau inférieur, prennent en charge cette entrée de protocole multidiffusion. Ce compte peut être utilisé par le nœud amont pour mieux choisir le protocole multidiffusion à utiliser lors du mappage d'un nouveau métacanal et de nœuds multidiffusion. Pour que le compte demeure exact, il faut procéder à un nouvel arbitrage quand un nouveau nœud MAP

adhère à la conférence ou quand un nœud quitte la conférence. Ce nouvel arbitrage ne vise que la branche de l'arbre de domaine qui mène vers le point où le nœud a adhéré à la conférence ou l'a quittée. Pour réduire le trafic réseau, il ne devrait pas y avoir de nouvel arbitrage chaque fois qu'un nœud adhère ou quitte, quand la conférence dépasse une certaine taille. Ce champ peut également servir à prévenir l'utilisation de la multidiffusion quand il y a moins de N nœuds en jeu (N = 3?).

Nombre de connexions: ce champ facultatif n'est présent que pour les protocoles monodiffusion fiables. Il indique le nombre de connexions de transport que souhaite créer l'émetteur pour une connexion MAP donnée (si ce protocole est choisi). Si le récepteur choisit ce protocole, il devrait choisir une valeur égale ou inférieure à celle précisée par l'émetteur.

Données de configuration: ce champ facultatif est composé d'une chaîne d'octets de longueur variable et est utilisé par les piles de protocoles de transport pour acheminer l'information de configuration. Ce champ ne sera pas présent si les piles de transport ne veulent pas échanger d'information de configuration, ni s'il s'agit d'un nouvel arbitrage et que les piles de transport désirent conserver la valeur déjà convenue. Il faut noter que si ce champ est présent pendant un nouvel arbitrage, et que ce protocole est choisi comme protocole monodiffusion, il faut faire une transition vers une nouvelle série de connexions monodiffusion (étant donné que les données de configuration peuvent avoir été modifiées). Le format de ce champ est propre à chaque protocole de transport.

Dans le cas des protocoles de transport normalisés, ce champ doit être défini dans une norme. Dans le cas des protocoles de transport exclusifs, le fabricant peut choisir ce qui lui semble approprié. Ce champ peut servir à communiquer des capacités, et il peut être modifié dans la confirmation MAPArbitrateProtocolsConfirm pour fins d'arbitrage de ces capacités. Ce champ ne doit pas être volumineux au point où la taille de l'unité MAPPDU excède 16 384 octets.