1º parcial de Redes - ETSIA - 30 de enero de 2007

Documentos relacionados
Examen de Redes - Primer Parcial - ETSIA 26 de Enero de 2006

Examen de Redes - ETSIA 9 de septiembre - Primer Parcial

Examen Final de Redes - ETSIA - 1 de Junio de 2007

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.

Examen Final de Redes - ETSIA - 24 de junio de 2006

Federico Peinado

Redes de Computadores - Problemas y cuestiones

EJEMPLOS PROGRAMACIÓN SOCKET - JAVA

Práctica 3: Introducción a los sockets en Java

Desarrollo de Aplicaciones Distribuidas. Sockets. Daniel Avellaneda

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 2)

UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA

Lab 01: Programación de Sockets en TCP

Redes de Computadoras Septiembre de Teoría y problemas (75 %).

REDES DE ORDENADORES HOJA DE PROBLEMAS 3

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets

Introducción (I) La capa de transporte en Internet: TCP es: UDP es:

UNIVERSIDAD POLITÉCNICA DE PACHUCA SOCKETS EN JAVA

Nivel de Transporte en Internet

Formato para prácticas de laboratorio

Sockets en Java. Prof. Wílmer Pereira Universidad Simón Bolívar

Práctica 5: Servidor web concurrente en Java

1.- FUNDAMENTOS FUNCIONAMIENTO GENÉRICO JAVA SOCKETS Creación de Streams de Entrada...7

Capítulo 3: Capa Transporte - I

Comunicación entre procesos: sockets udp. Jorge Iván Meza Martínez

Introducción a Internet

Las clases Java Socket y ServerSocket

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

Capítulo 5. Programación de aplicaciones de red

EL LENGUAJE DE PROGRAMACIÓN JAVA TM

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez

Arquitecturas cliente/servidor

Ingeniería en Automática Industrial Software para Aplicaciones Industriales I

Bloque III: El nivel de transporte. Tema 7: Intercambio de datos TCP

Juan Pavón Mestras Dep. Sistemas Informáticos y Programación Universidad Complutense de Madrid.

Tema II. Sockets. Desarrollo de Aplicaciones para Internet Curso Miguel Reboiro Jato

Sistemas de Transportes de Datos (STD) Tema III: UDP Y TCP (Entrega 1) Nivel de. Proceso. Nivel de Transporte. Nivel de Red.

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet

Examen Parcial de la Parte III Arquitectura de Redes de Ordenadores

Problema de agotamiento de direcciones

Bloque I: Introducción. Tema 2: Introducción a TCP/IP

GUÍA DE ESTUDIO TEMA 2. MODELO OSI. ESTÁNDARES Y PROTOCOLOS. MODELO TCP/IP.

TCP Transmission Control Protocol

Programación para redes con Java


Arquitecturas cliente/servidor

Protocolos de transporte y aplicación

SISTEMAS OPERATIVOS Y TCP/IP. - El Modelo de Referencia TCP/IP -

Introducción a las Redes de Computadoras

Introducción a las Redes de Computadoras. Capa de aplicación. Programación con Sockets. Capitulo 2 Capa de Aplicación

Bloque III: El nivel de transporte. Tema 5: UDP y TCP

ISP s. Tier-1: Tier-2:

Tema 1 - Introducción Hoja de problemas

Redes de Comunicaciones. Ejercicios de clase Tema 3

ARQUITECTURAS CLIENTE/SERVIDOR

Práctica de laboratorio 4.5.2: Protocolos de la capa de Transporte TCP/IP, TCP y UDP Diagrama de topología

Multienhebrado en Java Un toque de sincronización Transporte en Java Ejemplo conjunto

Programando en Java Raspberry Pi (RPi) 2015/05/08 Juan V. Capella

Bloque III: El nivel de transporte. Tema 7: Intercambio de datos TCP

Modelo OSI y TCP/IP. Teleprocesamiento Ing. Zoila Marquez.

