1.1k likes | 1.27k Views
PTMF. Protocolo de Transporte Multicast Fiable. Exposición:. Introducción Especificación Protocolo Control del Grupo Local (CGL) Control de la Fiabilidad Implementación FTPMulticast ChatMulticast. Multicast.
E N D
PTMF Protocolo de Transporte Multicast Fiable
Exposición: • Introducción • Especificación Protocolo • Control del Grupo Local (CGL) • Control de la Fiabilidad • Implementación • FTPMulticast • ChatMulticast
Multicast • Técnica que permite que copias de un solo paquete se transfieran a un subconjunto seleccionado de todos los posibles destinos
MBone • Red con capacidad multicast
IP Multicast (host) • Dirección IP de Clase D 224.0.0.0 – 239.255.255.255
IP Multicast (routers) • IGMP • Protocolo de encaminamiento Multicast para direcciones IP Multicast • DVMRP, PIM (PIM-DM , PIM-SM) • IGMP
LANE Informática (150.214.142.0) MBone laboratorio Subred transparente “PTMF”: 150.214.142.128 Máscara: 255.255.255.224 Subred: 150.214.142.136 Máscara: 255.255.255.248 Broadcast: 150.214.143 Subred: 150.214.142.128 Máscara: 255.255.255.248 Broadcast: 150.214.142.135 Proxy ARP .131 .132 .133 .134 .139 .140 .141 .142 150.214.142.160 150.214.142.129 150.214.142.137 LabtecMR1 150.214.142.130 150.214.142.138 LabtecMR2 LabtecMR3 150.214.142.145 150.214.142.153 .146 .147 .148 .149 .150 .154 .155 .156 .157 .158 Subred: 150.214.142.144 Máscara: 255.255.255.248 Broadcast: 150.214.142.151 Subred: 150.214.142.152 Máscara: 255.255.255.248 Broadcast: 150.214.142.159 Laboratorio de Tecnología Electrónica
Ventajas de utilizar Multicast: • Transmitir información a múltiples receptores sin duplicar la información enviada para cada uno de ellos. • Reducción del Ancho de Banda
Aplicaciones para uso Multicast • Todo tipo de aplicaciones que necesite transferir la misma información a más de un receptor.
Aplicaciones Multicast • Videoconferencia (NxN) • Multidifusión de video (1xN) • Multidifusión de audio (1xN) • Transferencia de ficheros • Multidifusión de mensajes (chat) • ...
Situación Actual • Aplicaciones Multicast que realizan: • control de la fiabilidad • control de flujo • control de la congestión Características propias de un protocolo del nivel de transporte
Campo abierto de investigación: • Protocolos de Transporte Multicast Fiable • Ej: RMTP, TMTP, LGC. Muchos de estos protocolo presentan limitaciones en cuanto a escalabilidad, incorporación de nuevos miembros a una comunicación en curso, rendimiento, ...
PTMF PTMF recoge ideas importantes de otros protocolos precursores y aporta otras nuevas e innovadoras.
Características de PTMF: • Nivel de transporte (nivel 4 OSI) • Uso de IP Multicast en el nivel de red
Características de PTMF • Escalabilidad utilizando técnicas basadas en Grupos Locales jerárquicos. • Control de Errores Distribuido. • Control de Fiabilidad Híbrido (orientado al emisor y al receptor). • Control de Flujo. • Control de la Congestión. • Seguridad mediante criptografía de los TPDUs
Características de PTMF • Incorporación de nuevos miembros a la conexión en curso. • Posibilidad de múltiples unidades de transferencia en una conexión. • Parametrizable. • Capacidad NxN (muchos a muchos). • Asentimientos Multicast y Unicast. • Retransmisiones Multicast y Unicast
Direccionamiento • PTMF utiliza un TSAP o puerto de 16 bits para demultiplexar varias conexiones Multicast. • Pueden existir 65.536 procesos en una misma máquina utilizando PTMF
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Puerto Multicast Puerto Unicast ID_GRUPO_LOCAL (4 bytes primeros) ID_GRUPO_LOCAL (2 bytes últimos) Longitud Cheksum V Tipo TPDU PTMF
Estrategias para el Control de la Fiabilidad • Orientada al Emisor el control de la fiabilidad recae en el Emisor, este suele utilizar técnicas basadas en el uso de asentimientos positivos (ACK). • Orientada al Receptor el control de la fiabilidad recae en el receptor, este suele utilizar técnicas basadas en el uso de asentimientos negativos (NACK).
Problemas “orientada al emisor” • Reducción del Ancho de Banda por el excesivo nº de ACKs • Sobrecarga del Emisor por el procesamiento de todos estos ACKs Problema conocido como:“Implosión de ACKs”
Problemas “orientada al receptor” • a.El emisor debe de mantener los TPDUs enviados en memoria para posibles retransmisiones durante un tiempo indeterminado, pues no hay mecanismos que indiquen la correcta recepción de los datos por parte de los receptores y que permita así liberar memoria al emisor.
PTMF resuelve utilizando: • El Protocolo CGL Que organiza a los participantes en la comunicación Multicast de forma que el proceso de asentimiento sea más eficaz.
PTMF resuelve utilizando: • Estrategia de Control de Fiabilidad Híbrida. Lo mejor de ambas aproximaciones: Orientada al Emisor + Orientada al Receptor
Exposición: • Introducción • Especificación Protocolo • Control del Grupo Local (CGL) • Control de la Fiabilidad • Implementación • FTPMulticast • ChatMulticast
Grupo Local Un conjunto de sockets presentes en un determinado Canal Multicast y Ámbito que cooperan entre sí para garantizar la fiabilidad del protocolo PTMF y conseguir con su organización una mayor eficacia del proceso de asentimientos.
Identificador de Grupo Local (IDGL) IDGL = IPv4 + Puerto Unicast
Función de CGL Organizar los SocketsPTMF presentes en un determinado Canal Multicast y Ámbito en Grupos Locales establecidos de forma jerárquica para que el Control de la Fiabilidad se realice de forma eficiente.
Misión del Controlador de Grupo (CG) Actuar como si fuese el emisor e informar a sus CG superiores en el árbol o al emisor en última instancia, de la correcta recepción de los datos dentro del grupo local (retransmisiones, control de los receptores, ...) enviando: • Asentimientos positivos jerárquicos (HACK)
Se consigue: • Reservar lo máximo posible el Ancho de Banda de las líneas de comunicación. • Evitar la saturacióndel Emisor por procesamiento de la avalancha de ACKs evitando el “cuello de botella” en el lado del emisor por procesamiento de ACKs
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Puerto Multicast Puerto Unicast ID_GRUPO_LOCAL (4 bytes primeros) ID_GRUPO_LOCAL (2 bytes últimos) Longitud Cheksum V 0 0 Subtipo TTL Métrica IP N_SECUENCIA Nº Ids Nº MAX de Sockets/GL Nº de Sockets en GL Cabecera Común TPDU PTMF Cabecera Común subtipo CGL Cabecera común TPDUs CGL
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Puerto Multicast Puerto Unicast ID_GRUPO_LOCAL (4 bytes primeros) ID_GRUPO_LOCAL (2 bytes últimos) Longitud Cheksum V 0 0 Subtipo TTL Métrica IP=0 N_SECUENCIA Nº Ids Nº MAX de Sockets/GL Nº de Sockets en GL ID_GRUPO_LOCAL 1 (32 primeros bis) ID_GRUPO_LOCAL 1 (16 bits últimos) TTL VECINO 1 ID_GRUPO_LOCAL 2 (16 bits primeros) ID_GRUPO_LOCAL 2 (32 bits últimos) TTL VECINO 2 .... TPDU CGL ( IP = 0 )
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Puerto Multicast Puerto Unicast ID_GRUPO_LOCAL (4 bytes primeros) ID_GRUPO_LOCAL (2 bytes últimos) Longitud Cheksum V 0 0 Subtipo TTL Métrica IP=1 N_SECUENCIA Nº Ids Nº MAX de Sockets/GL Nº de Sockets en GL IP 1 Puerto Unicast 1 IP N (2 primeros bytes) IP N (2 bytes últimos) Puerto Unicast N TPDU CGL ( IP = 1)
Descubrir Grupos Locales 4 BUSCAR_GRUPO_LOCAL TTL = 1
Notificar Grupo Local Si el GL no supera MAX_Sockets_GL: 4 1 2 3 GL GRUPO_LOCAL {Lista de IDGLs a los que alcanza}
Unirse a un Grupo Local 4 1 2 3 GL UNIRSE_A_GRUPO_LOCAL {ID_Socket emisor}
Aceptación de un Socket en el GL 4 1 2 3 GL SOCKET_ACEPTADO_EN_GRUPO_LOCAL {ID_Socket petición, lista de ID_Sockets miembros del GL}
Miembro del GL 4 1 2 3 GL
Creación de un Grupo Local IDGL = IPv4 + Puerto Unicast 5 GRUPO_LOCAL {TTL = 1 Nuevo IDGL}
Dejar el Grupo Local 4 DEJAR_GRUPO_LOCAL {ID_Socket saliente, Lista de ID_Sockets del GL}
Eliminación de un Grupo Local El último miembro del GL envía: 1 ELIMINACION_GRUPO_LOCAL
Búsqueda de GL “Vecinos” Los GL “vecinos” se descubren mediante un proceso de “Expansión en Anillo” 1 BUSCAR_GRUPO_LOCAL_VECINO TTL = 1 TTL = 2 TTL = 4 ...
Finalización búsqueda GL “vecinos” • Recibido un TPDU GRUPO_LOCAL_VECINO • Se aumenta el “anillo de expansión” hasta llegar al TTL de la sesión