Temario STD (Cuatrimestre Otoño, curso 2001/2002) Tema 1: Introducción (1 semana) Arquitectura TCP/IP Modelos de referencia OSI de ISO/IEC Ethernet (repaso) PPP, negociación LCP e IPCP loopback interface MTU Tema 2: Internetworking Protocol (IP) (6 semanas) Funciones de IP Formato de la cabecera de los datagramas IP Direcciones IP Mascaras de red y subredes Resolución de direcciones (ARP) Ethernet ATM Funcionalidad de un router Fragmentación y reensamblado Routers vs. Conmutadores y bridges VLANs Encaminamiento en IP Tablas de encaminamiento IGP vs. EGP Encaminamiento estático RIP y OSPF BGP4 CIDR ICMP ping traceroute MTU path discovery IPv6 DNS Zonas y dominios Querys iterativas y recursivas Querys inversas Obtención de dominios y bloques de direcciones, función de los ISPs Tema 1: Introducción Arquitectura TCP/IP Modelo de referencia OSI Ethernet (repaso) Point-to-Point Protocol (PPP) loopback interface MTU Tema 3: TCP, UDP y APIs (4 semanas) UDP Funcionalidades de TCP Control de errores Control de flujo Control de congestión Grafo de estados de TCP STD, Jorge García Vidal Tema 1: Introducción STD, Jorge García Vidal 3 Tema 1: Introducción 4 3wHS Finalización de la conexión Sockets Mapeo de las llamadas a sockets con el grafo de estados de TCP Servidores concurrentes e iterativos Tema 4: Seguridad y conexión a Internet (1 semana) Firewalls, Servidores Proxy IPsec y VPNs NATs Sesiones de laboratorios (documentación en página asignatura) 1.- Configuración de hosts y de enlaces PPP 2.- Configuración de routers UNIX. Configuración IOS 3.- tcpdump (ping, traceroute, etc). Configuración de RIP en IOS 4.- Grafo de estados de TCP. Control de flujo y de congestión en TCP Organización del curso (!): 2 horas de teoría cada semana 2 horas de ProbLab cada 2 semanas Teoría ProbLab Teoría ProbLab Bibliografía W. R. Stevens “TCP/IP Illustrated” Vol 1. Addison-Wesley 1995 D. E. Comer “Internetworking with TCP/IP” Vol 1. Prentice-Hall 1994 Bibliografía complementaria D. E. Comer “Computer Networks and the Internet” Prentice-Hall 1999 W. R. Stevens “Unix Network Programming”, Prentice-Hall 1998 L. L. Peterson, B. S. Davie “Computer Networks”, Morgan Kaufman 1996 11.a 11.a 11.b 11.b 12.a 12.a 12.b 2h 12.b 2h Semana STD, Jorge García Vidal STD, Jorge García Vidal Introducción La arquitectura de los protocolos de comunicaciones es la siguiente: ¿Qué es ProbLab? Son sesiones de laboratorio de 2 horas en las que se realizan prácticas y experimentos que ayudan a entender mejor la teoría. Usuario Aplicaciones: Web, eMail, chat, e-commerce, Gestión de red, Telnet, FTP, Multimedia, etc... Sockets, RPCs En algunas sesiones también haremos clases de resolución de problemas en la pizarra (principalmente de exámenes de años anteriores) Sistema Operativo Es necesario llevar 2 disquettes para cargar una imagen de Trinux. TCP/IP Drivers La documentación de cada sesión irá apareciendo en la web de la asignatura. Bus (ej: ISA, PCI) ¡Antes de cada sesión hay que leer el enunciado! Tarjeta de Red (NIC) / Módem Se evaluarán como parte del examen de la asignatura. STD, Jorge García Vidal STD, Jorge García Vidal Tema 1: Introducción 7 ¿En dónde se utilizan los protocolos TCP/IP? ..... Tema 1: Introducción ¿Cómo surgieron los protocolos TCP/IP? ..... ..... En 1957 la URSS lanza el Sputnik 1. En 1958 los EE. UU. crean el DARPA (Defense Advanced Research Projects Agency). En 1969 se crea ARPANET, una WAN experimental que usa Conmutación de Paquetes. En Francia se pone en marcha la red CYCLADES. ISP Backbone Internet ..... Red sin conexión a Internet ISP: Proveedor de Servicios de Internet VPN: Red Privada Virtual STD, Jorge García Vidal 8 STD, Jorge García Vidal A mediados de los años ‘70 se diseñan los protocolos TCP/IP para interconectar redes heterogéneas (ARPANET y ARPA Packet Radio Network). (Cerf y Kahn, “A Protocol for Packet Network Intercommunication”, IEEE Transactions on Communications, 1974). En 1977 se realizan las primeras pruebas con TCP/IP. La arquitectura de protocolos TCP/IP Las principales restricciones de diseño eran las siguientes (ref. D. D. Clark, “The Design Philosophy of the DARPA Internet Protocols”, SIGCOMM’88): 1. La comunicación debería mantenerse aun en el caso de que parte de la internet estuviera dañada (¡Guerra fría!) 2. Debería soportar diferentes tipos de servicio (Fiable y no fiable) ..... ..... 3. Debería adaptarse a diferentes redes ya existentes previamente Gateways (routers) Una de las principales decisiones del diseño fue usar datagramas como la unidad básica que se transfiere entre redes (i.e. No orientado a la conexión) El 1 de Enero de 1983 se realizó la transición de NCP a TCP/IP. En 1987 se crea NSFNet. STD, Jorge García Vidal Tema 1: Introducción Supervivencia si la red falla: STD, Jorge García Vidal 11 Tema 1: Introducción 12 Soporte a diversos tipos de servicio Aplicaciones TCP UDP IP IP: No orientado a la conexión. TCP: Orientado a la conexión UDP: No orientado a la conexión. En los routers no se mantiene el estado de la conexión (IP). IP es NO orientado a la conexión. La mayor parte de aplicaciones necesitan un servicio fiable y ordenado. TCP proporciona el correspondiente servicio. El estado de la conexión se mantiene en los extremos (TCP). TCP se encarga de control de errores, del control de flujo y de la mux/demux de la información. Algunas aplicaciones no necesitan de dicho servicio, y se programan sobre UDP. (ej: Voz, Gestión, etc) STD, Jorge García Vidal STD, Jorge García Vidal Adaptación a diferentes tec. de red Organismos de estandarización ISO: Organismos Nacionales de Estandarización La arquitectura de Internet consigue una gran flexibilidad al hacer un conjunto muy reducido de suposiciones sobre el tipo de transporte que las redes proporcionan. CCITT/ITU: Compañías Operadoras de Telecomunicaciones IAB: Internet Activities Board La suposición básica es que la red puede transportar un datagrama de un tamaño de al menos unos 100 bytes y con una tasa de errores no demasiado elevada. Si la red no es un enlace punto a punto debe poseer algún tipo de direccionamiento. IEEE, TIA, ETSI, etc... Durante los años 80 ISO/IEC desarrolló un modelo de referencia para la interconexión de sistemas abiertos denominado OSI. La intención era definir una arquitectura de red y un conjunto de protocolos que fueran utilizados de forma extensiva en la comunicación de datos. ¡Es difícil imaginar una red que no cumpla las anteriores condiciones! Por diferentes motivos, dicha iniciativa no ha tenido éxito. STD, Jorge García Vidal STD, Jorge García Vidal Tema 1: Introducción 15 Tema 1: Introducción y la arquitectura TCP/IP En 1860 el ayuntamiento de Barcelona abrió un concurso para urbanizar el actual Eixample... Arquitectura TCP/IP del IAB N. Aplicación TCP/UDP IP Murallas Interfaz Red, N. Físico Plan de I. Cerdà Modelo de referencia OSI de ISO/IEC N. Aplicación N. Presentación N. Sesión N. Transporte N. Red N. Enlace Plan de A. Rovira N. Físico Plan urbanístico <-> Modelo de referencia Edificios <-> Protocolos STD, Jorge García Vidal STD, Jorge García Vidal 16 Modelo de Referencia OSI Punto de Acceso al Servicio (SAP) En el modelo de referencia de OSI hay 7 niveles Nivel Entidad N Entidad Unidad de Datos de Interface (IDU) N. Aplicación N. Presentación N. Sesión Información de control de interface (ICI) N. Transporte N. Red Unidad de datos del servicio (SDU) N. Enlace IDU N. Físico Cabecera Protocolos Host-Router Protocolos Internos a la Subred Unidad de datos del protocolo (PDU) STD, Jorge García Vidal Tema 1: Introducción STD, Jorge García Vidal 19 Algunos Problemas de OSI (M. Rose, “The Open Book”): Problemas de implementación y eficiencia Tema 1: Introducción Redes Ethernet Las redes locales más utilizadas son las redes Ethernet. Originalmente utilizaban una topología en bus, transmisión por cable coaxial con un código Manchester a 10 Mbps y CSMA/CD Al haber definido 2 servicios de red (CONS y CLNS) junto con varios protocolos de transporte (ej: TP2, TP4), es difícil tener una completa interoperación entre redes La estructura de las capas de aplicación es demasiado compleja pues está orientada a resolver de forma general problemas que no siempre se presentan Hoy en día es más frecuente la configuración en la que se utiliza cables UTP, Hubs o conmutadores El proceso de estandarización fue demasiado largo. Cuando todavía se trabajaba en la definición de OSI, existían implementaciones completas y gratuitas de TCP/IP (ej: UNIX BSD) y aplicaciones (e-mail, telnet, ftp, ...) STD, Jorge García Vidal Hub/Switch STD, Jorge García Vidal 20 Trama Ethernet (DIX) Las direcciones son únicas para cada NIC Ethernet (24 OUI+24) (Org. Unique Ident) El relleno sirve para forzar un tamaño mínimo de trama Preámbulo Dirección destino Dirección origen Tipo de trama El IEEE ha definido una serie de estándares para redes locales (802). 8 Estos estándares definen dos subniveles para los protocolos en LANs que están integrado dentro del nivel 2 (nivel de enlace) del modelo de referencia OSI: 6 6 2 El CRC utiliza el polinomio CRC-32 El tipo de trama es (en hexadecimal): LLC Datos 46-1500 Octetos 0800 : IP 0806 : ARP 8035 : RARP Relleno CRC 802.3 802.4 802.5 ... Dentro del nivel LLC se han diseñado varios protocolos que ofrecen diferentes tipos de servicios. El más utilizado es “send-data-with-no-ack” (i.e. datagrama). 802.3 corresponde al MAC CSMA/CD 4 STD, Jorge García Vidal STD, Jorge García Vidal Tema 1: Introducción 23 Trama Ethernet (802.2/802.3) Tema 1: Introducción 24 Point to Point Protocol (PPP) Preámbulo 8 Dirección destino 6 Dirección origen 6 Notar que longitud es siempre menor a 0800 en hexa => longitud AA AA 03 2 Podemos distinguir sin problemas entre los dos formatos de trama! 000000 DSAP : AA SSAP : AA Cntl: 03 Org Code: 000000 MAC 802.2 Conexión a red pública Módem/TR DTE Red Pública 802.3 802.2 PPP permite encapsular datagramas IP en enlaces punto a punto, bien enlaces síncronos o bien enlaces asíncronos (8 bits de datos, no bit de paridad) tipo Además de la Tx de información tenemos dos protocolos: Datos 38-1492 Octetos LCP que establece, configura y testea un enlace de datos Autentificación: PAP y CHAP Relleno CRC STD, Jorge García Vidal 4 NCP que especifica el protocolo a utilizar (ejemplo: IP, OSI, etc) y algunas características del protocolo (Compresión, dirección IP, etc) STD, Jorge García Vidal Ejemplo de negociación LCP Trama PPP sobre HDLC flag: 7e A 1 addr: ff Protocol 2 Datos En enlaces asíncronos se usa el byte 0x7d como carácter de escape. Cuando se usa el carácter de escape, se complementa el 6º bit del siguiente carácter LCP conf reject id=7 MagicNumber Prot.field.comp 0-1500 CRC LCP conf ack id = 8 MRU = 200 ACCM = 000000 ctrol field comp 2 flag: 7e STD, Jorge García Vidal Tema 1: Introducción 27 B A B IPCP conf req id=2 IP:0.0.0.0 IPCP conf nack id=2 IP:192.168.1.3 IPCP conf req id=7 IP:192.168.1.1 VJ comp IPCP conf reject id=7 VJ comp IPCP conf req id = 8 IP:192.168.1.1 IPCP conf ack id = 8 IP:192.168.1.1 Tema 1: Introducción 28 Loopback Ejemplo de negociación IPCP STD, Jorge García Vidal LCP conf ack id=1 ACCM LCP conf req id = 8 MRU = 200 ACCM=000000 Ctrol field comp STD, Jorge García Vidal A B LCP conf req id=7 MRU=200 ACCM=000000 MagicNumber =a7c390b7 prot.field.comp ctrol.field.comp 0021: IP C021: LCP 8021: NCP En enlaces síncronos la transparencia se consigue con bit stuffing. A LCP conf req id=1 ACCM=000000 cntrol: 03 Protocolo: B La mayor parte de implementaciones de TCP/IP soportan un interface loopback que permite la comunicación entre un cliente y un servidor situados en la misma máquina Normalmente se asigna la dirección IP 127.0.0.1 y el nombre localhost (ver tema 2) MTU Para cada tecnología de red hay un límite en el tamaño del campo de datos que se puede transmitir. Esto define la Unidad Máxima de Transmisión (MTU) Cuando entre dos host hay más de un tipo de red, se define la MTU del trayecto (“path MTU”) como el mínimo de las MTU de las redes situados en el camino entre las dos máquinas. STD, Jorge García Vidal