miércoles, 3 de abril de 2013

Conceptos básicos de una conexión TCP. Parte II

Transferencia de datos

Durante la transferencia de los datos hay una serie de campos de la cabecera que nos ayuda a asegurar la robustez de la comunicación.
A lo largo de la transmisión se van a utilizar como números de secuencia los que se han pactado durante el establecimiento de la conexión. En toda la conexión estarían presentes 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 envío, estos son los campos Número de secuencia y Número de confirmación. Con el Número de secuencia el emisor e refiere a su propio número de secuencia y con el Número de confirmación al número de secuencia del receptor.
Otro de los campos que utilizaremos con este propósito es el checksum, la función de este campo es asegurar que los datos recibidos no están corruptos, descartando los que si lo están.
Para el cálculo de este valor se utiliza la totalidad del paquete TCP(sumando el valor de cabecera más el valor de datos), al que además hay que añadir una pseudo cabecera IP, que incluye la dirección IP fuente, la dirección IP destino, el campo de protocolo de cabecera de IP y la longitud del paquete (TCP o UDP). Esta pseudo cabecera proporciona protección adicional contra paquetes recibidos erróneamentepor problemas de enrutado.
El checksum es el complemento a uno de 16 bits de la suma en completo a uno de todas las palabras de 16 bits de la pseudo-cabecera, cabecera y texto del paquete (TCP o UDP). Si el paquete contiene un número impar de octetos, el número octeto del paquete se rellena con ceros por la derecha hasta obtener una palabra de 16 bits con propósito de calcular el chuecksum.

Cabecera TCP
Img 1. Cálculo de checksum en TCP. 
Para asegurar el envío completo de los datos, el protocolo TCP utiliza asentamientos junto con temporizadores, de manera que el emisor está al tanto de los paquetes recibidos por el receptor procediendo a reenviar los que, pasado un cierto tiempo, no ha recibido confirmación. Para la optimización de todo este proceso el protocolo TCP utiliza una serie de mecanismos:

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


Nota: Esta información está extraída del libro La biblia Hacker 2009.