PDF de programación - Práctica 10 – Prestaciones en TCP

Imágen de pdf Práctica 10 – Prestaciones en TCP

Práctica 10 – Prestaciones en TCPgráfica de visualizaciones

Publicado el 1 de Julio del 2017
597 visualizaciones desde el 1 de Julio del 2017
536,0 KB
8 paginas
Creado hace 12a (02/05/2011)
Departamento de
Automática y Computación
Automatika eta
Konputazio Saila

Campus de Arrosadía
Arrosadiko Campusa
31006 Pamplona - Iruñea
Tfno. 948 169113, Fax. 948 168924
Email: [email protected]

Práctica 10 – Prestaciones en TCP

1- Objetivos

Análisis de TCP (Transmission Control Protocol) y prestaciones.

2- Material
Para la realización de esta práctica necesitaremos el siguiente equipamiento de los armarios:






3 PCs.
1 Concentrador Ethernet.
1 Conmutador Ethernet
4 cables categoría 5
3- Avisos generales
En los ordenadores dispuestos para la realización de estas prácticas (PC A, B y C) se ha creado
una cuenta de nombre arss y password telemat. Esta cuenta tiene permisos para ejecutar mediante
el comando sudo ciertos comandos restringidos normalmente al superusuario.

Si quieren conservar cualquier fichero entre sesiones guárdenlo en una memoria USB, dado que
no se asegura que los ficheros creados o modificados durante una sesión de prácticas se mantengan
para la siguiente.

4- Estados de una conexión TCP
Establecimiento

Configure en PCA y PCC una tarjeta de red, cada una con una dirección IP en el rango de

direcciones 10.3.armario.0/24: $ sudo ifconfig eth0 <ip> netmask <máscara>

Conecte PCA y PCC mediante el switch0 de su armario (consulte la documentación sobre los

armarios):

Una aplicación que funciona como servidor TCP, se programa para que pueda aceptar
conexiones. Hasta que haya alguna conexión de algún cliente la aplicación servidor TCP se
encontrará en estado LISTEN y cambiará de estado en el momento en el que el cliente se conecte.

 Ejecute tcpdump en PC A, en su interfaz eth0, especificando que sólo capture el tráfico TCP:

$ tcpdump -i eth0 tcp

Arquitectura de Redes Sistemas y Servicios: Práctica 10

Departamento de
Automática y Computación
Automatika eta
Konputazio Saila

Campus de Arrosadía
Arrosadiko Campusa
31006 Pamplona - Iruñea
Tfno. 948 169113, Fax. 948 168924
Email: [email protected]

Ensanche la ventana del terminal todo lo que pueda para ver cada segmento capturado en una sola

línea. Para interpretar la salida de tcpdump utilice la información de la siguiente figura:

Arquitectura de Redes Sistemas y Servicios: Práctica 10

Departamento de
Automática y Computación
Automatika eta
Konputazio Saila

Campus de Arrosadía
Arrosadiko Campusa
31006 Pamplona - Iruñea
Tfno. 948 169113, Fax. 948 168924
Email: [email protected]

 Arranque una aplicación servidor TCP que espere conexiones en el puerto 7777 en PC C,

utilizando las herramientas netem, de la siguiente forma:
$ nc -l -p 7777

 Para ver en qué estado se encuentra la conexión TCP en el lado del servidor (PC C) utilice el

comando netstat de la siguiente forma:
$ watch -n 0.5 netstat -nat
El comando watch permite ejecutar repetidamente el comando que se escriba a continuación,
en este caso netstat. La opción -n de watch permite especificar cada cuánto tiempo se repite
la ejecución, en este caso, cada 0.5 segundos.

Antes de continuar es importante que consulte el manual de netstat para entender bien el
significado de cada una de las columnas que aparecen al ejecutarlo.
El cambio de estado se produce muy rápidamente y no es posible apreciarlo, por ello es
necesario introducir un cierto retardo en la comunicación PC A – PC C. Teniendo en cuenta
que debe pasar de PC A a PC C (donde observará el cambio de estado), con un retardo de
diez segundos en la interfaz de PC A será suficiente. Para ello realice el siguiente comando:
$ sudo tc qdisc add dev eth0 root netem delay 10s
Para saber algo más sobre tc consulte su manual (man tc)

 Coloque en la pantalla las ventanas de los terminales de tcpdump, netstat y nc, para que

pueda visualizarlas simultáneamente.

 Observe en qué estado se encuentra el servidor antes de arrancar el cliente.

 Lance en PC A una aplicación cliente TCP que se conecte al servidor de PC C:

$ nc <ipPC C> 7777
Indique qué estados atraviesa el servidor hasta que el cliente se encuentra conectado.



 Observe en el tráfico capturado en PC C cómo se han intercambiado los 3 segmentos del

establecimiento de la conexión.

 Apunte el valor de la ventana anunciada por el servidor.
Intercambio de datos

Desde PC A puede escribir tantos datos como quiera por la entrada estándar para enviar a PC C.
Compruebe que los datos que envía PC A a PC C se quedan almacenados en el buffer de entrada de
PC C hasta que la aplicación los lea:

 Si ha interrumpido la ejecución de tcpdump en PC C en su interfaz eth0, vuelva a lanzarlo.
 Detenga la ejecución de nc en el lado servidor con Ctrl+z, ésto provocará que la ejecución
del servidor quede parada (pero no finalizada) y por tanto no realizará ninguna operación más,
en particular, no leerá la información que reciba de TCP.

Arquitectura de Redes Sistemas y Servicios: Práctica 10

Departamento de
Automática y Computación
Automatika eta
Konputazio Saila

