Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos Sobre el Protocolo UDP_________________________________ 1. ¿Qué sucedería si por error recibiera UDP un datagrama UDP destinado a otra máquina (con otra dirección IP)?. 2. ¿ Por qué es necesario incluir un checksum en IP, TCP y opcionalmente en UDP, cuando a nivel de trama ya se aplica uno?. Justificad la respuesta. 3. ¿Cómo se puede distinguir a qué aplicación debe entregar UDP el datagrama que acaba de llegar? 4. ¿Tiene algún sentido hablar de conexión entre dos computadores que se comunican mediante UDP? Razona la respuesta. 5. El cálculo del checksum en UDP incluye el propio mensaje UDP y una pseudocabecera. Dado que la pseudo-cabecera no se transmite, ¿cómo se puede comprobar en destino si el checksum es correcto? Sobre el Protocolo TCP__________________________________ 6. Indica de forma gráfica el funcionamiento del protocolo a tres bandas de apertura de conexión TCP. Poner un ejemplo en el que la presencia de un duplicado retrasado es detectada por el protocolo. 7. En TCP se utiliza un control de flujo de tipo ventana deslizante, ¿Por qué es necesario utilizar timeouts que se adapten a las condiciones dinámicas de la red ?. Justificar. 8. En la apertura de una conexión TCP, protocolo a tres bandas, se presenta la situación que muestra la figura ¿ Es posible que aparezca esta situación ? Justificar. Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos 9. En una red TCP/IP un usuario malicioso se dedica a transmitir (únicamente transmite, no recibe) mensajes TCP con el bit RST activado al puerto 80 de todos los hosts de su red IP. ¿Qué pretende dicho usuario?, ¿Por qué no tiene ningún efecto su ataque? ¿Qué le recomendarías para lograr su cometido?. 10. Un hacker novel manipula un router con fines maliciosos para desviar todo el tráfico IP de web (TCP con puerto destino 80) a una máquina concreta. Para ello, al procesar el datagrama después de comprobar su checksum, no sólo decrementa el TTL sino que también cambia la IP destino del tráfico web. Después recalcula el checksum y continúa encaminando el datagrama hacia el nuevo destino. Esta manipulación, ¿sería detectada en algún momento? 11. Control de Congestión TCP. ¿ En qué consiste el procedimiento conocido como Slow-Start ?. ¿ Cuándo se aplica ?. Explicar brevemente. 12. En el protocolo TCP, la duración de los temporizadores para la retransmisión es crítica ¿qué sucede si su duración es demasiado corta? ¿qué pasa si, por el contrario, su duración es demasiado larga? 13. El Round Trip Time (RTT) es el tiempo que transcurre desde que se envía un segmento hasta que se recibe su reconocimiento. En TCP, cuando se retransmite un mismo segmento dos veces (por vencimiento del timeout asociado al primer segmento), y finalmente llega un reconocimiento de ese segmento ¿a cuál de los dos segmentos transmitidos se asocia ese reconocimiento para el cálculo de su RTT? 14. El protocolo TCP utiliza un control de flujo basado en ventana deslizante. Las ventanas de recepción son de tamaño variable, pudiendo cerrarse completamente. ¿Qué utilidad puede tener esto? ¿ Por qué no se definen de tamaño fijo, facilitando el manejo de las mismas?. 15. El control de flujo TCP, basado en ventana deslizante, dispone de una indicación de ventana (buffer disponible en el otro extremo) que limita la inyección de segmentos en la conexión. El tamaño máximo que se puede indicar es de 64 KB. Esta limitación, ¿podría afectar a las prestaciones del TCP cuando se utilizan redes de alta velocidad (Ej.: Gigabit Ethernet ~1Gbps) con RTTs del orden de 2 ms.? 16. En una LAN con un RTT estimado de 1 ms, indica la velocidad máxima de transmisión que debe alcanzar esta red (BW efectivo) para que se logre una utilización del 100% de su ancho de banda con una única conexión TCP. 2 Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos 17. En la comunicación entre dos computadores mediante una red Ethernet se utiliza el protocolo TCP. Si el tamaño de ventana que cada uno de ellos anuncia es de 16383 bytes y suponiendo un flujo constante de datos en ambos sentidos y que se pierde el sexto paquete enviado por el computador que inicia la conexión ¿Cuál será el tamaño de la ventana de congestión tras enviar, el décimo paquete, el computador que inició la conexión? 18. En el cierre de conexión del protocolo TCP, cuando un extremo recibe un segmento de FIN y responde a este segmento con otro segmento de FIN con el ACK correspondiente, este extremo queda a la espera de recibir el último ACK. Sin embargo, si pasa un tiempo considerable (MSL, que es bastante mayor que el timeout habitual), este extremo considera que se ha perdido el último ACK y cierra la conexión (tal y como se aprecia en la figura). FIN x FIN x FIN y, ACK x+1 activa temp. FIN+ACK Envía ACK y+1 . . . . (t.o.) Cierra la conexión Si de todas formas va a cerrar la conexión si no le llega el ACK, ¿por qué no cierra la conexión justo después de enviar el segmento FIN+ACK? 3 Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos 19. En una conexión TCP uno de los extremos está transmitiendo segmentos y el otro recibiéndolos, el tamaño de la ventana indicado por el receptor para control de flujo es de 16 segmentos. Después de una situación de congestión, el tamaño de la ventana de transmisión es de cuatro segmentos, y se empieza a aplicar slowstart. Teniendo en cuenta que el RTT en la situación actual se estima constante, y que la red ya no pierde paquetes, indica de forma gráfica la evolución del tamaño de la ventana de transmisión durante los primeros 10*RTT segundos. Tam. ventana de txon (en número de segmentos) 20 18 16 14 12 10 8 6 4 2 Tiempo (en RTTs) 1 2 3 4 5 6 7 8 9 10 a) ¿Cuántos segmentos se han transmitido desde el instante 0 hasta el 10*RTT segundos (ambos incluidos)? b) ¿Cuántos de estos segmentos aún no han sido reconocidos por el otro extremo en el instante 10*RTT segundos? 20. Asumiendo que la ventana del receptor TCP es siempre 1 (stop&wait) y suponiendo alfa=0,4 y beta=2, simular la transmisión de los segmentos 1, 2, 3, 4 y 5 donde el segmento 3 requiere dos retransmisiones. Rellenar las celdas de la tabla suponiendo que el valor inicial de RTTestimado es 5 segundos. Seq 1 5 seg. 2 3 3’ 3’’ 4 5 RTTestimado TimeOut 2*5= 10 RTTmedido 1 0,7 TimeOut TimeOut 0,001 0,35 0,44 Nota 1: En el envío del paquete 4 se ha tomado como RTTold el RTT estimado para el paquete 3. Nota 2: Supóngase que el valor del Timeout se calcula con la siguiente expresión: TimeOut = β*RTTestimado 4 Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos 21. Un cliente de HTTP (C) solicita la descarga de una página HTML de 1200 bytes de un servidor web (S). Inicialmente, los tamaños de ventana de ambos TCP’s son de 600 bytes, el tamaño máximo de segmento (MMS) es de 300 bytes (no incluye la cabecera TCP). Cuando el servidor (S) envía varios segmentos seguidos, el cliente (C) envía un reconocimiento global de los datos recibidos cada dos segmentos. Describe el intercambio de segmentos entre cliente y servidor, en las situaciones descritas en cada uno de los siguientes apartados. a) El cliente establece conexión con el servidor. Los números de secuencia iniciales seleccionados son: Cliente 2000; Servidor 4000. Sentido Nº Secuencia Nº ACK Código (Flags) Datos --SYN --C S 2000 b) A continuación, el cliente envía la petición al servidor (300 bytes) y el servidor responde con la página HTML solicitada Sentido Nº Secuencia Nº ACK Código (Flags) Datos c) Por último, el servidor inicia el cierre de la conexión. Sentido Nº Secuencia Nº ACK Código (Flags) Datos Nota: Suponed que no se produce ninguna pérdida de paquetes. 5 Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos 22. Supongamos que abrimos una conexión TCP con un servidor remoto para transferir un fichero de 39,5 Kbytes. Una vez establecida la conexión, los parámetros iniciales de la misma son los siguientes: Parámetro MSS CWND SSTHRES RCWND* RTT TIMEOUT Valor 500 500 8000 10000 500 2*RTT Descripción Tamaño máximo de segmento (en bytes) Tamaño de la ventana de congestión (en bytes) Umbral (Slow Start Congestion Avoidance) en bytes Tamaño de la ventana de recepción (en bytes) Tiempo de ida y vuelta (roundtrip) en milisegundos Tiempo límite del temporizador (*) Tamaño de la ventana de recepción que el otro extremo nos ha indicado Segmentos (MSS) (a) Suponiendo que (1) el RTT es constante a lo largo de la conexión, (2) SOLO se pierden los segmentos que se envían en el intervalo de tiempo [3, 4) y (3) en el instante de tiempo t = 4,5 segundos recibimos un segmento con indicación de ventana de recepción RCWND = 2000, dibuja en un gráfico la evolución de los parámetros CWND, SSTHRES y RCWND. 20 18 16 14 12 10 8 6 4 2 4 5 6 7 8 9 10 Tiempo (segundos) (b) Calcula el tiempo total de transferencia del fichero arriba mencionado. 1 6 2 3 Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos 23. Una conexión TCP abierta, está caracterizada en uno de sus extremos por los siguientes parámetros: Parámetro Valor Descripción MSS 1000 Tamaño máximo de segmento (en bytes) CWND 4 Tamaño de la ventana de congestión (en segmentos) SSTHRES 8 Umbral (Slow Start Congestion Avoidance) RCVWND* 10 Tamaño de la ventana de recepción (en segmentos) SNDWND 4 Tamaño de la ventana de transmisión (en segmentos) (*) Tamaño de la ventana de recepción que el otro extremo nos ha indicado A partir de entonces, se producen los siguientes eventos (Ti < Ti+1): T1 – Se recibe un nuevo ACK valido T2 – Se recibe un nuevo ACK válido T3 – Se recibe un segmento con indicación de ventana de recepción de 20 MSS T4 – Se produce un timeout Escribe los valores de los parámetros tras producirse cada uno de los eventos indicados Sobre Sockets__________________________________________ 24. ¿Por qué al hacer la llamada bind en un servidor siempre debemos especificar la dirección del socket local?. ¿Por qué no es necesario especificar la dirección local cuando el bind se hace a través de un connect en un cliente? 25. ¿Qué efecto tiene una llamada a la función connect sobre un socket UDP? ¿ En qué afecta esta conexión al socket destino?. Cuándo hacemos un connect sobre un socket UDP ¿cuál es el tráfico de mensajes entre el socket del cliente y el del servidor? 26. ¿Para qué sirve la llamada al sistema BIND? 27. ¿Para qué sirve la llamada al sistema LISTEN? 28. La llamada al sistema ACCEPT la utilizan los servidores para esperar a que un cliente establezca conexión con ellos. (a) ¿Cómo funciona internamente? (b) ¿El socket que se le pasa como argumento y el que devuelve en la llamada, tienen la misma dirección de socket? (c) Si lo anterior es cierto, imagine un servidor cuyo master socket ha establecido 4 conexiones. ¿Cómo se arregla el interfaz de los sockets para entregar un segmento destinado a esa dirección de puerto común, es decir, a que socket se la envía? 7 Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos 29. ¿Se puede usar READ y WRITE sobre un socket de tipo SOCK_DGRAM? Justificar. 30. ¿Qué diferencia fundamental existe entre las llamadas close y shutdown? ¿Cuándo se utiliza shutdown en lugar de close? 31. Supongamos que tenemos una conexión TCP establecida a través del socket "s" y estoy esperando recibir 100 bytes del otro extremo. Escriba el trozo de código que leería esos 100 bytes. Sobre el Modelo Cliente / Servidor________________________ 32. En un servidor, ¿es siempre obligatorio el usar la llamada BIND en su inicialización? ¿ y en un cliente ?. Justificar brevemente las respuestas. 33. Dibuje el esquema de los pasos que sigue el super-servidor INETD. 34. Dibuje la estructura de procesos y sockets de los servidores concurrentes UDP y TCP. 35. Cita tres circunstancias en las cuales sea preferible un servidor sin conexión a un servidor con conexión. 36. Supongamos que tenemos 3 hosts: A, B y C. En los hosts A y C tenemos dos clientes que usan los puertos 2725 y 3501 respectivamente. En el host B tenemos un servidor concurrente TCP que ofrece su servicio en el puerto 37 (como muestra la figura). El cliente A se conecta con el servidor B y este el acepta la conexión. Posteriormente, el cliente C se conecta al servidor B. (a) ¿Cómo puede B diferenciar las dos conexiones, si ambas son gestionadas a través de un mismo puerto (el 37)?. (b) ¿Qué ocurriría si el cliente C obtiene como puerto local el 2725? 8 Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos 37. El servicio de FINGER (RFC 1288) permite a un usuario solicitar información acerca de los usuarios registrados un sistema remoto. El servidor FINGER escucha en el puerto TCP bien conocido 79. Tras la conexión el cliente envía una cadena de texto indicando el usuario del que solicita información, o bien la secuencia CR+LF para obtener una lista de todos los usuarios que actualmente están usando el sistema. El servidor envía la información solicitada y cierra la conexión TCP. Implemente un cliente para el servicio de FINGER. 38. ¿A qué tipo de servidor corresponde cada uno de los siguientes esquemas? Fork Maestro Esclavo.n Esclavo.1 Msock Esclavo.2 Ssock Ssock Aplicación Esclavo-1 Esclavo-1 Esclavo-1 Esclavo-n M aestro Servidor App. Level Aplicación Ssock S.O. Sistem a Operativo Socket BC a) Msock UDP b) Esclavo.n Esclavo.1 Ms.1 M s.2 Ms.n Es.1 Es.k d) S.O. Level Servidor Servidor Aplicación Aplicación M s.1 M s.2 M s.n M s.1 M s.n Es.1 Es.k S.O. e) Diagrama a) Ssock c) Fork M aestro Msock TCP f) Tipo de servidor b) c) d) e) f) 39. ¿Cuál es el número máximo de sockets abiertos que puede tener un servidor concurrente TCP si admite un máximo de 10 clientes simultáneos? y un servidor concurrente UDP? Justifica las respuestas. 40. ¿Cuál es la finalidad de incluir la llamada del sistema select en un servidor multiservicio? ¿Es necesario también su uso en un servidor multiprotocolo? Justifica la respuesta. 41. Explica brevemente cómo se las apaña el superservidor INETD para ofrecer servicios secuenciales (iterativos). 9 S.O. Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos 42. Dado el código de la izquierda, indica si se trata de un cliente o un servidor, que servicio(s) utiliza, es orientado a conexión o no, secuencial y/o iterativo, etc. int main (int argc, char *argv[]) { struct sockaddr_in fsin; char *service ="daytime”, buff[128]; int tsock, usock, ssock, alen, nfds; fd_set rfds; ms1=passivesock(“echo”,”tcp”,5) ms2=passivesock(“daytime”,”tcp”,5) us1=passivesock(“echo”, ”udp”, 0) us2=passivesock(“daytime”, “udp”,0) nfds = MAX (ms1,ms2,us1,us2) +1 ; FD_ZERO (&rfds); while (1) { FD_SET (ms1, &rfds); FD_SET (ms2, &rfds); FD_SET (us1, &rfds); FD_SET (us2, &rfds); if ( select (nfds, &rfds, (fd_set *)0, (fd_set *)0, (struct timeval *) 0) < 0) errexit ("select error: %s\n", sys_errlist [errno]); if ( FD_ISSET (ms1, &rfds)) { alen = sizeof (fsin); ssock = accept (ms1, (struct sockaddr *) &fsin, &alen); if (ssock < 0) errexit ("accept: %s\n", sys_errlist [errno]); if (fork ()) close (ssock); else { close (ms1); do_echo (ssock); exit (0); } } if ( FD_ISSET (ms2, &rfds)) { alen = sizeof (fsin); ssock = accept (ms2, (struct sockaddr *) &fsin, &alen); if (ssock < 0) errexit ("accept: %s\n", sys_errlist [errno]); daytime (buff); write (ssock, buff, strlen(buff)); close (ssock); } if (FD_ISSET (us1, &rfds)) { alen = sizeof (fsin); if (recvfrom (us1, buff, sizeof(buff),0, (struct sockaddr *)&fsin, &alen) < 0) errexit ("recvfrom: %s\n",sys_errlist[errno]); sendto (us2, buff, strlen (buff), 0, (struct sockaddr *) &fsin, sizeof (fsin)); } if (FD_ISSET (us2, &rfds)) { alen = sizeof (fsin); if (recvfrom (us2, buff, sizeof(buff),0, (struct sockaddr *)&fsin, &alen) < 0) errexit ("recvfrom: %s\n",sys_errlist[errno]); daytime (buff); sendto (us2, buff, strlen (buff), 0, (struct sockaddr *) &fsin, sizeof (fsin)); } } /* fin del while */ } /* fin del main */ 10 Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos Sobre Aplicaciones_____________________________________ 43. ¿En qué consiste la definición del estándar NVT? 44. ¿Existiría algún problema si utilizamos un cliente de telnet para acceder a cualquier servicio? (SMTP, POP3, etc.). Ej.: $telnet obelix 25. 45. Tanto en correo electrónico como en NEWS, el final de un mensaje se delimita con la secuencia <CR><LF><.><CR><LF>. ¿Qué ocurre si dentro del texto del mensaje tenemos una línea de texto que sólo tiene un punto decimal (carácter <.>) en la primera columna? ¿Cómo procederíamos en este caso? 46. Supongamos que queremos enviar un correo electrónico, usando el mecanismo de entrega directa, a [email protected]. Para ello dispongo de un cliente TELNET. Describa los pasos que debe hacer para enviar un correo a dicho usuario. Nota: No tenemos cuenta en ningún servidor de correo accesible. 47. ¿Cómo sabe un cliente SMTP que ha terminado la respuesta del servidor? 48. ¿Por qué se emplean dos protocolos para el correo (SMTP y POP3) en vez de uno sólo? 49. Un cliente FTP se conecta a un servidor y le solicita la descarga del fichero “datos.zip”. Indica la secuencia de comandos y repuestas que se intercambian el cliente y servidor de FTP para llevar acabo la transferencia y dibuja la estructura de puertos y procesos tanto del cliente como del servidor. 50. A continuación se muestra la ejecución del siguiente comando: arss70@obelix:~$ telnet localhost 37 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. È*ýConnection closed by foreign host. arss70@obelix:~$ a) ¿Para qué se ha usado el comando? b) ¿Qué significado tienen los caracteres “È*ý”? c) ¿Qué comando hubieras invocado en lugar de este? 51. Dibuje el esquema de un sistema de correo, incluyendo gestión de alias y encaminamiento. 11 Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos 52. ¿Por qué en muchas aplicaciones se usa el conjunto de caracteres US-ASCII-7 para formar los mensajes que intercambian un cliente y su servidor? 53. El servidor POP3 realiza su servicio en tres fases. ¿Cuáles son? ¿Qué comandos intervienen en cada una de ellas?. 54. Indica qué protocolo (o protocolos) de aplicación emplean cada una de estas órdenes (comandos) y cuál es su significado. Orden GET PORT HELO STAT HEAD MAIL FROM DATA RETR RCPT TO LIST Protocolo Significado de la orden 55. Se dispone de un servidor FTP del que queremos bajarnos un fichero que está públicamente disponible (acceso anónimo), ¿Podríamos descargar el fichero utilizando un cliente TELNET? Justifica la respuesta. 12 Arquitectura de Redes y Servicios de Telecomunicación (ARST) Cuestiones y Problemas Propuestos Sobre seguridad, compresión y transmisión de datos multimedia ____________________________________________ 56. Explica brevemente a que hacen referencia los siguientes objetivos de la seguridad en redes: Integridad, confidencialidad y autenticación. 57. ¿Cuál es el objetivo de una función hash?, indica al menos una aplicación de seguridad en la que se utiliza. 58. Realiza el cifrado clásico por columnas (transposición) del texto “En un lugar de la Mancha de cuyo nombre no quiero acordarme” con la clave k = {13524}. No consideréis los espacios en blanco a la hora de hacer el cifrado. 59. Si tenemos una fuente de 5 símbolos cuyas frecuencias de aparición son A(15), B(10), C(5), D(4) y E(1), ¿cuál sería la asignación de bits que Huffman asociaría al símbolo "E"?. Si comprimimos la secuencia ABCADBEBAA, ¿cuál sería la tasa de compresión resultante si los símbolos sin comprimir necesitan tres bits cada uno? 60. Explica brevemente los pasos de codificación del compresor de imagen JPEG 61. Explica brevemente en qué consiste la estimación de movimiento (búsqueda de macrobloques) en un compresor de vídeo MPEG. 62. Transmisión de datos multimedia: Describe brevemente la misión de los siguientes protocolos: RSVP, RTP y RTSP. 13
© Copyright 2024