NEGOCIOS

Cableado para el sonido: cómo SIP ganó la guerra del protocolo VoIP

Cableado para el sonido: cómo SIP ganó la guerra del protocolo VoIP

Actualizar: Estamos en los últimos estertores de las vacaciones de invierno de 2023, lo que significa que la mayoría de los teléfonos de la oficina en casa de Ars pueden permanecer inactivos durante unos días más. Como tal, hemos estado resurgiendo algunos clásicos de los archivos; el último es este vistazo a cómo SIP (Protocolo de inicio de sesión) ganó las guerras de protocolos de VoIP una vez. Esta historia apareció por primera vez el 8 de diciembre de 2009 y aparece sin cambios a continuación.

A medida que crece una industria, es bastante común encontrar múltiples soluciones que intentan abordar requisitos similares. Esta evolución dicta que estos estándares propuestos pasen por una etapa de selección: con el tiempo, vemos que algunos se vuelven más dominantes que otros. Hoy en día, el Protocolo de inicio de sesión (SIP) es claramente uno de los protocolos VoIP dominantes, pero eso obviamente no sucedió de la noche a la mañana. En este artículo, el primero de una serie de artículos en profundidad que exploran SIP y VoIP, veremos los principales factores que llevaron a este resultado.

Una breve historia de VoIP

Volvamos a 1995, en los días anteriores a Google, la mensajería instantánea e incluso la banda ancha. Los teléfonos móviles eran grandes y voluminosos, Microsoft había desarrollado una nueva interfaz de Windows con un botón de «Inicio» y Netscape tenía el navegador web más popular. El crecimiento de Internet y las redes de datos hizo que muchos se dieran cuenta de que es posible utilizar las nuevas redes para satisfacer nuestras necesidades de comunicación de voz y, al mismo tiempo, reducir sustancialmente el costo asociado. La primera solución comercial de Internet VoIP provino de una empresa llamada VocalTec; su software permitía que dos personas hablaran entre sí a través de Internet. Uno haría una llamada local a un ISP a través de un módem de 28.8K o 36.6K y podría hablar con amigos incluso si vivieran lejos. Recuerdo haber probado este software y el sonido definitivamente estaba por debajo de la calidad aceptable. (Con frecuencia sonaba como si estuviera intentando hablar mientras estaba sumergido en una piscina). Sin embargo, el software conectó con éxito a dos personas e introdujo una conversación de voz en tiempo real para una red con ancho de banda limitado.

Los primeros implementadores de VoIP vieron de inmediato que existen varias diferencias entre la red telefónica y la red de datos. Uno de ellos es el diseño de intercambio de mensajes. El sistema telefónico funciona en interruptor de circuito, donde un circuito es el camino completo entre dos puntos finales. Así, es posible garantizar un único camino para todos los mensajes en una única comunicación. La red de datos funciona con paquetes, donde varios saltos en el camino ayudan a enrutar los paquetes a su destino final, y esta ruta puede cambiar de un paquete a otro. Debido a esta estructura, la red de datos no puede garantizar que los paquetes de una sola sesión atraviesen la misma ruta. Por lo tanto, VoIP requirió algunas innovaciones antes de que realmente pudiera despegar.

Para iniciar una llamada, necesita un protocolo de señalización VoIP. El término «señalización» proviene del mundo de la comunicación telefónica con interruptor de circuito. En este sistema, tenemos señales enviadas de un extremo al otro para poder comunicarnos y permitirnos hablar a grandes distancias. El papel de un protocolo de señalización es definir la forma en que se estructuran estos mensajes y las reglas que nos permiten iniciar, configurar y finalizar una conversación. Vale la pena señalar que los mensajes de señalización no incluyen la voz que se escucha (el medio de la llamada). El protocolo de señalización puede incluir la información de los flujos de medios y sus atributos, pero el discurso en sí mismo en una llamada de voz no es un mensaje de señalización. Si está buscando una explicación de muy alto nivel, solo piense en la señalización como los mensajes que envía un dispositivo cuando marca o cuelga el teléfono.

Entonces comenzó la carrera para crear un nuevo protocolo de señalización. Algunas de estas especificaciones de protocolo estaban abiertas para que todos las implementaran, y otras eran soluciones de propiedad del proveedor. Y esa carrera aún no ha terminado, ya que constantemente vemos nuevas propuestas que intentan convencer a todos de que hay una mejor manera de hacer las cosas. Un protocolo de señalización de VoIP debe mostrar cómo se integra con la red de datos; esto incluye aspectos como la definición de un método para ubicar los dispositivos de comunicación, la especificación del comportamiento del servidor, la introducción de nuevos servicios y el diseño de seguridad.

Diseño de protocolo SIP

SIP es un protocolo del Grupo de trabajo de ingeniería de Internet (IETF) y, como tal, fue diseñado para ser un protocolo de Internet abierto. Su primer lanzamiento fue en 1999, definido por RFC 2543, pero sus primeros borradores datan de 1996. Algunas de sus definiciones fueron revisadas posteriormente en 2002 por RFC 3261.