Campus de Arrosadía
Arrosadiko Campusa
31006 Pamplona - Iruñea
Tfno. 948 169113, Fax. 948 168924
Email: [email protected]



Si ha interrumpido la ejecución de netstat en el lado servidor (PC C), vuelva a lanzarlo
mediante: $ watch -n 0.5 netstat -nat

 En el proceso nc del cliente en PC A introduzca una cadena de caracteres larga por la entrada
estándar (por ejemplo pulse un rato la tecla de alguna letra hasta que aparezcan 2 líneas de esa
letra por pantalla y después pulse la tecla enter). Esta cadena de caracteres se recibirá en la
implementación de TCP en el lado servidor, pero la aplicación no leerá estos datos porque se
encuentra detenida.

Checkpoint 10.1: Visualice que los datos se han quedado almacenados en el buffer de entrada
(Recv-Q) del lado servidor. Justifique el valor de Recv-Q teniendo en cuenta que ha pulsado más
caracteres para enviar en el cliente.

 Observe qué es lo que está ocurriendo con la captura de tráfico de PC C.
 Traiga a primer plano la ejecución de nc en PC C, mediante el comando fg, y la ejecución de
la aplicación servidor continuará. Observe cómo la aplicación servidor ha leído los datos del
buffer de entrada (ahora estará a cero) y los ha mostrado en la pantalla.

Finalización

Para ver los estados por los que atraviesa el servidor cuando el cliente cierra la conexión, sigue

los siguientes pasos:

 Si ha interrumpido la ejecución de tcpdump en PC C en su interfaz eth0, vuelve a lanzarlo.



Interrumpa la ejecución del cliente en PC A con Ctrl+c. La aplicación cliente mandará un
segmento con el flag de FIN activado.

 El servidor nc está programado para terminar si el cliente le manda un segmento con el flag
FIN activado, por este motivo, la aplicación nc en PC C finaliza la conexión mandando su
segmento FIN+ACK. Cuando el servidor recibe el último ACK de PC A da por terminada la
comunicación y finaliza su ejecución.

 En PC A aunque la aplicación ha terminado, los recursos de la conexión TCP tardan un

tiempo en liberarse y si ejecuta en PC A: $ watch -n 0.5 netstat -nat
Observará que la conexión TCP tarda un tiempo en liberarse. Fíjese en el estado en el que se
encuentra. ¿Por qué se mantiene tanto tiempo en ese estado?

 En PC C la aplicación ha terminado y se han liberado inmediatamente los recursos de la

conexión TCP. Si ejecuta en PC C (si lo había cerrado): $ watch -n 0.5 netstat -nat
Observará que hay no hay conexiones.

Checkpoint 10.2: Justifique el estado TIME_WAIT en el que permanece PC A cuando el servidor

PC C ya ha liberado su socket. ¿Cuánto tiempo permanece en este estado?

Arquitectura de Redes Sistemas y Servicios: Práctica 10

Departamento de
Automática y Computación
Automatika eta
Konputazio Saila

Campus de Arrosadía
Arrosadiko Campusa
31006 Pamplona - Iruñea
Tfno. 948 169113, Fax. 948 168924
Email: [email protected]

5- Prestaciones TCP
 Utilice el mismo escenario del apartado anterior.

 Retorne a cero (0s) el retardo introducido en la interfaz eth0 de PC A.

 Cree un fichero, de un tamaño determinado, para transferir:

$ dd if=/dev/zero of=unmega bs=1M count=1
“unmega” tendrá un tamaño de ¡1MB!. (Importante: Borrarlo al finalizar la práctica)

 Lance Wireshark en PC C y desmarque la opción Edit, Preferences, Protocols, TCP,

Relative Sequence Numbers $ Windows Scaling.

 Realice una transferencia del fichero creado copiándolo de PC A a PC C mediante scp:

$ scp unmega arss@<ip>:/home/arss
Le solicitará la password del usuario arss en el otro equipo(PCs A, B y C “telemat”).

 Detenga la captura de Wireshark, guárdela y analícela (ordene las tramas por su marca de

tiempo, pulsando en la pestaña Time), anotando los siguientes valores:

o Valor de la ventana anunciada al comienzo de la conexión en cada uno de los sentidos.
o MSS anunciado en las cabeceras opcionales en los dos sentidos. Justifica este valor
teniendo en cuenta que el tamaño máximo del campo de datos de una trama Ethernet
es de 1500 bytes.

o RTT para un par de segmentos que envía el cliente al servidor. Debería coincidir con

el obtenido mediante el comado ping. Verifíquelo.

o Duración de la transferencia.
o Estimación del valor medio, aproximado por inspección de la captura de Wireshark,

de la ventana TCP en cada uno de los dos sentidos.

 A continuación realice el mismo experimento de transferencia del

fichero “unmega”
configurando, como en el apartado 4, un servidor en PC C en el puerto 7777 y un cliente en PC
A mediante nc. En el caso del cliente: $ nc <ipPC C> 7777 < unmega

 Guarde la captura correspondiente de Wireshark en PC C y analícela anotando los mismos

valores.

 A continuación repita este mismo experimento de transferencia del fichero “unmega” mediante

los comandos scp y nc en el escenario siguiente:

Arquitectura de Redes Sistemas y Servicios: Práctica 10

Departamento de
Automática y Computación
Automatika eta
Konputazio Saila

Campus de Arrosadía
Arrosadiko Campusa
31006 Pamplona - Iruñea
Tfno. 948 169113, Fax. 948 168924
Email: [email protected]

 Analice los resultados obtenidos planteándose las siguienes preguntas:

o ¿Por qué la diferencia de tiempos de tr
  • Links de descarga
http://lwp-l.com/pdf4791

Comentarios de: Práctica 10 – Prestaciones en TCP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad