Práctica 7 - Capa de transporte II#

El objetivo de esta práctica es estudiar las diferencias entre los protocolos de transporte UDP y TCP, tanto en los aspectos de rendimiento como de confiabilidad. Para ello se utilizará la herramienta nc para la transferencia de algunos ficheros, así como la herramienta Wireshark para realizar las capturas correspondientes a las transmisiones.

Más específicamente, durante esta sesión vas a enviar varios ficheros desde tu equipo (el cliente) a un servidor remoto (el servidor), que los recibirá y devolverá un eco de los mismos. Los ficheros serán dos, uno de texto y otro que será una imagen. Se van a utilizar en ambos casos los dos protocolos de transporte estudiados: UDP y TCP.

Importante

La IP del servidor remoto se proporcionará durante la sesión.

Evaluación#

Esta práctica es evaluable (0.5 puntos sobre los 3.0 puntos totales de las prácticas), por lo que deberás acceder al cuestionario correspondiente en Campus Virtual. El cuestionario se cerrará al acabar la sesión. Cada respuesta errónea se penalizará con un 1/3 del valor asignado a cada pregunta.

Preparación#

Para la realización de la práctica es necesario que la conexión de red esté configurada correctamente:

  1. Se suponen conocidos aspectos ya vistos en prácticas anteriores, por ejemplo, el comando para conocer la propia IP y el manejo de Wireshark.

  2. Prepara tu directorio de trabajo:

    • En /home/alumno crea un directorio llamado p7. Asumiendo que tu directorio actual es /home/alumno, el comando sería:

      mkdir p7
      
    • Si ya existe, bórralo y créalo de nuevo:

      rm -rf p7
      mkdir p7
      
    • Ve al directorio y realiza la práctica desde allí:

      cd p7
      
    • Comprueba que estás en el directorio adecuado con:

      pwd
      

      Debe devolver:

      /home/alumno/p7
      
  3. Asegúrate que la interfaz de red de la máquina virtual tiene una dirección IP del tipo 172.24.21x.xxx.

  4. Debes comprobar que puedes llegar al servidor remoto:

    ping -c 3 <IP-servidor-remoto>
    

    Esto debe proporcionar un resultado similar a:

    3 packets transmitted, 3 received, 0% packet loss, time XXXms
    
  5. Abre un navegador dentro de la máquina virtual y ten a mano estas instrucciones así como el formulario de Campus Virtual. Así te será más fácil seguirlas y descargar los archivos necesarios.

    Importante

    No almacenes tu contraseña de Campus Virtual en la máquina virtual.

UDP#

Para el análisis del funcionamiento del protocolo UDP se van a transmitir dos ficheros entre tu equipo y un servidor remoto. El primero será un pequeño fichero de texto y el segundo corresponderá a una imagen en formato BMP. Tendrás que realizar la captura del tráfico con Wireshark que generan ambas transmisiones y responder a las preguntas.

Importante

Antes de comenzar las capturas de esta sección, debemos desactivar el protocolo WOL para evitar que Wireshark muestre algunos paquetes UDP como tales, ya que su contenido es similar. Selecciona desde el menú principal Analizar y después Protocolos activados. Busca WOL y desactívalo, si aún no lo está.

udp-me.pcapng#

  1. Descarga el archivo de texto me.txt con:

    wget https://uclm-esi.github.io/redes1-lab/assets/me.txt
    

    Comprueba que lo tienes descargado correctamente con:

    ls -l me.txt
    

    Deben salir exactamente 41 caracteres (40 y el carácter de nueva línea) como tamaño de archivo.

  2. Prepara en un terminal la orden en la línea de comandos (no pulses Enter todavía):

    nc -u <IP-servidor-remoto> 5020 < me.txt > me-udp.txt
    
  3. Ahora ve a Wireshark y comienza a capturar tráfico.

  4. Pulsa Enter en la línea de comandos con la orden que has preparado.

  5. Finaliza la orden tecleando Ctrl c.

  6. Detén la captura y la guardas con el nombre udp-me.pcapng.

  7. Responde a las preguntas asociadas a esta captura utilizando como filtro de visualización ip.addr == <IP-servidor-remoto>.

udp-bmp.pcapng#

  1. Descarga la imagen BMP. El fichero se debe llamar p7barras.bmp:

    wget https://uclm-esi.github.io/redes1-lab/assets/p7barras.bmp
    
  2. Prepara en un terminal la orden en la línea de comandos (no pulses Enter todavía):

    nc -u <IP-servidor-remoto> 5020 < p7barras.bmp > p7barras-udp.bmp
    
  3. Ve de nuevo a Wireshark y comienza a capturar tráfico de nuevo.

  4. Pulsa Enter en la línea de comandos con la orden que has preparado.

  5. Finaliza la orden tecleando Ctrl c.

  6. Detén la captura y la guardas con el nombre udp-bmp.pcapng.

  7. Responde a las preguntas asociadas a esta captura utilizando como filtro de visualización ip.addr == <IP-servidor-remoto>.

TCP#

Esta parte es totalmente equivalente a la realizada anteriormente, pero en TCP. La única diferencia es que en las órdenes dadas en el terminal se suprime la opción -u, ya que por defecto el protocolo usado es TCP. También vamos a cambiar el número de puerto, que ahora será el 5010. Además, vamos a usar la opción -q2 que obliga a terminar la conexión pasados 2 segundos.

Importante

Antes de comenzar las capturas de esta sección, debemos desactivar el protocolo IPSICTL para evitar que Wireshark muestre algunos paquetes TCP como tales, ya que su contenido es similar. Selecciona desde el menú principal Analizar y después Protocolos activados. Busca IPSICTL y desactívalo, si aún no lo está.

tcp-me.pcapng#

  1. Prepara en una terminal la orden en la línea de comandos (no pulses Enter todavía):

    nc -q2 <IP-servidor-remoto> 5010 < me.txt > me-tcp.txt
    
  2. En Wireshark, comienza a capturar.

  3. Pulsa Enter en la línea de comandos con la orden que has preparado y espera a que finalice el proceso.

  4. Detén la captura y la guardas con el nombre tcp-me.pcapng.

  5. Responde a las preguntas asociadas a esta captura utilizando como filtro de visualización ip.addr == <IP-servidor-remoto>.

tcp-bmp.pcapng#

  1. Prepara en una terminal la orden en la línea de comandos (no pulses Enter todavía):

    nc -q2 <IP-servidor-remoto> 5010 < p7barras.bmp > p7barras-tcp.bmp
    
  2. En Wireshark, comienza a capturar.

  3. Pulsa Enter en la línea de comandos con la orden que has preparado y espera a que finalice el proceso.

  4. Detén la captura y la guardas con el nombre tcp-bmp.pcapng.

  5. Responde a las preguntas asociadas a esta captura utilizando como filtro de visualización ip.addr == <IP-servidor-remoto>.

Finalización#

Finalmente, borra el directorio generado /home/alumno/p7 con:

rm -rf /home/alumno/p7