Pregunta

Recientemente Fui a ver el libro "Red UNIX Programación, Vol. 1" Richards Stevens y yo descubrimos que hay una tercera capa de transporte estándar, además de TCP y UDP: SCTP .

Resumen: SCTP es un protocolo de nivel de transporte que es controlado por mensajes como UDP, pero fiable como TCP. Aquí es un corta desde developerWorks IBM .

Sinceramente, nunca he oído hablar de SCTP antes. No me acuerdo de leer en cualquier libro de redes o de oír hablar de ella en las clases que había tomado. Lectura otra pregunta StackOverflow que menciona SCTP sugiere que no estoy solo con esta falta de conocimiento.

¿Por qué es tan desconocido SCTP? Por qué no se utiliza mucho?

¿Fue útil?

Solución

De hecho, SCTP se utiliza sobre todo en el área de las telecomunicaciones. Tradicionalmente, los conmutadores de telecomunicaciones utilizan SS7 ( de señalización Nº 7 Sistema ) para interconectar diferentes entidades en la red de telecomunicaciones . Por ejemplo - base de datos de abonado del proveedor de telecomunicaciones (HLR), con un conmutador (MSC), el abonado está conectado también (MSC)

.

El área de las telecomunicaciones se está moviendo a velocidades más altas y ambiente más accesible. Uno de estos cambios es reemplazar el protocolo SS7 mediante algún protocolo más elegante, rápido y flexible basada en IP.

El área de las telecomunicaciones es muy conservador. La red SS7 se ha utilizado aquí durante décadas. Es muy fiable y una red cerrada. Esto significa que un usuario normal no tiene acceso a ella.

La red IP, por el contrario, está abierta y no fiable, y de telecomunicaciones no convertirá a él si no va a manejar al menos la carga que maneja SS7. Es por esto que se desarrolló SCTP. Se trata de:

  • para imitar todas las ventajas de la red SS7 acumulado a lo largo de las décadas.
  • para crear un protocolo orientado a la conexión TCP mejor que en la velocidad, seguridad y redundancia

Las últimas versiones de Linux ya tienen el apoyo SCTP.

Otros consejos

Hemos estado desplegando SCTP en varias aplicaciones ahora, y encontramos un problema significativo con el apoyo SCTP en varios routers domésticos. Ellos simplemente no manejan correctamente SCTP. Creo que esto es principalmente una cuestión de resultados (la especificación del protocolo SCTP requieren sumas de comprobación para el conjunto de paquetes se recalcula y no sólo para los encabezados).

Al igual que muchos otros protocolos prometedores SCTP es tristemente muerto en el agua hasta que D-Link y Netgear fija sus cajas de NAT rotos.

SCTP requiere más de diseño dentro de la aplicación para obtener el mejor uso de ella. Hay más opciones que TCP, la API de sockets-como vino después, y es joven. Sin embargo creo que la mayoría de las personas que toman el tiempo para entender que (y que conocen las deficiencias de TCP) lo aprecio - es un protocolo bien diseñado que se basa en nuestros ~ 30 años de conocimiento de TCP y UDP

.

Uno de los aspectos que requiere un poco de pensamiento es el de los arroyos. Proporcionar corrientes (por lo general, creo que se puede apagar) una garantía de orden dentro de ellos (al igual que una conexión TCP) pero no puede haber múltiples flujos por conexión SCTP. Si los datos de su aplicación pueden ser enviados a través de múltiples flujos a continuación, a evitar la cabeza de la línea de bloqueo en el que el receptor se muere de hambre debido a un paquete extraviado. Efectivamente diferentes conversaciones se pueden tener sobre la misma conexión sin impactar entre sí.

Otra adición útil es la de soporte multi-homing - una conexión puede ser a través de múltiples interfaces de en ambos extremos y que hace frente a fallos. Puede emular esto en TCP, pero a la capa de aplicación.

adecuada heartbeating enlace, que es lo primero que cualquier aplicación que utilice TCP para las conexiones implementos no transitorios, es allí de forma gratuita.

Mi resumen personal de SCTP es que no hace nada que no podía hacer de otra manera (en TCP o UDP) con soporte de aplicaciones sustancial. Lo que ofrece es la posibilidad de no tener que aplique el código (mal) usted mismo.

FYI, SCTP es obligatoria como compatible para Diámetro (cf RADIUS siguiente gen). consulte RFC 3588

   Diameter clients MUST support either TCP or SCTP, while agents and
   servers MUST support both.  Future versions of this specification MAY
   mandate that clients support SCTP.

SCTP no es muy conocida y no se utiliza / desplegado mucho porque:

Muchos de nosotros va a utilizar SCTP pronto, ya que es utilizado por datachannels WebRTC para crear una capa TCP-como fiable en la parte superior de la UDP - SCTP sobre DTLS sobre UDP: https://tools.ietf.org/html/draft-ietf-rtcweb-data-channel-13 # sección-6

La lectura de la href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol" rel="nofollow noreferrer"> página yo diría que la razón principal es que es SCTP un protocolo muy joven (propuesto en 2000) que se encuentra actualmente sin el apoyo de la corriente principal de los sistemas operativos ( Windows , OS X , Linux ).

Si "muy joven" parece apropiada para usted, piense en IPV6 : "en diciembre 2008, a pesar de que marca su décimo aniversario como un protocolo de Estándares, IPv6 sólo en su infancia en términos de despliegue en general en todo el mundo. "

SCTP se utiliza ampliamente en la red de 4G LTE donde se utiliza Diámetro de AAA.

Puede que no sea muy conocido, pero no es utilizada. Muy recientemente se produjo un proyecto publicado en el < a href = "http://www.ietf.org/" rel = "nofollow noreferrer"> IETF sobre el uso de SCTP como un protocolo de capa de transporte para HTTP .

En referencia a todos los comentarios acerca de los routers comerciales se rompa o que carecen de apoyo SCTP, la cuestión es que SCTP con NAT se encuentra todavía en fase de proyecto con el IETF. Así que no hay especificación RFC para que puedan ponerlo en práctica.

https://tools.ietf.org/html/draft- IETF-comportan-sctpnat-09

SCTP nace demasiado tarde, y para muchos situación TCP es suficiente.

Además, como sé que la mayoría de su uso es en el área de telecomunicaciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top