Protocolo de Transporte SCTP Álvarez González Ángel, Estudiante de Ingeniería de Sistemas Universidad Autonoma Del Caribe ABSTRACT Este escrito pretende describir las características, ventajas, desventajas y usos del protocolo SCTP (Stream Control Transmission Protocol). Se describirá cada uno de los aspectos antes mencionados de la manera más sencilla posible, también se realizara una comparación con otros protocolos, basándonos en una bibliografía especializada y algunos escritos reconocidos sobre el tema. I. INTRODUCCION El SCTP (Stream Control Transfer Protocol) es un protocolo de capa de transporte relativamente nuevo (el primer RFC que lo define, el 2960, data de octubre del 2000, y ese RFC ha quedado obsoleto con el 4960, datado en septiembre del 2007), que, como TCP, provee un servicio de capa de transporte confiable extremo a extremo y funciona con un mecanismo orientado a la conexión, es decir, establece una conexión entre extremos antes de comenzar a transmitir los datos y se mantiene hasta que todos los datos han sido transmitidos, pero provee algunas otras características que son necesarias en, por ejemplo, la telefonía, y otras más que podrían mejorar el desempeño de otras aplicaciones. Fue concebido originariamente para el envío de señalización de redes telefónicas sobre redes IP. SCTP hereda muchas de las funciones contempladas en TCP a la vez que introduce importantes mejoras encaminadas a proporcionar mayor robustez y versatilidad en la transferencia de diferentes tipos de información. En particular, al igual que TCP, SCTP dispone de mecanismos de control de flujo y de congestión en la conexión, denominada asociación en SCTP. Por otro lado, SCTP incorpora soporte para multihoming, multi-streaming y el envío de la información se estructura en base a mensajes. Figura 1: Ejemplo de característica de Multi-Homing de SCTP. Multi-Streaming. El nombre SCTP proviene de esta característica. Permite que los datos se dividan en múltiples flujos (streams) de forma que la pérdida en uno de los flujos no afecte al resto de ellos. Cada flujo tiene un número identificador, que lo diferencia del resto de los flujos correspondientes a una transmisión. En TCP se utiliza solo un flujo de datos, y se asegura que ese flujo llegue preservando la secuencia. Esto provoca retardos, ya que si se pierde solo un paquete, TCP retrasa todos los datos que siguen al paquete perdido hasta corregir esto. Es por esto que el multi-streaming tiene como resultado una mejor utilización de recursos. II. CARACTERISTICAS Multi-Homing. Un host multi-homed posee más de una interfaz de red, por lo que tiene más de una dirección de red por la que se le puede ubicar. La ventaja de esta característica es que se forman varios caminos mediante los cuales viajan los datos entre 2 hosts. Si un camino falla, se le considera fuera de servicio, por lo que continúa la transmisión a través de los otros, siendo todo este proceso transparente para la aplicación. Figura 2: Ejemplo de característica de Multi-Streaming Initiation protection. Para iniciar una comunicación, SCTP establece una conexión entre los 2 extremos. Para ello, se utilizan 4 mensajes: INIT: cliente envía mensaje para iniciación de asociación. INI-ACK: servidor envía acuse de recibo para INIT, añade cookie (identificador de la conexión). COOKIE-ECHO: cliente responde con misma cookie. COOKIE-ACK: servidor reserva recursos para asociación y responde con este mensaje. Figura 4: Ejemplo de característica de Gracefull Shutdwon de SCTP III. COMPARACION ENTRE VARIOS PROTOCOLOS Figura 3: Ejemplo de característica de Initiation- Protection de SCTP Entrega de Mensajes Mensajes son entregados a capa de aplicación a medida que son recibidos, como UDP. Ambos protocolos son orientados al flujo, y no orientado a los bytes como TCP. UDP ofrece los servicios mínimos de la capa de transporte; no ofrece transferencia confiable ni ordenada; tampoco ofrece un control de flujo, por lo que una aplicación puede desbordar el buffer de recepción del destinatario. Tampoco ofrece control de congestión. Por estas limitaciones, UDP no ofrece un nivel de confiabilidad necesario para algunas aplicaciones; por ejemplo, si se utiliza UDP, pero se necesita cierto nivel de confiabilidad, se deberá implementar de forma externa los mecanismos de control, de retransmisión de paquetes, de detección y corrección de congestión en la red, entre otros. En cambio, TCP ofrece todos estos servicios. Sin embargo, algunos servicios que entrega, por ejemplo, la entrega ordenada de paquetes, puede provocar importantes retardos. TCP no tiene soporte para hosts con múltiples interfaces. SCTP fue creado para solucionar algunas limitaciones que tienen los protocolos TCP y UDP. A continuación se muestra una figura que compara términos entre los 3 protocolos. Entrega desordenada configurable Se puede configurar un envío desordenado de los datos, conservando la confiabilidad. TCP solo permite el envío de manera ordenada, pero garantiza la confiabilidad; UDP no garantiza orden ni confiabilidad. Graceful shutdown. Debido a su orientación a la conexión, se necesita terminar la comunicación a través de un intercambio de mensajes. TCP utiliza el mensaje FIN. SCTP utiliza el mensaje SHUTDOWN de la siguiente forma: Figura 5: Comparación entre varis protocolos A pesar de estas diferencias, se puede decir que tienen muchas cosas similares; por ejemplo, el inicio de conexión/asociación requiere un intercambio de mensajes para su inicio, ambos ofrecen envío confiable de datos, control de congestión, y un mecanismo de intercambio de mensajes para finalizar una comunicación. De la figura anterior, se puede notar que existe una similitud mayor entre SCTP y TCP que entre SCTP y UDP. Se profundizará sobre la relación SCTP/TCP: datos de forma ordenada, en un solo flujo de comunicación. SI se produce una pérdida, los datos ya enviados y recibidos correctamente, se mantienen en el buffer a la espera de la llegada del dato perdido. Similitudes TCP/SCTP Inicio de comunicación: requiere intercambio de información antes de establecer una comunicación. Confiabilidad: ambos protocolos ofrecen mecanismos para envío confiable de datos. Orden: ambos envían mensajes en orden. Control de congestión: ambos ofrecen el mismo sistema de control ante congestión (Additive Increase/Multiplicative Decrease), garantizando una competencia justa por el ancho de banda. Fin de comunicación: ambos intercambian mensajes para indicar el fin de una comunicación. IV. CONCLUSION Puedo concluir que este protocolo toma las mejores características de TCP y UDP y las mezcla en un nuevo protocolo. Se puede afirmar que SCTP es un protocolo con interesantes características para algunas aplicaciones que requieran una carga veloz de varios archivos, sin importar el orden de estos, Sin embargo, para el usuario corriente SCTP no es mucho mejor que TCP salvo por aquel detalle del manejo de los mensajes, puesto que no es probable que un computador doméstico tenga múltiples direcciones IP con las que valerse de las ventajas de este protocolo. Así, podemos decir que este protocolo aún tiene muchas capacidades a desarrollar a futuro, y es sólo cuestión de tiempo y difusión antes de que pueda volverse algo más masivo y los sistemas lo comiencen a utilizar a mayor escala. Diferencias TCP/SCTP Inicio de comunicación: existe una diferencia en la implementación. TCP usa 3-way-handshake, SCTP utiliza 4 mensajes, de forma de prevenir ataques del tipo SYN-Flooding. BIBLIOGRAFIA [1] [2] [3] https://docs.oracle.com/cd/E19957-01/820-2981/ermih/index.html [4] Head-of-Line Blocking (HOL): el protocolo SCTP evita el HOL. Se produce debido a que TCP envía https://tools.ietf.org/html/rfc2960 Stream Control Transmission Protocol (SCTP), a reference guide , R. R. Stewart & Q. Xie, Addison-Wesley, ISBN 0-201-72186-4 http://m.exam-10.com/doc/11372/index.html