ilustrar sus conceptos y posibilidades básicas ©2011 prof. josé maría foces morán

19
Prácticas sobre el protocolo TCP Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Upload: javier-camejo

Post on 12-Jan-2015

3 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Prácticas sobre el protocolo TCP

Ilustrar sus conceptos y posibilidades básicas

©2011 Prof. José María Foces Morán

Page 2: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Contexto

©2010 Prof. José María Foces Morán

TCP es un protocolo de transporte fiable Entrega garantizada Entrega

secuenciada Se detectan errores Full duplex

Control de flujo Control de

congestión Orientado a

conexión

Page 3: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

TCP es orientado a conexión Conexión: Un

canal virtual La 4-tupla siguiente

es única: (193.146.96.163, 80, 1200, 201.1.2.3)

¿Cómo se forma una conexión TCP?

©2010 Prof. José María Foces Morán

Page 4: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

©2010 Prof. José María Foces Morán

Cómo se crea una conexión TCP Three-way

handshake Cliente y servidor:

Intercambian tres segmentos TCP

La TPDU se denomina segmento

Page 5: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

©2010 Prof. José María Foces Morán

Socket servidor de bienvenida

Page 6: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Ejercicio 1

©2011 Prof. José María Foces Morán

Observación del ciclo de vida de una conexión: Fuentes del programa servidor:

▪ http://paloalto.unileon.es/rc/practicas/tcp-pr1/basicserver.c

Ejecutad servidor en una máquina A y anotad su IP

Arrancad Wireshark y aplicad un filtro a la captura que seleccione sólo el tráfico al puerto TCP 60001▪ Capture | Options / Capture Filter: TCP port 60001

Conectaos con el servidor desde una máquina distinta mediante telnet al puerto 60001 y observad con atención: $ telnet <direccionIPServidor> 60001▪ 1. Handshake de 3-vias

▪ SYN N / SYN M ACK N+1 / ACK M+1

▪ 2. Transferencias▪ 3. Cierre de los dos canales

▪ FIN / ACK (Shutdown a -> b)▪ ACK/FIN (Shutdown b -> a)

Page 7: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Ejercicio 2

©2011 Prof. José María Foces Morán

Observación de una conexión con una máquina no accesible a través de un firewall Asumid que el servidor se ejecuta en paloalto.unileon.es: el firewall de la Universidad

no nos permite hacerle llegar el segmento SYN Arrancad Wireshark y aplicad un filtro a la captura que seleccione sólo el tráfico al

puerto TCP 60001▪ Capture | Options / Capture Filter: TCP port 60001

Conectaos con el servidor desde una máquina distinta mediante telnet al puerto 60001 y observad con atención: $ telnet paloalto.unileon.es 60001

▪ ¿Se recibe el segmento SYN-ACK?▪ ¿Qué significa el segmento recibido RST/ACK?▪ ¿Quién lo envía?

Page 8: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Ejercicio 3

©2011 Prof. José María Foces Morán

Observación de una conexión con una máquina que se encuentra apagada Asumid que el servidor se ejecuta en cualquier dirección IP que no esté activa en una red distinta de

vuestra LAN▪ ifconfig eth0 …

Arrancad Wireshark y aplicad un filtro a la captura que seleccione sólo el tráfico al puerto TCP 60001▪ Capture | Options / Capture Filter: TCP port 60001

Conectaos con el servidor desde una máquina distinta mediante telnet al puerto 60001 y observad con atención: $ telnet <IP no activa que no pertenece a nuestra LAN> 60001

▪ ¿Se recibe el segmento SYN-ACK?▪ ¿Se envía el segmento SYN?

Si, ¿y alguno más? Si, múltiples seguidos y el retardo entre ellos va aumentando a medida que no se recibe el

SYN-ACK: Observadlo –podéis consultar la transparencia siguiente y contrastar con vuestro

experimento.

Page 9: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Ejercicio 3 (ii)

©2011 Prof. José María Foces Morán

Observación de una conexión con una máquina que se encuentra apagada

Observad los

intervalos de tiempo crecientes

Page 10: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Ejercicio 3 (iii)

©2011 Prof. José María Foces Morán

¿Qué ocurre si llevamos a cabo este experimento con una máquina (B) no activa perteneciente a nuestra LAN?

No observaremos ningún tráfico, porque nuestro sistema, en principio, no conoce la MAC de B.

Nuestra máquina (A) intentará averiguar su MAC llevando a cabo una request ARP, a la cual, no recibirá respuesta, ya que B se encuentra apagada.