Tema 14: El protocolo TCP

Redes de Computadoras Junio de Teoría y problemas

Conceptos avanzados. Contenido

Redes de Computadores Nivel de Transporte: Introducción + UDP

El Modelo. Aplicación. Presentación. Sesión. Transporte. Red. Enlace. Físico

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas. Capa de Transporte. Mérida - Venezuela Prof. Gilberto Díaz

ELO322 Redes de Computadores I 07/06/2013. Segundo Certamen ACK1 ACK1 ACK1 ACK1 ACK5

Universidad de Cantabria

7. Otras sentencias Sentencia break. 84 A. García-Beltrán y J.M. Arranz

CUESTIONARIO PARA EL PROTOCOLO TCP/IP PREGUNTAS

Curso de Redes Computadores 1 Tema 3 Introducción a la capa de transporte. Interfaz de programación en redes. Sockets.

Red LSUB. 4 de marzo de 2015 GSYC

Contenido. UDP y TCP NAT Proxy El Laboratorio de Telemática. 17 Nov Conceptos avanzados 1/21

Redes de Computadoras Junio de Teoría y problemas (75 %)

Cliente/Servidor en Java

Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar

El nivel de transporte

ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Conjunto de problemas del Tema 2

Bloque III: El nivel de transporte. Tema 6: Conexiones TCP

UNIVERSIDAD NACIONAL AUTONOMA DE NICARAGUA

Bloque IV: El nivel de red. Tema 9: IP

Pauta Tarea 1 Redes de Computadores I

ARQUITECTURA DE REDES Laboratorio

Modelo de Objetos Distribuidos

TCP: Características Establecimiento y finalización de conexiones Tema 4.- Nivel de transporte en Internet

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

PROTOCOLOS DE RED SMTP

Práctica 9: Análisis del tráfico de red

Tema 3: COMUNICACIÓN ENTRE PROCESOS

PROTOCOLOS DE RED (Parte 2) HTTP

Protocolos Arquitectura TCP/IP

Introducción a las redes de ordenadores y protocolos de comunicación. Ordenador que no depende de otro para su funcionamiento.

Bloque I: Introducción. Tema 2: Introducción a TCP/IP

Sockets. Sockets. 1 Introducción

Control de Congestión. Definición de Congestión

Implantación de servidores con criptografía y código seguro

Tutorial BMS Server Studio UDP

Comandos TCP-IP para Windows

Realizado por: Soto García, Luis Manuel C.I.: Sección: 08 ISI M 01. Luis Manuel Soto Garcia

Transcripción:

1º parcial de Redes - ETSIA - 30 de enero de 2007 Apellidos, Nombre: Soluciones _ Grupo de matrícula: 1. (1,5 punto) Dos host, A y B, están conectados mediante un router. La distancia entre cada uno de los hosts (A, B) y el router es de 100 m. La velocidad de transmisión empleada por todos los dispositivos es 100 Mbps, y la velocidad de propagación a través de los enlaces es de 2 x 10⁸ m/s. a) Si se está transmitiendo de forma continua, cuántos bits puede transmitir A antes de que su primer bit transmitido llegue al router? El número de bits que A podrá transmitir hasta que su primer bit llegue al router serán los bits que pueden transmitirse durante un intervalo igual al tiempo de propagación. De esta forma tenemos: T trans = T prop nº bits/v trans = Distancia/V prop --> nº bits = (100 m / 2 x 10 8 m/s) x (100 x 10 6 bit/s) nº bits = 50 bits b)sabiendo que las cabeceras de los niveles inferiores a TCP ocupan 34 bytes en total, cuánto tiempo tardaría A en establecer una conexión TCP con B? Suponemos despreciables los tiempos de procesamiento, y no se considera el retardo asociado a las colas en el router. El establecimiento de conexión en TCP se realiza mediante el intercambio de los segmentos que podemos ver en la figura: A SYN SYN,ACK ACK router SYN SYN,ACK B El tiempo de transmisión de un segmento será: T trans = nº bits/v trans Los segmentos intercambiados entre los dispositivos no llevarán datos, al tratarse de segmentos de establecimiento de conexión, por lo tanto: nº bits = cabecera TCP + cabeceras inferiores = = 20 bytes + 34 bytes = 54 x 8 bits = 432 bits El tiempo total necesario para que el segmento de SYN llegue de A hasta B será: T sync = T trans A-router + T prop A-router + T trans router-b + T prop router-b ACK donde T trans A-router = T trans router-b = 432 bits / 100 x 106 bit/s = 432 x 10-8 seg. T = T = 100 m / 2 x prop A-router prop router-b 108 m/s = 50 x 10-8 seg. Puesto que los tres segmentos de establecimiento de conexión son del mismo tamaño, el tiempo total de establecimiento de la conexión con B será: Ttotal = 3 x T sync = 3 x ( 2 x (432 + 50) x 10-8 seg) = 3 x 964 x 10-8 = 2892 x 10-8 seg.

