Examen de Redes - ETSIA – 9 de septiembre

Anuncio
Examen de Redes - ETSIA – 9 de septiembre - Primer Parcial
Apellidos, Nombre:
Grupo:
AUTORIZO a los profesores de la asignatura Redes de 2º curso de la ETSIA a publicar las calificaciones
de los exámenes de la asignatura en la web o microweb de la asignatura.
Firma: ..................................................
1. (0,5 puntos) Indica cómo puede un servidor web saber qué cliente (Mozilla, Internet Explorer, etc.) está
solicitándole una página web. ¿Lo puede saber siempre? Justifica la respuesta.
Mediante una cabecera en la petición HTTP. Concretamente la cabecera User-Agent:
No lo puede saber siempre ya que esta cabecera no es obligatoria.
2. (1 punto) El protocolo SMTP no requiere la autenticación del cliente. ¿Debe permitirse que clientes
ajenos a la organización que gestiona un servidor SMTP abran una sesión SMTP en el servidor (tengáse
en cuenta que estos clientes pueden estar incluidos en agentes de usuario u otros servidores)? ¿Por qué?
¿Qué acciones deberían permitírseles a cada uno de estos tipos de clientes?
Sí debe permitirse que clientes ajenos a la organización abran una sesión SMTP en el servidor. Es
necesario para que otros servidores SMTP hagan llegar sus mensajes a los destinatarios de la
organización.
Estos clientes “ajenos” sólo deberían tener la posibilidad de entregar mensajes dirigidos a
destinatarios de la propia organización. No se les debería permitir que utilizasen a nuestro
servidor como retransmisor para enviar mensajes a otros destinatarios externos.
3. (0,75 puntos) En una comunicación de datos mediante FTP, ¿qué es el modo activo?, ¿cómo se conoce la
dirección IP y el puerto al que conectarse?
Modo activo: cuando se va a transferir un archivo, el servidor inicia la conexión de datos
desde su puerto 20 al puerto que le indica el cliente. Para comunicarle el puerto de conexión (y
la dirección IP) el cliente envía por la conexión de control la orden
PORT d1,d2,d3,d4,p1,p2
donde d1.d2.d3.d4 es la dirección IP en la notación usual y p1*256+p2 es el puerto en decimal.
1
4. (2 puntos) Dado el siguiente servidor escrito en Java:
import java.net.*;
import java.io.*;
class servidor {
public static void main(String args[]) throws IOException {
ServerSocket ss=new ServerSocket(7777);
while (true) {
Socket s=ss.accept();
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
out.println("Bienvenido!");
s.close(); }
}
}
a) Escribe un cliente en Java que se conecte a este servidor que se ejecuta en “zoltar.redes.upv.es”,
lea la información que envía el servidor y la visualice por pantalla.
import java.net.*;
import java.io.*;
class cliente {
public static void main(String args[]) throws UnknownHostException,IOException {
Socket s = new Socket("zoltar.redes.upv.es",7777);
BufferedReader entrada =
new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println(entrada.readLine());
}
}
b) Diseña una versión concurrente del servidor.
import java.io.*;
import java.net.*;
class servidorConcurrente extends Thread {
Socket sock;
servidorConcurrente(Socket s) { sock = s; }
public void run() {
try {
PrintWriter salida = new PrintWriter(sock.getOutputStream(),true);
salida.println("Bienvenido!");
sock.close();
}
catch (Exception e) { }
}
public static void main(String[] args) throws IOException {
ServerSocket ss=new ServerSocket(7777);
while (true) {
Socket s=ss.accept();
servidorConcurrente t = new servidorConcurrente(s);
t.start();
}
}
}
5. (2 puntos) Tras resolver el nombre de un servidor web, un cliente se conecta a él para obtener una página
que contiene un documento HTML de 100 bytes y dos gráficos de 3000 bytes cada uno (3 objetos en
2
total). Las conexiones emplean los mecanismos de control de la congestión TCP, con tamaño inicial de
ventana de congestión igual a uno. Para cada segmento recibido se genera un ACK de forma inmediata.
El MSS del segmento es de 1000 bytes. Todas las peticiones HTTP tienen un tamaño de 100 bytes.
El nivel de enlace añade cabeceras de 14 bytes y no impone ninguna restricción al tamaño máximo o
mínimo de trama. El nivel de red añade cabeceras de 20 bytes. La velocidad de transmisión es 10 Mbps,
y el tiempo de propagación 1 segundo.
Calcula el tiempo que tarda en bajarse dicha página si:
a) El navegador emplea el protocolo HTTP 1.0 y no admite conexiones concurrentes.
b) El navegador y el servidor utilizan el protocolo HTTP 1.1 sin pipeline.
La solución a este problema no es única. Mostraremos aquí una de las posibles soluciones.
a) HTTP 1.0: conexiones no persistentes. Se necesita una conexión para cada uno de los objetos.
SYN
SYN
CK
,A
SYN
ACK
GET
SYN
RTT 1
L
HTM
ACK
RTT 3
ACK
RTT 4
K
RTT 1
ACK
GET
. 1.1
Graf
ACK
. 1.2
Graraf f. 1.3
GACK
ACK
. 1.4
Graf
ACK
RTT 2
FIN
FIN, ACK
, AC
Para cada gráfico se necesitarán 4 segmentos, ya que hay que
transmitir 3000 bytes más las cabeceras HTML. El tiempo de transmision de
las cabeceras HTML lo despreciaremos ya que se trata de unos pocos bytes.
Desglosaremos el cálculo en dos partes: los tiempos de transmisión y los
de propagación.
FIN
FIN, ACK
ACK
RTT 2
RTT 3
RTT 4
RTT 5
RTT 6
tiempos
El tiempo de transmisión diferirá para los distintos segmentos, ya que tienen distintas longitudes:
–
segmentos sólo de control (ACKs, SYN, FIN) = 20 + 20 + 14 = 54 bytes (20 de la cabecera TCP, 20 de
la cab. IP y 14 de la cab. de enlace de datos).
–
Gets y página HTML = 20 + 20 + 14 + 100 = 154 bytes
–
Gráficos = 1054 bytes
T =27×544×1546×1054×8=63.026/10 7=6,3×10−3 s.
trans
El tiempo de propagación comprende 2 segundos por cada RTT (exceptuando el RTT 6).
T =4×25×25×22=30 s.
propag
Como puede verse el tiempo de transmisión es despreciable frente al de propagación ya que es 3 órdenes
de magnitud menor, por lo que el tiempo necesario para descargarse la página puede estimarse como:
T ≈ T ≈30 s.
propag
total
3
b) HTTP 1.1: conexión persistente. Una conexión para todos los objetos.
SYN
SYN
, AC
K
RTT 1 Nota: por claridad en el dibujo durante el RTT sólo se ha dibujado un
único ACK de los 4.
ACK
GET
L
HTM
ACK
GET
.1
r
G af. 1. 1.2
f
a
r
G ACK
ACK
Graf. 1.3.4
Graf. 1
GET
.1
r
G aff.. 22.2
a
r
G . 2.3
Graf
Graf. 2.4
ACK
FIN
FIN, ACK
ACK
El tiempo de propagación es:
RTT 2
T =7×2=14 s.
propag
El tiempo de transmisión es:
RTT 3
7
−3
T =15×544×1546×1054×8=61.578/10 =6,1×10
trans
s.
También en este caso podemos aproximar el tiempo total al de
RTT 4
propagación.
T ≈ T ≈14 s.
propag
total
RTT 5
RTT 6
RTT 7
6. (1 punto) El host B recibe peticiones de conexión TCP desde un host remoto llamado “A”. Realiza, para
cada uno de los escenarios siguientes, un esquema gráfico detallando qué segmentos se intercambiarían
TRAS la llegada de los segmentos que se indican. No hay que detallar ningún segmento de la posible
fase de transferencia de datos.
a) Llega una petición de conexión desde “A”, con número de secuencia 34, a un puerto donde no hay
ningún servidor escuchando.
SYN , 34
CK 35
RST y, A
B rechaza la conexión
b) Llega una petición de conexión desde “A”, con número de secuencia 34, a un puerto donde hay un
servidor escuchando. Antes de que se haya completado el establecimiento de la conexión en “B”
llega, desde “A”, una retransmisión de la petición anterior.
SYN , 34
SYN , 34
5
, ACK 3
0
0
0
2
N
SY
35
0 , ACK
SYN 200
ACK 200
1
ACK 20
01
B elige como número de
secuencia inicial 2000
Conexión establecida
Se ignora
4
c) “B” envía una petición de conexión a “A”, con número de secuencia 75, a un puerto donde hay un
servidor escuchando. Instantes después, “B” recibe una petición de conexión desde “A”, con número
de secuencia 34, a un puerto donde también hay un servidor escuchando.
A elige como número de
secuencia inicial 3000
Conexión establecida
5
SYN 7
SYN 3
4
SYN 3
000, A
CK 76
5
ACK 3
,
0
0
0
SYN 2
001
ACK 3
ACK 2
001
B elige como número de
secuencia inicial 2000
Conexión establecida
d) Llega una petición de conexión desde “A”, con número de secuencia 34. Tras enviar “A” la petición
de conexión, el computador A es reiniciado. Cuando “B” contesta esta petición de conexión, el
computador A vuelve a estar totalmente operativo, ¿cuál sería su respuesta?
SYN , 34
A se reinicia y no tiene
constancia de su petición
A rechaza la conexión
K 35
000 , AC
SYN 2
B elige como número de
secuencia inicial 2000
RST x, A
CK 2001
7. (0,5 puntos) ¿Qué tipo de información obtenemos cuando hacemos una consulta al servidor DNS con el
nombre de dominio upv.es y el tipo MX?, ¿y si repetimos la consulta con el tipo NS?
Cuando hacemos una consulta del tipo MX al servidor DNS acerca del dominio upv.es obtenemos los
nombres de dominio de los servidores de correo electrónico que atienden el dominio de correo upv.es.
Si hacemos la misma consulta, pero con el tipo NS, obtenemos nombres de dominio de los servidores de
nombres para el dominio upv.es.
8. (0,5 puntos) Explica de qué forma se puede reducir el tiempo de respuesta en los accesos a páginas web
al usar un proxy web.
Al usar un proxy web, todas las peticiones de los clientes se canalizan por dicho proxy. Este proxy podría
guardar una caché de las páginas consultadas por los clientes, de forma que cuando un cliente accede a
una página web determinada, si antes otro cliente ha accedido a esa misma página, el proxy no necesita
solicitar la página al servidor web correspondiente sino que la puede sacar de su propia caché,
ahorrándose el tiempo de la consulta y de esta forma reduciendo el tiempo de respuesta que observa el
cliente.
5
9. (1 punto) Suponiendo que el emisor tiene siempre datos pendientes de transmitirse, muestra en la tabla
siguiente la evolución de la ventana de transmisión del emisor (en segmentos) en función del tiempo
(medido en RTTs), para una conexión TCP que se inicia en RTT=0 con la ventana de congestión igual a
2 segmentos y la ventana de permisos del receptor permanentemente igual a 64 segmentos. Asimismo,
indica cómo se modifica esta ventana si en RTT=10 vence un temporizador.
RTT
0
1
2
3
4
5
6
7
8
9
Vtrans
2
4
8
16
32
64
64
64
64
64
Tras vencer el temporizador en RTT= 10, Vtrans =
1
10.(0,75 puntos) Encuentra los cinco errores de la siguiente cabecera TCP, sabiendo que corresponde al
primer segmento de establecimiento de una conexión realizada por un cliente estándar de HTTP hacia el
correspondiente servidor estándar, y que el campo de opciones no está vacío. Razona la respuesta.
Puerto TCP origen:
Puerto TCP destino:
Número de secuencia:
Número de reconocimiento:
Longitud de la cabecera:
Reservado:
Código:
Tamaño de la ventana (en decimal)
Checksum (en hexadecimal)
Opciones (en bytes hexadecimales)
Relleno:
120
80
1400
0
5
0
URG = 0
RST = 0
ACK = 1
SYN = 1
PSH = 0
FIN = 0
86535
9FB0
02- 04 - 05 – B4 (MSS = 1460)
04 – 02 (activar reconocimiento selectivo)
(sin relleno)
Nota: los valores del checksum y de las opciones son correctos.
Error 1: El puerto origen no puede ser el 120, dado que es un cliente estándar y por tanto el puerto que
utilizase debería ser mayor que 1023.
Error 2: La longitud de la cabecera no puede ser 5, dado que el cabecera tiene opciones y una longitud
de 5 corresponde a una cabecera sin opciones. El valor correcto es 7.
Error 3: El bit ACK no puede ser 1 dado que es el primer segmento que se envía y aun no hay nada que
reconocer.
Error 4: El tamaño de la ventana no puede ser 86.535 puesto que ese valor es superior al valor máximo
de 64K.
Error 5: Dado que el campo de opciones no abarca un número entero de palabras de 32 bits, necesita ser
rellenado para ajustarse a un múltiplo entero de 32 bits. Sin embargo, el relleno está vacío, cuando
debería ser de 16 bits.
6
Descargar