TRABAJO PRÁCTICO Nº 2 REDES DE COMPUTADORAS Licenciatura en Ciencias de la Computación - Primer cuatrimestre de 2016 Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Capa de aplicación Tareas Ejercicio 1: Instalar los siguientes navegadores: Mozilla/Firefox, Opera y Google Chrome, y verificar que funcionan correctamente. Ejercicio 2: Instalar la extensión para el navegador Firefox denominada: Live HTTP Headers. Enumerar el intercambio de mensajes que se produce al acceder al sitio web con URL: http://cs.uns.edu.ar ¿Cuántos objetos adicionales son recuperados a partir de este pedido inicial? Ejercicio 3: Instalar el comando: telnet. Si utiliza Linux consultar el manejador de paquetes de su distribución para encontrar el paquete correcto que contiene ese comando, si utiliza Microsoft Windows es accesible desde Agregar/Quitas programas (dependiendo de la versión). Ejercicio 4: Simular las acciones que realiza un navegador al consultar un sitio web. Utilizando el comando: telnet establecer una conexión al puerto 80 del servidor: cs.uns.edu.ar e ingresando "GET / HTTP/1.0". ¿Qué clase de respuesta obtenemos? Ejercicio 5: Instalar el apache. Luego verificar su funcionamiento abriendo un navegador e ingresando el URL http://127.0.0.1. Encontrar en qué lugar en que se almacena la configuración del Apache y explorar cómo se habilitan las páginas personales. Ejercicio 6: Crear una página web válida pero simple (tamaño inferior a 1Kb) y ponerla en línea sobre el servidor Apache como página principal del mismo. Crear otra página similar y ponerla en línea esta vez como página personal del usuario normal (es decir, no administrador ni root) que estemos usando. (Considerar que los archivos válidos por defecto para el Apache deben poseer extensión HTML). Ejercicio 7: Rehacer los ejercicios en los que se simulaba a mano al navegador, usando en esta oportunidad el servidor Apache instalado localmente. Ejercicio 8: Ejecute las siguientes consultas con el comando dig bajo sistema operativo Linux y describa las respuestas y datos obtenidos: • • • • dig dig dig dig cs.uns.edu.ar +trace <sitio web de su proveedor de Internet> +trace @<dns local> uns.edu.ar +trace @<dns proveedor de Internet> www.yahoo.com +trace 1 TRABAJO PRÁCTICO Nº 2 REDES DE COMPUTADORAS Licenciatura en Ciencias de la Computación - Primer cuatrimestre de 2016 Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Ejercicio 9: Utilice el comando: nslookup (sobre Windows o Linux) y ejecute las siguientes consultas, describa las respuestas obtenidas y los datos que obtiene de cada una de ellas, compare con los resultados del ejercicio anterior: • • • • cs.uns.edu.ar <sitio web de su proveedor de Internet> server <dns local> uns.edu.ar • • server <dns proveedor de Internet> www.yahoo.com Ejercicio 10: Analice la siguiente respuesta de un servidor Apache a través de un proxy Squid, ¿Cuál es la acción que provoca el código devuelto por el servidor si fuera interpretado por un navegador? [me@host~]$ telnet cs.uns.edu.ar 80 Trying 192.168.0.5... Connected to cs.uns.edu.ar (192.168.0.5). Escape character is '^]'. GET / HTTP/1.1 HTTP/1.0 200 OK Date: Mon, 05 Apr 2010 18:37:33 GMT Server: Apache Last-Modified: Thu, 25 Jun 2009 16:26:32 GMT ETag: "31c0c1-94-afc9be00" Accept-Ranges: bytes Content-Length: 148 Content-Type: text/html; charset=ISO-8859-1 Age: 20 X-Cache: HIT from fwe X-Cache-Lookup: HIT from fwe:1280 Via: 1.0 fwe:1280 (squid/2.6.STABLE6) Connection: close <HTML> <META HTTP-EQUIV="Refresh" CONTENT="0; URL=home/"> <BODY> Por favor espere...<BR> <i>Please wait..</i> </CENTER> </HTML> Connection closed by foreign host. 2 TRABAJO PRÁCTICO Nº 2 REDES DE COMPUTADORAS Licenciatura en Ciencias de la Computación - Primer cuatrimestre de 2016 Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Preguntas de revisión Ejercicio 11: Cite cinco aplicaciones utilizables sobre Internet no propietarias y los protocolos de la capa de aplicación que utilizan. Ejercicio 12: Cite varios agentes de usuario de aplicaciones de red que utilice diariamente. Ejercicio 13: En referencia a la Figura 2.4, se ve que ninguna de las aplicaciones necesita de no pérdida de datos y temporización. ¿Puede concebir una aplicación que requiera no pérdida de datos y que sea también altamente sensible al tiempo? Ejercicio 14: ¿Por qué se ejecutan HTTP, FTP, SMTP, POP3 e IMAP sobre TCP en vez de sobre UDP? Ejercicio 15: Considere un sitio de comercio electrónico que desee guardar un registro de compra para cada uno de sus clientes. Describa cómo puede hacerse con autenticación HTTP. Describa cómo puede hacerse utilizando cookies. Ejercicio 16: ¿Cuál es la diferencia entre HTTP persistente con pipeline y sin pipeline? ¿Cuál es el utilizado por HTTP/1.1? Ejercicio 17: ¿Por qué se dice que FTP envía información de control “fuera de banda”? Ejercicio 18: Desde la perspectiva del usuario, ¿cuál es la diferencia entre el modo descargar-yborrar y descargar-y-guardar en POP3? Ejercicio 19: Cada host Internet tiene al menos un servidor de nombres local y uno autorizado. ¿Qué papel tiene cada uno de estos servidores en el DNS? Ejercicio 20: ¿Es posible que un servidor web y un servidor de correo de una organización tengan exactamente el mismo alias de un nombre de host (por ejemplo: testing.com)? ¿Cuál sería el tipo del RR que contiene el nombre de host del servidor de correo? Ejercicio 21: Utilice el comando nslookup para encontrar un servidor web que tenga múltiples direcciones IP. ¿Tiene el servidor web de su institución (escuela o empresa) múltiples direcciones IP? Ejercicio 22: El servidor UDP descrito en la Sección 2.7 necesitaba únicamente un socket, mientras que el servidor TCP descrito en la Sección 2.6 necesita dos sockets. ¿Por qué? Si el servidor TCP soportase n conexiones simultáneas, cada una con un host cliente diferente, ¿cuántos sockets necesitaría el servidor TCP? Ejercicio 23: Para la aplicación cliente-servidor sobre TCP descrita en la Sección 2.6, ¿por qué debe el programa servidor ser ejecutado antes que el programa cliente? Para la aplicación clienteservidor sobre UDP descrita en la Sección 2.7, ¿por qué puede el programa cliente ser ejecutado antes que el programa servidor? 3 TRABAJO PRÁCTICO Nº 2 REDES DE COMPUTADORAS Licenciatura en Ciencias de la Computación - Primer cuatrimestre de 2016 Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Ejercicio 24: Al consultar un servidor de DNS ¿Cuáles son las diferencias entre una respuesta autorizada y otra que no lo es? Ejemplifique utilizando los comandos: dig/nslookup realizando al menos dos consultas que produzcan una respuesta de cada tipo (Pista: utilice el dominio de su proveedor para la consulta y un dominio externo al mismo). Problemas Ejercicio 25: ¿Verdadero o falso? a) Suponga que un usuario pide una página web que consta de texto y de dos imágenes. Para esta página, el cliente enviará un mensaje de petición y recibirá tres mensajes de respuestas. b) Dos páginas web distintas (por ejemplo, www.mit.edu/research.html y www.mit.edu/students.html) pueden ser enviadas sobre la misma conexión persistente. c) Con conexiones no persistentes entre el navegador y el servidor origen, es posible que un único segmento TCP transporte dos mensajes HTTP de peticiones distintas. d) La cabecera Date: en el mensaje HTTP de respuesta indica cuándo se modificó por última vez el objeto de la respuesta. Ejercicio 26: Lea RFC 1700. ¿Cuáles son los números de puerto para el protocolo sencillo de transferencia de archivos (SFTP)? ¿Y para el protocolo de transferencia de noticias sobre la red (NNTP)? Ejercicio 27: Considere un cliente HTTP que desea recuperar un documento web de un URL dado. La dirección IP del servidor HTTP no es conocida inicialmente. El documento web del URL tiene una imagen GIF que reside en el mismo servidor que el documento original. ¿Qué protocolos de la capa de transporte y aplicación, además de HTP, son necesarios en este escenario? Ejercicio 28: Obtenga la especificación de HTTP/l.l (RFC 2616). Responda a las siguientes preguntas: a) Explique el mecanismo utilizado entre el cliente y servidor para indicar que la conexión persistente ha sido cerrada. ¿Puede el cliente, el servidor o ambos señalar el cierre de la conexión? b) ¿Qué servicios de encriptación proporciona HTTP? Ejercicio 29: Reescriba el programa TCPservidor.java (descrito en el capítulo 2 del libro: James F. Kurose, Keith W. Ross, Computer Networking: A top-down approach) para que pueda aceptar múltiples conexiones. (Pista: Necesitará utilizar hilos). Ejercicio 30: Suponga que esta descargando MP3s utilizando algún sistema de compartición de archivos entre iguales. El cuello de botella hacia Internet es su enlace de acceso residencial, que es un enlace 128Kbps full-duplex. Mientras esta descargando MP3s, otros diez usuarios empiezan de repente a cargar MP3s que Ud. comparte desde su equipo. Asumiendo que su computador es muy potente y que las cargas y descargas no suponen ningún esfuerzo (en cuanto a: utilización de CPU, 4 TRABAJO PRÁCTICO Nº 2 REDES DE COMPUTADORAS Licenciatura en Ciencias de la Computación - Primer cuatrimestre de 2016 Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur E/S en disco, etc.), ¿harán las cargas simultáneas (que también pasan a través de su enlace) que se hagan más lentas sus descargas? ¿Por qué, o por qué no? Ejercicio 31: Indique cuando es necesario implementar un servidor de DNS local dentro de una organización, con zona(s) propias y con la utilización reenviadores. Ahora brinde otro ejemplo donde sólo es necesario disponer de un servidor de DNS con rol: caching only, en este caso ¿sería necesario consultar un DNS superior? Justifique las razones. Bibliografía de consulta: • • James F. Kurose, Keith W. Ross, Computer Networking: A top-down approach (6th edition) Addison Wesley, 2012. (capítulo 2) Andrew S. Tanenbaum, Computer Networks (4th Edition), Prentice Hall, 2002. (capítulo 7) 5