Podcast de Redes de Eduardo Collado

Podcast de Redes de Eduardo Collado


Flags de TCP

March 13, 2020

Al final del post tenéis el audio en vídeo.

El otro día en el grupo de Telegram del podcast que está en t.me/grupopodcast el usuario @TalkToMeAboutTheSolutions, lo siento, no se el nombre, sólo el nick de Telegram, me preguntó si ya había hablado en algún audio de los flags de TCP, y la verdad es que no lo había hecho, así que si os parece bien, vamos a dedicar este capítulo número 205 a los flags de TCP.

Por supuesto como siempre, si os interesa el tema y os queréis quedar conmigo un ratito yo encantado intentaré hablaros un poco de los 9 flags que hasta donde yo se hay, pero eso no quiere decir que en un futuro no pueda haber más.

No se si recordáis la cabecera de TCP, pero además de puertos de origen y destino, números de secuencia o tamaño de ventana teníamos unos campos destinados para flags.

Dependiendo del libro que tengáis el campo para flags puede tener 6, 8 o incluso 9 bits, y claro el campo de reservado puede ser de 5, 4 o 3 bits.

A mi personalmente me gusta más la versión en la que podemos ver los 9 bits de flags y sólo 3 en reservado. Os pongo esa imagen para que podáis tenerla en el podcatcher, si no podéis verla ya sabéis que en las notas del programa en eduardocollado.com os lo dejo como siempre.

Imagen de Stackoverflow

Pero eso de los flags ¿qué es? Una vez leí en algún lugar que lamentablemente no recuerdo que cuando pensemos en los flags de TCP tenemos que pensar en algo más sencillo como señales de tráfico.

Cuando vais conduciendo en la carretera os vais a ir encontrando señales de tráfico que os van indicando el estado de la misma, si hay una curva cerrada, si hay un paso de cebra, si hay una glorieta más delante, etc. En definitiva os van dando pistas de los cambios que puede ir teniendo la carretera y que pueden afectar a vuestra conducción.

Los flags de TCP tienen la misma función que esas señales de tráfico y es indicarnos los cambios de situación o condición que tienen que tener los peers entre ellos en su comunicación extremo a extremo.

En la formación clásica de TCP nos encontramos sólo 6 flags, por lo menos eso es lo que nos cuentan y son:

* SYN* ACK* FIN* RST* PSH* URG

Luego si habéis continuado profundizado con TCP es probable que os hayáis encontrado con:

* ECE* CWR

Y luego seguramente os hayáis encontrado con otro nuevo que es

* NS

No os preocupéis que vamos a ir hablando de todos estos uno a uno.

De momento vamos con el primer grupo, los 6 más conocidos:

SYN: Synchronisation

¿Tenéis en mente el desafío en tres vías de TCP? Recordad que era el mecanismo aquel por el que se establecía la conexión entre dos hosts. De todos modos tener en cuenta que en el desafío en 3 vías entran más parámetros que hoy sacaremos a la luz aunque sólo sea superficialmente.

En ese proceso se enviaba un SYN, es decir, se marcaba el bit de SYN en esa comunicación y era el establecimiento de la conexión.

Luego el host de destino tenía que establecer también la conexión con otro SYN de vuelta, pero marcando también el ACK

Fuente Wikimedia