Veamos una solicitud SIP simple:

INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP home.mynetwork.org;branch=z9hG4bK8uf35f
To: Jon Stokes 
From: Gilad ;tag=n23ycs
Call-ID: [email protected]
CSeq: 59164 INVITE
Contact: sip:[email protected]
Max-Forwards: 70

SIP está basado en texto. Observe que las direcciones son muy similares a las direcciones de correo electrónico. Aunque SIP puede admitir números de teléfono, la idea básica es que las direcciones no tienen que ser números de teléfono, del mismo modo que no esperaría que su dirección de correo electrónico se pareciera a la dirección de su casa o trabajo. Un mensaje SIP podría parecerse al siguiente ejemplo (parcial):

GET /reviews/ HTTP/1.1
Host: arstechnica.com
User-Agent: Gecko/Firefox/3.5.5

Por lo tanto, SIP es bastante similar a HTTP. La primera línea es la línea de solicitud, que contiene información sobre el tipo de solicitud (GET en HTTP e INVITE en SIP para estos ejemplos) y la dirección prevista, mientras que las líneas siguientes son encabezados con información adicional. Naturalmente, las respuestas en SIP también se parecen mucho a las respuestas HTTP. La idea es utilizar la estructura de uno de los protocolos de Internet más populares y facilitar a los desarrolladores de software y administradores de red el trabajo con SIP.

Estos intentos de hacer que SIP sea tan fácil como HTTP funcionaron hasta cierto punto, pero los requisitos de las direcciones SIP son más complejos que los de HTTP, por lo que el protocolo es más complejo. Por ejemplo, es un requisito básico en SIP poder tener una comunicación simétrica bidireccional, mientras que un escenario HTTP típico sería un cliente que realiza solicitudes a un servidor y el servidor envía una respuesta. Incluso sin conocimientos previos de HTTP, aprender esta estructura de mensajes es una tarea muy fácil.

Para aquellos que se preguntan, el ejemplo de SIP anterior es el primer paquete que se podría enviar al llamar desde un teléfono SIP al editor adjunto de Ars Technica, Jon Stokes. Me abstendré de entrar en los detalles técnicos del contenido del mensaje en este momento, ya que este es un tema para un artículo separado.

Reutilizar y mantenerlo simple

El papel de un protocolo de señalización es definir la forma en que se estructuran estos mensajes y las reglas que nos permiten iniciar, configurar y finalizar una conversación.

Otro factor importante en el diseño de SIP fue la decisión de reutilizar otros estándares de Internet existentes tanto como fuera posible. La ubicación de la dirección usa DNS, la autenticación de usuario usa autenticación de resumen HTTP, la configuración de los flujos de medios de llamada usa el Protocolo de descripción de sesión (SDP), el cifrado usa TLS y, cuando corresponde, los usuarios se envían información XML entre sí. Esta integración ayudó aún más a establecer SIP como parte del mundo del protocolo de Internet, y los proveedores pudieron reutilizar las implementaciones existentes en sus aplicaciones SIP. Por otro lado, en algunos casos, el IETF tuvo que realizar definiciones adicionales en otros protocolos para satisfacer las necesidades de SIP.

Mantener la complejidad de los servidores, especialmente los servidores proxy, a lo largo de la ruta de la llamada al mínimo posible también es un énfasis en el diseño de SIP. Los SIP Proxies enrutan los mensajes entre las partes que llaman. Los proxies definidos en el estándar no conocen el estado de la llamada, sino que operan en el nivel de transacción y también pueden no tener estado. Esto ayuda con la escalabilidad, porque menos dispositivos pueden atender más llamadas. Para hacer eso, el protocolo en sí se separó en varias capas distintas, una práctica común que usan los programadores para descomponer un sistema complejo. Este diseño ayuda a simplificar aún más SIP y facilita su implementación. A veces, mantener este estado mínimo forzó algunas limitaciones (y más tarde, algunos cambios en el protocolo), pero estos subproductos se mantuvieron al mínimo.

Finalmente, y quizás lo más importante, SIP no se creó únicamente como reemplazo del sistema telefónico. Permite extensiones y depende de ellas para brindar servicios adicionales más allá de simples llamadas. Por ejemplo, puede usar SIP para mantener la información del estado del usuario en un cliente de MI, así como para configurar sesiones de MI. Otra extensión permite transferir una llamada a un tercero, algo que simplemente no estaba definido por la especificación SIP básica. Esto es posible gracias al hecho de que SIP proporciona las construcciones básicas necesarias y las limita solo cuando es necesario. SIP define el concepto de «diálogo», que es una comunicación bidireccional, pero no limita los diálogos a las llamadas. La comunicación bidireccional también incluye configurar su estado de mensajería instantánea y recibir las actualizaciones de sus amigos de mensajería instantánea. Las extensiones también pueden definir fácilmente nuevos tipos de solicitud o respuesta y nuevos encabezados cuando sea necesario.

Artículo Recomendado:  MacOS 0-day explotado activamente permite a los piratas informáticos tomar capturas de pantalla de Mac infectadas

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba