¿Qué son las banderas TCP?

PRIMERA BANDERA – PUNTERO URGENTE

La primera bandera es la bandera de puntero urgente. Este indicador se usa para identificar los datos entrantes como ‘urgentes’. Dichos segmentos entrantes no tienen que esperar hasta que los segmentos anteriores sean consumidos por el extremo receptor, sino que se envían directamente y se procesan de inmediato.

Se podría utilizar un puntero urgente durante una secuencia de transferencia de datos en la que un host envía datos a una aplicación que se ejecuta en una máquina remota. Si aparece un problema, la máquina host debe cancelar la transferencia de datos y detener el procesamiento de datos en el otro extremo. En circunstancias normales, la señal de cancelación se enviará y se pondrá en cola en la máquina remota hasta que se procesen todos los datos enviados previamente, sin embargo, en este caso, necesitamos que la señal de cancelación se procese de inmediato.

Al establecer el indicador de puntero urgente del segmento de la señal de aborto en ‘1’, la máquina remota no esperará hasta que se procesen todos los datos en cola y luego ejecutará el aborto. En cambio, dará prioridad a ese segmento específico, procesándolo inmediatamente y deteniendo todo el procesamiento de datos adicional.

Si le resulta difícil de entender, considere este ejemplo de la vida real:

En su oficina de correos local, cientos de camiones están descargando bolsas de cartas de todo el mundo. Debido a que la cantidad de camiones que ingresan al edificio de la oficina de correos es abundante, se alinean uno detrás del otro, esperando su turno para descargar sus maletas.

Como resultado, la cola termina siendo bastante larga. Sin embargo, un camión con una gran bandera roja de repente se une a la cola y el oficial de seguridad, cuyo trabajo es asegurarse de que ningún camión se salte la cola, vea la bandera roja y sepa que lleva cartas muy importantes que deben llegar a su destino con urgencia. . Siguiendo los procedimientos normales, el oficial de seguridad le indica al camión que se salte la cola y avance hasta el frente, dándole prioridad sobre los otros camiones.

En este ejemplo, los camiones representan los segmentos que llegan a su destino y se ponen en cola en el búfer en espera de ser procesados, mientras que el camión con la bandera roja es el segmento con la bandera de Puntero Urgente establecida.

Otro punto a tener en cuenta es la existencia del campo Puntero Urgente. Este campo se trata en la sección 5, pero podemos mencionar brevemente que cuando el indicador del puntero urgente se establece en ‘1’ (ese es el que estamos analizando aquí), entonces el campo del puntero urgente especifica la posición en el segmento donde terminan los datos urgentes .

2ª BANDERA – AGRADECIMIENTO

El indicador de confirmación se utiliza para confirmar la recepción exitosa de los paquetes.

Si ejecuta un sniffer de paquetes mientras transfiere datos utilizando el TCP, notará que, en la mayoría de los casos, por cada paquete que envía o recibe, se recibe un acuse de recibo. Entonces, si recibió un paquete de un host remoto, entonces su estación de trabajo probablemente enviará uno de vuelta con el campo ACK establecido en “1”.

En algunos casos donde el remitente requiere un acuse de recibo por cada 3 paquetes enviados, el extremo receptor enviará el ACK esperado una vez (se recibe el tercer paquete secuencial). Esto también se llama Windows y se cubre ampliamente en las páginas que siguen.

3ª BANDERA – EMPUJE

El indicador Push, como el indicador Urgente, existe para garantizar que los datos tengan la prioridad (que merece) y se procesen en el extremo emisor o receptor. Este indicador en particular se usa con bastante frecuencia al principio y al final de una transferencia de datos, lo que afecta la forma en que se manejan los datos en ambos extremos.

Cuando los desarrolladores crean nuevas aplicaciones, deben asegurarse de seguir las pautas específicas dadas por los RFC para garantizar que sus aplicaciones funcionen correctamente y gestionar el flujo de datos dentro y fuera de la capa de aplicación del modelo OSI sin problemas. Cuando se usa, el bit Push asegura que el segmento de datos se maneja correctamente y se le da la prioridad adecuada en ambos extremos de una conexión virtual.

Cuando un host envía sus datos, se pone temporalmente en cola en el búfer TCP, un área especial en la memoria, hasta que el segmento ha alcanzado un cierto tamaño y luego se envía al receptor. Este diseño garantiza que la transferencia de datos sea lo más eficiente posible, sin reducir el tiempo y el ancho de banda al crear múltiples segmentos, pero combinándolos en uno o más de mayor tamaño.

Cuando el segmento llega al extremo receptor, se coloca en el búfer entrante TCP antes de pasarlo a la capa de aplicación. Los datos en cola en el búfer entrante permanecerán allí hasta que lleguen los otros segmentos y, una vez que se complete, los datos se pasarán a la capa de aplicación que lo está esperando.

Si bien este procedimiento funciona bien en la mayoría de los casos, hay muchas instancias en las que esta “puesta en cola” de datos no es deseable porque cualquier retraso durante la puesta en cola puede causar problemas a la aplicación en espera. Un ejemplo simple sería una transmisión TCP, por ejemplo, un reproductor real, donde los datos deben ser enviados y procesados ​​(por el receptor) de inmediato para garantizar una transmisión fluida y sin cortes.

Un último punto para mencionar aquí es que el indicador Push generalmente se establece en el último segmento de un archivo para evitar puntos muertos en el búfer. También se ve cuando se usa para enviar HTTP u otro tipo de solicitudes a través de un proxy, lo que garantiza que la solicitud se maneje de manera adecuada y efectiva.

