sctp: una alternativa al protocolo tcp sobre...

25
S CTP: Una alternativa al protocolo TCP sobre Linux Ing. Isaac Fernández Baca Peña

Upload: truongphuc

Post on 07-Nov-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

S CTP: Una alternativa al protocolo TCP sobre

Linux

Ing. Isaac Fernández Baca Peña

Marco Teórico: Qué es S CTP?

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.

Modelo TCP/ IP

Formato del Paquete

(Fuente: The International Engineering Consortium, Stream Control Transmission Protocol)

Proceso de comunicación en S CTP

(Fuente : Ding J.W, Stream Control Transmission Protocol, The Management of Information

system, http://fs.mis.kuas.edu.tw,

Taiwan)

ATAQUE DE INUNDACIÓN CON S EGMENTOS S YN

(Fuente: Iyengar J., Stream Control Transmission Protocol (SCTP), Protocol Engineering Lab,Computer & Information Sciences, University of Delaware)

Asociaciones y Multihoming

Terminal X

NIC1 NIC2

Terminal Y

NIC3 NIC4

Red207.10.x.x

Red168.1.x.x

IP=207.10.40.1

IP=168.1.140.10IP=168.1.10.30

IP=207.10.3.20

INIT ACK

INIT1

2

SCTPEndpoint B

IP address B1

IP address B2

SCTPEndpoint A

IP address A1

IP address A2

Tanto el INIT como el INITACK contienen los chunks con las IP

Modo de Operación Multihoming

DATADATA

SACK1

2

SCTPEndpoint B

IP address B1

IP address B2

SCTPEndpoint A

IP address A1

IP address A2

Modo de Operación Multihoming

DATA

DATA

SACK

1

2

SCTPEndpoint B

IP address B1

IP address B2

SCTPEndpoint A

IP address A1

IP address A2

Modo de Operación Multihoming

DATADATA

SACK

1

2

SCTPEndpoint B

IP address B1

IP address B2

SCTPEndpoint A

IP address A1

IP address A2

• Todos los path donde no haya un SACK seran marcados como “Out of Service”

XOut of Service

Modo de Operación Multihoming

Heartbeat AckHeartbeat AckHeartbeat AckHeartbeat AckHeartbeat AckHeartbeat AckHeartbeat AckHeartbeat AckHeartbeat AckHeartbeat AckHeartbeat AckHeartbeat Ack

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

Heartbeat Ack

Heartbeat

Heartbeat

1

2

SCTPEndpoint B

IP address B1

IP address B2

SCTPEndpoint A

IP address A1

IP address A2

• Heartbeat chunks son enviados para sensar el estado de las asociaciones, si no responden se marcan como Out of Service

Modo de Operación Multihoming

COMPARACION DE LAS CARACTER IS TICAS DE S CTP, TCP Y UDP

NoNoSiMensaje heartbeat

NoNoSiCookie de seguridad para evitar ataques de inundación de SYN

SiNoSiEnvío de datos fuera de orden

NoNoSiSoporte de multi-streaming

NoNoSiSoporte de multi-homing

NoSiSiMultiplexación de información del paquete

NoSiSiFragmentación e integración de la información

SiNoSiDelimitación de los mensajes

NoSiSiControl de congestion

NoSiSiTransferencia confiable de los datos

NoSiSiEstado almacenados en los terminales

UDPTCPSCTPCARACTERISTICAS DE PROTOCOLO

(Fuente[14]: Stewart R. and Xie Q., Stream Control Transmission

Protocol(SCTP): A Reference Guide, Addison Wesley, 2002)

Problema de head of the line blocking que sufre TCP

Ejemplo de programación con sockets

int sockfd, n;char recvline[MAXLINE + 1]; /* read buffer*/struct sockaddr_in servaddr;sockfd = socket(AF_INET, SOCK_STREAM, IP_PROTO_TCP); /* TCP 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);

sockfd = socket(AF_INET, SOCK_STREAM, IP_PROTO_SCTP); /* SCTP socket */

Nota: Puede ser cero(0) o IP_PROTO_TCP

S elección de S O - IDE

Herramientas utilizadas - S CTP

Iperf1.6

NetperfEchoTools

SCTPperf

Escenarios de Pruebas Iperf

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2090

90,5

91

91,5

92

92,5

93

93,5

94

94,5

SCTP vs TCP Tasa de transferencia

Columna CColumna E

Número de prueba

MB

ytes

Escenarios de Pruebas EchoTools

Resultados de Pruebas EchoToolsFigura A2.4 Variando el tamaño de mensajes -Latencia Media

-

0,0010

0,0020

0,0030

0,0040

0,0050

0,0060

0,0070

0,0080

0,0090

0,0100

10 bytes 20 bytes 30 bytes 40 bytes 50 bytes 60 bytes 70 bytes 80 bytes 90 bytes 100 bytes

Late

ncia

Med

ia (

segu

ndos

)

TCP

SCTP 1stream

SCTP 10streams

SCTP 50streams

SCTP 100streams

SCTP 150streams

SCTP 200streams

SCTP 250streams

SCTP 300streams

Escenarios de Pruebas S CTPperf

● ESCENARIO 5: MULTIHOMING CON TRES INTERFACES DE RED

Resultados de Pruebas S CTPperf

Escenarios de Pruebas LabV203

Recomendaciones 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.

[email protected]@gmail.com

¡ MUCHAS GRACIAS !