sctp: una alternativa al protocolo tcp sobre...
TRANSCRIPT
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.
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)
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
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
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
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.