Encabezado TCP-SeaCCNA al Día

TCP (Transmission Control Protocol) es un protocolo de transporte confiable ya que establece una conexión antes de enviar cualquier dato y todo lo que envía es luego respondido con un acuse de recibo por el receptor. En esta artículo veremos más de cerca el encabezado TCP y sus diferentes campos.

Así luce el encabezado:

 

Veamos todos estos campos:
Puerto de origen: este es un campo de 16 bits que especifica el número de puerto del remitente.
Puerto de destino: este es un campo de 16 bits que especifica el número de puerto del receptor.
Número de secuencia: el número de secuencia es un campo de 32 bits que indica la cantidad de datos que se envían durante la sesión TCP. Cuando establece una nueva conexión TCP (handshake de 3 vías), el número de secuencia inicial es un valor aleatorio de 32 bits. El receptor usará este número de secuencia y devolverá un acuse de recibo. Los analizadores de protocolos como wireshark a menudo usan un número de secuencia relativo de 0 ya que es más fácil de leer que un alto número aleatorio.
Número de acuse de recibo: este campo de 32 bits es utilizado por el receptor para solicitar el siguiente segmento TCP. Este valor será el número de secuencia incrementado en 1.
DO: este es el campo de compensación de datos de 4 bits, también conocido como la longitud del encabezado. Indica la longitud del encabezado TCP para que sepamos dónde comienzan los datos reales.
RSV: estos son 3 bits para el campo reservado. No están en uso y siempre están configurados en 0.
Flags: hay 9 bits para banderas, también los llamamos bits de control. Los usamos para establecer conexiones, enviar datos y terminar conexiones:
URG: puntero urgente. Cuando se establece este bit, los datos deben tratarse como prioridad sobre otros datos.
ACK: utilizado para el reconocimiento.
PSH: esta es la función push. Esto le dice a una aplicación que los datos deben transmitirse inmediatamente y que no queremos esperar para llenar todo el segmento TCP.
RST: esto restablece la conexión, cuando recibe esto, debe finalizar la conexión de inmediato. Esto solo se usa cuando hay errores irrecuperables y no es una forma normal de finalizar la conexión TCP.
SYN: usamos esto para el handshake inicial de tres vías y se usa para establecer el número de secuencia inicial.
FIN: este bit de finalización se utiliza para finalizar la conexión TCP. TCP es dúplex completo, por lo que ambas partes deberán usar el bit FIN para finalizar la conexión. Este es el método normal de cómo terminamos una conexión.
Ventana: el campo de la ventana de 16 bits especifica cuántos bytes el receptor está dispuesto a recibir. Se usa para que el receptor pueda decirle al remitente que le gustaría recibir más información de la que está recibiendo actualmente. Lo hace al especificar el número de bytes más allá del número de secuencia en el campo de acuse de recibo.
Suma de comprobación: se usan 16 bits para una suma de verificación para verificar si el encabezado TCP está OK o no.
Puntero urgente: estos 16 bits se utilizan cuando se ha establecido el bit URG, el puntero urgente se usa para indicar dónde finalizan los datos urgentes.
Opciones: este campo es opcional y puede estar en cualquier lugar entre 0 y 320 bits.
Para ver estos campos en acción, lo mejor es jugar con wireshark. Aquí hay un ejemplo de la primera parte del handshake de tres vías TCP. Destaqué todos los campos:

Arriba puede ver el puerto de origen y destino. El número de secuencia es 0 pero wireshark nos dice que este es un número de secuencia relativo. En realidad, es otra cosa. Puede ver que el bit SYN se ha establecido en los indicadores, el tamaño de la ventana, la suma de comprobación, el puntero urgente y las opciones.
TCP es un protocolo complejo, pero es de esperar que esta lección haya ayudado a entender cómo se ve el encabezado TCP.

Si tiene alguna pregunta, siéntase libre de dejar un comentario en nuestras redes sociales:

Twitter: @seaccna

Facebook: facebook.com/seaccna/

Instagram: @seaccnaarg

Linkedin: linkedin.com/company/24793753/

Comments

comments