Wireshark

Análisis de captura de paquetes TCP

Análisis de captura de paquetes TCP

Que es TCP?

TCP (Protocolo de control de transmisión) es un protocolo de capa de transporte orientado a la conexión.

Intención de este artículo:

Comprender el TCP completo no es una tarea fácil. En este artículo intentaremos comprender los intercambios de paquetes básicos de TCP a través de Wireshark. La teoría se puede leer a través de Internet. Nos centraremos más en el análisis de captura de paquetes.

Por que TCP es famoso?

Hay varias razones por las que TCP es tan famoso:

  1. TCP es un protocolo orientado a la conexión, por lo que la confiabilidad es muy alta.
  2. TCP puede controlar la congestión por sí mismo.
  3. TCP puede detectar errores.
  4. TCP usa el protocolo de control de flujo.
  5. TCP tiene funciones de retardo de ACK.
  6. TCP tiene una función ACK selectiva.
  7. TCP tiene una función de llamada de Windows para mejorar el rendimiento.

Hay tantas otras características que hacen que TCP sea tan famoso.

Análisis de TCP:

Seguiremos algunos pasos para generar tramas TCP.

Paso 1: La forma más sencilla de generar paquetes TCP es accediendo a cualquier sitio web HTTP. La razón es que HTTP es un protocolo de capa de aplicación y utiliza TCP como protocolo de capa de transporte subyacente.

Para saber acerca de HTTP, siga el enlace a continuación

https: // linuxhint.com / http_wireshark /

Paso 2: Iniciar Wireshark.

Paso 3: Abra el enlace de abajo en cualquier navegador.

http: // gaia.cs.umass.edu / wirehark-labs / alice.TXT

Paso 4: Detenga Wireshark y ponga TCP como filtro.

Paso 5: ANÁLISIS

Ahora deberíamos ver paquetes de protocolo de enlace de 3 vías TCP. Aquí está el diagrama simple.

Fotograma 1: SYN [Synchronaziation]

SYN es el primer paquete que viene del cliente al servidor. En nuestro caso 192.168.1.6 es el cliente [El sistema donde abrimos el navegador] y gaia.cs.umass.edu es el servidor.

Aquí hay algunos campos importantes en el marco SYN

Se requiere trama SYN para enviar las capacidades del cliente al servidor.

Cuadro 2: SYN + ACK [Sincronización + Reconocimiento]

SYN, ACK es el segundo paquete que viene del servidor al cliente.

Aquí hay algunos campos importantes en el marco SYN, ACK

Se requiere el marco SYN, ACK para enviar las capacidades del servidor al cliente.

Ahora el cliente y el servidor han compartido sus capacidades.

Cuadro 3: ACK [Reconocimiento]

ACK es el tercer paquete que viene del cliente al servidor. Esto es básicamente un reconocimiento del cliente al servidor y también es una aceptación de las capacidades enviadas por el servidor.

Estos son los campos importantes para ACK.

Revisemos la información importante compartida entre el cliente y el servidor:

ClienteServidor

Recibir el tamaño de la ventana: 64240 bytes                          Recibir el tamaño de la ventana: 29200 bytes

Tamaño máximo de segmento: 1460 bytes                         Tamaño máximo de segmento: 1412 bytes

SACK permitido:                                                 SACK permitido:

Escala de ventana: 8 (multiplicar por 256)                          Escala de ventana: 7 (multiplicar por 128)

Hemos notado que hay diferencias en los valores. Si el cliente o servidor acepta las capacidades de otros, el protocolo de enlace de 3 vías es exitoso.

Encabezado TCP:

Estos son los campos importantes del encabezado TCP:

  1. Puerto de origen (16 bits): Este es el puerto de envío.
Ejemplo: puerto de origen: 50026 (50026)
  1. Puerto de destino (16 bits): Este es el puerto de recepción.
Ejemplo: Puerto de destino: http (80)
  1. Número de secuencia (32 bits):
Ejemplo: Número de secuencia: 0 (número de secuencia relativo)
  1. Número de acuse de recibo (32 bits): Si se establece el indicador ACK, el valor de este campo es el siguiente número de secuencia que el remitente del ACK espera.
Ejemplo: número de acuse de recibo: 0
  1. Longitud del encabezado: El tamaño del encabezado puede variar entre 20 bytes y un máximo de 60 bytes.
Ejemplo: 1000… = Longitud del encabezado: 32 bytes (8)
  1. Banderas (9 bits):
Ejemplo:
… = Reservado: no establecido
… 0… = Nonce: No establecido
… 0… = Ventana de congestión reducida (CWR): No establecido
… 0… = ECN-Echo: No configurado
… 0… = Urgente: No establecido
… 0… = Reconocimiento: No configurado
… 0… = Empujar: No configurado
… 0… = Reset: No configurado
… 1. = Syn: Establecer
… 0 = Fin: no establecido
  1. Tamaño de la ventana (16 bits): Este es el tamaño de la ventana de recepción en bytes.
Ejemplo: valor del tamaño de la ventana: 64240
  1. Suma de comprobación (16 bits):

Se utiliza la comprobación de errores del encabezado.

Ejemplo: suma de comprobación: 0x436f
  1. Puntero urgente (16 bits):

Este es un desplazamiento del número de secuencia que indica el último byte de datos urgentes.

Ejemplo: puntero urgente: 0
  1. Opciones:
Ejemplo:
Opción TCP - Tamaño máximo del segmento: 1460 bytes
Opción TCP - Sin operación (NOP)
Opción TCP - Escala de ventana: 8 (multiplicar por 256)
Opción TCP - SACK permitido

Observación:

El tamaño del encabezado TCP de SYN es de 32 bytes.

El tamaño del encabezado TCP de SYN, ACK es de 32 bytes.

El tamaño del encabezado TCP de ACK es de 20 bytes ya que no tiene campos de opción.

Datos TCP:

Aquí está la captura de pantalla con una explicación de los datos TCP y TCP ACK. Aquí podemos ver la función ACK de retraso de TCP. El servidor ha enviado tres paquetes de datos TCP al cliente y el cliente ha enviado un ACK de retraso para decirle al servidor que ha recibido los tres paquetes de datos TCP. Es por eso que en TCP ACK [Número de paquete 96 en la captura de pantalla] vemos ACK = 14121, lo que significa que el cliente ha recibido hasta 14121 bytes.

Referencia:

Para la teoría básica de TCP, consulte

https: // en.wikipedia.org / wiki / Transmission_Control_Protocol

Cómo invertir la dirección de desplazamiento del mouse y los paneles táctiles en Windows 10
Ratón y Panel táctils no solo facilitan la informática, sino que también hacen que sea más eficiente y requieran menos tiempo. No podemos imaginar una...
Cómo cambiar el tamaño, el color y el esquema del puntero del mouse y del cursor en Windows 10
El puntero y el cursor del mouse en Windows 10 son aspectos muy importantes del sistema operativo. Esto también se puede decir de otros sistemas opera...
Motores de juegos gratuitos y de código abierto para desarrollar juegos de Linux
Este artículo cubrirá una lista de motores de juegos de código abierto y gratuitos que se pueden usar para desarrollar juegos 2D y 3D en Linux. Existe...