Prueba Práctica 2 - Arquitectura de Redes de
Computadores
Anónimos
1. ¿Cuál es la dirección IP y número de puerto TCP utilizado por tu equipo
para transferir el archivo al servidor? (Para responder a esta pregunta,
puedes seleccionar un mensaje HTTP y explorar los detalles del paquete
TCP utilizado para transportarlo, usando los ”details of the selected packet
header window”.
2. ¿Cuál es la dirección IP del servidor? Qué número de puerto se está
utilizando para enviar y recibir segmentos TCP en esta conexión?
3. ¿Cuál es el número de secuencia del segmento TCP SYN que se utiliza
para iniciar la conexión TCP entre el cliente y [Link]? ¿Qué car-
acterı́stica identifica este segmento como un segmento SYN?
4. ¿Cuál es el número de secuencia del segmento SYNACK enviado por
[Link] al cliente en respuesta al SYN? ¿Cuál es el valor del campo
de acuse de recibo en el segmento SYNACK? ¿Cómo [Link] de-
terminar ese valor? ¿Qué caracterı́stica identifica este segmento como un
segmento SYNACK?
5. ¿Cuál es el número de secuencia del segmento TCP que contiene el co-
mando HTTP POST? Ten en cuenta que con el fin de encontrar el comando
POST, deberás explorar el campo de contenido del paquete en la parte in-
ferior de la ventana Wireshark, en busca de un segmento con un ”POST”
dentro de su campo de datos.
6. Considera el segmento TCP que contiene el HTTP POST como el primer
segmento de la conexión TCP. ¿Cuáles son los números de secuencia de los
primeros seis segmentos en la conexión TCP (incluyendo el segmento que
contiene el HTTP POST)? ¿En qué momento se envió a cada segmento?
¿Cuándo se ha recibido el ACK para cada segmento? Teniendo en cuenta
la diferencia entre el tiempo de envı́o de cada segmento TCP, y la recepción
de su reconocimiento, ¿cuál es el valor de RTT para cada uno de los seis
segmentos?
1
7. ¿Cuál es el valor estimado del RTT, EstimatedRTT después de la re-
cepción de cada ACK? Para ello, supón que el valor estimado de RTT, Es-
timatedRTT, es igual al RTT medido para el primer segmento y, a contin-
uación, se calcula utilizando la ecuación para el EstimatedRTT, para todos
los segmentos posteriores. EstimatedRTT(K) = a·EstimatedRTT(K-1) + (1-
EstimatedRTT(K-1) + (1-a)RTT(K) a=7/8
8. ¿Cuál es la longitud de cada uno de los seis primeros segmentos TCP?
9. ¿Cuál es mı́nimo espacio (aconsejable) disponible en el buffer para la re-
cepción de la traza o captura completa? ¿La falta de espacio en el buffer del
receptor puede tener en algún caso algún efecto sobre el servidor?
10. ¿En la captura realizada se han retransmitido segmentos? ¿Qué compro-
baste en la traza para responder a esta pregunta?
11. ¿Cuántos datos suele reconocer el receptor en un ACK? ¿Puedes iden-
tificar en la captura casos en que el receptor reconoce varios segmentos
recibidos.
12. ¿Cuál es el throughput (bytes transferidos por unidad de tiempo) para
la conexión TCP? Explica cómo calculaste este valor.
13. Utiliza la herramienta gráfica Time-Sequence-Graph (Stevens) para ver
el número de secuencia en función del tiempo para los segmentos enviados
desde el cliente al servidor [Link]. Identifica dónde comienza y
termina la fase de Slowstart de TCP, y dónde comienza el mecanismo de
control de congestión para evitar la misma. Comenta en qué difiere el valor
medido del comportamiento ideal de TCP estudiado en teorı́a y por qué.
Responde a cada una de estas preguntas para la captura que has realizado.
Averigua como borrar la caché local DNS de tu equipo.
3.1.- Captura y análisis de tráfico DNS con Wireshark.
1. Localiza los mensajes de consulta y respuesta DNS. ¿Se envı́an sobre UDP
o TCP?
2. ¿Existe algún segmento de reconocimiento a nivel de transporte? ¿Por
qué? Explica con detalle las diferencias entre TCP y UDP.
3. Identifica los campos del datagrama y su valor.
2
4. ¿Qué longitud tiene el mensaje DNS? ¿Corresponde con el campo longi-
tud del datagrama UDP? ¿Por qué? ¿Cuál es el lı́mite práctico en IPv4 para
la longitud de datos que se impone por el protocolo IP subyacente?
5. ¿Que valores y/o campos se utiliza para calcular el campo checksum en
UDP?
6. ¿Cuál es el puerto destino en el mensaje de consulta DNS? ¿Cuál es el
puerto origen en el mensaje de respuesta de DNS?
7. ¿A qué dirección IP se envı́a el mensaje de consulta DNS? Utiliza cat
/etc/[Link] para determinar la dirección IP del servidor local de DNS.
¿Coinciden ambas direcciones IP?
8. Examina el mensaje de consulta DNS. ¿Qué ”Tipo” de consulta DNS es?
¿El mensaje de consulta DNS contiene alguna ”respuesta”?
9. Examina el mensaje de respuesta de DNS. ¿Cuántas ”respuestas” provée?
¿Qué contiene cada una de estas respuestas?
10. Estudia ahora el paquete TCP SYN que envı́a tu ordenador con posteri-
oridad. ¿La dirección IP destino del paquete SYN corresponde a alguna de
las direcciones IP proporcionadas en el mensaje de respuesta de DNS?
11. La web a la que has accedido contiene imágenes. Antes de recuperar
cada imagen, realiza tu host otras consultas DNS?
12. ¿Cuál es el puerto destino en el mensaje de consulta DNS? ¿Cuál es el
puerto origen en el mensaje de respuesta de DNS?
13. ¿A qué dirección IP se envı́a el mensaje de consulta DNS? ¿Es ésta la
dirección IP de tu servidor DNS local por defecto?
14. Examina el mensaje de consulta DNS. ¿Qué ”Tipo” de consulta DNS
es? ¿El mensaje de consulta DNS contiene alguna ”respuesta”?
15. Examina el mensaje de respuesta de DNS. ¿Cuántas ”respuestas” provée?
¿Qué contiene cada una de estas respuestas?
4.1.- La interacción básica HTTP GET / respuesta
1. ¿Qué versión de HTTP se ejecuta en el navegador? ¿Qué versión de
3
HTTP se ejecuta en el servidor?
2. ¿Qué idiomas (si los hay) indica el navegador que puede aceptar del servi-
dor?
3. ¿Cuál es la dirección IP de tu ordenador? ¿Y del servidor [Link]?
4. ¿Cuál es el código de estado que devuelve el servidor al navegador?
5. ¿Cuándo fue el archivo HTML actualizado por última vez en el servidor?
6. ¿Cuántos bytes de contenido se envı́an al navegador?
7. Observando los datos en bruto en la ventana de contenido de los paque-
tes, ¿localizas alguna cabecera de datos que no se muestre en la ventana de
listado de paquetes? Si es ası́, nombra una y justifica tu respuesta.
4.2.- La interacción HTTP GET CONDICIONAL / respuesta
1. Inspecciona el contenido de la primera solicitud HTTP GET del naveg-
ador al servidor. ¿Existe una lı́nea de ”IF-MODIFIED-SINCE” en el HTTP
GET?
2. Inspecciona el contenido de la respuesta del servidor. ¿El servidor devolvió
explı́citamente el contenido del archivo? ¿Cómo puedes saberlo? Justifica tu
respuesta.
3. Ahora inspecciona el contenido de la segunda petición HTTP GET desde
el navegador al servidor. ¿Existe una lı́nea de ”IF-MODIFIED-SINCE” en
el HTTP GET? Si es ası́, ¿qué formato sigue y qué información contiene la
cabecera ”IF-MODIFIED-SINCE:”?
4. ¿Cuál es el código de estado HTTP y la frase devuelta por el servidor
en respuesta a esta segunda petición HTTP GET? ¿El servidor devolvió
explı́citamente el contenido del archivo? ¿Cómo puedes saberlo? Justifica tu
respuesta.
4.3.- Obtención y descarga de documentos largos.
1. ¿Cuántos mensajes de solicitud HTTP GET solicitud envió el navegador?
En la captura realizada, ¿qué número de paquete contiene el mensaje GET
para la solicitud de la Declaración de Derechos?
4
2. ¿Qué número de paquete de la captura realizada contiene el código de
estado y la frase asociada con la respuesta a la solicitud GET HTTP?
46. ¿Cuál es el código de estado y la frase en la respuesta?
3. ¿Cuántos segmentos TCP de datos son necesarios para transportar la
única respuesta HTTP que contiene el texto de la Declaración de Derechos?