Tema 8 Redes TCP/IP. Intenet Febrero, 2011 Jorge Juan Chico <jjchico@dte.us.es>, Julián Viejo Cortés <julian@dte.us.es> Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar, distribuir y comunicar públicamente la obra y de hacer obras derivadas siempre que se cite la fuente y se respeten las condiciones de la licencia Attribution-Share alike de Creative Commons. Puede consultar el texto completo de la licencia en http://creativecommons.org/licenses/by-sa/3.0/ Objetivos Comprender el funcionamiento de las redes de comunicaciones Conocer los mecanismos básico de operación de las redes locales Comprender el funcionamiento de Internet y los protocolos que la hacen funcionar Valorar la estrategia de dividir un problema general en problemas más simples Conocer los parámetros de configuración de un ordenador conectado a Internet Tomar conciencia de la dimensión técnica y social de Internet Introducción 3 Contenidos Introducción Redes conmutadas – Conmutación de circuitos. Conmutación de paquetes. Enrutado Redes de área local: Ethernet – Topologías. Trama MAC. Acceso al medio Internet – – – – – – Estructura y objetivo Protocolo IP Protocolo TCP Otros protocolos de Internet Servicio de nombres de dominio (DNS) Elementos de configuración 4 Introducción Protocolos de aplicaciones específicas: páginas web, correo electrónico, transferencia de ficheros Protocolos de nivel superior: HTTP, FTP, SMTP, etc. TCP (Protocolo de Control de la Transferencia): gestión de conexiones en Internet Transfer Control Protocol (TCP) Internet Protocol (IP) IP (Protocolo de Internet): transferencia de paquetes en Internet Enlace de datos Enlace de datos: transferencia de paquetes de datos en una red local o de área amplia medio físico 5 Redes conmutadas C C red estaciones 22 B 11 nodo 33 55 A 44 – – – – – EE 66 77 – D D FF Conjunto de nodos conectados por enlaces de datos. Estaciones: puntos terminales. Ej: ordenadores, teléfonos, etc. Nodos internos: conectados sólo a otros nodos. Nodos periféricos: conectados a estaciones. Enlaces con varios "canales" entre nodos (multiplexación). Varios caminos alternativos entre nodos. Conmutación de circuitos Funcionamiento: – – Se establece una conexión física permanente entre entre las estaciones durante la comunicación. Fases: Establecimiento del circuito: realización de llamada, realización de conexiones en los nodos. Transferencia de datos: normalmente en ambos sentidos (full-duplex) Desconexión: liberación de recursos Ejemplo: red telefónica conmutada "tradicional". Conmutación de circuitos Ejemplo: nodo B llama a E C B Establecimiento del circuito Transferencia Desconexión D E A F Conmutación de paquetes – – Desarrollada a principios de los 70 para comunicación de datos digitales Conmutación de circuitos: poco eficiente mal aprovechamiento de recursos – Los nodos intercambian información digital – Información dividida en paquetes, cada paquete contiene: información de control: origen, destino, tamaño, prioridad, ... datos a transferir – Cada nodo "encola" los paquetes recibidos y los envía por la línea más adecuada según su destino. Conmutación de paquetes Funcionamiento DATOS opciones origen: B destino: E C B D E A F Conmutación de paquetes Ventajas Mayor eficiencia: sólo se usan los enlaces cuando hay datos que enviar. Cualquier tipo de datos: codificación digital. Posibilidad de establecer prioridades distintas para distintos tipos de comunicación: calidad de servicio. Posibilidad de comunicación incluso con red saturada. Conmutación de paquetes Técnicas de conmutación Datagramas: – – – – – cada paquete se trata independientemente, aunque pertenezcan a un mismo bloque de datos. los paquetes pueden llegar desordenados no hay que establecer conexión más fácil de implementar usado en redes heterogéneas (Internet) Circuitos virtuales: – primero se establece un camino fijo para el intercambio de los paquetes de una sesión y luego todos se envía por el emulan la redes de conmutación de circuitos los paquetes llegan de forma ordenada más fiable: calidad de servicio, reserva de recursos implementación más compleja – usado en redes homogéneas de área amplia (WAN) – – – – Conmutación de paquetes Enrutamiento (routing) Inundación (difusión) Estático Dinámico Conmutación de paquetes Enrutamiento (routing) Enrutamiento por inundación (difusión): – – – – – – Cada nodo repite el paquete hacia todos sus enlaces de modo que cada paquete alcanza todos los puntos de la red. Debe existir algún mecanismo limitativo: un paquete se repite un número máximo de veces Simple: fácil de implementar Eficaz: se aprovechan varios caminos posibles Bajo aprovechamiento: se emplean enlaces que no son necesarios Peligro de saturación de la red: congestión Conmutación de paquetes Enrutamiento (routing) Enrutamiento estático: – Cada nodo almacena una tabla de rutas fija (estática) que indica: destino -> enlace a usar – Soluciona problemas de saturación Eficaz: configurable para mejor operación – – – – Fácil de implementar Difícil de mantener: configuración manual Bajo aprovechamiento: no se adapta a las condiciones cambiantes de la red Conmutación de paquetes Enrutamiento (routing) Enrutamiento dinámico: – – – – – – – Tablas de rutas generadas dinámicamente y automáticamente Mejor aprovechamiento de la red Adaptable automáticamente a fallos de la red Fácil de mantener: configuración automática Permite calidad de servicio: prioridad en función de contenidos, urgencia, etc. Difícil de implementar: algoritmos de routing Añade tráfico para operaciones de control: puede afectar a la saturación de la red Contenidos Introducción Redes conmutadas – Conmutación de circuitos. Conmutación de paquetes. Enrutado Redes de área local: Ethernet – Topologías. Trama MAC. Acceso al medio Internet – Estructura y objetivo Protocolo IP Protocolo TCP Otros protocolos de Internet Servicio de nombres de dominio (DNS) – Elementos de configuración – – – – 17 Redes de área local Redes para áreas pequeñas: oficina, edificio, campus, etc. Destinadas a conexión de equipos informáticos: ordenadores, servidores, teminales, impresoras, etc. Transmisión de datos digitales en forma de paquetes. Arquitecturas normalizadas por las normas IEEE 802: Diferentes topologías: – – bus, anillo, estrella, inalámbricas. todas las topologías se comportan igual: conseguir que un paquete emitido por una estación llegue a todas las demás (difusión de paquetes). 18 Ethernet. IEEE 802.3 CSMA/CD Carrier Sense, Multiple Access with Collission Detection Tecnología de red local más utilizada. Topologías: – – tipo bus usando coaxial grueso o coaxial fino (obsoleto) tipo estrella usando par trenzado o fibra óptica Acceso al medio por competición Direccionamiento físico mediante direcciones de 6 bytes (48bits). Ej: 00:D0:59:7B:97:8D Velocidades: – – – – Ethernet clásico: 10Mbps Fast Ethernet: 100Mbps Gigabit Ethernet: 1000Mbps ... 19 Ethernet. Operación 1 2 3 4 La estación 2 ve el medio libre y envía un paquete con destino a 4 El paquete se propaga por el medio y va llegando a todas las estaciones La estación 4 lee el paquete, el resto lo descartan 20 Ethernet. Operación repetidor 1 2 3 4 21 Ethernet. Operación conmutador (switch) 1 2 3 4 22 Ethernet. Operación AP 1 2 3 AP 4 5 23 Ethernet. Formato de trama 7 1 preámbulo SFD 6 6 2 >=0 >=0 4 destino origen longitud datos relleno FCS Campos de la trama: – – – – – – – – Preámbulo: avisa de que va a llegar una trama SFD (delimitador de comienzo de trama): marca el comienzo de una trama DA (dirección de destino): dirección física de destino de la trama SA (dirección de origen): dirección física de origen de la trama Longitud: longitud del campo de datos Datos: datos a transmitir. Habitualmente entre 0 y 1500 bytes Relleno: bytes a "0" para hacer que la trama tenga un tamaño mínimo de 64 bytes, necesario para la detección de colisiones. FCS (secuencia de comprobación de trama): código de detección de errores. 24 Acceso al medio Caso simple 1 2 3 4 (1) emite una trama con destino a (3) La trama llega a (2) y a (3), que reconoce su dirección La trama llega al resto de la red. (3) sigue leyendo (1) finaliza la transmisión. (3) ha leido toda la trama Acceso al medio Medio ocupado 1 2 3 (1) está emitiendo una trama. (2) quiere emitir pero el medio está ocupado (1) termina de emitir. (2) comienza cuando ve el medio libre La trama llega a su destino (4) (2) termina de emitir 4 Acceso al medio Colisión 1 2 3 4 (1) ve el medio libre y comienza a emitir (3) ve el medio libre y comienza a emitir poco después Las señales de (1) y (3) colisionan y se vuelven "ininteligibles" La colisión se propaga a todo el segmento y es detectada. (1) y (3) cancelan la emisión y esperan un tiempo para retransmitir Acceso al medio Colisión: caso más desfavorable 1 2 3 4 (1) ve el medio libre y comienza a emitir (4) comienza a emitir instantes antes de la llegada de la trama de (1). Inmediatamente se produce una colisión (tiempo T) (1) y (4) continúan emitiendo hasta que la colisión llega a (1) (tiempo 2T). La colisión es detectada por (1). Las estaciones dejan de emitir. Reintentarán la emisión más tarde. (Para detectar todas las colisiones, debe emitirse al menos un tiempo 2T) Acceso al medio Round-trip time Para que funcione el mecanismo de colisiones, una estación debe emitir durante un tiempo mínimo igual al tiempo máximo de ida y vuelta de la señal a lo largo de todo el segmento de red (round trip time) Se fija un round trip time máximo de 50 microsegundos. – a 10Mbps -> envío mínimo de 64bytes El tamaño máximo de la red local viene condicionado por el round trip time. Contenidos Introducción Redes conmutadas – Conmutación de circuitos. Conmutación de paquetes. Enrutado Redes de área local: Ethernet – Topologías. Trama MAC. Acceso al medio Internet – – – – – – Estructura y objetivo Protocolo IP Protocolo TCP Otros protocolos de Internet Servicio de nombres de dominio (DNS) Elementos de configuración 30 Internet. Estructura 31 Internet. Objetivo Red universal para la interconexión de ordenadores y equipos: – trabajo remoto, acceso a datos, comunicación (e-mail), etc. Limitaciones de las redes locales: – – extensión limitada multitud de tipos: heterogeneidad Aprovechamiento de redes existentes Objetivo técnico: proporcionar un mecanismo para establecer conexiones "virtuales" entre ordenadores conectados a la red. Host 1 Host 2 proceso 1 proceso 1 proceso 2 proceso 2 proceso 3 32 Internet. Conceptos internet: red formada por la interconexión de distintos tipos de redes físicas y que emplea en su conjunto una tecnología común para la transferencia de información conocida como "protocolos de internet". La Internet: internet de ámbito global que interconecta los ordenadores de multitud de organismos, empresas y particulares a lo largo de todo el mundo. Host: ordenador o dispositivo conectado a la internet Interfaz de red: elemento de conexión a una red o enlace físicos (ethernet, modem, etc.) 33 Internet: protocolos TCP/IP Protocolos de nivel superior: HTTP, FTP, SMTP, etc. Transfer Control Protocol (TCP) Internet Protocol (IP) Enlace de datos Protocolos de aplicaciones específicas: páginas web, correo electrónico, transferencia de ficheros TCP (Protocolo de Control de la Transferencia): gestión de conexiones en Internet IP (Protocolo de Internet): transferencia de paquetes en Internet Enlace de datos: transferencia de paquetes dentro de la red local medio físico 34 Protocolo IP. Generalidades Cada paquete lleva una cabecera con la dirección de destino y de origen Cada paquete se trata de forma independiente Puede haber fragmentación y reensamblado para adaptar el tamaño del paquete a la red física Técnica del mejor esfuerzo: No se confirma la llegada de los paquetes No se asegura la llegada de los paquetes a su destino – – 35 Protocolo IP. Paquete IP vers: versión de IP (4, 6, etc.) 4 4 8 16 vers HLEN TOS longitud ident TTL flags protocolo HLEN: tamaño de la cabecera en bloques de 32b. Típicamente 5 = 20B TOS (Type Of Service): tipo de paquete, prioridad, etc. offset (13) checksum origen ident, flags y offset: usados para fragmentación. Opcionales. TTL (Time To Live): número máximo de "saltos". Tipicamente 64 destino opciones longitud: del paquete completo en bytes relleno protocolo: protocolo de destino: 6=TCP, 17=UDP checksum: código de detección de errores ... datos ... origen: dirección de origen del paquete destino: dirección de destino del paquete opciones+relleno: no suelen usarse datos: normalmente, un paquete de protocolo de nivel superior (TCP, UDP) 36 Protocolo IP. Direcciones IP Direcciones de 32 bits (4 bytes). Ej: 150.214.144.12 – Parte de la dirección de un host es común a todos los hosts de la misma subred. Máscara de subred: 32 bits, los n primeros a "1" y el resto a "0". Los bits a "1" indican la parte de la dirección común a la subred. Una dirección con la parte del host todo a "0" indica la dirección de la subred. Una dirección con la parte del host todo a "1" indica como destino todos los hosts de la subred. 38 Direcciones IP. Ejemplo IP: 10010110 11010110 10010000 00001100 150.214.144.12 MASK: 11111111 11111111 11111111 00000000 255.255.255.0 RED: 10010110 11010110 10010000 00000000 150.214.144.0 Broadcast: 10010110 11010110 10010000 11111111 150.214.144.255 Notación abreviada: dirección IP / nº bists a 1 máscara Ej: 150.214.144.12/24 39 Direcciones IP privadas Existen rangos de direcciones IP "reservadas" que no deben ser usadas por ordenadores conectados a Internet Estas direcciones pueden usarse para redes IP no conectadas "directamente" a Internet: Intranets – – – 10/8: 10.0.0.0 - 10.255.255.255 172.16/12: 172.16.0.0 - 172.31.255.255 192.168/16: 192.168.0.0 - 192.168.255.255 Otro rango de direcciones especial es: 127/8: 127.0.0.0 - 127.255.255.255 – – está reservado para direcciones locales dentro de la misma máquina. no deben circular paquetes por la red con estas direcciones. 40 Protocolo IP. Routing Mecanismo para dirigir un paquete a través de los "routers" adecuados hasta alcanzar el host de destino final – – – – todo datagrama (paquete) contiene una dirección IP de destino la parte de red de una dirección IP identifica unívocamente una subred física que es parte de la internet todas las máquinas con la misma parte de red en su dirección IP están conectadas a la misma red física y pueden intercambiar "frames" directamente toda red física tiene al menos un router conectado a otra red física que puede intercambiar paquetes en ambas redes físicas R internet 41 Protocolo IP. Routing en un host Si la dirección IP de destino está en la misma subred (se averigua usando la máscara de subred), envía el paquete directamente al destino, mediante un "frame" con la dirección física del destino. Si la dirección IP de destino no está en la misma subred, envía el paquete al router por defecto conectado al exterior (gateway), mediante un "frame" con la dirección física de la gateway. Se necesita algún mecanismo para tradudir direcciones IP locales en las correspondientes direcciones físicas: ARP – – R internet 42 Protocolo IP. Routing en un router Un router dispone de varios interfaces conectados a diferentes subredes. Posee una dirección IP para cada interfaz. – – – – subred El router recibe un datagrama IP si la dirección de destino esta en la misma subred que alguno de los interfaces del router, envía el paquete por ese interfaz si la dirección de destino está en la tabla de rutas del router, evía el paquete por el interfaz o dirección indicado en la tabla de rutas en caso contrario, envía el paquete al router por defecto (si lo hay) R R R internet 43 Protocolo IP ARP (Address Resolution Protocol) cab. ether. datos ethernet: datagrama IP cab. IP CRC datos IP En la red física, los paquetes IP (datagramas) se envían encapsulados en paquetes de la red física (frames) – – – – – – La dirección física del frame debe corresponder con la del ordenador al que va destinado el datagrama IP (host, router, gateway, etc.). Cada host guarda una tabla de traducción IP -> dir. física Las entradas se borran cada 15min. para adaptarse a cambios en la red. Si un host no conoce la dirección física correspondiente a una dirección IP, se envía un paquete especial ARP a todos los hosts de la red local (broadcast). El host que posee la dirección IP requerida, responde con un paquete ARP de respuesta informando de su dirección física. El host que preguntó actualiza su tabla de traducción. 44 TCP. Generalidades Orientado a conexión: proporciona conexiones virtuales entre procesos en hosts conectados a una internet. – – Usa paquetes TCP que se llaman "segmentos". Emplea las funciones que proporciona IP para la transferencia de paquetes. Proporciona fiabilidad: – detección de errores – retransmisión control de flujo – Usado directamente por las aplicaciones 45 TCP. Puertos – – – TCP permite múltiples conexiones a un mismo host. Procesos servidores "escuchan" a la espera de conexiones de clientes. A cada proceso servidor se asigna un número de puerto. Dirección IP + puerto = localizador universal (socket) de un servicio en la red Servicios con puertos "conocidos": FTP(21) telnet(23) SMTP-correo e.(25) HTTP-web(80) HTTPS(443) POP3(110) NetBIOS(137,138,139) Host 1 TCP Host 2 IP IP TCP 3125 proc. 1 80 proc. 1 25 proc. 2 internet 4120 proc. 2 46 TCP. Paquete TCP 16 16 SrcPort DstPort Acknowledgment Flags DstPort: puerto de destino. SeqNum: número de secuencia del primer byte de datos en este segmento. SeqNum HdrLen Res. SrcPort: puerto de origen. AdvWindow Checksum UrgPtr Opciones Relleno ... datos ... Flags: URG: UrgPtr significativo ACK: Acknowledgment significativo PSH: función PUSH RST: reset de conexión SYN: sincronizar números de secuencia FIN: fin de datos del emisor Acknowledgment: numero de secuencia del siguiente byte esperado. HdrLen: longitud de la cabecera en nº de palabras de 32 bits. Res(ervado): 6 bits a cero, reservados para usos futuros. Flags: bits de control. AdvWindow: nº de bytes que el emisor está dispuesto a aceptar Checksum: detección de errores UrgPtr: nº de byte donde hay datos urgentes Opciones+Relleno: parámetros opcionales. 47 TCP. Inicio de conexión (visión del servidor) Host 1: 130.125.12.14 TCP Host 2: 150.214.141.89 IP IP TCP 7 proc. 1 proc. 11 80 internet 8 proc. 2 El proceso 11 en el host 2 abre un conector (socket) con el software TCP. Recibe un número de conector (ej. 7) El proceso 11 en el host 2 solicita al software TCP que conecte el conector 7 al puerto 80 en estado de escucha (LISTEN) Llega una petición de conexión al puerto 80. El proceso 11 la acepta y recibe un nuevo socket (8) con el que puede intercambiar datos con el cliente como si de un fichero se tratase. El proceso 11 sigue escuchando en el socket 7 (puerto 80) 48 TCP. Inicio de conexión (visión del cliente) Host 1: 130.125.12.14 TCP proc. 1 Host 2: 150.214.141.89 IP IP TCP 5 3125 80 proc. 11 internet proc. 2 El proceso 1 en el host 1 abre un conector (socket) con el software TCP. Recibe un número de conector (ej. 5) El proceso 1 en el host 1 solicita al software TCP que conecte el conector 5 al puerto 80 del host 2 (URL: 150.214.141.89:80). El software TCP activa un número de puerto no utilizado (ej. 3125) y establece una conexión con el puerto 80 del equipo remoto. El proceso 1 del host 1 recibe una confirmación de la conexión. Puede leer y escribir datos del conector 5 como si de un fichero de tratase. 49 TCP. Inicio de conexión (visión del protocolo) SYN SYN+ACK ACK Host 2: 150.214.141.89 Host 1: 130.125.12.14 El software TCP en H1 recibe una orden "connect" del proceso 1. Envía a H2 un paquete indicando el número de puerto y con la señal SYN. H2 recibe el paquete, comprueba que que el puerto 80 está abierto. El proceso 11 acepta la conexión. Se envía a H1 un paquete con SYN+ACK para confirmar la conexión. H1 recibe el paquete con SYN+ACK y envía un paquete con ACK para confirmar. Da la conexión por establecida e informa a P1. H2 recibe el ACK, da la conexión por establecida. 50 TCP. Intercambio de datos Host 1 SeqNum + Datos emisor Host 2 receptor ACK + Acknowl. + AdvWindow Los procesos leen y escriben datos en la conexión de forma "continua", en secuencias de bytes de longitud arbitraria. El software TCP divide los datos en segmentos que intercambia con el otro host. El emisor incluye en cada segmento enviado el número de orden del primer byte de datos y un conjunto de datos. El receptor devuelve un paquete de confirmación (ACK) indicando el último byte recibido correctamente (Acknowledgement) y el número máximo de bytes que está dispuesto a recibir en el próximo paquete de datos (AdvWindow). Ambas tareas suelen hacerse simultáneamente: se confirma un paquete recibido y se envía nuevos datos. Si pasado un tiempo no se recibe un ACK de un paquete, éste se reenvía. 51 Servicio de nombres de dominio (DNS) raiz (root) .com ... .ibm.com www.ibm.com .org ... .debian.org .edu ... listas.debian.org teclix.dte.us.es – – – ... .dte.us.es .es .us.es .eii.us.es .cica.es correo.us.es paco.dte.us.es Proporciona un mecanismo para identificar ordenadores conectados a Internet mediante un nombre, en vez de mediante una dirección IP. Los nombres se organizan gerárquicamente en dominios y subdominios. La organización o entidad que posee un subdominio, es libre de asignar nuevos nombre y subdominios dentro de su subdominio 52 Servicio de nombres de dominio (DNS) Servidor de Nombres de Dominio (DNS): máquina conectada a Internet que traduce nombres de dominio a sus direcciones IP correspondientes, y viceversa. – – Podemos acceder a servicios en Internet usando nombres de dominio si conocemos la dirección IP de un servidor de nombres que haga la traducción de nombres a direcciones IP. Cuando el software TCP/IP está configurado con un servidor de nombres, es equivalente emplear el nombre de una máquina o su dirección IP. El software TCP/IP traducirá automáticamente el nombre a la dirección IP correspondiente preguntando al/los servidores de nombres conocidos. Ej: – http://www.dte.us.es/ <=> http://150.214.141.89/ A menudo, un servidor de nombres sólo tiene información "autorizada" sobre su propio dominio, pero es capaz de "resolver" cualquier otro nombre preguntando a otros servidores de nombres de la jerarquía. 53 Elementos de configuración TCP/IP Conexión física – red cableada, red inalámbrica (wifi), modem, etc. Configuración protocolos TCP/IP – – – – – dirección IP máscara de subred dirección de router por defecto (gateway, puerta de enlace, ...) dirección IP de uno o más servidores de nombre (opcional) nombre y dominio del ordenador (opcional) Servicio DHCP – – normalmente instalado en un router o servidor dedicado proporciona configuración automática de TCP/IP a los ordenadores de la red local estática dinámica 54