Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Departamento de Tecnología Electrónica Algunas de las transparencias tienen copyright: Capítulo 3 Aspectos avanzados de la arquitectura TCP/IP Redes de computadoras: Un enfoque descendente 5th edition. Jim Kurose, Keith Ross Addison-Wesley, Abril 2009. Aspectos avanzados de la arquitectura TCP/IP 1 Tema 3: Aspectos avanzados de la arquitectura TCP/IP Objetivos: Entender el control de la congestión en TCP Entender los principios avanzados tras los servicios de la capa de red: • • • • • Traducción de direcciones Enrutamiento Control de errores en la capa de red Configuración dinámica de direcciones en IPv4 IPv6. Aspectos avanzados de la arquitectura TCP/IP 2 Tema 3. Aspectos avanzados de la arquitectura TCP/IP 3.1 Control de la congestión en TCP 3.2 Traducción de direcciones: NAT 3.3 Enrutamiento en internet 3.4 Control de errores en IPv4: ICMP 3.5 Configuración dinámica de direcciones en IPv4: DHCP 3.6 IP versión 6 RIP OSPF BGP Aspectos avanzados de la arquitectura TCP/IP 3 Tema 3. Aspectos avanzados de la arquitectura TCP/IP 3.1 Control de la congestión en TCP 3.2 Traducción de direcciones: NAT 3.3 Enrutamiento en internet 3.4 Control de errores en IPv4: ICMP 3.5 Configuración dinámica de direcciones en IPv4: DHCP 3.6 IP versión 6 RIP OSPF BGP Aspectos avanzados de la arquitectura TCP/IP 4 Principios del control de la congestión Congestión: informalmente: “demasiados emisores enviado demasiados datos demasiado rápido para que la red los gestione” diferente del control de flujo Señales de congestión: Paquetes perdidos (desbordamiento de los buffers de los routers) retrasos (debidos a las colas en los buffers de los routers) Aspectos avanzados de la arquitectura TCP/IP 5 Causas/costes de la congestión Host A Dos tx: lIN = Tasa de envío lOUT = Tasa de recepción C= capacidad del router Host B lout lin : original data unlimited shared output link buffers Teoría de colas Grandes retrasos cuando hay congestión Existe un máximo de tasa de transferencia Aspectos avanzados de la arquitectura TCP/IP 6 Causas/costes de la congestión: Suposición: El tx retransmite los paquetes perdidos Ahora, no se tx lIN, sino una tasa mayor lIN’ “Costes” de la congestión: mayor trabajo (retx) que para un caso ideal retransmisiones innecesarias: un enlace puede llevar múltiples copias de un paquete Host A Host B lout lin : original data unlimited shared output link buffers Aspectos avanzados de la arquitectura TCP/IP 7 Causas/costes de la congestión Dos tx con el mismo destino Suposición: congestión en el router entre A y el destino Otro “coste” de la congestión: Cuando un paquete se descarta en la ruta, la capacidad empleada en cualquier ruta atravesada anteriormente, se desperdicia Host A lin : original data lout l'in : original data, plus retransmitted data finite shared output link buffers Host B Aspectos avanzados de la arquitectura TCP/IP 8 Causas/costes de la congestión Resumen de costes de la congestión Grandes retrasos cuando la tasa de entrada a un router se acerca a la capacidad del enlace. El tx debe retx los segmentos perdidos por el desbordamiento del router. Se usa un BW innecesario por la retx de copias duplicadas de segmentos (por los retrasos) La capacidad de los routers usados previamente se desperdicia cuando se descarta un paquete Aspectos avanzados de la arquitectura TCP/IP 9 Aproximaciones al control de la congestión Dos posibles aproximaciones al control de la congestión: Control de la congestión terminal a terminal: Sin soporte explícito a la capa de transporte La congestión se detecta por la pérdida de paquetes o los retardos Un ejemplo es TCP Control de la congestión asistido por la red: Los routers proporcionan realimentación explícita a la red Ej: un bit indica la congestión Aspectos avanzados de la arquitectura TCP/IP 10 Control de la congestión en TCP Host A El emisor limita la Host B Host A Host B ÚltimoByteEnviadoÚltimoByteAck CongWin ¿Cómo percibe el tx la timeout transmisión: Suceso de pérdida = timeout o 3 acks duplicados El tx TCP reduce la velocidad (CongWin) tras el suceso de pérdida X loss timeout congestión? X time Escenario de pérdida de ACK time Reenvío de un segmento tras tres ACKs duplicados Aspectos avanzados de la arquitectura TCP/IP 11 Control de la congestión TCP: aditivo, decrecimiento multiplicativo (AIMD) crecimiento Resumen: incrementar la tasa de transmisión (tamaño de Comportamiento en diente de sierra: sondeo de BW congestion window size ventana), sondeando el BW hasta que ocurra una pérdida Crecimiento aditivo: se incrementa CongWin en 1 MSS cada RTT hasta que se detecta una pérdida Decrecimiento multiplicativo: se divide CongWin por la mitad tras una pérdida congestion window 24 Kbytes 16 Kbytes 8 Kbytes time time Aspectos avanzados de la arquitectura TCP/IP 12 Control de la congestión TCP: detalles Tres fases: A grandes rasgos, velocidad = CongWin Bytes/sec RTT Cuando empieza la conexión, CongWin = 1 MSS Ejemplo: MSS = 500 bytes & RTT = 200 ms Velocidad inicial = 20 kbps Arranque lento (slow start, SS) Evasión de la congestión (Congestion avoidance, CA): ej: AIMD Recuperación rápida (Fast recovery, FR) Las dos primeras son obligatorias en TCP, mientras que la última es recomendable Aspectos avanzados de la arquitectura TCP/IP 13 Arranque lento TCP El BW disponible debe Host B RTT ser >> MSS/RTT Cuando comienza la conexión, la tasa crece exponentialmente hasta el primer suceso de pérdida La velocidad inicial es lenta pero crece rápidamente de forma exponencial Host A Aspectos avanzados de la arquitectura TCP/IP time 14 Evasión de la congestión, CA Tras 3 ACKs duplicados: CongWin se divide por 2 La ventana empieza a crecer linealmente Sin embargo, tras un fin de temporización: CongWin se pone 1 MSS; La ventana crece exponencialmente Hasta un umbral, luego crece linealmente Filosofía: 3 ACKs duplicados indican que la red es capaz de entregar algunos segmentos El fin de temporización indica un escenario de congestión “más alarmante” Aspectos avanzados de la arquitectura TCP/IP 15 Resumen: Control de la congestión TCP Cuando CongWin está por debajo del Umbral, el tx está en la fase de arranque lento; la ventana crece exponencialmente. Cuando CongWin está por encima del Umbral, el tx está en la fase de evasión de la congestión; la ventana crece linealmente. Cuando ocurren tres ACKs duplicados, el Umbral se pone a CongWin/2 y CongWin se pone a Umbral. Cuando ocurre un fin de temporización, Umbral se pone a CongWin/2 y CongWin se pone a 1 MSS. Nota: La versión de TCP utilizada hace variar la forma en la que se aplica el control de la congestión. TCP Tahoe, p.e., siempre reduce la ventana de congestión al valor incial tras un evento de pérdida, mientras que en TCP Reno se aplican todas las fases de la congestión. Aspectos avanzados de la arquitectura TCP/IP 16 Tema 3. Aspectos avanzados de la arquitectura TCP/IP 3.1 Control de la congestión en TCP 3.2 Traducción de direcciones: NAT 3.3 Enrutamiento en internet 3.4 Control de errores en IPv4: ICMP 3.5 Configuración dinámica de direcciones en IPv4: DHCP 3.6 IP versión 6 RIP OSPF BGP Aspectos avanzados de la arquitectura TCP/IP 17 Traducción de direcciones: NAT Problema: Número limitado de direcciones IP Soluciones o Subnetting o Dir IP privadas • 10.0.0.0/8 • 172.16.0.0/12 • 192.168.0.0/16 • 169.254.0.0/16 Aspectos avanzados de la arquitectura TCP/IP 18 Traducción de direcciones: NAT Dir IP privadas: ¿cómo puede el destino encontrar una dir IP privada? Solución: NAT (Network Address Translation) o Mecanismo para modificar la dir IP de los paquetes o Permite que la comunicación de las dir IP privadas (inside networks) con las dir IP públicas (outside networks) o Los routers NAT deben tener una tabla NAT con la traducción en ambos sentidos Aspectos avanzados de la arquitectura TCP/IP 19 NAT: funcionamiento básico Un router NAT reserva una o más dir IP addr para NAT -> para traducir IP privadas en IP públicas El router NAT modifica el campo “Source IP addr” de la cabecera IP y almacena la equivalencia entre las dir privada y pública en la tabla NAT El destino responde a la dir modificada El router NAT busca en su tabla NAT la equivalencia entre las dir pública y privada, enviando el paquete a la dir IP privada Source addr 192.168.1.10 Dest addr 150.214.141.20 Source addr Dest addr 150.214.141.2 150.214.141.20 IP packet IP packet Inside network Outside network NAT Router 192.168.1.1 150.214.141.1 NAT Table Host A 192.168.1.10 Source addr 150.214.141.20 Dest addr Host Z 150.214.141.20 150.214.141.2 IP packet Aspectos avanzados de la arquitectura TCP/IP 20 Tipos de NAT NAT dinámico NAT estático NAPT (Network Address Port Translation) Aspectos avanzados de la arquitectura TCP/IP 21 NAT dinámico La traducción es unidireccional El tráfico proviene de la inside network La traducción es temporal Una vez que la dir IP no está en uso, se borra de la tabla NAT Source addr 192.168.1.10 Dest addr 150.214.141.20 Source addr Dest addr 150.214.141.2 150.214.141.20 IP packet IP packet Inside network Outside network NAT Router 192.168.1.1 150.214.141.1 NAT Table Private IP 192.168.1.10 Public IP 150.214.141.2 Host A 192.168.1.10 Source addr 150.214.141.20 Host Z 150.214.141.20 Dest addr 150.214.141.2 IP packet Source addr 150.214.141.20 Dest addr 150.214.141.2 IP packet Aspectos avanzados de la arquitectura TCP/IP 22 NAT dinámico Ventaja Ahorra dir IP públicas Inconveniente El tráfico siempre es iniciado desde la inside network -> no permite servidores Source addr 192.168.1.10 Dest addr 150.214.141.20 Source addr Dest addr 150.214.141.2 150.214.141.20 IP packet IP packet Inside network Outside network NAT Router 192.168.1.1 150.214.141.1 NAT Table Private IP 192.168.1.10 Public IP 150.214.141.2 Host A 192.168.1.10 Source addr 150.214.141.20 Host Z 150.214.141.20 Dest addr 150.214.141.2 IP packet Source addr 150.214.141.20 Dest addr 150.214.141.2 IP packet Aspectos avanzados de la arquitectura TCP/IP 23 NAT estático Las traducciones están en la tabla NAT desde que se configuran los routers La comunicación puede ser iniciada por las inside & outside networks La dir IP pública debe ser conocida (via DNS) por los hosts de la outside network Source addr 192.168.1.10 Dest addr 150.214.141.20 Source addr Dest addr 150.214.141.2 150.214.141.20 IP packet IP packet Outside network Inside network NAT Router 192.168.1.1 150.214.141.1 NAT Table Private IP 192.168.1.10 Public IP 150.214.141.2 static Host A 192.168.1.10 Source addr 150.214.141.20 Host Z 150.214.141.20 Dest addr 150.214.141.2 IP packet Source addr 150.214.141.20 Dest addr 150.214.141.2 IP packet Aspectos avanzados de la arquitectura TCP/IP 24 NAT estático Ventaja Permite servidores Inconveniente Una dir IP pública por cada dir IP privada… pero los NAT dinámico y estático pueden combinarse Source addr 192.168.1.10 Dest addr 150.214.141.20 Source addr Dest addr 150.214.141.2 150.214.141.20 IP packet IP packet Outside network Inside network NAT Router 192.168.1.1 150.214.141.1 NAT Table Private IP 192.168.1.10 Public IP 150.214.141.2 static Host A 192.168.1.10 Source addr 150.214.141.20 Host Z 150.214.141.20 Dest addr 150.214.141.2 IP packet Source addr 150.214.141.20 Dest addr 150.214.141.2 IP packet Aspectos avanzados de la arquitectura TCP/IP 25 NAPT Se usan los identificadores de puerto de la capa de transporte Varias dir IP privadas pueden ser convertidas en una única dir IP privada Source addr Source port Host A 192.168.1.11 192.168.1.11 1576 Dest addr Dest port 150.214.141.19 80 Source addr Source port 150.214.141.2 IP packet 1576 Dest addr 150.214.141.19 Dest port Host Y 150.214.141.19 80 IP packet NAPT Router 192.168.1.1 150.214.141.1 Inside network Outside network NAPT Table Host B 192.168.1.12 Source addr Source port 192.168.1.12 1576 IP packet Private IP local 192.168.1.11:1576 local 192.168.1.12:1576 Public IP global 150.214.141.2:1576 global 150.214.141.2:1577 Dest addr Source addr Source port 150.214.141.20 Dest port 21 150.214.141.2 1577 Dest addr 150.214.141.20 Host Z 150.214.141.20 Dest port 21 IP packet Aspectos avanzados de la arquitectura TCP/IP 26 Consideraciones sobre NAT No todas las aplicaciones funcionan correctamente cuando atraviesan un router NAT (ej: BOOTP) Es difícil seguir el tráfico que atraviesa varios routers NAT NAT incrementa el tiempo de procesado en el router NAPT es un tipo de NAT -> también hay NAPT estático y NAPT dinámico. También se pueden combinar ambos Aspectos avanzados de la arquitectura TCP/IP 27 Tema 3. Aspectos avanzados de la arquitectura TCP/IP 3.1 Control de la congestión en TCP 3.2 Traducción de direcciones: NAT 3.3 Enrutamiento en internet 3.4 Control de errores en IPv4: ICMP 3.5 Configuración dinámica de direcciones en IPv4: DHCP 3.6 IP versión 6 RIP OSPF BGP Aspectos avanzados de la arquitectura TCP/IP 28 Enrutamiento en internet Funciones de la capa de red Direccionamiento Enrutamiento Enrutamiento: búsqueda de la MEJOR ruta Which route? La mejor ruta depende de diferentes criterios: número de saltos, velocidad de transferencia, carga del enlace, fiabilidad, coste… Diferentes rutas • Rotura de enlaces • Enlaces lentos Aspectos avanzados de la arquitectura TCP/IP 29 Enrutamiento en internet Concepto: Sistema Autónomo (AS) AS: Redes IP con una política de enrutamiento común Dos clases de protocolos IGP (Interior Gateway Protocols): definen el enrutamiento dentro de un AS. (RIP, OSPF…) EGP (Exterior Gateway Protocols): definen el enrutamiento entre diferentes AS (BGP). Aspectos avanzados de la arquitectura TCP/IP 30 Enrutamiento en internet Conceptos a tener en cuenta en el enrutamiento: Circuito virtual vs. datagrama Flujo de datos Unicast Broadcast Multicast Algoritmos de enrutamiento unicast Estáticos Adaptativos • Centralizados • Aislados • Distribuidos Aspectos avanzados de la arquitectura TCP/IP 31 Circuito virtual vs. Datagrama Dos aproximaciones para el enrutamiento Circuito virtual • La ruta se establece en el inicio de la conexión Datagrama • La dirección del rx está en todos los paquetes Which route? Aspectos avanzados de la arquitectura TCP/IP 32 Circuito virtual vs. Datagrama Circuito virtual Control de errores y flujo; orden de los datos Orientado a conexión Datagrama Cada paquete es una unidad independente • Dir. dest. en cada paquete • Los paquetes pueden llegar al dest. desordenados • No hay control de flujo ni de errores • Tres fases: establecimiento, transferencia y fin Ventajas • Eficiencia • QoS Ventajas • Más simple • Sin conexión-> mejor para tx cortas • Más fiable • Mejor para redes heterogéneas Aspectos avanzados de la arquitectura TCP/IP 33 Flujo de paquetes Unicast Broadcast Multicast Aspectos avanzados de la arquitectura TCP/IP 34 Unicast Flujos individuales: un tx, un rx A 4 flujos 2 flujos B C D E F Aspectos avanzados de la arquitectura TCP/IP 35 Broadcast un tx, todos rx A 1 flujo 1 flujo B C D E F Aspectos avanzados de la arquitectura TCP/IP 36 Multicast Un flujo, solo rx deseados A 1 flujo 1 flujo B C D E F Aspectos avanzados de la arquitectura TCP/IP 37 Enrutamiento unicast Objetivo Llevar los paquetes de emisor a receptor Enrutamiento en la capa de red Características del algoritmo de enrutamiento Direccionamiento jerárquico: primero se encuentra la red y luego el host Correcto Simple Robusto Ecuánime Óptimo Algoritmo de enrutamiento El router calcula cómo se debe enrutar Aspectos avanzados de la arquitectura TCP/IP 38 Algoritmos de enrutamiento Router Dispositivo de red que interconecta redes e implementa el algoritmo de enrutamiento El algoritmo de enrutamiento decide la interfaz por la que sale el paquete Motor de enrutamiento Tabla de enrutamiento Entradas Router Salidas Aspectos avanzados de la arquitectura TCP/IP 39 Algoritmos de enrutamiento Clasificación Enrutamiento estático Enrutamiento adaptativo • Centralizado • Aislado • Distribuído: más utilizado en internet (RIP/OSPF) Aspectos avanzados de la arquitectura TCP/IP 40 Enrutamiento estático No considera las condiciones actuales de la red Las rutas se determinan antes de la puesta en servicio de la red Ventajas Simple Buenos resultados para tráfico y topología constantes Inconvenientes Inapropiado para redes con topología cambiante Inapropiado para grandes redes-> no escalable Aspectos avanzados de la arquitectura TCP/IP 41 Enrutamiento adaptativo Decisiones basadas en Topología actual Estado de la red (congestión de enlaces) Mejor que el enrutamiento estático, pero más difícil de implementar Tres subgrupos Enrutamiento adaptativo centralizado Enrutamiento adaptativo aislado Enrutamiento adaptativo distribuído Aspectos avanzados de la arquitectura TCP/IP 42 Enrutamiento adaptativo centralizado Centro de Control de Enrutamiento (RCC) Los nodos (routers) mandan info sobre su estado al RCC Lista de nodos vecinos Long de cola Uso de los enlaces RCC Recibe esta info Calcula la ruta óptima para cada dos nodos Calcula la tabla de enrutamiento para cada nodo Distribuye las tablas a los nodos Problemas RCC y enlaces a RCC -> cuellos de botella Cálculo inexacto Aspectos avanzados de la arquitectura TCP/IP 43 Enrutamiento adaptativo aislado Sin intercambio de info entre nodos Decisiones basadas solo en info local -> sencillo Ejemplo Flooding Aspectos avanzados de la arquitectura TCP/IP 44 Enrutamiento adaptativo distribuido Utilizado en internet Dos subgrupos Algoritmos de vectores de distancias • Decisiones basados en la información recibida de los nodos vecinos. Ej: RIP (Routing Information Protocol) Algoritmos de estado de enlaces • Todos los nodos conocen el estado de la red • Cuando hay un cambio, tarda un tiempo en propagarse • Ej: OSPF (Open Shortest Path First) Aspectos avanzados de la arquitectura TCP/IP 45 RIP: Routing Information Protocol Routing Information Protocol (RIP) – RFC 1058 (RIP), RFC 1723 (RIPv2): Protocolo de enrutamiento (protocolo de aplicación sobre UDP – puerto 520 -) Para el enrutamiento interno de AS (Sistema Autónomo) RIPv2 es idéntico a RIP, pero con dos extensiones: Permite CIDR Mecanismo de autenticación Métrica: número de saltos Máximo número de saltos-> 15 Mejor para redes homogéneas Tablas de enrutamiento basadas en vectores de distancias Actualizaciones de la tabla de enrutamiento: Actualizaciones periódicas: via broadcast (en RIPv2: multicast to 224.0.0.9) Actualizaciones cuando cambia la topología de la red Aspectos avanzados de la arquitectura TCP/IP 46 RIP: Routing Information Protocol RIP: Funcionamiento La actualización de un vecino V llega a un router R: Las redes conocidas por V, y no por R, se incluyen en la tabla de enrutamiento de R. Si V conoce una ruta mejor para una red conocida por ambos, la tabla de enrutamiento de R se actualiza Métrica (nº saltos): incrementada en uno El router R publica información aumentando en una unidad lo que publica con respecto a lo que introduce en su tabla de enrutamiento Mensajes de actualización tx a los vecinos. Dos formas: • Sin usar la técnica del horizonte dividido: las actualizaciones se envían a todos los vecinos. • Usando la técnica del horizonte dividido: las actualizaciones se envían a todos los vecinos, excepto a aquellos que han informado acerca de la mejor ruta Aspectos avanzados de la arquitectura TCP/IP 47 RIP: Routing Information Protocol RIP: temporizadores (timers) Routing-update timer: 30 segundos – tiempo aleatorio Route-timeout timer: tras el timeout -> ruta inválida Route-flush timer: tras el timeout -> borra la ruta de la tabla de enrutamiento Aspectos avanzados de la arquitectura TCP/IP 48 RIP: Routing Information Protocol Mensajes RIP Comandos Petición (1) Respuesta (2): más habitual (actualizaciones) Versión: v1 or v2 RIP versión 2: campo más importante -> subnet mask -> permite CIDR (subnetting) Aspectos avanzados de la arquitectura TCP/IP 49 OSPF: Open Shortest Path First Open Shortest Path First (OSPF) Para el enrutamiento interno de AS Para redes más grandes que con RIP (normalmente) Protocolo abierto (RFC 2328) Aspectos avanzados de la arquitectura TCP/IP 50 OSPF: Características básicas Open Shortest Path First (OSPF) Open Shortest Path First (OSPF) Protocolo de enrutamiento de Las actualizaciones se difunden a estado de enlaces Algoritmo de Dijkstra para encontrar la MEJOR ruta El router construye un grafo Los pesos del grafo los configura el administrador de la red. Ej: Todos iguales a 1 (similar a RIP) Inversamente proporcional al BW (criterio habitual) Se puede fijar cualquier criterio todo el AS (via flooding) Cambios en la topología Periódicamente (una vez cada 30 min, al menos) Van en mensajes OSPF directamente sobre IP (en vez de TCP ó UDP) -> campo protocolo: 89 La conectividad del enlace se comprueba con mensajes HELLO a los vecinos Aspectos avanzados de la arquitectura TCP/IP 51 OSPF: características avanzadas (no en RIP) seguridad: todos los mensajes OSPF están autenticados Para cada enlace, puede haber diferentes métricas para diferentes TOS OSPF jerárquico en dominios grandes. Aspectos avanzados de la arquitectura TCP/IP 52 Cabecera OSPF Checksum: control de errores Autenticación Valor Tipo 1 HELLO 2 Descripción de la base de datos 3 Petición de estado de enlace 4 Actualización de estado de enlace 5 ACK de estado de enlace Aspectos avanzados de la arquitectura TCP/IP 53 BGP: Border Gateway Protocol Problema: Redes IP diferentes no tienen por qué usar el mismo protocolo de enrutamiento Dos clases de protocolos IGP (Interior Gateway Protocols): definen el enrutamiento dentro de un AS. (RIP, OSPF…) EGP (Exterior Gateway Protocols): definen el enrutamiento entre diferentes AS. BGP (Border Gateway Protocol): EGP más común (RFC 4271) Aspectos avanzados de la arquitectura TCP/IP 54 BGP: Características principales BGP proporciona a cada AS medios para: 1. Obtener info acerca de como alcanzar una subred por parte de otros AS vecinos. 2. Propagar la info sobre el alcance a todos los routers internos del AS. Permite a una subred anunciar su existencia al resto de Internet Aspectos avanzados de la arquitectura TCP/IP 55 BGP: Características principales Cada AS: ASN = Autonomous System Number) Dentro de cada AS -> Protocolo de enrutamiento del AS Fuera del AS -> “router frontera”: los routers frontera de diferentes AS intercambian sus tablas de enrutamiento BGP funciona sobre TCP (puerto 179) Aspectos avanzados de la arquitectura TCP/IP 56 BGP: Ejemplo Aspectos avanzados de la arquitectura TCP/IP 57 Tema 3. Aspectos avanzados de la arquitectura TCP/IP 3.1 Control de la congestión en TCP 3.2 Traducción de direcciones: NAT 3.3 Enrutamiento en internet 3.4 Control de errores en IPv4: ICMP 3.5 Configuración dinámica de direcciones en IPv4: DHCP 3.6 IP versión 6 RIP OSPF BGP Aspectos avanzados de la arquitectura TCP/IP 58 ICMP: Internet Control Message Protocol Utilizado por hosts y routers para comunicar información del nivel de red Informe de errores: host, red, puerto o protocolo inalcanzable Avisos de los routers o los receptores Funcionamiento sobre IP: Los mensajes ICMP van en datagramas IP (¡pero ICMP no es un protocolo de transporte!) Todos los nodos que usen IP deben implementar ICMP Los mensajes ICMP se crean solo para el primer fragmento IP Aspectos avanzados de la arquitectura TCP/IP 59 ICMP: Internet Control Message Protocol Formato de mensaje Los mensajes ICMP van en datagramas IP • Campo Protocolo = 1 en la cabecera IP • Dir. IP fuente = host que manda el mensaje ICMP Tipo 0 3 3 3 3 5 8 11 Código 0 0 1 2 3 0 0 0 Descripción Respuesta de eco (ping) Red inalcanzable Host inalcanzable Protocolo inalcanzable Puerto inalcanzable Redireccionamiento Petición de eco (ping) TTL excedido Aspectos avanzados de la arquitectura TCP/IP 60 ICMP: Internet Control Message Protocol Ping envía un paquete de datos y espera la respuesta de un paquete de contestación se basa en mensajes ICMP tipo 8 y 0 Funciones: • Comprobar la conectividad de un host • Ping envía los paquetes con números únicos de secuencia y notifica el número de secuencia del mensaje de respuesta: – Detección de paquetes duplicados, reordenados o eliminados • Ping utiliza checksums en cada paquete: – Detección de paquetes corruptos • Ping permite calcular el RTT (Round Trip Time) • Ping permite detectar otros mensajes ICMP. Aspectos avanzados de la arquitectura TCP/IP 61 ICMP: Internet Control Message Protocol Ping Solicitud de Eco y Respuesta a solicitud de Eco 1 byte 1 byte 2 bytes +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tipo | Código | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Id | Número de Secuencia | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Tipo: 8 (Solicitud de Eco) o 0 (Respuesta a solicitud de Eco) Código: 0 Id: número de identificación (opcional), típicamente se usa como número de sesión Número de secuencia (opcional) Aspectos avanzados de la arquitectura TCP/IP 62 ICMP: Internet Control Message Protocol Ping Uso: ping [-t] [-a] [-n cuenta] [-l tamaño] [-f] [-i TTL] [-v TOS] [-r cuenta] [-s cuenta] [[j lista-host] | [-k lista-host]] [-w tiempo de espera] nombre-destino Opciones: -t -a -n cuenta -l tamaño -f -i TTL -v TOS -r cuenta -s count -j lista-host -k lista-host -w tiempo de espera Ping al host especificado hasta que se pare Resolver direcciones en nombres de host Número de peticiones eco para enviar. Enviar tamaño del búfer. Establecer No fragmentar el indicador en paquetes. Tiempo de vida. Tipo de servicio. Ruta del registro para la cuenta de saltos. Sello de hora para la cuenta de saltos. Relaja la ruta de origen a lo largo de la lista- host. Restringir la ruta de origen a lo largo de la lista- host. Tiempo de espera en milisegundos para esperar cada respuesta. Aspectos avanzados de la arquitectura TCP/IP 63 ICMP: Internet Control Message Protocol Tracert (Trace route) El emisor manda peticiones de eco al destino • En el primero, TTL =1 • En el segundo, TTL=2, etc. Cuando el enésimo datagrama llega al enésimo router: • El router descarta el datagrama • Y manda al emisor un mensaje ICMP (tipo 11, código 0) • El mensaje incluye la IP del router o Tracert hace esto 3 veces por router Final del proceso La petición de eco llega finalmente al host destino El destination devuelve una respuesta de eco Cuando el emisor recibe este mensaje ICMP, el proceso termina. Aspectos avanzados de la arquitectura TCP/IP 64 ICMP: Internet Control Message Protocol Tracert (Trace route) Echo request TTL = 3 Echo request TTL = 2 Echo request TTL = 1 Echo request TTL = 2 Echo request TTL = 1 X X Echo request TTL = 4 Echo request TTL = 3 ICMP message TTL exceeded (type 11) ICMP message ICMP message TTL exceeded (type 11) TTL exceeded (type 11) Echo request TTL = 1 X Echo request TTL = 2 Echo request TTL = 1 Echo reply Aspectos avanzados de la arquitectura TCP/IP 65 ICMP: Internet Control Message Protocol Destino inalcanzable (tipo 3) Valores más comunes del campo código (causas) • Código 1: host inalcanzable • Código 3: puerto inalcanzable • Código 4: fragmentación necesaria Aspectos avanzados de la arquitectura TCP/IP 66 ICMP: Internet Control Message Protocol ICMP Redirect (type 5) Útil cuando hay distintas puertas de enlace posibles Pasos RED A Router A (2) (1) Router B Se manda el paquete a la puerta de enlace por defecto La puerta de enlace por defecto manda el paquete al router B La puerta de enlace por defecto manda un ICMP redirect al host (3) RED B Aspectos avanzados de la arquitectura TCP/IP 67 Tema 3. Aspectos avanzados de la arquitectura TCP/IP 3.1 Control de la congestión en TCP 3.2 Traducción de direcciones: NAT 3.3 Enrutamiento en internet 3.4 Control de errores en IPv4: ICMP 3.5 Configuración dinámica de direcciones en IPv4: DHCP 3.6 IP versión 6 RIP OSPF BGP Aspectos avanzados de la arquitectura TCP/IP 68 Configuración dinámica de direcciones Configuración de direcciones estática dinámica: automática y más eficiente Protocolos para la configuración automática de direcciones: RARP: Reverse Address Resolution Protocol BootP: Bootstrap Protocol DHCP: Dynamic Host Configuration Protocol Aspectos avanzados de la arquitectura TCP/IP 69 Dynamic Address Configuration RARP RARP: Reverse Address Resolution Protocol Dada una MAC, se asigna una dirección IP Los mensajes tienen la misma estructura que los mensajes ARP RARP es limitado y, por tanto, está obsoleto. Aspectos avanzados de la arquitectura TCP/IP 70 Configuración dinámica de direcciones Proceso BootP BootP El host determina su propia MAC BootP Protocol: El host manda su IP al puerto 67 Bootstrap Protocol del (0.0.0.0 si no conoce su IP Usado para obtener una and 255.255.255.255 si no dirección IP conoce la del servidor) automáticamente El servidor busca la MAC del (normalmente en el host en un fichero de proceso de arranque) configuración No se suele usar para la El servidor incluye las IPs del configuración dinámica de host y el servidor en un datagrama UDP y las envía al direcciones, dado que puerto 68 del cliente DHCP es una versión El Host guarda su IP y arranca mejorada de BootP. Aspectos avanzados de la arquitectura TCP/IP 71 Configuración dinámica de direcciones Mensaje BootP Code: BootPRequest & BootPReply Transaction id HW address: ej. MAC Server host name (el servidor no tiene por qué estar en el mismo dominio de broadcast) Boot file name Vendor specific area • Magic cookie: indica el tipo de información opcional • Es un campo clave para DHCP Aspectos avanzados de la arquitectura TCP/IP 72 Dynamic Address Configuration DHCP Dynamic Host Configuration Protocol (DHCP) – RFC 2131: capacidad de asignar automáticamente direcciones de red reutilizables (arrendamiento de direcciones IP) se basa en el protocolo BOOTP, mediante la estandarización del campo Vendor Specific Area de PDU de BootP (312 bytes). 3 mecanismos para la asignación de direcciones IP: • Asignación automática: – DHCP asigna al host una dirección IP permanente. • Asignación dinámica: – DHCP asigna una dirección IP por un periodo de tiempo limitado -> reutilización automática de direcciones que ya no son necesitadas • Asignación manual: – dirección del host es asignada por el administrador de red Aspectos avanzados de la arquitectura TCP/IP 73 Dynamic Address Configuration Mensaje DHCP Igual que el mensaje BootP excepto por el campo opciones (312 bytes) en lugar del Vendor Specific Area • 4 primeros bytes: magic cookie -> 99.130.83.99 (means DHCP). • Diferentes opciones. Algunas de las más importantes son: – 50: dirección IP solicitada – 51: tiempo de arrendamiento – 53: tipo de mensaje DHCP Aspectos avanzados de la arquitectura TCP/IP 74 Configuración dinámica de direcciones Ciclo DHCP Además: 1. DHCP DISCOVER: intenta encontrar un servidor DHCP. 2. DHCP OFFER: el/los servidor(es) ofrece(n) una dirección IP 3. DHCP REQUEST: el cliente pide ciertos parámetros (Normalmente los que le ha ofrecido el servidor) 4. DHCP ACK: ACK del servidor • DHCP RELEASE: libera la dirección IP • DHCP DECLINE. La IP ofrecida está en uso • DHCP INFORM: pide algunos parámetros de configuración • DHCP NAK: si el servidor no acepta la petición 1 Nota: El ciclo básico se ejecuta 2 completo sólo si no se dispone de dirección IP. En caso contrario, sólo se ejecuta la mitad del ciclo 3 Cliente DHCP (puerto 68) 4 Servidor DHCP (puerto 67) Aspectos avanzados de la arquitectura TCP/IP 75 Configuración dinámica de direcciones Otras características de DHCP Un router puede hacer de servidor DHCP BootP Relay: cuando el servidor no está en el mismo dominio de broadcast ARP gratuito: petición ARP del cliente de su propia IP. Comprueba si la dirección asignada está en uso. Opción 50: el cliente pide una determinada IP Opción 51: tiempo de arrendamiento Tamaño máximo del mensaje DHCP : 576 bytes Aspectos avanzados de la arquitectura TCP/IP 76 Tema 3. Aspectos avanzados de la arquitectura TCP/IP 3.1 Control de la congestión en TCP 3.2 Traducción de direcciones: NAT 3.3 Enrutamiento en internet 3.4 Control de errores en IPv4: ICMP 3.5 Configuración dinámica de direcciones en IPv4: DHCP 3.6 IP versión 6 RIP OSPF BGP Aspectos avanzados de la arquitectura TCP/IP 77 IPv6 Motivación inicial: El espacio de direcciones de 32-bits está completo Cambios básicos: Espacio de direcciones de 128-bits • Ej: 2002:96d6:8ddc::96dc:6301 (los bits que faltan son ceros) El formato de cabecera mejora el tiempo de procesado Cabecera de 40-bytes (tamaño fijo) Otros cambios basados en la experiencia previa con IPv4 Aspectos avanzados de la arquitectura TCP/IP 78 Cabecera IPv6 Versión: 6 Priority (clase de tráfico): identifica la prioridad de los datagramas Flow Label (etiqueta de flujo): identifica los datagramas del mismo “flujo” (concepto de “flujo” sin definir exactamente) Payload length: longitud de carga útil Next header (siguiente cabecera): identifica el protocolo de capa superior Hop limit (límite de saltos): análogo al campo TTL de IPv4 Src & Dest addr: 128 bytes Aspectos avanzados de la arquitectura TCP/IP 79 Cambios respecto a IPv4 Checksum: eliminado para reducir el tiempo de procesado en cada router Fragmentación: eliminada en IPv6, también para reducir el tiempo de procesado Opciones: permitidas, pero fuera de la cabecera, indicadas en el campo “Next Header” ICMPv6: nueva versión de ICMP Tipos de mensajes adicionales, ej: “Paquete demasiado grande” Aspectos avanzados de la arquitectura TCP/IP 80 Transición de IPv4 a IPv6 No todos los routers pueden pasar a IPv6 simultáneamente Sin Día D ¿Cómo hace internet para funcionar con routers IPv4 y IPv6 al mismo tiempo? Tunelización: IPv6 va en el campo de datos del datagrama IPv4 entre routers IPv4 Aspectos avanzados de la arquitectura TCP/IP 81