c) Cuál sería la longitud de un bit expresada en metros si aumentamos la velocidad de transmisión a 155 Mbps? El tiempo de transmisión de 1 bit será: T trans = nº bits/v trans = 1 bit/155 x 10 6 bit/s el tiempo que tardará en propagarse la señal de dicho bit por el enlace será: T prop = (Distancia / 2 x 10 8 m/s)) por lo tanto, igualando los dos términos tendremos: T trans = T prop nº bits/v trans = 1 bit/155 x 10 6 bit/s = (Distancia / 2 x 10 8 m/s) Distancia = (1 bit/155 x 10 6 bit/s) x 2 x 10 8 m/s) = 1,29 m/bit 2. (0,5 puntos) Justifica la utilización de MIME en el correo electrónico. El protocolo de correo SMTP impone que los mensajes de correo estén en formato ASCII 7-bits. La utilización de MIME permite enviar texto y objetos que inicialmente están en un formato diferente al ASCII 7-bits, permitiendo así la inclusión de imágenes, audio, ficheros comprimidos, ejecutables, etc... en los correos electrónicos. Entre otras cosas, MIME especifica cómo convertir esos objetos al ASCII 7- bits que necesita SMTP. 3. (0,5 puntos) Indica la utilidad de la cabecera Content-Transfer-Encoding. La cabecera Content-Transfer-Encoding especifica el método empleado para codificar los datos en formato distinto a ASCII 7-bits. Esta cabecera permite al receptor conocer el método que debe emplear para decodificar los datos recibidos. 4. (0,5 puntos) Es posible emplear un mismo socket TCP para intercambiar datos con dos procesos diferentes? Y si el socket es UDP? Justifica las respuestas. No, ya que un socket TCP, o bien está en modo pasivo (no intercambia datos, sino que espera conexiones), o está conectado a un único socket remoto, y por tanto a un único proceso. En el caso de sockets UDP, sí es posible, puesto que estos sockets no conectan con otros, sino que es necesario especificar la dirección destino para cada DatagramPacket. Cada datagrama que se envía puede ir destinado a un socket distinto.

5. (0,5 puntos) Indica las clases mínimas necesarias de Java.net necesarias para implementar un: a) Servidor TCP b)cliente TCP c) Cliente UDP a) ServerSocket, Socket b) Socket c) DatagramSocket, DatagramPacket, InetAddress 6. (0,5 puntos) a) Puede un cliente abrir dos sockets sobre el mismo puerto local (del mismo protocolo)? Justifica la respuesta. No. La apertura del segundo socket produciría un error, ya que de permitirse la existencia de este segundo socket haría que TCP no supiera a cuál entregar un segmento si se emplean ambos para acceder al mismo servidor. b) Pueden existir en un servidor dos sockets con el mismo puerto y protocolo? Justifica la respuesta, y pon un ejemplo. Si, únicamente en los servidores TCP, ya que en este caso los sockets se diferencian por la conexión, de la cual forma parte la dirección del socket remoto (del cliente), ya que son sockets conectados. Ejemplo: Se crean sockets con el mismo puerto en un servidor concurrente cada vez que se ejecuta la llamada a accept. 7. (0,5 puntos) Cuáles son los objetivos del control de flujo y del control de la congestión en TCP? Ambos mecanismos intentan evitar la pérdida de datos por saturación. En el caso del control de flujo, se desea evitar que se sature el receptor de los datos, mientras que en el caso del control de congestión se evita que lo haga la red.

