Este documento describe los protocolos y conceptos clave relacionados con la transmisión de voz sobre IP (VoIP), incluyendo:
1) Los protocolos RTP y RTCP que permiten la transmisión de voz en tiempo real sobre IP manejando problemas como retardo, jitter y pérdida de paquetes.
2) Los desafíos asociados con la transmisión de voz sobre una red de paquetes como retardo variable, fluctuaciones en el retardo y pérdida de paquetes.
3) Mecanismos para mejorar la eficiencia como compresión
1. PAG.: 1
3.- VoIP: RTP y RTCP.
Transporte de voz sobre paquetes:
Voz sobre paquetes
Retardo extremo a extremo
Fluctuaciones del retardo
Pérdida de paquetes
Supresión de silencios
Tamaño de los paquetes de voz
Protocolos de tiempo real sobre IP.
RTP: Real Time Protocol
RTCP: Real Time Control Protocol
2. PAG.: 2
Voz sobre paquetes.
Problemas de transmisión:
• retardo
• variación en los retardos
• pérdidas de paquetes
Efecto en recepción:
• espaciamiento no
constante
• flujo incompleto
Percepción usuario:
• eco
• ininteligibilidad
• entrecortado
011010101010
011010 101010 011010 101010
011010101010
Señal de voz
Codificación
Empaquetado
Red de paquetes
Señal de voz
Decodificación
Desempaquetado
3. PAG.: 3
Retardo extremo a extremo
Retardo del algoritmo de codificación
Tiempo de empaquetado (y desempaquetado).
Tiempo de transmisión = nº bits / velocidad de transmisión.
Tiempo de propagación (despreciable salvo en distancias muy grandes)
Tiempos de proceso y espera en los nodos de conmutación (dependiente del tráfico en la
red)
Buffer de recepción
Retardo del algoritmo de decodificación.
011010101010
011010 101010 011010 101010
011010101010
Señal de voz
Codificación
Empaquetado
Red de paquetes
Señal de voz
Decodificación
Desempaquetado
011010101010
011010 101010 011010 101010
011010101010
Señal de voz
Codificación
Empaquetado
Red de paquetes
Señal de voz
Decodificación
Desempaquetado
4. PAG.: 4
Retardo de empaquetado y tamaño de los paquetes de voz.
Paquetes grandes:
Reduce el peso relativo de las cabeceras. Aumenta la eficiencia (bits de
información útil / bits totales).
Aumenta el retardo de empaquetado
Paquetes pequeños:
Tráfico añadido por sobrecarga de cabeceras. Menor eficiencia.
Disminuye el retardo de empaquetado.
El mínimo tamaño depende del codec.
G.729: bloques de 10 ms.
G.723.1: bloques de 30 ms.
G.711: muestras de 8 bits: 0,125 milisegundos.
5. PAG.: 5
Ejemplo de retardo de empaquetamiento.
Un codec G.711 entrega un bloque de 8 bits 8.000 veces por segundo.
Teniendo en cuenta que los protocolos utilizados añaden 46 bytes de
cabeceras en total (RTP 12 bytes, IP 20 bytes, UDP 8 bytes, PPP 6
bytes) calcular la velocidad de transmisión necesaria para que el retardo
de empaquetado sea mínimo. Calcular la eficiencia de la transmisión
(información útil / información total).
Calcular la eficiencia y la velocidad de transmisión si se establece un
retardo de empaquetado de 1 segundo.
Calcular la eficiencia y la velocidad de transmisión para un retardo de
empaquetado de 50 ms.
6. PAG.: 6
Consecuencias del retardo.
Retardo > 400 ms: calidad inaceptable.
Retardo > 150 ms: pérdida de interactividad (“corto y cambio”).
Retardo > 50 ms: aparición de eco si hay rebotes.
Rebote eléctrico en las hibridas de los POTS.
Rebote acústico: apreciable en manos libres y altavoz – micrófono
Cuándo aparece un operador de VoIP y se interconecta con la RTC aparece eco
por los rebotes en las hibridas de los POTS. ¿Qué elemento se debe introducir
para solucionar el problema, qué operador debe introducirlo y dónde?
Codec +
Empaq
/ desempaq
Red VoIP RTB
RTB
Codec +
Empaq
/ desempaq
POTS POTS
7. PAG.: 7
Jitter: fluctuaciones del retardo
La regeneración de la voz es un proceso síncrono necesita bloques de
voz con frecuencia periódica
Flujos de paquetes espaciados de manera irregular Buffer amortiguador
t
Retardo A-B
Red de
paquetes
A B C
Buffer de
recepción
Retardo variable (colas
en los nodos)
Retardo A-C
Tamaño del buffer:
Gran tamaño: filtra mayores variaciones de retardo
Tamaño pequeño: añade poco retardo extra
8. PAG.: 8
Transmisión con retardo constante o variable:
1 2 3 4 5 6
1 2 3 4 6
t
t
Transmisor
Receptor
1 2 3 4 5 6
1 2 3 4 6
t
t
Transmisor
Receptor
5
1 2 3 4 5 6
1 2 3 4 6
t
t
Transmisor
Receptor
5
Retardo constante:
Retardo variable:
Retardo variable
compensado con buffer:
Retardo extra introducido por el buffer:
variable para cada paquete
9. PAG.: 9
Retardo en el buffer de recepción.
En un sistema VoIP, la red de paquetes introduce un retardo variable entre
30 y 110 milisegundos. Para compensarlo se utiliza un buffer en la
recepción. ¿Qué retardo introducirá este buffer de recepción en los
siguientes paquetes?
• En un paquete que haya sufrido en la red de paquetes un retardo de 30
milisegundos.
• En un paquete que haya sufrido en la red de paquetes un retardo de 110
milisegundos.
• En un paquete que haya sufrido en la red de paquetes un retardo de 50
milisegundos.
10. PAG.: 10
Retardo extremo a extremo.
Calcular el retardo de la transmisión de la voz a través de una red VoIP
desde que el emisor habla hasta que el receptor le escucha conociendo:
El transmisor utiliza un codec G.729 a 8 kbit/s con un retardo de
codificación de 15 milisegundos.
La voz se transmite en paquetes de 200 bits de voz codificada. A cada
paquete de 200 bits de voz se le añaden 46 bytes de cabeceras RTP,
UDP, IP y PPP.
La red IP introduce un retardo variable entre 50 y 90 milisegundos.
El decodificador introduce un retardo de 5 milisegundos.
Solución:
Codec: 15 milisegundos.
Empaquetamiento: 200 bits / 8000 bits/seg = 25 milisegundos.
Retardo en la red IP + buffer de recepción = 90 milisegundos.
Decodificador = 5 milisegundos
TOTAL = 15 + 25 + 90 +5 = 135 milisegundos.
11. PAG.: 11
Pérdida de paquetes
• Causas:
• Errores de transmisión.
• Congestión de la red (se descartan paquetes).
• Soluciones:
• Retransmisión inútil VoIP emplea UDP.
• Códigos de corrección de errores (redundancia aumenta la sobrecarga)
• Mecanismos para evitar congestión:
• Sobredimensionar
• QoS: priorizar los paquetes de voz sobre HTML o P2P.
• Disimular las pérdidas:
• Sustituir paquete perdido por:
Silencio Ruido blanco (GSM) Interpolación
• Distribución muestras entre tramas.
12. PAG.: 12
Protocolos de tiempo real sobre IP
• Objetivo: facilitar la reconstrucción de la voz en el receptor.
• UDP no asegura la entrega de paquetes ni el orden (no tiene Número de
Secuencia).
• RTP: Real Time Protocol.
• Codec utilizado.
• Numeración de los paquetes: permite la reordenación.
• Timestamp del instante del muestreo:
• Permite reproducir la voz en el momento adecuado (pérdidas de paquetes).
• Permite calcular el delay y el jitter.
• Identificación de la fuente de audio (multiconferencias, mezclas).
• RTP no reordena ni ajusta los tiempos: solo da información.
• Se utiliza en todos los sistemas VoIP: SIP, H.323, MGCP...
• RFC 1889: RTP y RTCP
13. PAG.: 13
Protocolos de tiempo real sobre IP
• RTCP: Real Time Control Protocol.
• Envía entre los participantes en una sesión RTP información sobre la calidad
de la sesión:
• Paquetes perdidos.
• Retardo.
• Jitter.
• No es obligatorio, pero normalmente se utiliza conjuntamente con RTP.
14. PAG.: 14
Protocolos de tiempo real sobre IP
• Información periódica del estado y calidad de la comunicación
• Puertos UDP inmediatamente superiores
• Audio y video.
• Puertos UDP pares entre 1026 y 65.534 (por defecto 5.004)
e independientes en cada extremo
15. PAG.: 15
Formato de la trama RTP
Cabecera
Nivel 2
Cabecera
IP
Cabecera
UDP
Cabecera
RTP
Muestras
de audio
Cola
Nivel 2
• Número de secuencia.
• Timestamp.
• Identificación de la fuente de audio.
• Tipo de audio o vídeo: codec.
• Tipos estáticos: utilizables sin señalización.
• Tipos dinámicos: utilizables con señalización.
• Tipo RED: redundancia.
16. PAG.: 16
Formato de la trama RTP
0 7 15 31
V P X CC M PT SN
Timestamp
Identificador SSRC
Identificador CSRC
Extensión de cabecera
Carga útil
Tipo de carga (7):
formato de carga útil
Instante de muestreo (32)
Versión
RTP (2)
P=1 incluye
relleno (1)
X=1 Incluye
extensión de
cabecera (1)
Número de identificadores CSRC
presentes en la cabecera (4)
Marca (1).
Depende de PT
Identificador de fuente (32)
Identificador de contribuciones
en una mezcla (32)
Video
H.263
H.261
34
31
Audio
PCM ley
PCM ley A
G.722
G.723
G.728
G.729
0
8
9
4
15
18
Tipo de
carga
Códec
PT
Tipo de carga (7):
formato de carga útil
Número de secuencia (16)
Cabecera
básica
(12
octetos)
17. PAG.: 17
Formato de la trama RTP
0 7 15 31
V P X CC M PT Sequence Number
Timestamp
Synchronization Source (SSRC) Identifier
Contributing Source (CSRC) Identifiers (0 a 15 entradas)
Extensión de cabecera (opcional)
Carga útil
Cabecera
básica
(12
octetos)
18. PAG.: 18
Formato de la trama RTP
V: Versión de RTP (actualmente la 2)
P: Presencia de Relleno para llegar a un múltiplo de 32 bits.
X: Extensión de cabecera
CC: Número de fuentes mezcladas
M: Marca: (Ej: fin de cuadro de video, fin de silencio, etc.)
PT: Payload Type
SN: Número de Secuencia
Timestamp: tiempo del muestreo de la primera muestra del paquete
SSRC: Synchronization Source Identifier (persona o mezclador)
CSRC: Contributing Source Identifier: Identificador de fuente mezclada.
20. PAG.: 20
Ancho de banda para sesión VoIP (I)
• Tamaño de carga útil:
• Tamaño de los bloques de información
• Número de bloques por paquete
• Sobrecarga por cabeceras:
• Cabeceras que añaden los protocolos sucesivos
• Ej: Caso más sencillo (VoIP)
• RTP: 12 octetos
• UDP: 8 octetos
• IP: 20 octetos
• Niveles inferiores (ej: PPP 6 octetos, Ethernet 38 octetos)
Nivel 2 IP
20 octetos
UDP
8 oct
RTP
12 oct
Carga útil
N oct
40 octetos
21. PAG.: 21
Ancho de banda para sesión VoIP (II)
a) Calcular la velocidad de transmisión necesaria para transmitir en VoIP una
señal de voz codificada con un codec G.711 si se envía un paquete por
segundo. Suponer que se utilizan los protocolos RTP, UDP, IP y PPP.
b) Idem si se envía un byte de voz en cada paquete.
c) Idem con un codificador G.729.
a) En el paquete hay que transmitir 64.000 bits = 8.000 bytes. Las cabeceras
suman 46 bytes. Velocidad de transmisión = (8.000 + 46) x 8 bit/s = 64.368
bits/s.
b) (1 + 46) x 8 / 125 microsegundos = 3.008.000 bit/s
ca) (1.000 + 46) x 8 bit/s = 8.368 bits/s.
cb) (1 + 46) x 8 / 1 milisegundo = 376.000 bit/s.
22. PAG.: 22
Ancho de banda para sesión VoIP (III)
Códec
Tasa
nominal
(Kbits/s)
Retardo
empaquetado
(ms)
Tamaño
carga útil
(octetos)
Tasa de envío (Kbits/s)
IP (sin
nivel 2)
IP/PPP IP/AAL5
G.711 64
5 40 128 137.6 169.6
10 80 96 100.8 127.2
20 160 80 82.4 106
G.729 8
10 10 40 44.8 84.8
20 20 24 26.4 42.4
40 40 16 17.2 21.2
¿Ahorro ancho de banda? Con supresión de silencios, uso codecs…
23. PAG.: 23
Reducción del ancho de banda
• Mecanismos
• Supresión de silencios (más del 50%).
• Compresión de cabeceras
• Se aplican en el enlace: ambos extremos deben estar preparados.
• Estándares RFCs 2508 (CRTP) y 3095 (ROHC)
• Suprimen información redundante: mejora la eficiencia
• Sólo se suelen aplicar en enlaces de acceso y no en troncales
24. PAG.: 24
Compresión de cabeceras.
Vers Hlen TOS Packet length
Identification Flag Fragment offset
TTL Protocol Checksum
Source address
Destination address
Source port Destination port
Checksum Length
V P X CC M PT Identification
Timestamp
SSRC Identifier
CSRC Identifier
RTP
UDP
IP
Campos que varían frecuentemente
25. PAG.: 25
Supresión de silencios
Reducción del ancho de banda Supresión de silencios.
Detección de periodos de silencio (VAD: Voice Activity Detection)
En una conversación telefónica: reducción del 60 % del flujo
Paquetes de silencio (SID: Silence Insertion Description)
Indicador nivel de ruido
En 1000 conversaciones simultáneas con una actividad del 40%
no son suficientes 400 canales en un sentido.
26. PAG.: 26
Supresión de silencios
En 10 conversaciones simultáneas en las que cada persona habla el 40% del tiempo
¿cuál es la probabilidad de que en un sentido haya más de 4 personas hablando
simultáneamente?
P = P(5) + P(6) + … + P(9) + P(10)
Donde p = 0,4 y n = 10.
Resultado: 36,7%
- Para que la probabilidad de que haya más
hablantes simultáneos que canales sea menor
que el 0,5%, hay que poner 8 canales.
x
n
x
p
p
x
n
x
P
)
1
(
)
(
)!
(
!
!
x
n
x
n
x
n
Nº de lineas
Prob de N
lineas activas
Prob de
colisión con
N líneas
0 0,00604662 0,99395338
1 0,04031078 0,9536426
2 0,12093235 0,83271025
3 0,21499085 0,6177194
4 0,25082266 0,36689674
5 0,20065812 0,16623862
6 0,11147674 0,05476188
7 0,04246733 0,01229455
8 0,01061683 0,00167772
9 0,00157286 0,00010486
10 0,00010486 0
27. PAG.: 27
RTCP
• Regula intercambio de mensajes de control en una sesión multimedia No
proporciona mecanismos QoS
• Proporciona periódicamente información de calidad de servicio a los
participantes en una sesión:
• Retardo
• Jitter
• Tasa de paquetes recibidos y perdidos...
• Opcional
• Permite tomar medidas en tiempo real: por ejemplo, aumentar el buffer de
recepción.
28. PAG.: 28
RTCP
• Funciones adicionales útiles en participaciones múltiples:
• Identificación
• Correlación de relojes
• Control de los participantes
• Mensajes de RTCP (5 tipos definidos en RFC 1889):
• SR (Sender Report): estadísticas de envío y recepción desde participantes
activos.
• RR (Receiver Repot): estadísticas de recepción desde participantes pasivos
• SDES (Source Description): identificación de fuente (nombre, login, etc)
• BYE: fin de participación.
• APP (Application-specific)
• Ancho de banda de RTCP:
• Entre 1 y 5% del RTP
• Con múltiples participantes: control para evitar avalanchas
29. PAG.: 29
Información del SR:
Timestamps:
• envió del SR en cuestión.
• envío del LSR: último SR recibido desde el destino.
• retardo del LSR.
Con esto se puede calcular el round trip y el jitter.
Red IP
SR1
Envio: T1
SR2
Envío: T3
Envío LSR: T1
Delay: T2-T1
SR1
Envio: T1
Llega en T2
30. PAG.: 30
Problemas.
1.- En un sistema de VoIP la voz se codifica mediante un codificador G.711 y se
empaqueta para ser transmitida utilizando los protocolos RTP, UDP, IP y PPP. Las
cabeceras introducidas por estos 4 protocolos son en total 46 bytes en cada
paquete. Suponiendo que el retardo máximo admisible de empaquetado sea de 10
milisegundos,
a) calcular el tamaño máximo del paquete completo (carga útil más cabeceras) que
permita cumplir dicho retardo.
b) indicar la eficiencia en la transmisión de la información.
c) indicar la velocidad necesaria para transmitir los paquetes.
d, e y f) repetir el cálculo para un codificador G.729 a 8 kbit/s y un retardo de
empaquetado de 20 milisegundos.
g) indicar la expresión que relaciona el tamaño de la carga útil con el retardo de
empaquetado y con la velocidad de la voz codificada por el codidficador.
31. PAG.: 31
Problemas.
2.- Una red de telefonía sobre IP utiliza una red IP que introduce un retardo variable y
acotado entre un mínimo de 50 milisegundos y un máximo de 100 milisegundos.
Calcular el retardo del buffer de recepción para compensar el jitter introducido por la red
IP:
a) ¿Cuál será el retardo máximo y mínimo introducidos por el buffer de recepción?
b) ¿Qué retardo se aplicará a un paquete que haya sufrido en la red IP un retardo de 70
milisegundos? ¿Y a uno que haya sufrido un retardo de 90 milisegundos?
Suponiendo que se utiliza un codec G.726 a 32 kbit/s
c) Calcular el tamaño del paquete para que el retardo de empaquetamiento sea igual o
menor que 20 milisegundos.
Suponiendo que las cabeceras RTP, UDP, IP y nivel 2 ocupan 46 bytes
d) Calcular la velocidad de transmisión necesaria. ¿Cuál será el retardo introducido por
la transmisión si la velocidad de transmisión es 1 Mbit/s?
e) ¿Qué efectos tiene el retardo sobre la calidad de la voz?
32. PAG.: 32
Problemas.
3.- a) Calcular el ancho de banda necesario para transmitir una señal de voz codificada
con un codec G.729 a 8 kbit/s con un retardo de empaquetamiento de 25
milisegundos. Suponer que las cabeceras RTP, UDP, IP y PPP ocupan 46 bytes.
b) ¿es necesario sumar un retardo de desempaquetamiento en el receptor? ¿por qué?
c) indicar las causas de retardo en una conexión VoIP extremo a extremo.
Solución:
a) 8 kbit/s x 25 mseg = 200 bits
200 bits + 46 x 8 = 568 bits
568 bits / 25 mseg = 22.720 bit/s.
b) no, porque el primer bit tendrá todo el retardo de empaquetamiento en el emisor, y el
último todo el retardo en el receptor.
c) codec, empaquetamiento, transmisión, propagación, red IP, buffer de recepción y
decodificador.