martes, 25 de octubre de 2011

Capitulo 2: Segmento TCP - Borrador 1


El otro elemento que conforma la base de las redes modernas es conocido como Protocolo de Control de Transferencia o TCP por sus siglas en ingles.

Este permite una realizar transmisión confiable sobre el protocolo IP al proporcionar los mecanismos para adaptarse dinámicamente a las necesidades de de la red y la adecuada reconstrucción de los paquetes de datos.

Otra de las características del TCP es el uso de los llamados “puertos” estos funcionan como los extremos de una conexión TCP de modo que cuando llegue un paquete completo el protocolo sea a cual de las aplicaciones que estén en uso del servicio corresponde ese paquete.

La transmisión de datos a través de TCP es similar a los demás protocolos, los datos se dividen en paquetes mas pequeños, que en el ámbito del TCP se conocen con el nombre de “segmentos”, a los cuales se les agrega un encabezado.

Los campos que componen dicha cabecera se muestran a continuación.

Puerto fuente
Puerto destino
Numero de secuencia
Numero de reconocimiento
Longitud de cabecera TCP
Reservado
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Tamaño de ventana
Suma de verificación
Puntero a datos urgentes
Opciones
Datos

Que son visualizados en Wireshark de la siguiente forma

Figura 1: Segmento TCP visualizado en Wireshark.

Puerto fuente, 16 bits: Identifica que de que puerto provienen los datos del paquete.

Puerto destino, 16 bits: Identifica a que puerto esta destinado el paquete de datos.

Numero de secuencia, 32 bits: Identifica la posición de este segmento de las transferencia en relación a los demás.

Numero de reconocimiento, 32 bits: Reconocimiento de transmisión exitosa.

Longitud de cabecera TCP, 4 bits: Contiene el numero de palabras de 32 bits que conforman la cabecera, esto es necesario pues la longitud de la cabecera varia si se agregan opciones extras.

Reservado, 6 bits: Espacio sin uso en la versión actual del protocolo

URG, 1 bit: Bandera para indicar que se usara la opción de puntero a datos urgentes.


ACK, 1 bit: Indica si el numero de reconocimiento incluido en la cabecera es valido, si el valor de este campo es 0 se ignora el campo numero de reconocimiento.

PSH, 1 bit: Esta bandera solicita que los datos se envíen directamente a la aplicación, en lugar de esperar a que el buffer se llene.

RST, 1 bit: Esta bandera solicita que se reinicie la conexión.

SYN, 1 bit: La bandera SYN se usa para solicitar una conexión, esto se hace en conjunto con la bandera ACK en un proceso conocido como el saludo en tres pasos.

FIN, 1 bit: Indica el final de la conexión.

Tamaño de la ventana, 16 bits: El numero de bits que se enviaran.

Suma de verificación: El valor esperado de la suma de verificación del fragmento, si no coincide se descarta el fragmento.

Puntero a datos urgentes: Si la bandera URG fue activada estos datos se envían directamente al destinatario.

Opciones, tamaño variable: En esta sección se indican las opciones extra para el segmento.

Datos, tamaño variable: Los datos contenidos en el segmento.

Referencias:
Andrew S Tanenbaum – Computer Networks 4ed.