8. (0,5 puntos) En qué consiste el piggybacking? Consiste en añadir un campo ACK (de reconocimiento) a los datos transmitidos, intentando minimizar el número de mensajes de ACK de los datos recibidos. Dicho de otra forma, permite que los mensajes de ACK viajen en los segmentos de datos del sentido contrario. 9. (1 punto) Desde el ordenador rtv1.retevision.es se quiere enviar un correo. El remitente es alumno@retevision.es y el destinatario profes@redes.upv.es. El DNS local de dicho ordenador es montgo.retevision.es y el servidor SMTP del remitente smtp.retevision.es. La dirección destino profes@redes.upv.es es un alias de alberto@privada.com, teresa@privada.com y federico@privada.com. Sabiendo que el servidor de correo para el dominio redes.upv.es es zoltar.rediris.es, y que las cachés DNS de los equipos mencionados están vacías, indica la secuencia TOTAL de PETICIONES DNS (las contestaciones no) necesaria para poder hacer llegar el correo. Supóngase que los TLD's conocen todos los servidores de nombres autorizados. Orden Origen Destino Tipo de consulta Recursiva/ Iterativa Objeto de la consulta 1 rtv1.retevisión.es montgo.retevision.com A R smtp.retevision.es 2 smtp.retevision.es montgo.retevision.com MX R redes.upv.es 3 montgo.retevision.com root.a MX I redes.upv.es 4 montgo.retevision.com DNS.es MX I redes.upv.es 5 montgo.retevision.com DNS.redes.upv.es MX I redes.upv.es 6 zoltar.rediris.es DNS.rediris.es MX R privada.com 7 DNS.rediris.es root.a MX I privada.com 8 DNS.rediris.es DNS.com MX I privada.com 9 DNS.rediris.es DNS.privada.com MX I privada.com

