Applications Internet

De plus en plus d'applications sont basées sur la suite de protocoles IP. On distingue d'une part les applications standards et les applications spécifiques.  Les applications standarts les plus utilisées sont la navigation, la messagerie et le transfert de fichiers.

6.1 Applications de base

6.1.1 Messagerie

La messagerie est basée sur plusieurs protocoles SMTP, POP et IMAP. SMTP (Simple Mail Transfer Protocol)  envoie des messages au serveur de messagerie. POP et IMAP les lisent depuis le serveur de messagerie.

Le client SMTP se connecte au port 25 du serveur SMTP. SMTP est basé sur un ensemble de commandes du type HELO, MAIL FROM:, RCPT TO: DATA, QUIT.

Le logiciel libre sendmail est couramment employé en tant que serveur de messagerie.
Différents clients de messagerie existent, le protocole de lecture est POP ou IMAP. Le paramétrage de la lecture des messages est possible avec IMAP. Par exemple ne lire que l’en-tête ou stocker certains dossiers sur le serveur et d'autres chez le client, alors qu’avec POP les possibilités sont plus réduites.

MIME (Multipurpose Interchange Message Extension) encapsule des fichiers de différents types dans un même message. MIME ajoute un marqueur (Boundary) qui sépare les différents documents fusionnés dans un même message. Ce marqueur est une chaîne

Pour éviter les confusions sur les caractères de contrôles, les fichiers binaires seront encodés avant d'être transmis. Des utilitaires tels que binhex codent les fichiers documents pour leur transfert sans perte du bit de poids fort, seuls les 7 bits de poids faible d'un caractère sont pris en compte par les outils mail de base.

Des serveurs de listes gèrent les listes de diffusion, par exemple Majordomo, ListServ ou Sympa. L'administrateur crée des listes. Un message envoyé à une liste de diffusion est retransmis à tous les membres de la liste.

6.1.2 FTP, Telnet, LDAP

FTP permet le transfert de fichiers entre ordinateurs connectés avec les droits d’accès habituels, l’identification par nom et mot de passe sont nécessaires pour les répertoires protégés. Les principales commandes sont ls, put, get, cd. Le contrôle d'accès se fait selon les règles du système du  serveur.

Telnet autorise la connexion sur une machine distante, autrement dit le "remote login". Une des fonctionnalité intéressante de Telnet est de pouvoir se connecter à un autre port que le port Telnet standard pour tester des applications en mode connecté.

LDAP construit des annuaires d'entreprises avec stockage d'informations associées à chaque utilisateur. Des annuaires LDAP peuvent être chaînés entre eux.

6.1.3 Commandes « réseau »

Ping vérifie l'existence d'un chemin entre deux machines.

Netstat délivre des statistiques sur les différents protocoles réseaux: IP, ICMP, TCP, UDP.

Snoop, tcpdump, ethereal analysent et affichent les trames en circulation.

Netperf, ttcp et itcp génèrent du trafic tcp.

Traceroute décrit la route empruntée pour atteindre une station et donne le temps moyen mis pour atteindre chaque station intermédiaire. Le fonctionnement de traceroute est particulier. Il envoie des demandes d'écho ping successives de la source vers la destination. Le premier message a un TTL à 1, de ce fait le premier routeur renvoie un message ICMP de dépassement de temps. Cette procédure est répétée jusqu'à ce que la cible finale soit atteinte et renvoie une réponse d'écho. Les RTT successifs sont mesurés avec cette suite de messages ICMP.

Les logiciels d'administration utilisent la norme Snmp pour piloter des équipements réseaux. De plus en plus d'équipements disposent d'un serveur http intégré pour la consultation des statistiques voire l'administration.

6.2 Applications Web

WWW (World Wide Web) est un système d'information multimédia, mondialement réparti, basé sur des serveurs reliés à l'internet. Ces serveurs sont accédés par des navigateurs clients, les plus connus sont Explorer, NetScape, Opera. Ces clients, également appelés "browser", utilisent le protocole HTTP pour dialoguer avec le serveur et demander le téléchargement de fichiers qui correspondent souvent à des pages HTML. Le web est structurés par ces pages qui contiennent des URL lesquelles pointent à leur tour sur d'autres pages. Les pages sont statiques ou bien créées dynamiquement par une application exécutée sur le serveur. L'interface du client Web devient une interface universelle pour tous les types d'applications. Tout comme TCP-IP relie des réseaux, le WWW et ses standards relient des systèmes d'information. Des serveurs d’indexation tels que Google ou AltaVista recherchent des pages à l'aide de mots clés à travers le maillage hypertexte  html ou bien dans des fichiers locaux.

