Principios de Protocolos Prof. Wilmer Pereira Universidad Católica Andrés Bello Protocolo Conjunto de normas y reglas, convenidas de mutuo acuerdo entre los participantes de una comunicación, organizadas para no tener ambigüedad. Usar el mismo lenguaje Respetar acuerdos de comunicación Negociar recursos Transferir información Liberar recursos Significado sintáctico y semántico del lenguaje Cómo, qué y cuándo comunicar Manejar los casos de errores Falla en el enlace Caida de algún nodo Mensaje fuera del protocolo Interlocutores del protocolo Los acuerdos e información de un protocolo tienen sentido para la misma capa en el destinatario. Protocolos por capas Aplicación HTTP, FTP, SSH, SMTP, SNMP, DNS … Transporte TCP, UDP, RTP, SCTP, SSL, … Red IP, ATM, MPLS, ADSL, ICMP… Enlace GigaEthernet, ProfiBus, PPP, HDLC, WiFi, FDDI, ZigBee, H323 RS232, CDMA, OFDM Físico http Con fase de conexión, solicitud de página y envío des archivo html a ser visualizado por el browser. Cliente Servidor Establecimiento de la conexión GET http:// www.ldc.usb.ve/redes1/material.html HTTP/1.0<CR><LF> User-agent Mozilla/6.0<CR><LF> Accept: text/html, image/gif, image/jpg<CR><LF> Accept-languaje:es<CR><LF> <CR><LF><CR><LF> HTTP/1.0 200 OK Date: Thu, 23 Nov 2008 12:00:15 GMT Server: Apache/2.0 (Unix) Last-Modified: Mon, 10 Sept 2007 Content-Length:6821 Content-Type: text/html <html> <body> Esta es la pagina de Respuesta</body> <body> Esta es la pagina de Respuesta</body> </html> Tipos de protocolos Transmisión con dos actores (point to point) Transmisión en anillo (peer to peer) Transmisión en estrella (Ethernet) Difusión a todo nodo accesible (broadcast) Difusión selectiva (multicast) Los mensajes requieren Cabecera Campos con valores Campos (fijo o variable) Campos opcionales Carga útil IPv4 Datagrama vs Circuito Virtual Orientado Conexión (por ejm. Sistema telefónico) Conexión Transferencia de datos Desconexión No Orientado Conexión (por ejm. Sistema postal) Transferencia de datos Vias o mensajes en protocolos E R E R E R Protocolo de 1 vía Protocolo de 2 vía Protocolo de 3 vía Fase de desconexión Fase de transferencia Fase de conexión Ejemplo de protocolo a 3 vías (Fase de conexión TCP) E R syn, #secE=x syn, #secR=y, ack=x+1 ack=x+1, datox syn: #secA=y: ack=x+1: bit de activación para inicio de conexión inicio del número de secuencia en x para A acuse de recepción del número de secuencia recibido Problema de las armadas Limitaciones de los protocolos Condiciones de la batalla: Las colinas no son visibles entre ellas No se pueden enviar mensajes a distancia Los mensajeros pueden perderse (ser atrapados) en campo enemigos Autómata de Estado Finito General login Inicio fallo Espera autenticación autenticado quit Recibe comandos quit respuesta comando Espera respuesta Autómata de Estado Finito para Protocolo (TCP) Línea punteada son las transiciones de estado del servidor. La línea gruesa es la trayectoria del cliente. Las líneas delgadas son eventos poco comunes Diagrama de secuencias de protocolo Diagrama de secuencias de programa Principios básicos de diseño de protocolos Interacción simple Diseño por pilas en capas Estricto al enviar, tolerante al recibir Escalabilidad y heterogeneidad Costo y desempeño Principios prácticos de diseño de protocolos Número de secuencia por paquete Tiempo de espera por el acuse de recepción Número de intentos Duplicados retardados Ventanas de emisión y recepción Características prácticas de protocolos Ventana de emisión E R #sec n intentos T I M E R Ventana de recepción ack El ack debe llegar antes del vencimiento del TIMER (se calcula con RTT) Los paquetes pueden perderse o llegar desordenados, por lo tanto: La ventana de emisión permite tener a la mano paquetes para reenviarlos en caso de pérdidas La ventana de recepción permite pasarlo al programa en orden aunque se desordenen en tránsito En caso de pérdida o caida del enlace se hace un número limitado de intentos Muy rara vez pueden ocurrir duplicados retardados (repetición de números de secuencia en paquetes diferentes)