Está en la página 1de 13

UNIVERSIDAD DE CUENCA FACULTAD DE INGENIERIA ESCUELA DE INFORMATICA REDES DE COMPUTADORES 1 TEMA: PRCTICA SOBRE TCP EMPLEANDO WIRESHARK NOMBRES:

Angel Oswaldo Vzquez Patio NOTA: ___________ INTRODUCCION En este laboratorio se investigar el comportamiento del protocolo TCP. Para ello se analizar una traza de segmentos TCP enviados y recibidos en una transferencia de un archivo de 150 Kb (llamado alice.txt) desde un computador local hasta un servidor remoto. Se estudiar el uso de nmeros de secuencia y reconocimiento (ACK) en TCP para proveer una transferencia de datos confiable, se revisar el funcionamiento del algoritmo de control de congestin denominado Slow Start and Congestion Avoidance (inicio lento y evitando colisiones), y se revisar el mecanismo de control de flujo Receiver-Advertised (receptor anunciado) de TCP. Se considerar adems el establecimiento de la conexin y se investigar el rendimiento (throughput and roundtrip time) de la conexin TCP entre el servidor remoto y el computador local. PROCEDIMIENTO ETAPA 1: Captura de una transferencia TCP entre el computador local y un servidor remoto. Antes de empezar la exploracin de TCP, se necesitar emplear Wireshark (http://www.wireshark.org/) para obtener una traza de paquetes de la transferencia TCP de un archivo desde el computador local hasta un servidor remoto. Para ello, se debe acceder a una pgina Web que permitir ingresar el nombre de un archivo almacenado en el computador local (alice.txt) y luego transferirlo al servidor Web usando el mtodo HTTP POST. Se emplea el mtodo POST antes que el GET como si se hiciera una transferencia de una gran cantidad de datos desde un computador a otro. Por supuesto, se deber ejecutar Wireshark durante el tiempo de la transferencia para obtener la traza de los segmentos TCP enviados y recibidos desde el computador local. Siga el resto del procedimiento que se describe a continuacin. Paso 1. Ejecute un browser de Internet e ingrese el URL siguiente: http://gaia.cs.umass.edu/ethereal-labs/alice.txt, luego grabe el contenido en un archivo de texto con el nombre de alice.txt en alguna carpeta del computador local. Ver figura 1.

Figura 1. Sitio Web con el contenido del archive alice.txt Paso 2. Digite el siguiente URL en el browser de Internet: http://gaia.cs.umass.edu/ethereal-labs/TCP-ethereal-file1.html. Se debe obtener una pantalla como la siguiente:

Figura 2. Sitio Web con la pgina para transferir un archivo a un servidor remoto

Paso 3. Emplee el botn Browse en el formulario, mostrado en la figura 2, para ingresar el nombre del archivo (con el path completo) almacenado en el computador local y que contiene el documento obtenido en el paso 2.

Paso 4. Ahora ejecute Wireshark y empiece la captura de los paquetes (Capture -> Start) y presione OK en la pantalla de las opciones de captura de paquetes de Wireshark. No es necesario seleccionar ninguna opcin en esta pantalla.

Paso 5. Regrese el browser y presione el botn Upload alice.txt file (ver figura 2) y proceda a transferir el archivo alice.txt al servidor remoto gaia.cs.umass.edu. Una vez

que el archivo haya sido transferido, se recibir un mensaje de felicitaciones en la ventana del browser (ver figura 3).

Figura 3. Ventana de felicitacin una vez transferido el archivo Paso 6. Detenga el proceso de captura de paquetes en Wireshark. La ventana de Wireshark debera ser semejante a la mostrada a continuacin en la figura 4:

Figura 4. Resultado de la captura de paquetes en Wireshark

Si no fuera posible la ejecucin de Wireshark en una conexin de red activa, se puede emplear un archivo que contiene las trazas de paquetes capturados previamente 1 . Se puede emplear estas trazas, aun si ha capturado sus propias trazas, con la finalidad de que se facilite la respuesta a las preguntas de la prctica, en las siguientes pginas. ETAPA 2: Una primera mirada a la traza capturada Antes de analizar en detalle el comportamiento de la conexin TCP, es necesario revisar la traza de paquetes: Paso 7. Filtre los paquetes mostrados en la ventana de Wireshark para lo cual se debe ingresar la palabra TCP en la ventana de especificacin del filtro, en la parte superior de la ventana mencionada. Lo que se debe observar es una serie de mensajes TCP y HTTP entre el computador local y el servidor gaia.cs.umass.edu. Se debera observar el handshake de 3 vas inicial que contiene un mensaje SYN. Se debera observar un mensaje HTTP POST y una serie de mensajes HTTP Continuation que estn siendo enviados desde el computador local al servidor gaia.cs.umass.edu. Estos mensajes HTTP Continuation son una mecanismo de Wireshark para indicar que existen mltiples segmentos TCP que estn siendo utilizados para llevar un solo mensaje HTTP. Se debera tambin observar segmentos TCP ACK que estn siendo retornados desde el servidor remoto hacia el computador local. Responda a las siguientes preguntas, luego de abrir el archivo de paquetes capturados con Wireshark llamado tcpethereal-trace-1. Siempre que sea posible, para responder una pregunta se debera generar un reporte de detalle de un paquete dentro de la traza que se emplea para responder a la pregunta. Se debe adjuntar el detalle en la justificacin de la respuesta. Para generar el reporte del paquete, seleccione File -> Print, escoger Selected packet only y seleccione la mnima cantidad de detalle del paquete que se necesita para responder la pregunta. 1. Cul es la direccin IP y el nmero de puerto TCP usado por el computador cliente (origen) que est transfiriendo el archivo a gaia.cs.umass.edu? Para responder a esta pregunta, probablemente es ms fcil seleccionar un mensaje HTTP y explorar los detalles del paquete TCP empleado para llevar este mensaje HTTP, empleando la ventana de detalles de la cabecera del paquete seleccionado.

Descargue el archivo ethereal-traces.zip y extraiga el archivo tcpethereal-trace-1. Esta traza de paquetes fue recopilada ejecutando Wireshark en un computador local, mientras se realizaba el proceso descrito en esta gua. Una vez que se ha descargado la traza mencionada, se puede cargar en Wireshark a travs de la opcin File/Open y luego seleccionando el archivo de traza mencionado.

El nmero IP es 189.78.197.227, y el puerto pedido es el puerto 49099. 2. Cul es la direccin IP de gaia.cs.umass.edu? En qu nmero de puerto se est enviando y recibiendo los segmentos TCP para esta conexin? Si tiene sus propias trazas de paquetes, responda a la siguiente pregunta: Direccin IP 69.5.88.71 y el puerto que utiliza es el 80. 3. Cul es la direccin IP y nmero de puerto TCP empleado por el computador cliente (origen) para transferir el archivo a gaia.cs.umass.edu? El nmero IP es 172.31.13.75, y el puerto pedido es el puerto 50412. Puesto que esta prctica trata sobre TCP antes que con HTTP, se debe modificar la ventana Lista de paquetes capturados de modo que se muestre la informacin relacionada con los segmentos TCP que contienen los mensajes HTTP, antes que la informacin de los mensajes HTTP. Para hacer esto, seleccione Analyze -> Enabled Protocols, luego desmarque HTTP y seleccione OK. Se debera presentar en pantalla una ventana similar a la siguiente:

Figura 5. Paquetes TCP filtrados Esto es lo que se estaba buscando: una serie de segmentos TCP enviados desde el computador local hasta gaia.cs.umass.edu. Se emplear la traza de paquetes capturada (y/o el archivo que contiene las trazas de paquetes tcp-ethereal-trace-1) para estudiar el comportamiento de TCP en lo que resta de esta prctica. ETAPA 3. TCP bsico Responda a las siguientes preguntas: 4. Cul es el nmero de secuencia del segmento TCP SYN que se emplea para iniciar la conexin TCP entre el computador local y gaia.cs.umass.edu? Cul es la parte del segmento que identifica al segmento como uno de tipo SYN?

El nmero de secuencia es 0. La parte del segmento que identifica al segmento como tipo SYN son las Flags.

5. Cul es el nmero de secuencia del segmento SYN ACK enviado por el servidor gaia.cs.umass.edu al computador local (cliente) en respuesta al SYN? Cul es el valor del campo ACKnowledgement en el segmento SYN ACK? Cmo determina el servidor gaia.cs.umass.edu ese valor? Cul es la parte del segmento que identifica el segmento como un segmento SYN ACK?

Numero de secuencia de SYN/ACK: 0 Acknowledgement number: 1 El servidor gaia.cs.umass.edu determina este valor mediante el campo Sequence number de TCP. El campo FLAGS indica que es un segmento SYN ACK La parte que identifica el segmento como un segmento es Flags: 0x12 (SYN, ACK). 6. Cul es el nmero de secuencia del segmento TCP que contiene el comando HTTP POST? Note que con el propsito de encontrar el comando POST, se necesitar buscar, en el campo de contenido del paquete en la parte inferior de la ventana de la aplicacin, un segmento con un POST dentro del campo DATA.

Nmero de secuencia: 1

7. Considere el segmento TCP que contiene el HTTP POST como el primer segmento en la conexin TCP. Cul son los nmeros de secuencia de los primeros seis segmentos en la conexin TCP (incluyendo el segmento que contiene el HTTP POST)? En qu tiempo fue enviado cada segmento? Cundo fue recibido el ACK de cada segmento?

RTT=0.9*RTTanterior+(10.9)*RTTnuevo

Primerpaquete(tiempos): Numerodesecuencia:1

Segundopaquete(tiempos): Numerodesecuencia:1

Tercerpaquete(tiempos): Numerodesecuencia:801

Cuartopaquete(tiempos): Numerodesecuencia:801

Quintopaquete(tiempos): Numerodesecuencia:2261

Sextopaquete(tiempos): Numerodesecuencia:1

Dada la diferencia entre el envo de cada segmento TCP, y cuando fue recibido su reconocimiento (acknowledgement), cul es el valor RTT para cada uno de los seis segmentos? Cul es el valor estimado de RTT despus de la recepcin de cada ACK? Asuma que el valor estimado de RTT es igual al RTT medido para el primer segmento, y luego es calculado usando la ecuacin del RTT estimado para todos los segmentos subsecuentes. Nota: Wireshark tiene una caracterstica interesante que permite dibujar RTT para cada uno de los segmentos TCP. Seleccione el segmento TCP en la ventana lista de paquetes capturados que estn siendo enviados desde el computador local hacia el servidor gaia.cs.umass.edu. Luego seleccione Statistics -> TCP Stream Graph -> Round Trip Time Graph. 8. Cul es la longitud de cada uno de los primeros seis segmentos TCP?
Segmento 1 2 3 4 5 6 Longituddecabecera 20 20 20 20 20 20 Longituddedatos 800 0 1460 1460 0 1460 Longitudtotal(bytes) 820 0 1480 1480 20 1480

9. Hay segmentos retransmitidos en el archivo de traza de paquetes? Qu observ en la traza de paquetes para responder esta pregunta?

Para responder esta pregunta podemos emplear la herramienta expert info la cual se encuentra en el men Analize que nos muestra un informe con los posibles errores producidos como ack duplicado, que se genera cuando se pierde un paquete y se debe retransmitir:

10. Qu cantidad de datos reconoce tpicamente el receptor en un ACK? Puede identificar casos donde el receptor est reconociendo cada segmento recibido? Mediante los indicadores se puede representar informacin adicional: SYN: indica un pedido para establecer una conexin. FIN: Si est fijado en 1, se interrumpe la conexin. ACK: Si est fijado en 1, el paquete es un acuse de recibo. URG: Si est fijado en 1, el paquete se debe procesar en forma urgente. PSH (PUSH): Si est fijado en 1, el paquete opera de acuerdo con el mtodo PUSH. RST: Si est fijado en 1, se restablece la conexin. 11. Cul es el throughput (bytes transferidos por unidad de tiempo) para la conexin TCP? Explique cmo calcul este valor.

ETAPA 4. Control de congestin en TCP Ahora examine la cantidad de datos enviados por unidad de tiempo desde el cliente hacia el servidor. Antes que calcular esto desde los datos sin procesar en la ventana de Wireshark, se emplear una de las utilidades de graficacin de TCP en Wireshark Time-Sequence-Graph (Stevens) para dibujar los datos de la prctica. Seleccione un segment TCP en la ventana de lista de paquetes capturados de Wireshark. Luego seleccione el men Statistics->TCP Stream Graph-> Time-SequenceGraph(Stevens). Se debera ver un grfico similar al que se muestra a continuacin, el cual fue creado a partir de los paquetes capturados en el trazado tcp-ethereal- trace-1 de http://gaia.cs.umass.edu/ethereal-labs/etherealtraces.zip

Figura 6. Grfico del flujo TCP En este grfico, cada punto representa un segmento TCP enviado, y se grafic el nmero de secuencia del segmento versus el tiempo en el cual fue enviado. Note que cada conjunto de puntos apilados representa una serie de paquetes que fueron enviados back-to-back por el emisor. Responda a las siguientes preguntas para los segmentos TCP de la traza de paquetes tcpetherealtrace-1: 11. Use la herramienta de graficado Time-Sequence-Graph(Stevens) para ver el diagrama del nmero de secuencia versus el tiempo de los segmentos que

son enviados desde el computador local al servidor gaia.cs.umass.edu. Puede identificar donde inicia y donde termina la fase de inicio lento de TCP (TCPs slow start), y donde se da el proceso de evitar la congestin (congestion avoidance)?

La fase de inicio lento, comienza aproximadamente entre un nmero de secuencia muy cercano a 0, menor a 50, y entre un tiempo de 0,2 y 0,28 segundos. La fase de inicio lento, termina aproximadamente entre un nmero de secuencia de 100 y 150, y entre un tiempo de 0,29 y 0,30 segundos.

También podría gustarte