Está en la página 1de 4

Sistemas Telematicos I

Ejercicios: UDP y TCP


Universidad Rey Juan Carlos
Curso 2008/2009
Resumen
Estos ejercicios estan orientados a entender el funcionamiento basico de los protocolos de
nivel de transporte UDP y TCP y a entender el funcionamiento de los mecanismos de control
de ujo y control de congestion de TCP.
Nota: Al cargar cada una de las capturas, es necesario ordenar los paquetes por su marca
de tiempo, pulsando en la pesta na Time, de esta forma podremos analizar lo que ha ocurrido
ordenadamente siguiendo el eje temporal.
1. Comunicacion UDP
En la traza udp.cap se muestra una comunicacion UDP. Contesta a las siguientes preguntas:
1. Direcciones IP y puertos involucrados en la comunicacion.
2. En que red se ha realizado la captura.
3. N umero de paquetes UDP y n umero de bytes de datos intercambiados.
4. El comando nc puede utilizarse para generar traco UDP. Por ejemplo, el siguiente comando
enva lo introducido por la entrada estandar a la maquina 10.0.0.1, puerto UDP 11111:
pc1:~# nc -u 10.0.0.1 11111
Explica razonadamente que traco se generara en las siguientes situaciones cuando se in-
tenta enviar datagramas UDP a la maquina 11.0.0.2, puerto 33000:
a) Existe la red 11.0.0.0 y hay ruta para llegar hasta ella, pero no existe la maquina 11.0.0.2.
b) Existe la maquina 11.0.0.2 pero no hay una aplicacion escuchando en el puerto 33000.
2. Comunicacion TCP
2.1. Establecimiento de conexion, envo de datos y nalizacion de cone-
xion
En la traza tcp.cap se muestra una comunicacion TCP entre dos aplicaciones.
Para ltrar el traco TCP de una conexion que aparezca en una traza se puede seleccionar uno de
sus segmentos y luego seleccionar la opcion de men u AnalyzeFollow TCP Stream. De esta forma
wireshark solo mostrara los segmentos de la conexion seleccionada.
Contesta a las siguientes preguntas:
1
1. Direccion IP y puerto del cliente TCP y direccion IP y puerto del servidor TCP.
2. Cuantos segmentos TCP se han enviado desde el cliente al servidor?
3. Cuantos segmentos TCP se han enviado desde el servidor al cliente?
4. Cuantos bytes de datos enva el servidor al cliente? Razona la respuesta. Indica cuales
son los n umeros de secuencia del SYN y del FIN que enva el servidor, y que relacion tie-
nen con la cantidad de datos enviada por el servidor al cliente. En el men u de Wireshark
Edit->Preferences->Protocols->TCP puedes desactivar la opcion Relative Sequence Num-
bers & Window Scaling. De esta forma podras observar los n umeros de secuencia reales, en
lugar de los n umeros relativos que muestra por omision Wireshark.
5. Cuantos bytes de datos enva el cliente al servidor? Razona la respuesta. Indica cuales
son los n umeros de secuencia del SYN y del FIN que enva el cliente, y que relacion tie-
nen con la cantidad de datos enviada por el cliente al servidor. En el men u de Wireshark
Edit->Preferences->Protocols->TCP puedes desactivar la opcion Relative Sequence Num-
bers & Window Scaling. De esta forma podras observar los n umeros de secuencia reales, en
lugar de los n umeros relativos que muestra por omision Wireshark.
6. Para cada uno de los segmentos de datos que enva el cliente al servidor, indica cual es el RTT.
Observa para ello los tiempos de envo de los segmentos y los de recepcion de los asentimientos.
7. Indica cual es el valor del campo de ventana anunciada al comienzo de la conexion en cada
uno de los dos sentidos. Indica cual es el valor real anunciado, teniendo en cuenta el factor de
escala que se incluye en las opciones.
8. Indica cual es el valor anunciado de MSS en las cabeceras opcionales en los dos sentidos.
Justica este valor teniendo en cuenta que el tama no maximo del campo de datos de un trama
Ethernet es 1500.
9. Indica los tama nos de las cabeceras de los segmentos medidos en palabras de 32 bits, y razona
por que son distintos.
10. Indica que extremo cierra antes la conexion.
11. El comando nc puede utilizarse para generar traco TCP. Por ejemplo, el siguiente comando
intenta establecer una conexion TCP con la maquina 10.0.0.1, puerto TCP 11111:
pc1:~# nc 10.0.0.1 11111
Explica razonadamente que ocurrira en las siguientes situaciones cuando se intenta estable-
cer una conexion TCP con la maquina 11.0.0.2, puerto 33000:
a) Existe la red 11.0.0.0 y hay ruta para llegar hasta ella, pero no existe la maquina 11.0.0.2.
b) Existe la maquina 11.0.0.2 pero no hay una aplicacion escuchando en el puerto 33000.
2.2. Retransmision de SYN
En la traza tcp-syn.cap se muestra una comunicacion TCP. Contesta a las siguientes preguntas:
1. Cuantas veces se enva el segmento SYN del cliente al servidor?
2. Indica la secuencia de marcas de tiempo de los segmentos SYN enviados, y explica sus valores.
3. Explica por que aparecen varios segmentos ACK repetidos.
2
3. Slow Start en el inicio de la conexion
En este experimento se observa el comportamiento del mecanismo de TCP arranque lento (Slow
Start).
Carga en Wireshark la captura slow-start.cap. Selecciona el primer segmento que enva el
cliente al servidor, y a continuacion muestra en Wireshark el diagrama Time-Sequence Graph
(tcptrace) mediante el men u StatisticsTCP Stream GraphTime-Sequence Graph (tcptrace).
Observa la graca de la captura, y cada uno de los segmentos. Explica como afecta Slow Start
el envo de nuevos segmentos en el inicio de la conexion.
4. Timeout
En este experimento se observa el comportamiento del mecanismo de control de congestion de
TCP tras un timeout.
Carga en Wireshark la captura ss-timeout.cap. Selecciona el primer segmento que enva el
cliente al servidor, y a continuacion muestra en Wireshark el diagrama Time-Sequence Graph
(tcptrace) mediante el men u StatisticsTCP Stream GraphTime-Sequence Graph (tcptrace).
1. Observa la captura y explica como afecta Slow Start al envo de nuevos segmentos al inicio de
la conexion.
2. Estudia el comportamiento tras el timeout. Analiza tanto la graca como cada uno de los
segmentos. Explica que diferencia aprecias respecto al comportamiento al inicio de la conexion.
5. Fast Retransmit / Fast Recovery
En este experimento se observa el comportamiento de TCP tras la recepcion de 3 ACKs dupli-
cados.
Carga en wireshark la traza fr-fr.cap
1
.
1. Cuantas retransmisiones debidas a timeout se observan en la traza? Identica en que instante
se producen.
2. Cuantas retransmisiones debidas a Fast Retransmit se observan en la traza? Identica en
que instante se producen.
3. Observa la primera ocasion en la que se produce Fast Retransmit. Comprueba cuantos paquetes
se envan despues de haber recibido el primer ACK nuevo. Relaciona este valor con el valor
que tena la ventana de congestion cuando ocurrio Fast Retransmit.
4. Despues de enviar el paquete retransmitido en la primera ocasion en que se produce Fast
Retransmit, se envan nuevos segmentos antes de recibir ACKs. Cuantos? Por que?
5. Observa la segunda ocasion en la que se produce Fast Retransmit. Comprueba cuantos paquetes
se envan despues de haber recibido el primer ACK nuevo. Relaciona este valor con el valor
que tena la ventana de congestion cuando ocurrio Fast Retransmit.
6. Despues de enviar el paquete retransmitido en la segunda ocasion en que se produce Fast
Retransmit, se envan nuevos segmentos antes de recibir ACKs. Cuantos? Por que?
1
./fr-fr.cap
3
6. Ventana anunciada
En este experimento se observa como se comporta TCP atendiendo al valor de ventana anunciada.
Carga en wireshark la captura sondas.cap. Selecciona el primer segmento que enva el cliente
al servidor, y a continuacion muestra en Wireshark el diagrama Time-Sequence Graph (tcptrace)
mediante el men u StatisticsTCP Stream GraphTime-Sequence Graph (tcptrace).
Observa la captura y comprueba el comportamiento de la ventana anunciada a partir del seg-
mento 43.
Localiza en la traza anuncios de ventana 0 enviados por el servidor al cliente. Observa las sondas
de ventana que enva el cliente en ese periodo.
Explica el comportamiento de TCP entre los segmentos 43 y 87.
4

También podría gustarte