S C TP: Una alternativa al protocolo TC P s obre Linux Ing. Isaac Fernández Baca Peña M arco Teórico: Q ué es S C TP ? Stream Control Transmission Protocol Similar a TCP y UDP. Es un protocolo de comunicación que trabaja en la capa de transporte. Definido por el grupo SIGTRAN inicialmente para SS7 sobre IP. Definido en la RFC2960. M odelo TC P / IP Formato del P aquete (Fuente: The International Engineering Consortium, Stream Control Transmission Protocol) P roceso de comunicación en S C TP (Fuente : Ding J.W, Stream Control Transmission Protocol, The Management of Information system, http://fs.mis.kuas.edu.tw, Taiwan) ATAQ UE D E INUND AC IÓ N C O N S E G M E NTO S S YN (Fuente: Iyengar J., Stream Control Transmission Protocol (SCTP), Protocol Engineering Lab, Computer & Information Sciences, University of Delaware) Asociaciones y M ultihoming Terminal X Terminal Y NIC1 NIC3 NIC2 IP=207.10.3.20 IP=168.1.10.30 Red 168.1.x.x Red 207.10.x.x NIC4 IP=207 .10.40.1 IP=168.1.140.10 M odo de O peración M ultihoming Tanto el INIT como el INITACK contienen los chunks con las IP IP address A1 1 INIT ACK SCTP Endpoint A IP address A2 INIT IP address B1 SCTP Endpoint B 2 IP address B2 M odo de O peración M ultihoming IP address A1 1 SACK SCTP Endpoint A IP address A2 DATA IP address B1 SCTP Endpoint B 2 IP address B2 DA M odo de O peración M ultihoming IP address A1 1 SCTP Endpoint A IP address A2 SACK DATA IP address B1 SCTP Endpoint B 2 DATA IP address B2 M odo de O peración M ultihoming • Todos los path donde no haya un SACK seran marcados como “Out of Service” Out of Service IP address A1 X 1 SCTP Endpoint A IP address A2 SACK IP address B1 SCTP Endpoint B 2 DATA IP address B2 DA M odo de O peración M ultihoming • Heartbeat chunks son enviados para sensar el estado de las asociaciones, si no responden se marcan como Out of Service IP address A1 1 Heartbeat Ack SCTP Endpoint A IP address A2 Heartbeat Ack 2 Heartbeat IP address B1 SCTP Endpoint B Heartbeat IP address B2 C O M P AR AC IO N D E LAS C AR AC TE R IS TIC AS D E S C TP , TC P Y UD P CARACTERISTICAS DE PROTOCOLO SCTP TCP UDP Estado almacenados en los terminales Si Si No Transferencia confiable de los datos Si Si No Control de congestion Si Si No Delimitación de los mensajes Si No Si Fragmentación e integración de la información Si Si No Multiplexación de información del paquete Si Si No Soporte de multi-homing Si No No Soporte de multi-streaming Si No No Envío de datos fuera de orden Si No Si Cookie de seguridad para evitar ataques de inundación de SYN Si No No Mensaje heartbeat Si No No (Fuente[14]: Stewart R. and Xie Q., Stream Control Transmission Protocol(SCTP): A Reference Guide, Addison Wesley, 2002) P roblema de head of the line blocking que sufre TC P E jemplo de programación con sockets Nota: Puede ser cero(0) o IP_PROTO_TCP int sockfd, n; char recvline[MAXLINE + 1]; /* read buffer*/ struct sockaddr_in servaddr; sockfd = socket(AF_INET, SOCK_STREAM, IP_PROTO_TCP); /* TCP socket */ sockfd = socket(AF_INET, SOCK_STREAM, IP_PROTO_SCTP); /* SCTP socket */ /* fill in socket address structure */ servaddr.sin_family = AF_INET; servaddr.sin_port = htons(13); inet_pton(AF_INET, argv[1], &servaddr.sin_addr); connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)); while ( (n = read(sockfd, recvline, MAXLINE)) > 0 ) { recvline[n]=0; /* null terminate */ fputs(recvline, stdout); } close (sockfd); S elección de S O - ID E Herramientas utilizadas - S C TP Iperf1.6 Netperf EchoTools SCTPperf 5 E scenarios de P ruebas Iperf 3 5 Columna C Columna E 2 5 1 5 0 1 2 3 4 5 6 7 8 9 10 11 12 Número de prueba 13 14 15 16 17 18 19 20 E scenarios de P ruebas E choTools R esultados de P ruebas E choTools Figura A2.4 Variando el tamaño de mensajes -Latencia Media TCP 0,0100 SCTP 1 stream 0,0090 0,0080 SCTP 10 streams Latencia Media ( segundos ) 0,0070 SCTP 50 streams 0,0060 SCTP 100 streams 0,0050 0,0040 SCTP 150 streams 0,0030 SCTP 200 streams 0,0020 SCTP 250 streams 0,0010 SCTP 300 streams 10 bytes 20 bytes 30 bytes 40 bytes 50 bytes 60 bytes 70 bytes 80 bytes 90 bytes 100 bytes E scenarios de P ruebas S C TP perf ● ESCENARIO 5: MULTIHOMING CON TRES INTERFACES DE RED R esultados de P ruebas S C TP perf E scenarios de P ruebas LabV203 R ecomendaciones para Trabajos Futuros Hacer un estudio sobre los avances de SCTP sobre Windows y sobre las librerías que están en desarrollo para Java e implementar una aplicación multiplataforma. Realizar un estudio de la aplicación del protocolo SCTP en conjunto con el protocolo IPv6 a las redes celulares, SCTP/IPv6 mobile en lugar de TCP/IP. ¡ MUC HAS G R AC IAS ! ifernandezbaca@pucp.edu.pe ifernandezbaca@gmail.com