Está en la página 1de 15

19-09-2021 PRÁCTICA 0

ARQUITECTURA DE REDES I

Contenidos de la práctica:
0.1. INTRODUCCIÓN A LINUX
0.2. INTRODUCCIÓN A WIRESHARK
0.3. REPASO DE PROGRAMACIÓN

NATALIA PINTO ESTEBAN


ING. TECNOLOGÍAS Y SERVICIOS DE LA TELECOMUNICACIÓN
GRUPO: 3261 Nº ALUMNO: 14
0.1. INTRODUCCIÓN A LINUX

Comando “man”

• ¿Cúal es el tercer argumento de la función C read? Escriba el comando man utilizado


para encontrar la información?

El tercer argumento que aparece en la información que te proporciona el comando


“man” es:
If count is zero, read() may detect the errors described below. In the absence of any
errors, or if read() does no check for errors, a read() with a count of 0 returns zero
and has no others effects.

Captura de pantalla:

Comando “ls”
• ¿Qué se muestra al ejecutar el comando "ls -lah" en un directorio?

1
El comando “ls” nos proporciona información acerca de los archivos o carpetas
existentes en el directorio en el que nos encontremos. En mi caso lo he realizado
desde el directorio principal de mi usuario: /home/natalia.
Al poner la etiqueta “-lah” lo que ocurre es que nos proporciona la información de
estos archivos y carpetas además de datos extra sobre el tamaño en K y la fecha de
última modificación del archivo/carpeta.

Captura de pantalla:

Comando “cat”
• ¿Qué ocurre al ejecutar el comando "cat -n" sobre un archivo?

Al pulsar el anterior comando con la etiqueta “-n” se nos muestra el contenido del
fichero pero con las líneas de texto numeradas.

Captura de pantalla:

2
Comando “grep”

• ¿Cómo buscaríamos todos los "#include" definidos en todos los archivos .h de un


directorio (por ejemplo /usr/include) usando el comando grep? ¿Cómo podemos saber
en qué línea está cada uno?

Para encontrar los “#include” que hay en un archivo .h hay que utilizar el siguiente
comando: grep #include fichero.h
Para saber en que línea se encuentra cada uno simplemente hay que añadir la
etiqueta “-n” al comando. A continuación dejo un ejemplo del fichero.txt en el que
se nos indica que ‘17’ se encuentra en la línea de texto 4.

3
Compilador gcc
• ¿Qué banderas son necesarias a la hora de hacer uso de librerías externas (no incluidas
por defecto en Linux) a la hora de realizar la compilación con gcc?

Para añadir librerías a la compilación no definidas en el .h previamente, utilizamos


la etiqueta -l seguida del nombre de la librería que nos interese añadir de la
siguiente forma: -llibrary.

Editores y Makefile

No aparecen cuestiones en este apartado.

Valgrind
Dado el código ejercicio8.c, use el programa valgrind para detectar en qué línea se produce un
acceso a memoria no permitido.

Según la información que nos proporciona Valgrind el error al acceder a la memoria aparece
al inicializar “calloc” para reservar memoria de 2 variables. Por tanto, la línea de código en la
que se encuentra dicho acceso no permitido es en la 12 y 13 del archivo .c

4
Dado el código ejercicio9.c, use el programa valgrind para detectar en qué línea o líneas existe
memoria sin liberar. ¿Cúanta memoria queda sin liberar?

Según lo que podemos apreciar en la información que obtenemos de Valgrind han quedado
sin liberar 1450 bytes. Esta memoria tal cual como nos indica Valgrind se ha perdido.

5
0.2. INTRODUCCIÓN A WIRESHARK

1. Durante la realización de las prácticas, será muy común disponer de una consola
donde ejecutaremos comandos que mandan y reciben tramas por un interfaz de red. En
paralelo tendremos en ejecución a Wireshark, que estará capturando el tráfico que nos
interese. Este ejercicio muestra un ejemplo típico a realizar en prácticas posteriores:

1. Abra una consola o shell, y déjela abierta en espera de ejecutar algún comando.
2. Ejecute Wireshark y seleccione y configure el interfaz por el que se capturará el
tráfico (habitualmente será eth0) Acuérdese de seleccionar las opciones de
visualización que más le convenga.
3. Inicie la captura de tráfico pulsando en el botón 'Start'.
4. Vuelva a la consola y ejecute el siguiente comando (tecléelo y pulse ): $ sudo
hping3 -S -p 80 www.uam.es
5. Detenga la captura de tráfico mediante el botón 'Stop'.
6. Analice el tráfico capturado (aunque no lo entienda en detalle)
7. Guarde la traza en un fichero (Importante: no utilizar el formato pcap-ng).
8. Cierre Wireshark, y vuelva a abrirlo.
9. Abra el fichero almacenado y compruebe que se almacenó correctamente.
10.Utilizando las columnas que se han añadido durante el tutorial, ordene con
respecto al campo 'PO' en sentido descendente y contabilice el número de paquetes
en el que este campo tiene valor 53.
Discuta los problemas que haya encontrado durante la realización del ejercicio.

