H.323
Pile de protocoles | ||||||||||||||
|
||||||||||||||
Modèle Internet 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éfinit 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 meilleure 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.
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), Openphone, iChat…).
- les gatekeepers, ou portiers, servant à l'administration des communications et à la translation d'identifiants de connexion (ID H323).
- Les MCU, des ponts multipoints.
- Les gateways, des passerelles H.320 ⇔ H.323, H.324M ⇔ H.323.
[modifier] Fonctionnement simplifié
Il existe plusieurs manières de mettre en œuvre 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 (en).
- 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
- 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).
- 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.
- À 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
- voire réaliser des fonctions élémentaires de messagerie vocale
- 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.
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 H.323, bien que pris en charge 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 la mise en œuvre 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 pare-feu, H323 pose de véritables 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 pare-feu modernes le font très bien, mais au prix d'une complexification qui aurait été évitée si le protocole avait été mieux pensé dès son origine. Et plus une chose est complexe, plus elle a de chance d'être boguée ou d'avoir des trous de sécurité.
Pour la translation d'adresses NAT (Network Adresse Translation), le protocole H.323 pose des problèmes dans le sens où celui-ci ne respecte pas comme il faut le modèles par couche des réseaux informatiques (voir le modèle OSI) en incorporant des données de la couche Application dans la couche Transport. Cela oblige les passerelles à aller changer des données à l'intérieur même des paquets TCP/IP.
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 à la translation d'adresses et aux pare-feu.
Voir à ce sujet : Protocole réseau passant difficilement les pare-feu concernant les difficultés rencontrées usuellement lors de la mise en place d'une structure VoIP fondée sur H.323.
[modifier] Voir aussi
[modifier] Articles connexes
- Ekiga
- iChat
- gatekeeper
- SIP
- Streaming
- Codec
- VoIP.
- Jingle (Jabber/XMPP)
- Visioconférence
- Asterisk : Implémentation de H.323 et d'autres protocoles VoIP dans un PABX libre.
- Protocole réseau passant difficilement les pare-feu
[modifier] Liens externes
- (en) H.323
- (en) H.323 Plus project
- (en) VoxGratia (Contient les sources récentes de OpenH323)
- (en) OpenH323 gatekeeper
- (en) H.323 Protocol Overview
- (en) gatekeeper H323, MCU et PABX open sources