# Note VOIP
## Histoire
1995 -> FTP
1995-2005 -> Tel sur Ip(sip), Streaming on ip
2005-2010 -> Streaming protocoles IETF et RTMP
2010 ->Streaming on IP using http
## Compression avec ou sans pertes
* **sans pertes** :
* Indispensable pour les fichiers informatiques
* Taux de compression assez faibles
* Exemple : Zip
* **avec pertes** :
* Suffisant la plupart du temps pour le son et image
* Taux de compression plus importants
* Exemple : jepg, mpeg, mp3 ...
* **Compression pour l'enregistrement , le stockage et la transmission**
* Exemple : TV sur ADSL
| | Téléchargement | Streaming | Live Streaming | Application interactive |
| -------- | -------- | -------- |-------- | -------- |
| Délai de codage acceptable | Long | Long |Rapide | Très rapide
| Délai de decodage acceptable | Long | Long |Rapide | Très rapide
**Codec** (codeur/décodeur) : logiciel ou matériel réalisant l’encodage et le décodage
du flux audio ou vidéo selon une norme
**Format conteneur** (container) : structure du fichier contenant les données audio ou
vidéo.
* plusieurs flux de données audio ou vidéo
* plusieurs encodages de ces flux
* des métadonnées
* des dibbées supplémentaires
### Les problèmes de synchronisation
#### émetteur - récepteur
**Latence** (délai, latency) : temps écoulé entre l’émission d’une donnée
et sa réception
**Gigue** (jitter) : variation du délai d’une donnée émise à la suivante
* peut être destructrice pour l’application ;
* nécessite de la bufferisation
### Bufferisation
lancer le contenue en décallé pour adapter a la problématique de gigue.
### Probleme de silences :
- emettre des trames spécifiques
- horodatage
## Les Protocole des servicesss multimedia sur les réseaux IP
### Besoin
- Horodatage et bufferisation
- Contrôle dde séquencement ( solve related packets problems)
- Identification de type de payload
- FeedBack
Note : pour faire de streaming upd etait choisi mais sera complété par RTP et RTCP (car pas de controle de seq, pas d'horodotage)
#### Protocle par couche
Application -> SIP, RTSP
Transsport -> RTP, RTCP
### RTP (Real-time Transport Protocol)
Transport unicast ou multicast de données temps-réel :
* de bout en bout
* encapsulé dans UDP en général (autres protocoles possibles)
* complété par RTCP (RTP Control Protocol)
* Applications : téléphonie, visioconférence.
Buts :
- Identification des participants
- Horodtage de paquets
- Numéro de séquence
RTP ne fais pas :
- de réservation de ressources
- de garantie de Qos
- de re-seq ou detection des pertes
### RTCP (RTP Control Protocol)
Envoi périodique d’informations de contrôle (feedback) par le
récepteur vers l’émetteur
Statistiques
Émises par source et destinataires, transportées dans des paquets RTCP :
* SR (Sender Report, PT = 200) : émis par une source active = émet et peut
recevoir des paquets RTP ;
* RR (Receiver Report, PT = 201) : émis par un récepteur passif (n’envoie pas de
paquets RTP).
Restriction du traffic
* BP allouée à RTCP < 5 % de la bande allouée à une session ;
* BP allouée à RTCP répartie :
* 75 % pour les récepteurs ;
* 25 % pour l’émetteur.
Autre functionaliter :
- Fourining an id unique a une source RTP (CNAME)
- Controle le partage de la bandwidth
### La session RTP
Une session RTP ↔ une paire de ports UDP (port RTP ; port RTCP) :
### SSRC
Synchonization SouRCe c'est espace de ssynchronisation et de sequencement.
### Mixer RTP
Fonctions :
- get les paaquets rtp de plusieurs source
- change leur encodage
- les combine dans un nouveau paquet RTP
### Horodatage
Fait a l'aide de timestamp ajouter par l'émetteur, ce timestamp même si la valeur initiale et alétoire elle établi a partir une horloge montone et linéaire.
## Le protocole RTSP (Real-Time Streaming Protocol)
Protocole applicatif pour le contrôle de sessions multimédia, permettant de démarrer, de
manipuler et d’arrêter la lecture d’un flux audio ou vidéo émis en streaming
DANS TCP
### Fonctionement
1. Description du contenue
2. établissement de la session
3. Transmission et gestion des paramètre : controle
## protocole SDP (Session Description Protocol)
SDP est un protocole de description des
sessions multimedia :
* À l’initialisation, il présente les
informations sur le contenu qui va être
échangé.
* Ex. : codecs, identifiants, adresses,
métadonnées, ...
* Il définit un format de présentation des
informations
Il est utilisé par les protocoles de
signalisation comme RTSP et SIP.
## protocole SIP (Session Initiation Protocol)
Protocole de signalisation : établit, modifie et ferme des sessions multimédia
Fonctions :
* Authentifier et localiser les interlocuteurs ;
* Réaliser l'établissement et le suivi de l'appel ;
* Négocier le type de trafic échangé (voix, vidéo) et configurer la présentation des
données (format, algorithme de compression, chiffrement, etc.).
## Réseaux avec QOS
Principes :
- RSVP/intServ
- DiffServ
- Multicast
Utilisation :
- Video conf avec plusieurs personnes
- Implmentation sur tout internet
#### 1995 -> 2005 Streaming ddans le web
Infra -> proprio
Coté serveur : http + video servers
Coté client : http + lecture clients
INCOV :
- N'ADAPT PAS AU RESEAUX
- overhead tcp
- fichier telecharger en entie même si arrt de la lecture.
#### 2005 -> 2010 RTSP et RTMP
PreReq :
- Server HTTP
- Server Vidéo/Audio
Used Protocles :
RTSP, RTP, RTCP, RTMP
Inconv :
- trop cher, complex
#### 2010 HAS (Http, Adaptive, Streaming)
##### PreReq : (uses Best-Effort)
- Http
- Server https sans état standard
- client http avec état(session, controle de flux)
##### Avantage :
- Uses HTTP that already used by large streaming services
- HTTP non bloquer par les parfeux
##### Prtocoles that implement it :
- DASH
- HLS (Apple)
- HDS (Adobe)
- Smooth (Microsoft)