Durante la realización del ejercicio he comprobado que hay 3 paquetes en el


cual hay un valor de “53” en el campo añadido de ‘PO’. Estos paquetes se
corresponden a aquellos que tienen un protocolo DNS (de servidor), y el 53 se
corresponde con el puerto encargado de responder “consultas” al usuario.
Durante la realización de este primer ejercicio el único problema que se me ha
presentado ha sido la ordenación en sentido descendente de los paquetes,
aunque como la captura la he detenido temprano he podido contar los 3
paquetes a simple vista.

Aquí dejo una captura de pantalla:

6
2. Tras haber leído las documentación online facilitada, empiece a capturar tráfico. Abra un
navegador y visualice un vídeo en youtube. Pare la captura, y añada un filtro en el interfaz de
modo que solo se visualicen paquetes que sean de tipo IP y que tengan un tamaño de paquete
mayor a 1000 Bytes.

Para realizar el filtro, primero seleccionamos el protocolo correspondiente, es decir, en


nuestro caso ‘IP’ y dentro de las opciones que nos proporciona seleccionamos la
característica que nos interesa, en nuestro caso ‘length’. El comando de filtro queda
como: “ip.len > 1000”

Capturas de pantalla:

Cap.1 → Proceso para seleccionar el filtro (Ventana de opciones de filtro)

7
Cap.2 → Captura de tráfico filtrada

8
1. Copie el filtro realizado.

ip.len > 1000

2. ¿Cómo almacenaría en una captura solo los paquetes mostrados?

Para almacenar una captura filtrada he seguido los siguientes pasos: file >
save as > nombre, formato y lugar de almacenamiento.
Captura de pantalla del proceso:

3. Compare el tamaño del primer paquete IP, y el campo 'length' del protolo IP del
mismo. Repita para los primeros 5 paquetes, ¿qué relación encuentra?

El primer paquete IP tiene un tamaño de cabecera IP de 20 bytes y el campo


length tiene un valor de 1391 bytes.
El segundo, tercero, cuarto y quinto paquete tienen un tamaño de cabecera
IP de 20 bytes y en el campo length tienen un valor de 1414 bytes.
El último paquete IP tiene un tamaño de cabecera IP de 20 bytes y el campo
length tiene un valor de 2024 bytes.

La conclusión que obtengo es que el primer paquete es el menos encapsulado


y el que menos protocolos ha adquirido.

9
3. Añada una columna custom que muestre el tiempo entre paquetes consecutivos. Explique
brevemente que menús y opciones ha seleccionado.

Para crear en primer lugar una columna he seguido los siguientes pasos:
Edit < preferences < columns < seleccionar nombre “custom” y tipo de columna “time format
as specified”.
Para que se muestre el tiempo entre paquetes he seguido los siguientes pasos:
View < time display format < seconds since previous captured packet

Captura de pantalla de creación de la nueva columna “custom”:

10
Captura de pantalla de aplicación de filtro de visualización:

4. Modifique la forma en que Wireshark muestra la información en la columna 'Time' de


cada paquete. En concreto muestre los tiempos en formato para humanos, y en tiempo Unix
con resolución en segundos. Explique brevemente los pasos realizados.

Para modificar el tiempo a un formato Unix (desde 1970) he seguido los siguientes
pasos:
View < time display format < seleccionar “Seconds Since Epoch (1970-01-01)” y
“seconds".
Captura de pantalla:

11
Para modificar el tiempo a formato humano seguimos los siguientes pasos:
View < time display format < seleccionar “Date and time of day” y “Automatic”.
Captura de pantalla:

12
5. Inicie una captura en Wireshark pero aplicando filtros de captura, en concreto solo
queremos capturar tráfico UDP. Mientras captura tráfico visualice brevemente un vídeo en
youtube, ejecute en una consola el comando $ sudo hping3 -S -p 80 www.uam.es.
Compruebe que solo se capturan paquetes UDP, y describa brevemente los pasos realizados

Al hacer la captura aparecen paquetes en los cuáles he comprobado que solo son UDP
fijándome en la parte inferior del programa donde se especifican las características de
cada paquete y concretamente en el apartado de “Internet Protocol”.
Para hacer una captura con los filtros, en primer lugar he pulsado en el segundo icono
que aparece en la parte superior: “Capture options”. Una vez ahí he seleccionado el
filtro de udp(only) como se puede apreciar en la captura.

Captura de pestaña de selección de filtro:

13
Captura de comprobación que son paquetes UDP:

0.3. REPASO DE PROGRAMACIÓN

NO HAY EJERCICIOS PROPUESTOS EN ESTE APARTADO DE LA PRÁCTICA.

14

También podría gustarte