---
# System prepended metadata

title: Note VOIP

---

# 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)