Arquitectura De Redes Y Servicios De Telecomunicación

   EMBED

Share

Preview only show first 6 pages with water mark for full document please download

Transcript

Departamento de Física y Arquitectura de Computadores ARQUITECTURA DE REDES Y SERVICIOS DE TELECOMUNICACIÓN Junio 2014 Teoría: 1) ¿Qué sucedería si por error recibiera UDP un datagrama UDP que originalmente iba destinado a otra máquina?. (0,5 ptos) 2) 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 RTT estimado es 5 segundos. (0,5 ptos) 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 RTTestimado el estimado para el paquete 3. Nota 2: Supóngase que el Timeout se calcula con la siguiente expresión: TOut = β*RTTestimado 3) En una LAN con un RTT estimado de 1 ms, indica la velocidad mínima de transmisión que debe alcanzarse en esta red para que se logre una utilización del 100% de su capacidad con una única conexión TCP. (0.5 ptos) NOMBRE Y APELLIDOS:_______________________________________________ Departamento de Física y Arquitectura de Computadores 4) 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: (1 pto) 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 y (2) no se pierde ningún segmento, dibuja en un gráfico la evolución de los parámetros CWND, SSTHRES. 20 18 16 14 12 10 8 6 4 2 1 2 3 4 5 6 7 Tiempo (segundos) 8 9 10 (b) Lo mismo que el apartado (a) pero suponiendo que (1) se producen dos eventos de pérdida (se pierde el primer segmento enviado) en los RTTs número 5 y 10 (2,5 y 5 segundos respectivamente) y (2) en el instante 5,5 se recibe una indicación de ventana de 3000 bytes. 2 Segmentos (MSS) Departamento de Física y Arquitectura de Computadores 20 18 16 14 12 10 8 6 4 2 1 2 3 4 5 6 7 Tiempo (segundos) 8 9 10 (c) Calcula la velocidad de transferencia (bps) que observa el usuario en ambos 5) Al utilizar el interfaz de sockets para implementar un servidor secuencial TCP, ¿cuál es la finalidad de la cola creada mediante la llamada listen? ¿Tiene sentido utilizar esta cola cuando se está implementando un servidor concurrente TCP?. Justifica las respuestas. (0.5 ptos) 3 Departamento de Física y Arquitectura de Computadores 6) Suponiendo que tenemos un socket conectado de tipo SOCK_STREAM, indique lo que tendremos que hacer para (1) enviar un mensaje como datos urgentes TCP, y (2) utilizar la función PUSH de TCP para el envío de mensajes a través de una conexión. Acompañar las respuestas con ejemplos de uso (pseudo-código). (0.5 ptos) 7) ¿A qué tipo de servidor corresponde cada uno de los siguientes esquemas?(0.5 ptos) 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) 4 S.O. Departamento de Física y Arquitectura de Computadores 8) Cita tres circunstancias en las cuales sea preferible un servidor sin conexión a un servidor con conexión. (0.5 ptos) 9) A continuación se muestra la ejecución del siguiente comando: (0.5 ptos) 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 “È*ý”? 10) Tanto en correo electrónico como en NEWS, el final de un mensaje se delimita con la secuencia <.>. ¿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? (0,5 ptos) 5 Departamento de Física y Arquitectura de Computadores 11) 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. (0.5 ptos) 12) Sea una fuente de 5 símbolos con sus probabilidades de aparición A(0.8), B(0.05), C(0.05), D(0.05) y E(0.05). Indicar la secuencia de bits resultante al comprimir la secuencia “AAA” con Huffman y una codificación aritmética. (0.5 ptos) 13) ¿Cuál es el objetivo de una función hash?, indica al menos una aplicación de seguridad en la que se utiliza. (0.5 ptos) 6 Departamento de Física y Arquitectura de Computadores Prácticas: (1) En la práctica 1 se analizó el comportamiento del protocolo TCP a través del analizador de protocolos Wireshark. Se utilizó el fichero pr.pcap que contiene una captura de una transferencia FTP de un archivo pdf de 3.5 MB aproximadamente. En la figura se muestra la evolución de los números de secuencia. ¿cuál ha sido la razón del corte producido entre los instantes 0.5 y 0.6 ? (0.75 ptos) 7 Departamento de Física y Arquitectura de Computadores (2) En la práctica sobre el control de congestión en TCP obtenemos una gráfica como la que se muestra abajo. ¿Qué representan cada una de las series?, ¿Por qué tienen forma de escalera ?, ¿A qué se debe la pequeña diferencia entre las dos series?. Justifica las respuestas. (0.75 ptos) 8 Departamento de Física y Arquitectura de Computadores (3) Detecta y corrige los fallos que encuentres en la siguiente implementación del servidor de echo estándar concurrente con conexión. (0.75 ptos) #include #include #include #define LINELEN 80 #define QLEN 5 char *service = "37"; // El puerto bien conocido de echo es 7 void main (int argc, char *argv[]) { char buff[LINELEN]; struct sockaddr_in serv_addr, cli_addr; int ms, ss, cli_size, nbuf; struct servent *pse,*ppe; // struct protoent *ppe; switch (argc) { case 2: service = argv[1]; case 1: break; default: fprintf (stderr, "Uso: %s [port]\n",argv[0]); exit (1); } memset((char *)&serv_addr,0,sizeof(serv_addr)); serv_addr.sin_family= AF_INET; serv_addr.sin_addr.s_addr=INADDR_ANY; if (pse=getservbyname(service,"tcp")) serv_addr.sin_port=pse->s_port; else if ((serv_addr.sin_port=htons(atoi(service)))==0) errexit("Servicio desconocido\n"); if ((ppe=getprotobyname("tcp"))==0) errexit("No encuentro el protocolo tcp\n"); ms=socket(AF_INET,SOCK_STREAM,ppe->p_proto); if (bind(ms,&serv_addr,sizeof(serv_addr))<0) errexit("No puedo instalar el servidor\n"); while(1) { if((ss=accept(ms,&cli_addr,&cli_size))<0) errexit("Error al aceptar nuevos clientes\n"); if (fork()) close(ms); else { close(ss); while ((nbuf=read(ms,buff,LINELEN))>0) write(ms,buff,sizeof(buff)); close(ms); exit(0); } } } 9 Departamento de Física y Arquitectura de Computadores (4) En la práctica cuatro se utilizó el módulo ACE (Application Characterization Environment) de OPNET IT Gurú para estudiar y analizar el rendimiento de las aplicaciones de red. La figura de abajo representa la información que una de las herramientas ACE ha suministrado acerca del rendimiento de una transferencia FTP en un escenario con pérdidas. ¿Podrías indicar las conclusiones que se obtienen de esta gráfica? (0.75 ptos) 10 Departamento de Física y Arquitectura de Computadores Anexo A: Formatos de cabecera de protocolos TCP/IP IP ARP 0 4 8 vers longc 16 tipo servicio identificación cabecera 19 tiempo vida 24 31 0 8 tipo de hardware longitud total flags protocolo desplaz. fragmento lon. dir. física checksum de la cabecera dirección IP destino direc. IP fuente (octetos 2-3) dir. física 2 (otetos 0-1) relleno dirección física 2 (octetos 2-5) dirección IP 2 (octetos 0 -3) ICMP (destino inalcanzable) tipo (8 o 0) código (0) checksum identificador número de secuencia datos opcionales ... tipo (3) 16 Puerto TCP origen 24 31 UDP 0 cabecera 16 Puerto TCP destino Puerto origen UDP Longitud mensaje Número de reconocimiento reservado código checksum checksum cabecera IP + 64 primeros bits del datagrama Número de secuencia longc código (0-12) no se emplea (debe ser cero) TCP 5 4 3 2 1 0 Campo código: URG-ACK-PSH-RST-SYN-FIN 10 operación dir. IP fuente (octetos 0-1) ICMP (Echo request/Echo reply) 4 lon. dir. prot. dir. fís. fuente (octetos 4-5) DATOS 0 31 tipo de protocolo dirección física fuente (octetos 0-3) dirección IP fuente opciones IP (variable) 16 31 Puerto destino UDP Checksum DATOS ventana puntero a datos urgentes opciones (si las hay) relleno DATOS Puertos bien conocidos echo daytime chargen ftp-data ftp telnet smtp domain tftp finger www pop3 nntp 7/tcp/udp 13/tcp/udp 19/tcp/udp ttytst source 20/tcp 21/tcp 23/tcp 25/tcp mail 53/tcp/udp nameserver 69/udp 79/tcp 80/tcp 110/tcp postoffice 119/tcp usenet news Identificadores de protocolos TCP UDP ICMP 0x06 0x11 0x01 IP ARP RARP Novel 0x0800 0x0806 0x8035 0x8137 Tipos de Tramas Campo Flags del paquete IP Bit 0 Bit 1 Bit 2 N/A (Not Assigned) DF (Don’t Fragment) MF (More Fragments) 11 Departamento de Física y Arquitectura de Computadores Anexo B: Relación de rutinas y llamadas al sistema /* Definición de una dirección IP */ struct in_addr { u_long s_addr; } /* Definición de una dirección de socket */ struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; } /* familia de direcciones */ /* número de puerto */ /* dirección IP */ /* buffer de relleno. Inicializado a ceros */ /* Declaración de funciones que podemos utilizar */ extern errexit (char *formato, int error); extern int strcmp (char *dest, char *orig); extern void bcopy (char *origen, char *destino, int nbytes); extern void bzero (char *data, int nbytes); extern char * fgets (char * buffer, int size, int fd); extern int socket (int af, int type, int protocol); extern int connect (int s, const void *addr, int addrlen); extern int accept (int socket, struct sockaddr *dir_clnt, int *dir_size); extern int bind (int s, struct sockaddr *addr, int addrlen); extern int listen (int s, int qlen); extern int read (int sock, char *buffer, int size); extern int write (int sock, char *buffer, int size); extern int sendto (int sock, char *buffer, int size, int flags, struct sockaddr *to, int addrlen); extern int recvfrom (int sock, char *buffer, int size, int flags, struct sockaddr *to, int *addrlen); extern int close (int sock); extern int shutdown (int sock, int c); extern int select (int nfds, fd_set * rfds, fd_set * wfds, fd_set * excp, struct timeval * timeout); FD_ZERO (fd_set* set); FD_SET (sock, fd_set* set); FD_ISSET (sock, fd_set* set); extern int connectTCP (char *host, char *service); extern int connectUDP (char *host, char *service); extern int passiveTCP (char *service, int qlen); extern int passiveUDP (char *service); extern int fork( ); 12