230 likes | 359 Views
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
E N D
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 Conceptos avanzados
El paquete IP El (mismo) paquete IP Trama Ethernet transporta el paquete IP Trama PPP (serie) transporta el paquete IP Cómo se transporta IP • El paquete IP atraviesa diferentes redes hasta llegar al destino (etc...) Conceptos avanzados
Campo protocolo=17 Campo protocolo=6 Paquete IP Paquete IP Datos IP Datos IP Segmento TCP Datagrama UDP 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 : Cabecera TCP Cabecera UDP Datos que envía la aplicación Datos que envía la aplicación • Sencilla comunicación entre aplicaciones sobre TCP o UDP • empleando APIs (Application Programming Interfaces) Conceptos avanzados
Información que desea enviar la aplicación TCP o UDP Paquete IP Bits que circulan por el cable Encapsulación Conceptos avanzados
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 Conceptos avanzados
15 16 31 0 Coloca el valor de puerto destino que identifica a la aplicación destino La aplicación indica al sistema operativo que le entregue los datagramas UDP dirigidos a cierto puerto La aplicación selecciona un puerto origen Datagrama UDP Datos de la aplicación Datagrama UDP Paquete IP Internet Protocolo=17 (UDP) IPs origen y destino Trama Ethernet Ethertype 0x0800 (IP) Según el puerto destino entrega los datos a la aplicación Cabecera UDP Cabecera UDP: Puerto origen Puerto destino Longitud Checksum Aplicación Aplicación Conceptos avanzados
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 Conceptos avanzados
15 16 31 0 Segmento TCP Cabecera TCP Puerto origen Puerto destino Número de secuencia Número de confirmación Control bits: 4bit Header Length Reservado Control bits Tamaño de ventana URG ACK PSH RST SYN FIN Checksum Urgent pointer Opciones Conceptos avanzados
Open activo, snd SYN CLOSED Close Open pasivo Close LISTEN rcv SYN / snd SYN,ACK snd SYN SYN RCVD 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 rcv FIN / snd ACK FIN WAIT-1 Close, snd FIN CLOSING LASTACK rcv FIN, ACK / snd ACK rcv ACK rcv ACK rcv ACK FIN WAIT-2 TIMEWAIT CLOSED rcv FIN / snd ACK Timeout 2xMSL Establecimiento de la conexión CLOSED CLOSED LISTEN SYN, Seq=ISN SYN SENT SYN, ACK, Seq=ISN’, ACKn=ISN+1 SYN RCVD ESTABLISHED ACK, ACKn=ISN’+1 ESTABLISHED Conceptos avanzados
Envío de datos CLOSED CLOSED Open activo, snd SYN LISTEN CLOSED SYN, Seq=ISN Close SYN SENT Open pasivo Close SYN, ACK, Seq=ISN’, ACKn=ISN+1 SYN RCVD LISTEN rcv SYN / snd SYN,ACK ESTABLISHED snd SYN ACK, ACKn=ISN’+1 ESTABLISHED SYN RCVD SYN SENT rcv SYN / snd ACK Datos(1460), Seq=ISN+1, ACK, ACKn=ISN’+1 rcv SYN, ACK / snd ACK rcv ACK Close, snd FIN ESTABLISHED Close, snd FIN rcv FIN / snd ACK ACK, ACKn=ISN+1461 . . CLOSE WAIT rcv FIN / snd ACK FIN WAIT-1 Close, snd FIN CLOSING LASTACK rcv FIN, ACK / snd ACK rcv ACK rcv ACK rcv ACK FIN WAIT-2 TIMEWAIT CLOSED rcv FIN / snd ACK Timeout 2xMSL Conceptos avanzados
15 16 31 0 Coloca el valor de puerto destino que identifica a la aplicación destino La aplicación selecciona un puerto origen Aplicación Segmento TCP Datos de la aplicación Segmento TCP Paquete IP Internet Protocolo=6 (TCP) IPs origen y destino Trama Ethernet Ethertype 0x0800 (IP) Según el puerto destino entrega los datos a la aplicación Aplicación Envío de datos Puerto origen Puerto destino Número de secuencia Número de confirmación Control bits: 4bit Header Length Reservado Control bits Tamaño de ventana URG ACK PSH RST SYN FIN Checksum Urgent pointer Opciones Conceptos avanzados
Open activo, snd SYN CLOSED Close Open pasivo Close LISTEN rcv SYN / snd SYN,ACK snd SYN SYN RCVD 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 rcv FIN / snd ACK FIN WAIT-1 Close, snd FIN CLOSING LASTACK rcv FIN, ACK / snd ACK rcv ACK rcv ACK rcv ACK FIN WAIT-2 TIMEWAIT CLOSED rcv FIN / snd ACK Timeout 2xMSL Cierre de la conexión CLOSED CLOSED LISTEN SYN, Seq=ISN SYN SENT SYN, ACK, Seq=ISN’, ACKn=ISN+1 SYN RCVD ESTABLISHED ACK, ACKn=ISN’+1 ESTABLISHED Datos(1460), Seq=ISN+1, ACK, ACKn=ISN’+1 ACK, ACKn=ISN+1461 . . FIN, Seq=Anterior+1 FIN WAIT-1 CLOSE WAIT ACK, ACKn=Anterior+2 FIN WAIT-2 LAST ACK FIN, Seq=Anterior’+1 TIMEWAIT CLOSED ACK, ACKn=Anterior’+2 CLOSED Conceptos avanzados
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. Conceptos avanzados
Cambia IP origen a: 130.206.166.1 Address pool IP origen: 10.0.0.1 IP destino: 65.43.23.45 130.206.166.1 130.206.166.2 130.206.166.3 130.206.166.4 10.0.0.1/24 10.0.0.2/24 Internet 10.0.0.254/24 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 <- 10.0.0.1 130.206.166.9/21 Conceptos avanzados
Cambia IP destino a: 10.0.0.1 IP destino: 130.206.166.1 Address pool IP origen: 65.43.23.45 IP destino: 10.0.0.1 130.206.166.1 130.206.166.2 130.206.166.3 130.206.166.4 10.0.0.1/24 10.0.0.2/24 Internet 10.0.0.254/24 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 <- 10.0.0.1 130.206.166.9/21 Conceptos avanzados
Prot Interna Pública Externa TCP IP origen: 10.0.0.1, puerto: 1212 IP destino: 65.43.23.45, puerto: 25 Cambia IP origen a: 130.206.166.1 10.0.0.1/24 10.0.0.2/24 Internet 10.0.0.254/24 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 TCP 10.0.0.1:1212 130.206.166.1:1212 65.43.23.45:25 130.206.166.9/21 Conceptos avanzados
Prot Interna Pública Externa Cambia IP origen a: 130.206.166.1 10.0.0.1/24 10.0.0.2/24 Internet 10.0.0.254/24 TCP IP origen: 10.0.0.2, puerto: 8976 IP destino: 201.0.91.7, puerto: 80 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 TCP 10.0.0.1:1212 130.206.166.1:1212 65.43.23.45:25 TCP 10.0.0.2:8976 130.206.166.1:8976 201.0.91.7:80 130.206.166.9/21 Conceptos avanzados
Cambia el puerto Prot Interna Pública Externa Cambia IP:puerto origen a: 130.206.166.1:8977 10.0.0.1/24 10.0.0.2/24 Internet 10.0.0.254/24 TCP IP origen: 10.0.0.1, puerto: 8976 IP destino: 201.0.91.7, puerto: 80 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 Address pool = 130.206.166.1 TCP 10.0.0.1:1212 130.206.166.1:1212 65.43.23.45:25 TCP 10.0.0.2:8976 130.206.166.1:8976 201.0.91.7:80 TCP 10.0.0.1:8976 130.206.166.1:8977 201.0.91.7:80 130.206.166.9/21 Conceptos avanzados
Conexión TCP (petición) Conexión TCP (petición) Internet (documento) (documento) 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 Servidor Web Conceptos avanzados
Conexión TCP (petición) Internet (documento) 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 Servidor Web Conceptos avanzados
Próximo día Laboratorio de Telemática Cuestiones Conceptos avanzados