martes, 18 de agosto de 2015

Wireshark II

Una vez iniciamos una captura de tráfico la pantalla se divide en tres  áreas. 

Lista de paquete
Detalle de paquetes (seleccionado arriba )
Detalle de paquetes (seleccionado en la lista de paquete en bytes)




Y bueno, en este punto nos vendría bien revisar un poco el modelo de comunicaciones TCP-IP.

A diferencia del modelo OSI (7 niveles) en el modelo TCP-IP solo tenemos 4 niveles.

1 -     Engloba nivel físico y enlace de datos (TRAMA). MAC – 48 bits

2 -   Nivel red (PAQUETE). Usa protocolo interconexión IP  (no fiable, no orientado a conexión, mejor entrega posible. Los datagramas pueden viajar fuera de orden y por rutas distinas)  + otro conjunto protocolos necesarios: ICMP, IGMP, ARP, RARP …… IPV4 32 bits IPV6 128 bits

3-  Nivel transporte(SEGMENTO). Protocolos proceso a proceso (UDP, TCP, SCTP…) 2^16 65536 nº puerto

4-    Nivel aplicación (DATOS). FTP, HTTP, DNS, TELNET, correo electrónico….



Aquí vemos la estructura de una trama y algunos enlaces de interes.



Y con algo más detalle aquí suite-protocolos-tcp-ip

Lo más divertido es cuando ves que toda la teoría que hemos visto, que si dirección origen, destino,   carga útil, flags and etc etc se materializa ante tus ojillos inquietos.

En azul el conjunto de toda la trama + carga útil (paquete IP) + carga útil  (segmento TCP)


Dirección física destino de la trama


Dirección física origen de la trama



Ahora vemos información sobre el protocolo usado en el payload (carga) en este ejemplo 0x0800 IPv4



Y podemos hacer la mismo con los datos del paquete (en este ejemplo IP),  primero vemos el detalle de la cabecera (entre 20y 60 Bytes) 





Y la carga, denominada segmento, (en esta caso protocolo TCP) El segmento TCP está compuesto por los datos enviados desde el nivel de aplicación y la cabecera añadida en el nivel  de transporte. El segmento TCP es luego encapsulado en un datagrama IP para ser enviado por la capa de red.






No podemos olvidar que la comunicación real tiene lugar entre procesos (usando sockets). Dos procesos se comunican en una relacion cliente-servidor (el puerto cliente puede ser aleatorio pero el del servidor no).


Un socket es una interfaz de entrada-salida de datos que permite la intercomunicación entre procesos. Los procesos pueden estar ejecutándose en el mismo o en distintos sistemas, unidos mediante una red. Un identificador de socket es una pareja formada por una dirección IP y un puerto. Cuando un programa crea un socket puede solicitarle al sistema operativo que asocie un número de puerto con el socket.

Todos sabemos que un ordenador siempre está haciendo cosas pero verlo en directo es curioso…Lanza una captura y sin hacer absolutamente nada observa el movimiento de tramas..... curioso ¿no?

Culex.


1 comentario:

  1. Me alegro que sea de utilidad. Es una explicación un poco ad-hoc pero puede servir como punto de partida para manejar la aplicación.

    ResponderEliminar