4ª BANDERA – BANDERA RESET (RST)

El indicador de reinicio se usa cuando llega un segmento que no está destinado a la conexión actual. En otras palabras, si tuviera que enviar un paquete a un host para establecer una conexión, y no hubiera tal servicio esperando responder en el host remoto, entonces el host rechazaría automáticamente su solicitud y luego le enviaría una respuesta con El conjunto de banderas RST. Esto indica que el host remoto ha restablecido la conexión.

Si bien esto puede resultar muy simple y lógico, la verdad es que, en la mayoría de los casos, la mayoría de los piratas informáticos utilizan esta ‘característica’ para escanear hosts en busca de puertos ‘abiertos’. Todos los escáneres de puertos modernos pueden detectar puertos ‘abiertos’ o ‘auditivos’ gracias a la función ‘restablecer’.

El método utilizado para detectar estos puertos es muy simple: cuando se intenta escanear un host remoto, se construye un segmento TCP válido con el conjunto de indicadores SYN (1) y se envía al host de destino. Si no hay ningún servicio que escuche las conexiones entrantes en el puerto específico, el host remoto responderá con ACK y el indicador RST establecido (1). Si, por otro lado, hay un servicio escuchando en el puerto, el host remoto construirá un segmento TCP con el indicador ACK establecido (1). Esto es, por supuesto, parte del apretón de manos estándar de 3 vías que hemos cubierto.

Una vez que el host que busca puertos abiertos recibe este segmento, completará el protocolo de enlace de 3 vías y luego lo terminará utilizando el indicador FIN (ver más abajo), y marcará el puerto específico como “activo”.

5ª BANDERA – BANDERA DE SINCRONIZACIÓN

La quinta bandera contenida en las opciones de bandera TCP es quizás la bandera más conocida utilizada en las comunicaciones TCP. Como ya sabrá, el indicador SYN se envía inicialmente al establecer el clásico apretón de manos de 3 vías entre dos hosts:

En el diagrama anterior, el Host A necesita descargar datos del Host B utilizando TCP como protocolo de transporte. El protocolo requiere el protocolo de enlace de 3 vías para que se pueda establecer una conexión virtual por ambos extremos para intercambiar datos.

Durante el protocolo de enlace de 3 vías, podemos contar un total de 2 banderas SYN transmitidas, una por cada host. A medida que se intercambian archivos y se crean nuevas conexiones, veremos que se envían y reciben más indicadores SYN.

6ª BANDERA – BANDERA DE LA ALETA

La bandera final disponible es la bandera FIN, que representa la palabra FINISH. Este indicador se utiliza para eliminar las conexiones virtuales creadas con el indicador anterior (SYN), por lo que, por este motivo, el indicador FIN siempre aparece cuando se intercambian los últimos paquetes entre una conexión.

Es importante tener en cuenta que cuando un host envía un indicador FIN para cerrar una conexión, puede continuar recibiendo datos hasta que el host remoto también haya cerrado la conexión, aunque esto ocurre solo bajo ciertas circunstancias. Una vez que la conexión se rompe por ambos lados, se liberan las memorias intermedias reservadas en cada extremo para la conexión.

A continuación se muestra un procedimiento normal de desmontaje:

El diagrama anterior representa una conexión existente entre el Host A y B, donde los dos hosts están intercambiando datos. Una vez que se completa la transferencia de datos, el Host A envía un paquete con las banderas FIN, ACK establecidas (PASO 1).

Con este paquete, el Host A está reconociendo AC el flujo anterior al mismo tiempo que inicia el procedimiento de cierre TCP para eliminar esta conexión. En este punto, la aplicación del Host A dejará de recibir datos y cerrará la conexión desde este lado.

En respuesta a la solicitud del Host A de cerrar la conexión, el Host B enviará un acuse de recibo (PASO 2) y también notificará a su aplicación que la conexión ya no está disponible. Una vez que esto se haya completado, el host (B) enviará sus propios indicadores FIN, ACK (PASO 3) para cerrar su parte de la conexión.

Si se pregunta por qué se requiere este procedimiento, es posible que deba recordar que TCP es una conexión Full Duplex, lo que significa que hay dos direcciones de flujo de datos. En nuestro ejemplo, este es el flujo de conexión del Host A al Host B y viceversa. Además, requiere que ambos hosts cierren la conexión desde su lado, de ahí la razón detrás del hecho de que ambos hosts deben enviar un indicador FIN y el otro host debe ACKnowledge.

Fuente: http://www.firewall.cx/networkin…

Una bandera TCP es un bit de control que indica diferentes estados de conexión y / o información sobre cómo se debe manejar un paquete. Al igual que en la bandera roja, se usa para enviar información. Aquí están las diferentes banderas:

CWR: el host emisor establece el indicador de ventana reducida de congestión (CWR) para indicar que recibió un segmento TCP con el indicador de ECE establecido.

ECE (ECN-Echo): indica que el par TCP es compatible con ECN durante el protocolo de enlace de 3 vías.

URG: indica que el campo del puntero URGent es significativo

ACK: indica que el campo ACKnowledgment es significativo (a veces abreviado por tcpdump como “.”)

PSH – Función de empuje

RST: restablecer la conexión (visto en conexiones rechazadas)

SYN – Sincronizar números de secuencia (visto en nuevas conexiones)

FIN: no hay más datos del remitente (visto después de que se cierra una conexión)

Una “bandera” es un solo bit en un mensaje que transmite información.

En el caso de TCP, las banderas controlan el avance de la máquina de estado de conexión TCP.