TCP

3. TCP Transmission Control Protocol

3.2. TCP Header

Puerto de origen: El número de puerto de origen de 16 bits, utilizado por el receptor para respuesta.
Puerto de destino:  El número de puerto de destino de 16 bits.
Número de secuencia: El número de secuencia del primer byte de datos en este
segmento. Si se establece el bit de control SYN, la secuencia número es el número de secuencia inicial (n) y el primero el byte de datos es n+1.
Número de acuse de recibo: Si el bit de control ACK está establecido, este campo contiene el valor de el siguiente número de secuencia que el receptor está esperando
para recibir.
Data Offset:  El número de palabras de 32 bits del  Header de  TCP. Eso permite saber donde comienzan los datos.
Reservado:  Seis bits reservados para uso futuro; deben ser cero.
URG: Este bit indica que este segmento es significativo.
ACK:  Indica que el campo de reconocimiento es significativo en
este segmento.
PUSH : Función de empuje PSH.
RST: Resetea la conexión

SYN : Sincroniza los números de secuencia.
END: No hay mas datos para enviar.

Window size: Tamaño de ventana, Se utiliza en segmentos ACK. Especifica el número de datos EN BYTES, empezando por el indicado en el campo de número de acuse de recibo que el receptor (el remitente de este segmento) está dispuesto a aceptar.

Checksum : El complemento a uno de 16 bits del complemento a uno suma de todas las palabras de 16 bits en un pseudoencabezado, el encabezado TCP  y los datos TCP. Mientras se computa el checksum, el propio campo de checksum se considera cero. El pseudoencabezado es el mismo que usa UDP para calcular la suma de control. Es un pseudo-encabezado IP como el que se muestra en la figura, solo utilizado para el cálculo de la suma de comprobación.

Urgent Pointer: Apunta al primer octeto de datos que sigue a los datos urgentes.
Solo significativo cuando el bit de control URG está establecido.

Options:  Al igual que en el caso de las opciones de datagrama IP, las opciones pueden ser:
– Un solo byte que contiene el número de opción
– Una opción de longitud variable en el siguiente formato como se muestra en la Figura siguiente.

Maximum segment size option: Este campo se puede observar en las capturas de paquetes que hacemos con Wireshark. Esta opción sólo se utiliza durante el establecimiento de la conexión (bit de control SYN establecido) y se envía desde
el lado que va a recibir datos para indicar el longitud máxima del segmento que puede manejar. Si esta opción no se utiliza, se permite cualquier tamaño de segmento.

Existen varias opciones mas que no serán vistas en este curso. Para mas detalles se puede leer en:

https://www.redbooks.ibm.com/redbooks/pdfs/gg243376.pdf   a partir  de pagina 157