| | ¿Cómo transmite Shoutcast por la red?
Luego de realizar todos los pasos que indico en la pestaña Servidor Shoutcast de esta web la pregunta es ¿Cómo transmite el audio Shoutcast?
Para dar la respuesta a esta pregunta se hace una transmisión y con Wireshark y se capturan los paquetes de la red reduciendo la actividad al mínimo en los computadores para contaminar lo menos posible la captura con paquetes de actividades externas. De la captura y el análisis de los paquetes capturados obtenemos los resultados que aquí se detallan.
Cuando un usuario abre una página que contiene el servicio de conexión IP:PUERTO que esté conectado al servicio de Shoutcast éste hace una petición al DNS que lo enlaza a los servidores que se encuentran en USA. Una vez que la petición esta realizada y el código es autentificado se genera un enlace de respuesta al solicitante. Los datos de cuando realice la captura de paquetes eran: IP maquina virtual: 192.168.0.105 IP PC cliente: 192.168.0.175 IP Servidor Intermedio: 173.154.42.225 Mediante la web Who is busque a que maquina correspondia esa IP (siguiendo el link de Who is se puede acceder al resultado).
TCPTransmision Control Protocol.
Las conexiones TCP se componen de tres etapas:
- Establecimiento de conexión
- Transferencia de datos
- Fin de la conexión.
TCP nos ofrece transporte fiable, para esto utiliza: - Número de secuencia: TCP nos asegura la entrega de los paquetes en el orden correcto a la aplicación receptora, tema importante en la transmisión multimedia.
- Checksum: Suma de checkeo, nos permite detectar errores, en el caso de la transmisión por Shoutcast está desactivada.
- ACK: Los acuses de recibo nos alertan de la perdida de paquetes.
A la derecha podemos ver la estructura de un encabezado TCP, ya hemos hablado del numero de secuencia, ACK y Checksum, pero también TCP tiene dentro de su encabezado los números de los puertos de la capa de aplicación que están involucrados en la transmisión (Transmisor (Tx) y Receptor (Rx))
Paquete TCP Capturado de la transmision ShoutcastAhora veamos las partes descritas en los paquetes de la transmisión Shoutcast capturados por Wireshark A continuación vemos la primera parte del encabezado, el número del puerto origen (8000) y el número del puerto destino.
En la imagen siguiente podemos ver los números de secuencia actual y del paquete siguiente, también el numero del acuse de recibo.
Ahora en la imagen que sigue observamos los flags que son indicaciones especiales (Ej la linea 3 de los flag corresponde a la indicación de control de congestión que en este caso tiene valor 0). Podemos ver que está marcado el envío de acuse de recibo y el flag ''Push'', este flag da la indicación de pasar los datos de inmediato a la aplicación en vez de esperar su turno en el buffer.
Como mencioné anteriormente la suma de checkeo está desactivada como se puede ver a continuación.
Lo que viene después de ésta ultima imagen son básicamente los datos y el largo de los datos.
|
TLSDentro de lo que encontré en mi captura de paquetes de Wireshark, encontré un paquete con el protocolo TLSv1.2. la investigación me llevo a que TLS y su predecesor SSL son protocolos criptográficos que buscan entregar seguridad a la comunicación en Internet.
SSL implica una serie de fases básicas:
- Negociar entre las partes el algoritmo que se usará en la comunicación: Mediante los mensajes Client Hello donde el cliente le dice al servidor la version de SSL - TLS que posee, lista de métodos de compresión y cifrado, y Server Hello donde el servidor informa el método a utilizar desde la lista del mensaje Client Hello.
- Intercambio de claves públicas y autenticación basada en certificados digitales: En esta parte además se define una clave llamada Master Secret que va a ser utilizado en toda las claves restantes pues mediante un codigo pseudo-aleatorio se generan el resto de las claves a partir de la Master Secret.
- Transmisión de los datos.
- Finish: Mensaje de finalización, también se envia un hash de los datos enviados y recividos por ambas partes.Se ejecuta en la capa de aplicación y sobre TCP, tiene un campo de content_type que indica el protocolo de nivel superior que se está utilizando. La función pseudo-aleatoria mencionada en el punto 2 divide los datos de entrada en 2 mitades para que sean procesados cada mitad con algoritmos hash diferentes, después realiza sobre ellos una operación XOR De esta forma brinda mayor seguridad pues se protege a sí mismo de la eventualidad de que alguno de los algoritmos que utiliza sea vulnerable en el futuro.
En la imagen que sigue podemos ver el paquete TLSv1.2 que capturé con Wireshark, acá podemos ver que nos indica con que protocolo está trabajando, la versión del protocolo, el largo y los datos encriptados. Cabe mencionar también que este protocolo es ampliamente utilizado, lo mas común es encontrarlo con HTTP para formar HTTPS, también participa en aplicaciones VoIP y aplicaciones SIP.
|
Updated on ene 16, 2014 by jesenia salazar (Version 34)
|