lunes, 1 de abril de 2013

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

Funcionamiento del protocolo TCP

El protocolo TCP está orientado a la conexión. La vida de una conexión TCP se compone de tres fases:

  • Establecimiento de la conexión (negociación en tres pasos).
  • Transferencia de datos.
  • Negociación de la desconexión (negociación en cuatro pasos).

Para la transferencia de datos el protocolo TCP va utilizar el principio de ventana para el envío de datagramas y la recepción de las confirmaciones de entrega.


Establecimiento de la conexión

(negociación en tres pasos) 

Para poder iniciar una comunicación entre dos máquinas primero tenemos que establecer una conexión, para ello la máquina que va a dar servicio abre un socket pasivo, de manera que el servidor se queda a la escucha en un determinado puerto. Por el lado del cliente, cuando este quiere iniciar una conexión abre un socket activo sobre el puerto del servidor enviando un segmento SYN inicial (flag SYN activo) con su número de secuencia indicando en el campo Número de secuencia de la cabecera TCP.

A esta petición el servidor responderá con un datagrama SYN/ACK, enviando, por un lado su propio número de activación de secuencia en el campo Número de secuencia de la cabecera y activando el flag SYN, y por otro enviando la confirmación marcando el flag ACK y enviando en el campo Número de confirmación el número de secuencia del cliente. cuando el cliente recibe este paquete de confirmación en vía al servidor un tercer segmento confirmando que lo ha recibido incluyendo en el campo Número de confirmación el número de inicio de la secuencia del servidor y con el flag ACK activo. A partir de este momento la conexión queda establecida y comienza la transmisión de datos.


three way handshake
Img.1 Conexión establecida en tres pasos.



Nota: Esta información está extraida del libro La biblia Hacker 2009.