D'autres logiciels appelés métamoteurs interrogent tout un ensemble de serveurs, Copernicus est l’exemple d’un tel outil.
Les services payant tels qui existent dans le contexte Minitel sont moins fréquents dans le contexte internet. Les services gratuits prédominent. L'accessibilité aux services par l'internet améliore l'image de l'entreprise et élargit la clientèle potentielle. Les services Web viennent en complément d'un acte commercial et apportent un plus en terme d'image ou bien s’intègrent dans le schéma de développement du système d’informations de l’entreprise. Le retour d'investissements se fait donc en termes d'images, de services ou de ventes.

La facilité d'usage de l'internet accroît le développement du commerce électronique. L'accroissement des échanges immatériels et l'augmentation de la valeur de l'information font qu'une part de plus en plus importante des échanges échappent à l'impôt et aux taxes  douanières. La facilité de la duplication et de la diffusion de l'information, sous toutes ses formes (texte, image, son, film...) pose également le problème des droits d'auteur et de propriété des œuvres. De façon générale, il faut déterminer si la loi qui s’applique est celle du pays du serveur ou de celui du client. Le développement de l'internet accélère la dérégulation de l'économie des télécommunications. Dans le cadre d'une mondialisation des moyens de télécommunications des politiques restrictives au niveau de la circulation de l'information sont plus difficiles à mettre en œuvre, en effet l'attitude restrictive d'un pays suscite rapidement la naissance de paradis informationnels dans certains pays plus libéraux en la matière.

PICS (Platform For Internet Content Selection) est un standard associé à HTML qui définit des profils de services et de clients, de  façon à interdire l'accès de certains services à certains publics, par exemple pour interdire l'accès de certains  services à des enfants. Le mode de fonctionnement prévu est basé sur trois entités: le système de classification, le service de classification et le serveur de classification. Le système définit la classification, le service la délivre , le serveur l'héberge. Le système de classification et le serveur correspondent à un ensemble de pages HTML.

6.2.1 Vocabulaire Web

Une applet est un morceau de code envoyé par le serveur et exécuté chez le client.

Les cookies mémorisent des états de connexions. Lors d’une connexion à un serveur particulier un fichier est créé du côté client et celui-ci mémorise l’état de la session. Cet état sera utilisé lors du connexion ultérieure pour démarrer au même niveau.
Http: HTTP est un protocole du niveau application qui spécifie les communications entre les clients et les serveurs Web. Les informations associées sont: durée de vie, page cachable.

PlugIn: Il s'agit de fonctions téléchargées  et utilisables par le navigateur (NetScape par exemple).

Proxy: Un proxy est un agent intermédiaire entre un client et un serveur. Le client l’interroge en lieu et place du serveur, puis c’est le proxy interroge le serveur à la place du client et renvoie la réponse au client. Les proxy http servent de cache, de firewall, de NAT.

Un script est un fichier de commandes.

Serveurs: Certains serveurs sont spécialisés dans le stockage de pointeurs sur des bases spécialisées. Il existe deux grandes catégories de serveurs index: ceux qui sont construits manuellement et ceux qui sont construits à l'aide d'un logiciel d'exploration de l'internet. Yahoo appartient à la première catégorie et Altavista à la seconde.
Un viewer est un logiciel plugin qui visualise des documents d’un type spécifique: postscript, avi, sonores etc..

6.2.2 HTTP

Un serveur Web est relié à l’Internet et répond à des requêtes http. Les informations renvoyées sont statiques ou dynamiques. Il s’agit de pages au format HTML stockées dans des fichiers. Les données dynamiques proviennent de bases de données ou bien sont calculées dynamiquement au moment de l'interrogation. L'apparente simplicité des fichiers HTML est cependant à la base d'une organisation de données complexes. Le Web constitue une base de données répartie basée sur des hyperliens. Le problème de la taille de bases de données est résolu par la répartition des fichiers. L'accès à ces fichiers se fait par un pointeur appelé URL. L'URL pointe vers une ressource qui se trouve soit sur la même machine, soit ailleurs sur l'Internet. Dans l'URL, on précise également le protocole d'accès à la ressource. Par l'usage des URL, le Web  correspond davantage à un écheveau qui se développe dans tous les sens qu'à la toile d'araignée que son nom suggère.

