H.323

Un article de Wikipédia, l'encyclopédie libre.

Pile de protocoles
Application
Présentation
Session
Transport
Réseau
Liaison de données
Physique
Modèle OSI

H.323 regroupe un ensemble de protocoles de communication de la voix, de l'image et de données sur IP. C'est un protocole développé par l'UIT-T qui le défini comme : « Systèmes de communication multimédia en mode paquet »
Il est dérivé du protocole H.320 utilisé sur RNIS.

Sommaire

[modifier] Protocoles secondaires ou associés

Plus qu'un protocole, H.323 ressemble davantage à une association de plusieurs protocoles différents et qui peuvent être regroupés en trois catégories : la signalisation, la négociation de codec, et le transport de l’information.

Les messages de signalisation sont ceux que l’on envoie pour demander d’être mis en relation avec une autre personne, qui indiquent que la ligne est occupée, que le téléphone sonne… Cela comprend aussi les messages que l’on envoie pour signaler que tel téléphone est connecté au réseau et peut être joint de telle manière. En H.323, la signalisation s’appuie sur le protocole RAS ((en)Registration Admission Status) pour l’enregistrement et l’authentification, et le protocole Q.931 pour l’initialisation et le contrôle d’appel.

La négociation est utilisée pour se mettre d’accord sur la façon de coder les informations qu’on va s’échanger. Il est important que les téléphones (ou systèmes) parlent un langage commun s’ils veulent se comprendre. Il serait aussi préférable, s’ils ont plusieurs alternatives de langages qu’ils utilisent le plus adapté. Il peut s’agir du codec le moins gourmand en bande passante ou de celui qui offre la meilleur qualité. Le protocole utilisé pour la négociation de codec est le H.245

Le transport de l’information s’appuie sur le protocole RTP qui transporte la voix, la vidéo ou les données numérisées par les codecs. On peut aussi utiliser les messages RTCP pour faire du contrôle de qualité, voire demander de renégocier les codecs si, par exemple, la bande passante diminue.

Image:H323_diagram.jpg

Pour le contrôle et la signalisation : H.225 H.245 Q.931 RTCP

Pour la voix : G.711 G.722 G.723 G.726 G.728 G.729

Pour la vidéo : H.261 H.263 H.263+ H.264

Pour les données : T.123 T.124 T.125

[modifier] Principales applications du protocole H.323

  • Certaines Offres de Téléphonie sur IP grand public s'appuient sur H.323
  • Les clients (NetMeeting,orange, Ekiga, ex-GnomeMeeting, Ophone, iChat, etc.).
  • les Gatekeeper, ou gardiens de porte, servant à l'administration des communications et à la translation d'identifiants de connexion (ID H323).
  • Les MCU, des ponts multipoints.
  • Les Gateway, des passerelles H.320 <=> H.323.

[modifier] Fonctionnement simplifié

Il existe plusieurs manières d’implémenter une architecture H.323.

  • De nombreux messages sont optionnels et dans la pratique on peut choisir de ne pas les utiliser tous. Par exemple, si l’authentification n’est pas une préoccupation, on peut se passer des messages RAS.
  • Il est également possible d’enchaîner les messages de plusieurs manières différentes. On peut par exemple ouvrir les canaux RTP sans attendre le message « connect » qui indique que la personne appelée a bien décroché (early h.245).
  • On peut décider que les messages H.225, H.245 et RTP passent par des chemins différents : Par exemple la signalisation traversera plusieurs Gatekeeper qui participent au contrôle et au routage de l’appel alors que le flux RTP passe directement d’un poste à l’autre.

[modifier] Cas 1 : communication « Point à Point » de deux clients simples

Image:h323 0gk.gif

  • L'appelant entre l'adresse IP du destinataire dans le champ du logiciel réservé à cet effet.
  • Les protocoles de signalisation proposent au logiciel du destinataire d'établir la communication et transmet son ID H323.
  • Le logiciel du destinataire répond soit « occupé » soit « libre ».
  • Si « libre », l'appelant énumère ses possibilités de codecs audio et vidéo (si disponibles).
  • le destinataire énumère les codecs compatibles à l'appelant pour accord.
  • Si accord, d'autres ports TCP et UDP sont négociés pour l'audio (UDP), la vidéo (UDP) et les données (TCP).

Image:h323 q931.gif

  • Chaque flux est ensuite transmis indépendamment des autres.
  • À la fermeture d'une session, les ports sont libérés et les transmissions de contrôle stoppées.

[modifier] Cas 2 : communication « Point à Point » entre deux clients enregistrés auprès d'un Gatekeeper

Le Gatekeeper intervient sur la signalisation.