A no conoce la MAC de B, por tanto, no observaremos ningún tráfico en el hilo dirigido al puerto 60001 de B.▪ Configurad Wireshark con el siguiente filtro de captura, el cual, nos permitirá obtener cualquier

tráfico ARP y cualquier tráfico relacionado con B:▪ arp and host 192.168.99.222

Observad la transparencia siguiente:▪ bs

Page 11: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Ejercicio 3 (iv)

©2011 Prof. José María Foces Morán

Los paquetes 1 a 7 son requests ARP para averiguar la MAC de 192.168.99.222 No se observa ningún trafico con 192.168.99.222

Page 12: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Ejercicio 3 (v)

©2011 Prof. José María Foces Morán

Repetimos el experimento con una máquina apagada perteneciente a otra red Si aparece tráfico en el hilo dirigido a 192.168.1.3 Son segmentos SYN retransmitidos porque el módulo TCP de A nunca recibe el segmento correspondiente SYN-ACK.

Page 13: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

©2010 Prof. José María Foces Morán

Ejercicio 4, propuesto para la próxima sesión

Apertura y cierre de la ventana deslizante Cliente: http://paloalto.unileon.es/rc/practicas/tcp-pr1/ClientVentana.java

Servidor: http://paloalto.unileon.es/rc/practicas/tcp-pr1/ServerVentana.java

Observad mediante Wireshark cómo el cliente llena el buffer de recepción del server El server no consume la info recibida ¿Cómo reacciona el servidor (receptor en este caso)?▪ Advertised Window Size = 0▪ ¿Conduce esto a un interbloqueo cliente servidor?▪ Investigadlo y contrastad con los resultados del

experimento.

Page 14: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Prácticas sobre el protocolo TCP (2)

Ilustrar sus conceptos y posibilidades básicas

©2011 Prof. José María Foces Morán

Page 15: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

Contexto

©2010 Prof. José María Foces Morán

TCP es un protocolo de transporte fiable Entrega garantizada Entrega

secuenciada Se detectan errores Full duplex

Control de flujo Control de

congestión Orientado a

conexión

Page 16: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

©2010 Prof. José María Foces Morán

Ejercicio propuesto: Acceso a un puerto filtrado por un firewall

Wireshark Target: paloalto.unileon.es Servidor TCP en 60001

Recibimos un segmento RST Visto en práctica TCP1 ¿Quién lo envía? Diseñad un escenario de prueba que nos

permita responder a esta pregunta▪ Documentad apropiadamente la solución

incluyendo volcados de pantalla y explicaciones que aclaren lo que ocurre.

Page 17: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

©2010 Prof. José María Foces Morán

Ejercicio propuesto: Three-way handshake

Wireshark Cread una conexión

cualquiera Analizad a nivel de bit cada

uno de los segmentos intercambiados▪ Usando el volcado HEX▪ ¿Qué bits se encuentran

activados en cada uno de los 3 segmentos?

▪ ¿Qué números de secuencia reales aparecen en cada caso?

Documentad vuestras respuestas:▪ Volcados de pantalla▪ Explicad de forma concisa la

traza de paquetes que habéis obtenido con Wireshark.

Page 18: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

©2010 Prof. José María Foces Morán

Ejercicio propuesto: Control de flujo TCP vs. UDP

Diseñad un experimento que nos permita comprobar empíricamente qué ocurre cuando un receptor UDP recibe datos a una velocidad mas alta que le empleada para consumirlos Cread una socket en el receptor cuya aplicación

consuma los segmentos recibidos con relativa lentitud

En el cliente, cread una socket cuya aplicación envie segmentos NUMERADOS a la mayor velocidad posible

Explicad vuestras observaciones

Page 19: Ilustrar sus conceptos y posibilidades básicas ©2011 Prof. José María Foces Morán

©2010 Prof. José María Foces Morán

Ejercicio propuesto: Ventana de recepción

Apertura y cierre de la ventana deslizante Cliente: http://paloalto.unileon.es/rc/practicas/tcp-pr1/ClientVentana.java

Servidor: http://paloalto.unileon.es/rc/practicas/tcp-pr1/ServerVentana.java

Observad mediante Wireshark cómo el cliente llena el buffer de recepción del server El server no consume la info recibida ¿Cómo reacciona el servidor (receptor en este caso)?▪ Advertised Window Size = 0▪ ¿Conduce esto a un interbloqueo cliente servidor?▪ Investigadlo y contrastad con los resultados del

experimento.