Fuente: Wikipedia (http://es.wikipedia.org/wiki/Transmission_Control_Protocol)
Estructura de un paquete TCP/IP:
| + |
Bits 0 - 3 |
4 - 9 |
10 - 15 |
16 - 31 |
| 0 |
Puerto Origen |
Puerto Destino |
| 32 |
Número de Secuencia |
| 64 |
Número de Acuse de Recibo (ACK) |
| 96 |
longitud cabecera TCP |
Reservado |
Código |
Ventana |
| 128 |
Suma de Verificación (Checksum) |
Puntero Urgente |
| 160 |
Opciones + Relleno (opcional) |
| 224 |
 
Datos
  |
Establecimiento de la conexión:
(http://upload.wikimedia.org/wikipedia/commons/c/c7/300px-Tcp-handshake.png)
Establecimiento de la conexión (negociación en tres pasos)
Negociación en tres pasos o Three-way handshake
Negociación en tres pasos o Three-way handshake
Aunque es posible que un par de entidades finales comiencen una conexión entre ellas simultáneamente, normalmente una de ellas abre un socket en un determinado puerto tcp y se queda a la escucha de nuevas conexiones. Es común referirse a esto como apertura pasiva, y determina el lado servidor de una conexión. El lado cliente de una conexión realiza una apertura activa de un puerto enviando un segmento SYN inicial al servidor como parte de la negociación en tres pasos. El lado servidor respondería a la petición SYN válida con un paquete SYN/ACK. Finalmente, el cliente debería responderle al servidor con un ACK, completando así la negociación en tres pasos (SYN, SYN/ACK y ACK) y la fase de establecimiento de conexión.
Saludos.