Conceptos avanzados Dr. Daniel Morató Area de Ingeniería Telemática Departamento de Automática y Computación Universidad Pública de Navarra daniel.morato@unavarra.es Laboratorio de Programación de Redes http://www.tlm.unavarra.es/asignaturas/lpr Contenido UDP y TCP NAT Proxy El Laboratorio de Telemática 17 Nov Conceptos avanzados 1/21 Cómo se transporta IP • El paquete IP atraviesa diferentes redes hasta llegar al destino El paquete IP El (mismo) paquete IP Trama Ethernet transporta el paquete IP Trama PPP (serie) transporta el paquete IP (etc...) 17 Nov Conceptos avanzados 2/21 TCP y UDP • Otros dos protocolos muy importantes de la familia TCP/IP son TCP = Transmission Control Protocol y UDP = User Datagram Protocol • Añaden funcionalidades a IP • “Emplean” IP : Paquete IP Paquete IP Campo protocolo=6 Cabecera TCP Campo protocolo=17 Datos IP Datos IP Segmento TCP Datagrama UDP Datos que envía la aplicación Cabecera UDP Datos que envía la aplicación • Sencilla comunicación entre aplicaciones sobre TCP o UDP empleando APIs (Application Programming Interfaces) 17 Nov Conceptos avanzados 3/21 Encapsulación Información que desea enviar la aplicación TCP o UDP Paquete IP Bits que circulan por el cable 17 Nov Conceptos avanzados 4/21 Características de UDP Los datos enviados a otra aplicación en otra máquina pueden perderse Si se envían varios bloques de información pueden llegar desordenados No hay conexión. Para cada bloque de información que se desea enviar hay que especificar el destino No intenta controlar la congestión en la red 17 Nov Conceptos avanzados 5/21 Cabecera UDP Datagrama UDP Cabecera UDP: 15 16 0 Puerto origen Longitud 31 Puerto destino Checksum Coloca el valor de puerto destino que identifica a la La aplicación selecciona aplicación destino un puerto origen Datos de la aplicación Internet Aplicación La aplicación indica al sistema operativo que le entregue los datagramas UDP dirigidos a cierto puerto Datagrama UDP Paquete IP Protocolo=17 (UDP) IPs origen y destino Trama Ethernet Ethertype 0x0800 (IP) 17 Nov Según el puerto destino entrega los datos a la aplicación Conceptos avanzados Aplicación 6/21 Características de TCP Los datos que envíe una aplicación a otra en otra máquina seguro que llegarán (recupera pérdidas) Si la aplicación envía varios bloques de información éstos llegarán en el mismo orden en que se enviaron (mantiene el orden de secuencia) Antes de poder enviar datos hay que “establecer una conexión”. Especificar entre qué par de aplicaciones en qué máquinas será la comunicación (orientado a conexión) Ambos extremos de la conexión pueden enviar información al otro extremo simultáneamente (full-duplex) Intenta no congestionar la red 17 Nov Conceptos avanzados 7/21 Cabecera TCP 15 16 0 Segmento TCP Control bits: U R G 17 Nov 4bit Header Length A C K P S H R S T S Y N F I N 31 Puerto origen Puerto destino Número de secuencia Número de confirmación Reservado Control bits Tamaño de ventana Checksum Urgent pointer Opciones Conceptos avanzados 8/21 Establecimiento de la conexión CLOSED CLOSED Open activo, snd SYN LISTEN CLOSED SYN, Seq=ISN Close SYN SENT Open pasivo SYN, ACK, Seq=ISN’, ACKn =ISN+1 SYN RCVD LISTEN rcv SYN / snd SYN,ACK ESTABLISHED ACK, ACKn =ISN’+1 Close ESTABLISHED SYN RCVD snd SYN SYN SENT rcv SYN / snd ACK rcv SYN, ACK / snd ACK rcv ACK Close, snd FIN ESTABLISHED Close, snd FIN rcv FIN / snd ACK CLOSE WAIT FIN WAIT-1 rcv ACK rcv FIN / snd ACK CLOSING rcv FIN, ACK / snd ACK Close, snd FIN LASTACK rcv ACK rcv ACK FIN WAIT-2 17 Nov Conceptos avanzados rcv FIN / snd ACK TIMEWAIT CLOSED Timeout 2xMSL 9/21 Envío de datos CLOSED CLOSED Open activo, snd SYN LISTEN CLOSED SYN, Seq=ISN Close SYN SENT Open pasivo SYN, ACK, Seq=ISN’, ACKn =ISN+1 SYN RCVD LISTEN rcv SYN / snd SYN,ACK ESTABLISHED ACK, ACKn =ISN’+1 Datos(1460), Seq=ISN+1, ACK, ACKn =ISN’+1 Close ESTABLISHED SYN RCVD snd SYN SYN SENT rcv SYN / snd ACK rcv SYN, ACK / snd ACK rcv ACK Close, snd FIN ESTABLISHED Close, snd FIN ACK, ACKn =ISN+1461 . . rcv FIN / snd ACK CLOSE WAIT FIN WAIT-1 rcv ACK rcv FIN / snd ACK CLOSING rcv FIN, ACK / snd ACK Close, snd FIN LASTACK rcv ACK rcv ACK FIN WAIT-2 17 Nov Conceptos avanzados rcv FIN / snd ACK TIMEWAIT CLOSED Timeout 2xMSL 10/21 Envío de datos 15 16 0 Segmento TCP Control bits: U R G 4bit Header Length A C K P S H R S T S Y N F I N Puerto origen Puerto destino Número de secuencia Número de confirmación Reservado Control bits Tamaño de ventana Checksum Urgent pointer Opciones Coloca el valor de puerto destino que identifica a la La aplicación selecciona aplicación destino un puerto origen Datos de la aplicación 31 Internet Aplicación Segmento TCP Paquete IP Protocolo=6 (TCP) IPs origen y destino Trama Ethernet Ethertype 0x0800 (IP) 17 Nov Según el puerto destino entrega los datos a la aplicación Conceptos avanzados Aplicación 11/21 Cierre de la conexión CLOSED CLOSED Open activo, snd SYN LISTEN CLOSED SYN, Seq=ISN Close SYN SENT Open pasivo SYN, ACK, Seq=ISN’, ACKn =ISN+1 SYN RCVD LISTEN rcv SYN / snd SYN,ACK ESTABLISHED ACK, ACKn =ISN’+1 Close ESTABLISHED Datos(1460), Seq=ISN+1, ACK, ACKn =ISN’+1 SYN RCVD snd SYN SYN SENT rcv SYN / snd ACK rcv SYN, ACK / snd ACK rcv ACK Close, snd FIN ESTABLISHED Close, snd FIN ACK, ACKn =ISN+1461 . . FIN, Seq=Anterior+1 CLOSE WAIT CLOSE WAIT FIN WAIT-1 ACK, ACKn =Anterior+2 FIN WAIT-2 LAST ACK CLOSED 17 Nov FIN, Seq=Anterior’+1 ACK, ACKn =Anterior’+2 rcv FIN / snd ACK FIN WAIT-1 rcv ACK rcv FIN / snd ACK CLOSING rcv FIN, ACK / snd ACK Close, snd FIN LASTACK rcv ACK rcv ACK FIN WAIT-2 TIMEWAIT CLOSED Conceptos avanzados rcv FIN / snd ACK TIMEWAIT CLOSED Timeout 2xMSL 12/21 NAT NAT=Network Address Translation Otra propuesta de solución al problema del agotamiento del espacio de direcciones Permite que una red que emplee direccionamiento privado se conecte a Internet El router que conecta la red a Internet: Cambia la dirección IP privada por una dirección pública al reenviar un paquete hacia el exterior Cambia la dirección IP pública por la correspondiente privada al reenviar un paquete hacia el interior El cambio puede ser: Estático: una IP interna siempre se cambia por la misma IP pública Dinámico: existe un pool de IPs públicas y se establece una relación entre las IPs internas y las de ese pool No se necesita reconfigurar los hosts de la red Si no todos los hosts de la red desean cursar tráfico con Internet “simultáneamente” no hacen falta tantas direcciones como hosts. 17 Nov Conceptos avanzados 13/21 NAT (Ejemplo) • La red interna tiene direccionamiento privado • El interfaz del router tiene una dirección pública • Además tiene un pool de direcciones publicas disponibles • Cuando un host quiere enviar un paquete IP a un destino en Internet el router NAT cambia la dirección IP origen antes de reenviarlo • El router NAT apunta la dirección por la que la ha cambiado • Envía el paquete Address pool Cambia IP origen a: 130.206.166.1 IP origen: 10.0.0.1 IP destino: 65.43.23.45 10.0.0.1/24 10.0.0.2/24 130.206.166.1 <- 10.0.0.1 130.206.166.2 130.206.166.3 130.206.166.4 130.206.166.9/21 10.0.0.254/24 17 Nov Conceptos avanzados Internet 14/21 NAT (Ejemplo) • Cuando venga un paquete de esa IP destino vendrá dirigido a la IP que colocó el router NAT • El router NAT ve en su tabla la dirección IP interna a la que corresponde y la cambia • Envía el paquete Address pool Cambia IP destino a: 10.0.0.1 IP origen: 65.43.23.45 IP destino: 10.0.0.1 10.0.0.1/24 10.0.0.2/24 130.206.166.1 <- 10.0.0.1 130.206.166.2 130.206.166.3 130.206.166.4 130.206.166.9/21 IP destino: 130.206.166.1 10.0.0.254/24 17 Nov Conceptos avanzados Internet 15/21 NAT (Ejemplo 2: Sobrecarga) • Supongamos que por ejemplo solo hay 1 dirección pública • Un host quiere enviar un paquete a otro externo Address pool = 130.206.166.1 Prot Interna TCP 10.0.0.1:1212 TCP IP origen: 10.0.0.1, puerto: 1212 IP destino: 65.43.23.45, puerto: 25 10.0.0.1/24 Externa 65.43.23.45:25 Cambia IP origen a: 130.206.166.1 10.0.0.2/24 130.206.166.9/21 10.0.0.254/24 17 Nov Pública 130.206.166.1:1212 Conceptos avanzados Internet 16/21 NAT (Ejemplo 2: Sobrecarga) • Supongamos que por ejemplo solo hay 1 dirección pública • Un host quiere enviar un paquete a otro externo • Otro host quiere también enviar tráfico al exterior Address pool = 130.206.166.1 Cambia IP origen a: 130.206.166.1 10.0.0.1/24 10.0.0.2/24 Prot Interna TCP 10.0.0.1:1212 TCP 10.0.0.2:8976 Externa 65.43.23.45:25 201.0.91.7:80 130.206.166.9/21 10.0.0.254/24 TCP IP origen: 10.0.0.2, puerto: 8976 IP destino: 201.0.91.7, puerto: 80 17 Nov Pública 130.206.166.1:1212 130.206.166.1:8976 Conceptos avanzados Internet 17/21 NAT (Ejemplo 2: Sobrecarga) • Supongamos que por ejemplo solo hay 1 dirección pública • Un host quiere enviar un paquete a otro externo • Otro host quiere también enviar tráfico al exterior • Un host envía un paquete IP con el mismo puerto origen, IP destino y puerto destino que una entrada en la cache • La IP del pool podría ser simplemente la del interfaz externo del router Cambia el puerto Address pool = 130.206.166.1 Cambia IP:puerto origen a: 130.206.166.1:8977 10.0.0.1/24 10.0.0.2/24 Prot TCP TCP TCP Interna 10.0.0.1:1212 10.0.0.2:8976 10.0.0.1:8976 Externa 65.43.23.45:25 201.0.91.7:80 201.0.91.7:80 130.206.166.9/21 10.0.0.254/24 TCP IP origen: 10.0.0.1, puerto: 8976 IP destino: 201.0.91.7, puerto: 80 17 Nov Pública 130.206.166.1:1212 130.206.166.1:8976 130.206.166.1:8977 Conceptos avanzados Internet 18/21 Proxy • Normalmente es una máquina con un software de Proxy • Puede hacer de proxy para numerosos servicios aunque el más común es la Web • El cliente, en vez de solicitar el documento al servidor lo solicita al Proxy • El proxy lo solicita al servidor Proxy Conexión TCP (petición) (documento) 17 Nov Conexión TCP Servidor Web (petición) Internet (documento) Conceptos avanzados 19/21 Proxy-cache • El proxy puede guardar en cache los documentos que ha obtenido por solicitudes anteriores • Cuando le llega una nueva petición busca el documento en la cache • Si no lo encuentra lo pediría al servidor pero si lo encuentra lo entrega directamente de la cache Proxy Conexión TCP (petición) (documento) 17 Nov Servidor Web Internet Conceptos avanzados 20/21 Próximo día Laboratorio de Telemática Cuestiones 17 Nov Conceptos avanzados 21/21