Image:h323 1gk.gif

  • À l'ouverture du logiciel, les clients A et B s'enregistrent auprès du Gatekeeper en lui transmettant leur ID H323 et leur adresse IP respective.
  • Le client A entre l'ID de connexion du client B dans le champ du logiciel réservé à cet effet.
  • Le logiciel du client A demande l'autorisation au Gatekeeper pour se connecter au client B.
  • Si le Gatekeeper accepte, celui-ci demande au client B son état (déjà en conversation ou non).
  • Si état compatible, le Gatekeeper transmet l'adresse IP du client B au client A.
  • Le Gatekeeper informe le client B qu'une communication va avoir lieu avec le client A.
  • Le client A entre directement en négociation avec le client B avec les protocoles de contrôle de communication.
  • Le client A énumère ses possibilités de codecs audio et vidéo (si disponibles).
  • L'appelé énumère les codecs compatibles à l'appelant pour accord.
  • Si accord, d'autres ports TCP et UDP sont négociés pour l'audio (UDP), la vidéo (UDP) et les données (TCP).
  • Tous les flux sont ensuite transmis indépendamment les uns des autres sans passer par le Gatekeeper mais directement entre les clients.
  • À la fermeture d'une session, le Gatekeeper est informé de la fin de connexion, les ports sont libérés et les transmissions de contrôle stoppées.

[modifier] Cas 3 : communication « Multipoints » entre plusieurs clients (MCU nécessaire)

Les MCU ont des capacités de traitements du signal (diffusion, enregistrement, mixage, …) ils sont utilisés pour  :

  • permettre la conférence en mixant les flux audios
  • diffuser des messages réseau comme la tonalité, le bip de mise en attente
  • voir réaliser des fonctions élémentaires de messagerie vocale

Image:h323 mcu.gif

  • Le MCU s'annonce auprès du Gatekeeper et lui énonce ses possibilités :
    • Nombre de clients possibles.
    • Débits (en octets/secondes) possible par client ou débit total maximal.
    • ID H323 de connexion.

Les communications seront ensuite traitées comme au cas 2, le MCU devenant alors un « simple client » au vu des appelants ; la différence se trouvant simplement dans le nombre de communications acceptées avant transmission du message « occupé ».

Les principaux ports utilisés par le protocole H.323 sont 1720 TCP et suivants, les autres sont négociés dynamiquement.

Notes : Le protocole H.323 ne suit pas les recommandations ISO sur les séparations de couches du modèle réseau. On trouve des données sur les couches IP dans la couche « Application » du modèle. D'autre part, le protocole a tendance à ouvrir des « ports » à la volée pour la communication, ce qui fait que le passage d'un pare-feu (firewall) où le NAT est souvent problématique.

Néanmoins il existe aujourd'hui des solutions applicatives (NAT ALG) qui permettent de contrecarrer la présence de données IP (souvent privées) dans la partie application du modèle.

On trouve pourtant de plus en plus d'équipements réseau sachant gérer les protocoles associés à H.323 , notamment à cause de la téléphonie sur IP (VoIP).

[modifier] Cas 4 : 3 gatekeeper

Dans cet exemple chaque terminal est rattaché à un gatekeeper de proximité. Tous les gatekeeper de proximité sont rattachés à un gatekeeper qui a une connaissance générale du réseau et qui réalise le routage.

Image:h323 3gk.gif

On a choisi de faire passer le flux h.245 par les gatekeeper de proximité et le flux RTP par l’un des gatekeeper de proximité.

[modifier] Cas 5 : autres

Dans un cas réel, il est probable que l’architecture comprenne les éléments suivants :

  • Une ou plusieurs passerelles vers le RTC ou vers d’autres réseaux de ToIP.
  • Des serveurs de messageries vocales (MCU avec capacité d’enregistrement)
  • Des serveurs (MCU) capable de diffuser des messages réseau (signaux d’occupation, de mise en attente, …)

[modifier] Note générale :

Le protocole H323, bien qu'implémenté dans nombre de logiciels commerciaux et dans la plupart des solutions de visio-conférence "tout en un", passe pour un "mauvais protocole". Ceci est en fait dû à la liberté qu'ont pris les fabricants dans l'implémentation des différentes normes du protocole. Ce qui fait qu'un protocole qui se devait d'être interopérable ne l'est plus vraiment. Au point qu'il est relativement difficile de faire fonctionner deux solutions propriétaires différentes entre elles.

Pour les Firewall, H323 pose de véritable problèmes car c'est un protocole qui demande l'ouverture d'un panel de ports TCP et UDP de manière dynamique et quelque peu "aléatoire", incompatible avec la logique des règles "strictes" imposées par la sécurité d'un site ou d'un intranet exposé à Internet. Les Firewall modernes le font très bien, mais au prix d'une complexification qui aurait été évité si le protocole avait été mieux pensé dès son origine. Et plus une chose est complexe, plus elle a de chance d'être buguée ou d'avoir des trous de sécurité.

Le protocole SIP reprend les meilleurs aspects de H323 pour la VoIP, et devient de plus en plus une norme dans les échanges entre PABX. Remplaçant de fait le vieux protocole H323, mais ne résolvant pas totalement certains problèmes liés au NAT et au Firewall.

[modifier] Voir aussi

[modifier] Liens externes