Fundamentos de Protocolos de Red: RTP, RTSP, TCP y Optimización Multimedia
Clasificado en Informática
Escrito el en
español con un tamaño de 5,38 KB
Protocolos de Transmisión en Tiempo Real (RTP y RTSP)
RTP (Real-time Transport Protocol)
RTP es un protocolo utilizado para la transmisión de información en tiempo real, como por ejemplo audio y vídeo en una videoconferencia. Si se utilizan audio y vídeo, se debe crear una sesión RTP independiente para cada uno de ellos. En cada sesión se hace uso de una dirección multicast y dos puertos: uno para el envío de datos y otro para el control de la sesión.
RTSP (Real-Time Streaming Protocol)
RTSP tiene la función de un “mando a distancia de red” para servidores multimedia.
- Permite establecer y controlar uno o más flujos de datos multimedia sincronizados.
- No existe el concepto de conexión RTSP, sino de sesión RTSP.
Rendimiento y Optimización de Conexiones TCP
Tipos de Conexiones TCP
En las conexiones no persistentes, el servidor analiza las peticiones, responde y cierra la conexión. Esto provoca que haya 2 RTTs (Round Trip Times) para cada conexión y que cada transferencia de un objeto sufra el efecto slow-start de TCP.
En cambio, en las conexiones persistentes, el servidor analiza las peticiones, responde y sigue esperando nuevas peticiones. Esto reduce los RTTs adicionales y el efecto slow-start se produce solo en el primer objeto que se transfiere.
Estrategias de Caching Web
El objetivo del caching es que no se envíe un objeto si el cliente ya tiene una copia actualizada. El cliente especifica parte de la copia del objeto que tiene en su caché y el servidor no responde con el objeto si la copia que tiene ya está actualizada.
Esta práctica es aconsejable ya que se reduce el tráfico web hacia el servidor origen y los tiempos de respuesta son reducidos.
Control de Flujo y Congestión TCP
Escenarios de Control de Flujo
- Ventana de Recepción: La ventana de recepción se ha llenado y se ha dejado de enviar, hasta el instante 0.6 segundos en el que el receptor informa que la ventana ya está vacía. En ese instante, se vuelven a enviar datos de nuevo.
- Vconf (Control de Congestión): Comienza en slow-start, aumentando de forma exponencial. Una vez alcanzado el SSTHRESH (Slow Start Threshold), cambia a la fase de congestion avoidance. No se produce ninguna pérdida ni error; el envío es correcto.
- Vtx: Comienza la conexión en el minuto 1.45 (aprox.) y empieza a transmitir de manera lineal una vez comienza el slow-start.
Visualización de Secuencias TCP
La serie azul consiste en el número de secuencia de segmento enviado y la amarilla es el número de secuencia de segmento recibido. Tienen forma de escalera porque TCP usa una ventana deslizante para el control de flujo.
En cada segmento TCP, el receptor especifica la cantidad de bytes que puede almacenar en el búfer para esa conexión. El emisor puede enviar datos hasta esa cantidad. Para poder enviar más datos, debe esperar que el receptor le envíe un ACK (Acknowledgement) con un nuevo valor de ventana. Por eso, cuando el receptor informa de que se han recibido correctamente, se aumenta la ventana y el escalón aumenta. La diferencia entre ambas series se debe a que el emisor envía y el receptor confirma la recepción de los segmentos anteriores.
Compresión Multimedia y Métrica de Calidad
DPCM y PSNR
La técnica que obtuvo mejores resultados fue la de DPCM (Modulación por Codificación de Pulso Diferencial). Llegamos a esta deducción al comparar el mejor resultado para cada técnica utilizando la herramienta para crear un gráfico con las curvas de R/D (Tasa/Distorsión), donde se obtenía que para DPCM se lograba un mayor valor de PSNR por bitrate.
PSNR (Peak Signal-to-Noise Ratio)
El PSNR permite definir la relación entre el ruido que afecta a una señal y la máxima energía posible de la señal. Cuanto mayor sea este valor, mayor será la calidad de la imagen.
Implementación de Protocolos y Algoritmos
Protocolo Finger
$ finger [hostname [port]]Algoritmos de Estimación y Control de Congestión TCP
Fórmulas clave utilizadas en la gestión de la conexión:
Rtte = (1-α) * Rtte + α * Rttm
Timeout = β * RtteMecanismos de Control de Congestión (CWND y SSTHRESH)
Ack válido -> CWND = CWND + 1; SNDWND = SNDWND - 1
Timeout -> CWND = 1; SNDWND = SNDWND - 1; SSTHRESH = SSTHRESH / 2Ejemplo de Cliente TCP (C)
Fragmento de código que ilustra la conexión y lectura de datos:
main(int argc, char argv[]){
// {buscar servidor echo}
s = connectTCP(hostname, service, 5);
n = read(0, user, 20);
m = write(s, user, n);
while((n = read(s, buff, x)) > 0){
printf(“%s”, buff);
}
close(s);
}