10.(1 punto) Escribe un programa en Java que implemente un servidor TCP iterativo. El servidor acepta una línea de caracteres del cliente y devuelve al cliente la misma línea. import java.net.*; import java.io.*; class ServidorTCP { public static void main(string args[]) throws UnknownHostException,IOException { ServerSocket ss = new ServerSocket(7777); while (true) { Socket s = ss.accept(); BufferedReader entrada = new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter salida = new PrintWriter(s.getOutputStream()); salida.println(entrada.readline()); s.close(); b) Modifica el programa realizado para convertir el servidor iterativo en un servidor concurrente. import java.net.*; import java.io.*; class ServidorTCPConcurrente extends Thread { Socket id; public ServidorTCPConcurrente(Socket s) {id=s; public void run() { try { BufferedReader entrada = new BufferedReader(new InputStreamReader(id.getInputStream())); PrintWriter salida = new PrintWriter(id.getOutputStream()); salida.println(entrada.readline()); id.close(); catch(exception e) { public static void main(string args[]) throws IOException{ ServerSocket ss=new ServerSocket(7777); while(true) { Socket s = ss.accept(); ServidorTCPConcurrente t = new ServidorTCPConcurrente(s); t.start(); 11.(0,5 puntos) Indica alguna razón por la que pueda ocurrir la excepción IOException al instanciar un objeto de tipo Socket en Java. Al intentar conectar un socket cliente el puerto en el ordenador destino está cerrado.

12.(1 punto) La gráfica siguiente representa la evolución de una ventana de congestión TCP en función del tiempo. Responde las siguientes preguntas: a) Qué valor tiene la ventana de permisos del receptor (WIN)? 64 segmentos b)identifica los intervalos en los que actúa el mecanismo de incremento aditivo. [6,8] y [9,13] c) Qué ha sucedido en RTT 8? y en RTT 13? En ambos casos se ha producido una pérdida de segmento, ésta se ha detectado por: RTT = 8 : recepción de 3 ACKs duplicados RTT = 13: vencimiento del temporizador d)calcula el valor del umbral en los RTTs: 3, 10 y 15. Indica la fórmula utilizada para el cálculo. RTT = 3, umbral= WIN=64 RTT = 10, umbral = max ( ventana de transmisión/2, 2 segmentos) = (64/2,2) =32 RTT = 15, umbral = max ( ventana de transmisión/2, 2 segmentos) = (36/2,2) =18 e) Suponiendo que en el RTT 10 WIN pasa a valer 32, calcula los valores de la ventana de congestión y del umbral en el RTT 18. Indica la fórmula utilizada para el cálculo. umbral = max ( ventana de transmisión/2, 2 segmentos) = (32/2,2) =16 Ventana de congestión = Ventana de congestión + 1/Ventana de congestión = 17

13.(0,5 puntos) En una aplicación ftp: a) Qué órdenes de un cliente FTP provocan que se establezca una conexión de datos? Indica si son órdenes del protocolo FTP o de la interfaz de usuario. (Se aceptan ambos tipos) Las órdenes que crean una conexión de datos son las que producen un intercambio de datos (bien sea ficheros o contenido de directorios). Estas órdenes son LIST, RETR y STOR en el caso del protocolo FTP y dir, ls, get, put, mget y mput en el caso de la interfaz de usuario. b) Cómo se sabe el número de puerto al que hay que conectarse al establecer una conexión de datos? Si el modo es activo, el cliente le envía al servidor la orden PORT n1, n2, n3, n4, n5, n6, donde n5*256+n6 es el número de puerto donde el servidor debe conectarse al cliente. Si el modo es pasivo, entonces el servidor devuelve la cadena 227 Entering Passive Mode (n1, n2, n3, n4, n5, n6), donde n5*256+n6 es el número de puerto donde el cliente debe conectarse al servidor. 14.(0,5 puntos) Dada la orden./sock -l :7777 -d 'cat inicio.htm' indica la misión de cada uno de los parámetros. El parámetro -l indica que se va a crear un servidor. Por defecto, el servidor será un servidor TCP, dado que no se indica lo contrario. El parámetro -d indica que cuando se conecte un cliente se ejecute la orden cat inicio.htm. La salida estándar de esta orden se redirige hacia la red, de forma que el cliente recibe la salida generada por la orden. 15.(0,5 puntos) El siguiente fragmento de código forma parte de un cliente del protocolo http: Socket s = new Socket( www.redes.upv.es,80); System.setProperty( line.separator, \r\n ); BufferedReader lee = new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter esc = new PrintWriter(s.getOutputStream(),true); esc.println( GET /redes/index.html HTTP/1.0 ); System.out.println( lectura: + lee.readline()); Suponiendo que en el puerto 80 de www.upv.es está escuchando un servidor que emplea el protocolo http y que el archivo solicitado se encuentra disponible, indica qué ocurrirá al ejecutar el programa. Justifica la respuesta. El cliente se bloqueará en la línea System.out.println( lectura: + lee.readline()); y no continua su ejecución. La razón es que el servidor ha recibido parte de la petición HTTP, pero no la ha recibido completa. Le falta una línea en blanco para saber que puede procesar la petición. Dado que el cliente no envía esa línea en blanco, el servidor sigue esperando el resto de la petición y, por lo tanto, no devuelve nada al cliente. A su vez, el cliente está esperando una línea del servidor. Como ambos se esperan mutuamente, se entra en una situación de bloqueo.