¿Qué tan roto está SIP y por qué?

SIP no está roto.

Una prueba positiva es que en realidad funciona, en el mundo real, para millones de personas y proporciona todo tipo de servicios diferentes.

Es lo suficientemente extensible como para manejar la mayoría de los protocolos de comunicaciones en tiempo real que se requieren, y la mayoría de las implementaciones son compatibles entre sí en todas las formas importantes. Hay algunos problemas de interoperabilidad, pero nombra un protocolo tan complejo, implementado en una variedad de plataformas, donde este NO es el caso, y esto no es culpa del protocolo. No podría ser más simple o simplemente no podría hacer lo que hace. Mire un paquete SIP algún día y verá que en realidad hay muy poca información que no pertenece a su propósito real.

También una gran ventaja, en comparación con H.323 o SKINNY, es que es legible para humanos. Al observar el contenido de un paquete SIP, puede comprender rápidamente la intención general del mismo, y si comprende bien cómo funciona, es sencillo averiguar exactamente qué debería estar sucediendo como resultado de un mensaje en particular. Esto es muy útil al solucionar problemas. Por otro lado, los protocolos basados ​​en Q.93x y similares (protocolos de telefonía digital) como H.323 requieren que la traducción sea significativa para (¡la mayoría!) Humanos. En el caso de H.323, también se intercambian muchos más paquetes durante la configuración / desmantelamiento de una llamada, lo que complica las cosas más de lo necesario.

Existen puntos débiles de seguridad, pero estos podrían corregirse mediante extensiones al protocolo sin demasiados problemas, o colocando SIP sobre un protocolo de seguridad (como SSL).

Ser legible para humanos hace que sea costoso analizar una máquina, pero en realidad, los ciclos son baratos en términos reales, y el tiempo que puede ahorrar en la resolución de problemas hace que valga la pena. ¿Por qué los humanos deben cumplir con los requisitos de las máquinas, máquinas que hemos construido para servirnos?

¿SIP está roto? Depende de como lo veas. Ciertamente, los flujos simples originales para conectar una llamada de voz han sido complicados más allá del concepto original. SIP ha sido adoptado y modificado para su uso en todo tipo de formas que no se imaginaban para comenzar:

  • Para lidiar con multimedia, presencia y mensajería
  • Permitir que los servicios de telefonía existentes se reflejen
  • Para satisfacer las necesidades de la próxima generación / IMS (y conectarse a los servicios móviles IN)
  • Para vencer a los sistemas de firewall / NAT que de otra manera evitarían la llamada de voz
  • Habilitación de seguridad mejorada

Se ha agregado una funcionalidad adicional (como REFER para la transferencia de llamadas o PRACK para una mejor capacidad de recuperación en un contexto inalámbrico), lo que complica el protocolo, pero también lo hace mucho más útil. SIP a veces se subvierte como un método de tunelización para que otros tipos de mensajes / scripts se comuniquen entre pares, incluso para tunelizar información de señalización SS7 / ISUP heredada. Algunos pueden pensar que esto no es ético, pero probablemente no sea peor que los protocolos que hacen lo mismo con HTTP para “habilitar” los sistemas heredados y / o vencer a los firewalls.

Las B2BUA (agentes de usuario consecutivos) y los controladores de borde de sesión rompen la naturaleza de principio a fin de una conversación SIP, y esta es un área controvertida. Por un lado, un elemento de borde puede ocultar la topología y el equipo “dentro” de una red central y defenderse de las amenazas conocidas (como la sintaxis malformada). Por otro lado, algunos sistemas pueden depender del contenido de los mensajes (por ejemplo, INVITAR, OPCIÓN) que se pasan al extremo lejano sin molestar.

Un área que parece absurda en retrospectiva es el uso de formato de texto para mensajes SIP. Puede comprender las razones históricas que crearon esto (es decir, convenciones establecidas en los protocolos de correo electrónico y HTTP), pero ahora se interpone en el camino. Los mensajes INVITE ahora pueden ser muy largos debido a la gran cantidad de parámetros que se enviarán en el SDP para el establecimiento de la llamada. En un entorno en el que puede llevar tiempo enviar un mensaje largo (por ejemplo, desde el teléfono a la red a través de la red inalámbrica), necesita una forma de comprimir el mensaje, como descubrieron para IMS. Las computadoras son mucho mejores para leer mensajes binarios que los de texto, que deben analizarse utilizando un corrector gramatical. SIP ahora es lo suficientemente complejo como para que ni los humanos ni las computadoras lo lean de manera eficiente. A este respecto está roto.