Seleccionar página
  • hacking-TCP1. Transferencia de datos:

Durante la transferencia de datos hay una serie de campos de la cabecera que nos ayudan a asegurar la robustez de la comunicación.

En la conexión va a haber un par de números de secuencia que son los que van a servir para ordenar los paquetes, evitar duplicados y asegurar la recepción del envió, estos son los campos de secuencia y confirmación. Se refieren a emisor-secuencia y receptor-confirmación..

Otro de los campos que usaremos es el checksum que asegura que los datos recibidos no están corruptos. Para calcular este valor se utiliza todo el paquete TCP, cabecera + datos y una pseudo-cabecera IP que incluye la IP fuente y destino, el campo de protocolo de la cabecera IP y la longitud del paquete. Esta pseudo-cabecera nos protege de errores de enrutado.

El checksum es el complemento a uno de 16 bits de la suma en complemento a uno de todas las palabras de 16 bits de la pseudos-cabecera, cabecera y texto del paquete TCP o UDP. Si el paquete tiene un numero impar de octetos el ultimo se rellena con ceros hasta obtener los 16 bits que requiere el checksum.

Parar asegurar el envió completo de datos el TCP utiliza asentamiento junto con temporizadores, así el emisor esta al tanto de los paquetes recibidos por el receptor procediendo a reenviar los que no tiene confirmación. Esto se lleva a cabo por unos mecanismos:

  • Uso de ventana deslizante
  • Algoritmo de comienzo lento.
  • Algoritmo de control de congestión.
  • Retransmisión rápida.
  • Recuperación rápida.

El TCP y la ventana deslizante.

Esto se basa en que el emisor no necesita esperar la entrega de cada uno de los paquetes que envió, puede enviar sin recibir el ACK, disparando un timeout para cada uno de ellos. El receptor debe enviar un ACK para el ultimo paquete correcto y así el emisor desplaza la ventana para contiuar con el envió.

El principio de ventana se va a aplicar a nivel de byte, es decir que va a estar fijado durante la conexión por el número de bytes que puedan ser metidos en el buffer de recepción que es quien controla en tamaño.

Como el campo que fija el tamaño de ventana tiene un tamaño de 16 bits el tamaño máximo de la ventana es de 65536 bytes. Por eso para optimizar la banda ancha se ha definido el factor de escala de ventana dejando un tamaño de 3 bits dentro de este campo de la cabecera durante la negociación.

  • 2. Fin de la conexión. Negociación en 4 pasos:

Cuando una de las partes desea terminar la comunicación envía un paquete con el flag FIN activo y al cual se responderá ACK. Puede ser que la parte que envió el FIN este desconectada pero que queden pendientes envíos todavía, por ello el que envió el FIN deja de poder enviar pero sigue recibiendo hasta que la otra parte envía un segmento FIN y el ACK.