La page HTML est rapatriée puis analysée et donne éventuellement lieu à la recherche de fichiers inclus avant d'être totalement affichée. Les requêtes et échanges de données entre le client et le serveur se font par le protocole HTTP. Les ressources sont désignées par une chaîne de caractère appelée URL. Il s'agit d'un pointeur sur un  fichier qui se trouve soit sur la même machine, soit ailleurs sur l'Internet. L’URL précise le protocole d'accès, le nom du serveur et celui du document. En fait, un choix d'URL provoque une requête DNS pour localiser le serveur, suivie d'une requête au serveur Web proprement dit.
HTTP est le protocole de transfert des pages web, il se  situe au niveau application et s'appuie sur TCP. Successeur de HTTP1.0, HTTP1.1 améliore les performances du Web. En fait, il crée une connexion TCP persistante alors qu'avec HTTP1.0, la connexion était temporaire et qu'autant de session TCP sont crées qu'il y a d'images à charger dans la page HTML.

Curieusement, les performances de HTTP1.0 sont  meilleures que celles de HTTP1.1 dans certains cas de figure. Dans le cas de HTTP1.1, la lecture de la page HTML se fait d'abord, puis les images sont chargées successivement alors qu'avec HTTP1.0 le texte est chargé et les requêtes de lecture d'images sont lancées simultanément. En fait ,les entrées-sorties sont donc fait en parallèle pour HTTP1.0 et en série pour HTTP1.1, d'où un meilleur comportement de HTTP1.0 lorsque les connexions clients-serveurs sont locales. Les différences de performances dépendent aussi du fait que les fichiers à charger soient sur disque ou en mémoire. Par contre, comme le nombre de datagramme en circulation pour HTTP1.1 est nettement moins important, les performances globales dans le cadre de l'Internet risquent d'être meilleure puisque le trafic généré par les accès Web diminue (trafic 3 fois moins important d'après certaines mesures).

Exemples d’en-têtes HTTP :
Content-Type: suivi par un spécificateur de format MIME (RFC2045) type/sousType (e.g. text/html, audio/wav).
Accept-Encoding: codages des données acceptés (e.g. gzip)
Set-Cookie: clef=valeur [;expires=DATE][;path=PATH][;domain=DOM][;secure]
Une session Web pourra comporter une phase de saisie et de mise à jour d'une base de données. Les règles d'accès qui interviennent sur le serveur distant sont celles du système d'exploitation ou de la base de données du serveur. Des fichiers log mémorisent différentes informations concernant les connexions pour établir contrôles et statistiques.Un serveur offre des méthodes de saisie et de mise à jour. La saisie de données du côté client est associée à l'activation de fonctions spécifiques du côté serveur. Les applications lancées du côté serveur sont des fonctions CGI ou des serveurs d’applications. Les performances varient selon qu’elles sont exécutées dans le cadre d'un processus ou d'un thread.

Les serveurs Web publics sont très sollicités. Il est donc intéressant  d'employer des machines multiprocesseurs qui disposent de canaux d'entrées-sorties DMA indépendants. L'implantation de tels serveurs dans des centres d'hébergement qui disposent d'accès haut débits et mutualisent les coûts est souhaitable. Pour diminuer la charge des serveurs et de l'internet, les serveurs importants sont dupliqués sur des serveurs miroirs dans chaque continent ou chaque pays. Les accès de clients ne venant pas de la zone de couverture du serveur sont invités à se connecter au miroir le plus proche du client. Des logiciels serveurs prévoient également l'aiguillage des requêtes vers le site le plus proche.

Pour améliorer les performances du Web, le concept de cache est utilisé tant du côté client que du côté serveur. Des proxys intermédiaires servent également de cache des pages les plus fréquemment accédées. Ces proxys seront transparents ou non. Pour les proxy non transparents les requêtes seront transmises par le proxy au navigateur. L'adressage IPv6 intègre une classe d'adresses anycast. Une requête HTTP envoyée vers une adresse anycast sera routée vers le serveur le plus proche qui porte cette adresse.

Les services (DNS, Web) sont positionnés dans l'entreprise ou hébergés chez un prestataire. L'hébergement décharge l'accès internet de l'entreprise. Il est donc utile si la majorité des accès sont externes. En cas de besoin, on crée un service interne sur le site de l'entreprise pour répondre aux demandes internes. Les services sont positionnés dans l'entreprise ou hébergés chez un prestataire. L'hébergement décharge l'accès internet de l'entreprise. Il est donc utile si la majorité des accès sont externes. En cas de besoin, un service interne sur le site de l'entreprise répond aux demandes internes.

L'usage du Web s'est fortement développé depuis 1992, il existe des millions de serveurs. Le W3C est un consortium entre l'Inria, le MIT et des industriels chargé de l'évolution des protocoles du Web. Il s'agit de l'évolution vers des accès plus sécurisés pour l'accès à des données confidentielles et le paiement en ligne. D'autre part, l'introduction de standards tels que CSS pour les feuilles de style, XML pour structurer l'information et PNG pour le codage des images.

6.2.3 CGI et scripts

Le mécanisme CGI (Common Gateway Interface) correspond à l'exécution d’une tâche côté serveur. Il définit le passage des paramètres entre le client et le serveur Web. Le renvoi d’un formulaire de saisie  d’une page html déclenche par la requête http POST (ou plus rarement GET) associée à une action détermine l’exécution d’une tâche sur le serveur. Différents découpages des traitements entre le client et le serveur sont possibles. Si l’objectif est de  décharger le serveur, un maximum d'opérations est effectué du côté client. D’autres critères déterminent ce découpage: minimiser les communications réseaux, effectuer un maximum d’opérations du côté serveur. Ce découpage est à décider lors de la conception de l’application. Il correspond à un compromis entre: la charge du serveur, la charge du client, la taille des données échangées, la complexité du développement.

En dehors des langages classiques, il existe différents langages spécialisés d'écriture de CGI: PHP, Perl, TclTk, Python, Zope.
PHP est un langage d'écriture de scripts exécutés par un serveur WEB. L'intérêt de PHP est son intégration aux serveurs WEB (apache surtout). Les scripts PHP sont placés dans les pages html ou bien mis dans des fichiers  spécifiques. PHP crée des pages dynamiques, des modules de PHP l'interfacent avec d'autres applications: bases de données, http, sockets, dns, ldap, snmp. Perl est un langage de script plus général, certains administrateurs de réseau l’utilisent pour écrire des « shell-scripts ». Cependant, PERL sert également à l’écriture de CGI, dans ce second usage, il est concurrent de PHP.

Les langages de scripts TclTk et Python sont destinés à programmer des interfaces graphiques, ils sont donc plutôt employés du côté client. Par contre, Perl et PHP offrent une plus grande richesse pour l'interfacage avec d'autres applications, PHP ou Perl sont employés pour écrire des CGI  Perl est plus orienté traitement et PHP est davantage orienté communications clients-serveur, notamment par l'intermédiaire de formulaires HTML et de la méthode POST HTTP.

Zope et SPIP sont des outil de construction de sites qui intègrent des outils tels que PHP.

6.2.4 Java

Java est un langage de programmation objet associé à un langage interprété. Ainsi, il est exécutable sur toute les plate-forme munies de l’interprète. Les programmes Java sont traduits en un code intermédiaire interprété à l'exécution. Les caractéristiques de Java sont les suivantes: langage simple, orienté objets, distribué, robuste, multi-plates-formes, support des  processus légers. Java a été créé pour écrire des petits programmes (applets) stockés sur les serveurs et exécutés par le client. Une applet est téléchargée lors de la référence d'une page html qui l'invoque, puis exécutées sur l'ordinateur de consultation. Le code d'applets Java n'est pas directement inclus dans le fichier HTML, mais ce dernier fait référence à un fichier ".class" qui contient l'applet Java. Par sécurité, l’accès au système de fichier local ou aux ressources locales est interdit aux applets. Une application Java exécutée par un serveur est dite servlet, elle est exécutée dans le cadre d'un thread de la machine virtuelle Java. Cependant, à l’heure actuelle Java est davantage utilisé pour le développement d’applications communiquantes.

Les principaux problèmes posés par Java concernent la sécurité. En effet, une applet ne pourra se connecter qu'au serveur depuis lequel elle a été chargée et ceci uniquement en mode TCP. Pour dialoguer avec d'autres serveurs, ou bien en mode UDP, il est nécessaire d'utiliser des mécanismes de sécurité ou bien d'installer un proxy sur le serveur de l'applet. Les applets sont utilisables pour la partie client des applications clients-serveurs, le traitement de données multimédia, les serveurs d’applications, l’administration de réseaux.

Javascript est un langage de script dont le code est directement inclus dans le fichier HTML. Tout comme le code des applets Java, le code Javascript est interprété sur l'ordinateur de consultation.

6.2.5 Librairie Sockets

Les sockets correspondent à une librairie qui contient les fonctions de communications basées sur TCP, UDP ou IP. Une socket correspond à l'objet de communication depuis une machine. Les principales fonctions offertes par les sockets sont: l'ouverture et la fermeture d'une connexion, l'émission et la réception de messages. Une connexion TCP est connectée et une connexion UDP est non connectée. Une application distribuée développée à l'aide des sockets exprime aussi bien aussi bien la communication entre applications tournant sur une même machine, entre machines différentes sur un même réseau, entre machines différents reliées à l'interconnexion. Ces différents types d'exécution se font  sans changement de l'application, seule change l'adresse IP du correspondant.

Les informations suivantes caractérisent une socket:
  • •le descripteur de socket,
  • •le numéro du port local,
  • •le numéro de port distant,
  • •l'adresse IP de la machine locale,
  • •l'adresse IP de la machine distante.
Pour qu'un client puisse communiquer avec un serveur, un processus serveur est à l'écoute sur un port prédéfini du serveur. Selon les systèmes, on parle de processus serveur, de démon ou de service. Par exemple, pour accepter des connections Telnet, le service Telnet sera en attente de connexion sur le serveur. Pour beaucoup d'applications réseau, nous retrouvons donc le schéma client-serveur. Dans le mode client serveur TCP, chaque flux est identifié par les adresses et ports sources et destinations.

Par contre, en mode UDP des datagrammes provenant ou destinés à des machines différentes peuvent être multiplexés sur le même port. Le mode non connecté supporte plus facilement la mobilité et le changement d'adresse en cours de communication. La communication TCP étant identifiée par les adresses IP et les ports sources et destinataires, tout changement est impossible une fois la connexion établie. La réception UDP ne précise que le port de réception local. Un protocole comme RTP, basé sur UDP, prend en charge l'identification des utilisateurs.

XDR convertit les données à un format normalisé. L'invocation des fonctions XDR autorise les échanges entre des machines où les octets sont rangés dans différents ordres mémoire et pour garantir la portabilité de l'application. Les fonctions XDR seront appelées explicitement par le programmeur à l'émission et à la réception, en effet  leur appel n'est pas automatique.

Selon les choix de répartition faits au moment du développement et dictés par les besoins de l'application, la distribution des données et l'exécution des fonctions prendront différentes formes. Les données seront stockées localement ou à distance. De même, les fonctions seront exécutées sur la machine cliente (Java) ou sur un serveur distant (CGI) ou sur un autre équipement (Administration de réseaux). Dans ce contexte, le développement d'une application d'administration de réseau semble intéressant.

6.3 Services de diffusion et multimédia

En dehors de l'accès à des serveurs, l’usage de l’internet se développe pour les communications temps réel.
La diffusion est une technique naturelle pour les applications de collaboration multipoints telles que la télé-réunion audio ou vidéo, le tableau blanc. Elle s'applique également aux applications de un vers n (point-multipoints) telles que les serveurs vidéo, la distribution de logiciel ou pour la diffusion de tous types d'informations. Selon le type d'application, les besoins sont différents: les communications temps réel seront par exemple plus sensibles aux délais que les diffusions d'informations sous forme de fichiers.

La diffusion multicast évite la duplication de flux, elle économise de la bande passante réseau et de la capacité d'émission des serveurs. Par contre, les informations sont envoyées de façon synchrone à l'ensemble des participants. Toutes les applications de diffusion fonctionnent sur UDP, comme il ne fonctionne pas en mode connecté la duplication de flux est possible. La diffusion de un vers plusieurs est en effet difficilement réalisable sur TCP. Les mécanismes de contrôle de TCP sont intrinsèquement point à point et difficiles à généraliser de un vers n, sauf à recréer des connexions TCP.

Des protocoles applicatifs applicatifs qui gèrent les pertes et duplications sont donc nécessaires,  les protocoles RTP et RTCP ont été définis pour cette raison. RTP offre un service de bout en bout. Il ajoute un en-tête qui fournit les informations de timing nécessaires à la synchronisation de flux temps réel du type son et vidéo.

RTCP mesure les performances, par contre il n'offre pas de garantie d'acheminement. Pour cela, il faut employer un protocole de réservation du type RSVP ou bien s'assurer que les liens de communications utilisés sont correctement dimensionnés par rapport à l'utilisation qui en est faite. Une moyen de le garantir est d'utiliser des liens dédiés à cet effet et non pas des liens où circulent des trafics concurrents.

6.3.1 RTP

RTP (RFC1889) permet des communications multimédia temps réel, par exemple la transmission du son ou de la vidéo (voix sur IP). RTP comporte une orientation temps réel au sens où il estampille les messages. Des fonctionnalités de synchronisation de différents flux sont disponibles. Un protocole de contrôle spécifique de bout en bout est associé à RTP, il s'agit de RTCP (Real Time Control Protocol). RTP est employé pour la visiophonie (NetMeeting, CuSeeMe) et la téléphonie sur Internet, ainsi que pour le streaming. RTP assure les échanges de flux multimédia (voix, vidéo) en général sur UDP. L'en-tête RTP comporte des informations de synchronisation, de numérotation. Le codage des données dépend du type de compression. L'adaptation de chaque méthode de compression à RTP est décrite dans un RFC spécifique, par exemple H261 sur RTP est décrit dans le RFC xxxx. Un canal RTP est employé par type de flux: un pour l'audio, un pour la vidéo. RTP offre un service de bout en bout. Il ajoute un en-tête qui fournit les informations de timing nécessaires à la synchronisations de flux temps réel du type son et vidéo à l’aide des champs:  numéro du message et estampille (time stamp).

RTCP est un protocole de contrôle associé à RTP, il mesure les performances, par contre il n'offre pas de garantie. Pour cela, il faut employer un protocole de réservation du type RSVP ou bien utiliser des liens de communications dimensionnés et non partagés (liaisons dédiées physiques ou logiques).

Les différentes entités de RTP sont:
  • Synchronisation source: il s'agit d'un numéro sur 32 bits attribué de façon aléatoire à chaque source, ce numéro aurait pu être l'adresse IP, mais dans ce cas une seule source serait possible par machine.
  • Contributing source: une des source ayant contribuée à un mélange
  • Mixer: il s'agit d'un système intermédiaire recevant des paquets d'une ou plusieurs sources, en change le format ou les combine. En général, les horloges des différentes sources ne sont pas synchronisées, le mixer synchronise donc les sources et utilise son propre marqueur de temps.
  • Translator: il s'agit d'un système intermédiaire qui retransmet des paquets RTP en laissant leur source de synchronisation intacte, des exemples en sont des adaptateurs multipoints vers point à point, ou bien des gardes barrières.
  • Moniteur: programme recevant les comptes-rendus RTCP et analysant la qualité de service.
L'en-tête RTP comporte les informations suivantes:
  • version (2bits)
  • padding (1b)    indique qu'il y a du bourrage dont la taille est indiquée dans le dernier octet
  • extension (1b)  signale la présence d'une extension d'en-tête
  • CSRC count (4b) nombre de sources de contribution au contenu du message
  • marker (1b) rôle défini dans un fichier profil
  • payload type (7b)    format du flux
  • sequence number (16b) numéro du paquet RTP, incrémenté par la source du flux, valeur initiale aléatoire
  • timestamp (32b) identification de l'instant d'échantillonnage, la fréquence de l'horloge est spécifique au type de flux
  • SSRC (32b) identification de la source d’horloge
  • CSRC (0 à 15 éléments de 32 bits selon CSRC): liste des contributeurs
RTP est un protocole générique, son utilisation avec une méthode de codage particulière donne lieu à un RFC dit d'adaptation. Un numéro de payload lui est attribué par l'ICANN. Au cas où l'en-tête simple n'est pas suffisant pour l'adaptation de protocole des données supplémentaires sont mises en début de paquet. La compression de l'en-tête IP/UDP/RTP est possible pour des liens bas débit.

6.3.2 RTCP

RTCP est le protocole de contrôle associé à RTP, son objectif est de contrôler les sessions RTP. Il offre:
un retour quant à la qualité de réception, un contrôle de congestion,
le transport de l'identificateur de source CNAME avec des informations minimales d'identification,
une synchronisation entre médias.
Comme ces informations sont émises en diffusion par tous les participants. Un problème de quantité se pose si le nombre de participants est important. Comme chaque participant envoie des infos de contrôle à tous les autres, chacun calcule de façon indépendante le nombre de participants. Ce nombre détermine la fréquence d'émission des paquets de contrôle.
Il existe différents type de messages RTCP :
SR: sender report
RR: receiver report
SDES: source description items (avec CNAME)
BYE: fin de participation,
APP: spécifique à une application.
En-tête RTCP Sender Report :
version(2bits)
padding (1b)    indique qu'il y a du bourrage dont la taille est indiquée dans le dernier octet
reception report count (5b):    nombre de compte-rendus dans le paquet
packet type (8b) 200 pour SR
length (16b)    longueur du paquet en mots de 32 bits
SSRC (32b): identification de la source
Champs spécifiques à l'émetteur :
NTP timestamp    (64b)
RTP timestamp (32b)
sender's packet count (32b)
sender's octet count (32b)
Champs de statistiques :
SSRC-n (32b) numéro de la source dont le flux est analysé
fraction lost (8b)
cumulative number of packets lost (24b)
extended highest sequence number received (32b)
interarrival jitter (32b)
last SR timestamp (32b)
delay since last SR (32b)
Le format d'un paquet RR est le même que celui d'un SR sauf que le champ type est à 201 et que les cinq mots spécifiques à l'émetteur sont omis.

Le protocole SDR gère des sessions, l'annuaire locale est mis à jour grâce aux annonces. Le créateur d'une session l'annonce régulièrement sur l'adresse multicast dédiée à SDR. Cette annonce comporte des lignes SAP (session announcement protocol). Un utilisateur entre dans une session à l'aide d'un message join IGMP ou bien d'une invite SIP. Pour sécuriser une session, une clé de cryptage du contenu lui est associée.

Plusieurs logiciels de communication audio ou vidéo existent, par exemple RAT (Real Audio Tool) ou vat pour la diffusion audio, vic ou ivs pour la vidéo. Ils fonctionnent avec des cartes d'acquisition couplées à des algorithmes de compression, la décompression reconstruit le signal même partiel en cas de perte de fragment. Pour la visiophonie l'affichage de l'image est saccadé dans le contexte de l'internet public. Pour un bon fonctionnement, ces applications requièrent une qualité de services, qui n'est disponible que sur des infrastructures dédiées. Ces infrastructures devront être dimensionnées pour supporter les mélanges de trafics multimédia et données. Par rapport aux réseaux synchrones comme le réseau téléphonique, une économie est introduite au niveau de l'usage des lignes de communications par  l'allocation dynamique des ressources, mais par ailleurs un en-tête relativement important est associé à chaque paquet de voix.

6.3.3 SIP

L'objectif général de SIP (Session Initiation Protocol) est la mise en relation de personnes à travers internet. C'est un protocole de signalisation employé pour la téléphonie sur IP à la place de RTCP employé pour la voix sur IP. SIP établit la communication entre agents SIP. Cette relation concerne des communications audio, vidéo, ou bien de la messagerie instantanée. SIP s'appuie sur des standard de l'Internet. Il ressemble fortement à HTTP. En général, les utilisateurs sont identifiés et désignés par leur adresse email qui s'intègre dans une URL. La session est décrite par SDP. En cas d'échange de données, celles-ci sont encapsulées au format MIME. Les flux audios et vidéos à mémoriser sont enregistrés dans des serveurs de streaming.

Les principales entités SIP sont: l'agent utilisateur, le serveur, les passerelles. Le serveur comporte trois composantes: proxy, redirecteur et enregistreur. Le proxy relaie les appels d'un client vers un autre client et sert donc d'intermédiaire. Le redirecteur mémorise la nouvelle localisation d'un client. L'enregistreur associe le nom des clients à leur adresse IP. Les serveurs SIP s'appuie sur une base de données pour le stockage et la recherche des informations. Un profil utilisateur de la base contient différentes informations: identification, clé, comptabilisation. L'agent utilisateur émet et reçoit des appels. Il joue donc à la fois le rôle du client et du serveur. Il correspond à un équipement dédié ou bien à une entité logicielle. Une passerelle convertit les communications entre les mondes RTC et IP, il existe des passerelles  SIP/RTC, SIP/H323. Cette conversion concerne la gestion de la connexion (ouverture-fermeture) ainsi que la communication proprement dite (transcodage entre le codage téléphonique et IP).

Un commutateur téléphonique est réalisable à l'aide des protocoles SIP, RTP, d'un serveur d'accès et de streaming [PBX]. Le système n'est pas monolithique comme les PABX classiques, mais est basé sur l'utilisation d'un ensemble d'outils. Il s'agit d'une base de données SQL, d'un serveur SIP proxy, redirecteur et enregistreur, d'une passerelle RTC/SIP, d'un serveur de streaming, d'un client SIP, d'un serveur HTTP. SIP est envisagé en tant que protocole de signalisation des applications multimédia de l'UMTS.

Les passerelles (Gateway) relient les clients SIP à d'autres réseaux et terminaux (RTC, GSM, H323 etc). Différentes offres de téléphonie sur IP existent. Elles sont caractérisées par les terminaux, l'accès, le backbone, les passerelles déployées. Une passerelle est déployée sur chaque site d'une société, les appels transitent sur un backbone IP, l'accès se fait par le réseau téléphonique local de l'entreprise. Dans certains cas, SIP sert de support pour des appels RTC de bout en bout. L'accès se fait par réseau téléphonique classique et la transmission est assurée par un backbone IP. Il s'agit d'un des types d'offre d'opérateurs de téléphonie sur IP.

Les principales méthodes SIP sont: INVITE, REGISTER, BYE, ACK, CANCEL, OPTIONS, INFO, PRACK. De nouvelles méthodes seront créées pour de nouveaux usages. La méthode INVITE correspond à un appel entre clients. La méthode REGISTER est utilisée pour associer une adresse à un nom. Chaque méthode comporte des en-têtes, certains sont obligatoires et d'autres optionnels. Certains en-têtes sont communs avec le protocole http (Content-length, Content-type, Content-encoding).

Les en-têtes obligatoires de la méthode INVITE sont Call-ID, Content-Length, Cseq, From, To, Via, Contact. Call-ID identifie l'appel. Content-Length donne la longueur du contenu, CSeq numérote la requête, From identifie l'initiateur de l'appel, To identifie le destinataire de l'appel, Via indique la source et les serveurs traversés, Contact donne les coordonnées d'un contact pour l'appel.

SIP utilise le protocole SDP (session description protocol) pour décrire les sessions multimédia.

6.3.4 Streaming

Le streaming utilise au niveau applicatif un protocole temps réel appelé RTSP. RTSP (Real Time Streaming Protocol) est donc un protocole au niveau application. Standardisé en 1998 par l'IETF, il délivre des contenus multimédia (audio et/ou vidéo) à la demande. Il est adapté à la diffusion de données préenregistrées ou en direct. Le flux multimédia est contrôlé par RTSP par le biais de sessions, mais les données sont transmises par RTP (Real Time Protocol) et contrôlées par RTCP. RTSP ne crée pas une connexion au sens TCP, mais une session, maintenue par le serveur, identifiée par un numéro. La session est la transaction établie pour visionner le flux. D'abord le client envoie au serveur un message SETUP pour initialiser la transaction. Durant cette phase sont négociés les ports, le mode diffusion (unicast, multicast) et la vitesse de connexion. Des lors, en envoyant une requête PLAY, le flux est diffusé. Il est mis en pause par la requête PAUSE et arrêté complètement par la requête TEARDOWN.

6.4 Sécurité

La sécurisation des réseaux et des machines reliés à l'Internet est nécessaire. Cette sécurisation se fait soit au niveau de chaque machine, au niveau des ponts et des routeurs, au niveau de machines spécialisées. Le premier niveau de sécurité est le paramétrage correct des droits d'accès aux fichiers et aux ressources systèmes. Des filtrages peuvent être faits sur certains ports.

Les routeurs sont également paramétrables par exemple, pour filtrer les entrées ou sorties sur les adresses IP, les ports UDP ou TCP. Des équipements spécialisés, les "firewall" interfacent et filtrent les connexions entre l'Internet et un réseau local d'entreprise. Le logiciel Linux netFilter assure les mêmes fonctions. La sécurité et le cryptage sont importants pour le développement d'opérations monétaires sur l'internet. La généralisation du cryptage pose cependant des problèmes législatifs selon les pays.

Ipsec assure le cryptage et l'authentification au niveau IP en mode transport ou tunneling. La version AH (Authentification Header) assure l'authentification alors que la version ESP assure le cryptage des données.
Pour IPSec en mode transport les en-têtes sont les suivants:
Standard:     Ipv4-TCP-Données
Ipsec AH:    Ipv4-AH-TCP-Données
Ipsec ESP:    Ipv4-ESP-TCP-Données-ES trailer-ESP auth
En mode tunneling Ipsec cache l'en-tête IP source.

Tunneling: Ipv4 externe - datagramme crypté (Ipv4 interne+données)

IPsec est compatible avec l'adressage privé si les adresses privées restent valables sur le réseau distant. En cas de translation d'adresse, IPsec est mis en œuvre après la translation privé vers public ou avant la translation public vers privé et non pas par les extrémités privées. Ipsec construit des VPN logiques sur internet ou intranet. Ces VPN seront complétés par l'allocation de ressources physiques s'ils s'appuient sur des infrastructures MPLS.

Une sécurité effective intervient à tous les niveaux. Les principales attaques sont le déni de service, l’usurpation. Les possibilités d'usurpation existent au niveau ARP, IP, TCP, UDP, DNS, messagerie. L'adresse des clients et des serveurs pourront être usurpées. Les dangers les plus importants viennent de l'usurpation de serveur: par exemple, un serveur pirate se substitue au serveur original, en le remplaçant au niveau arp ou dns.

SSL est basé sur l'utilisation de clés pour sécuriser l'échange.
HTTP offre des en-têtes spécifiques pour le cryptage et l'authentification. SHTTP utilise SSL.

DNSSEC utilise des clés pour authentifier les échanges DNS.

Un proxy est une passerelle intermédiaire entre un client et un serveur. Les caches Web ou bien les firewalls en sont des exemples. Un proxy correspond à un service centralisé  et il risque de produire des goulots d’étranglement, de même que les routeurs d'ailleurs.

L'utilitaire ipForward constitue un pare-feu (firewall) logiciel, des règles expriment les différents types de filtrage.

6.5 Quelques logiciels réseaux

Des logiciels libres implémentent les principaux protocoles applicatifs du monde IP: dns (bind), smtp (sendmail), pop, imap. D'autres offrent les services http, cache ou sécurité, les plus connus sont: Squid pour les caches Web, apache pour les serveurs Web, ipForward pour les firewall.