Bueno en el paper anterior analizamos el formato que sige
la cabecera del protocolo TCP. Pero dejamos algunos puntos sin
tratar y aun falta un poco mas por saber antes de poder empezar a
utilizar herramientas, etc...

Bien tenemos el formato nuestra cabecera TCP:


Ahora analisaremos un poco mas.


    +Puerto de Origen: 16 bits
    +Puerto de Destino: 16 bits
    +Numero de Secuencia: 32 bits
    +Acuse de Recibo o ACK: 32 bits
    +Longitud de la Cabecera TCP: 4 bits
    En este caso se especifica en palabras 32 bits.
    Minimo 5 palabras(20 bytes)
    Maximo 15 palabras(60 bytes)
    +Reservado: 4 bits
    +Bits de Control o Flags: 8 bits
    +Ventana: 16 bits
    +Suma de control o Checksum: 16 bits
    +P. Urgent: 16 bits
    +Opciones: La longitud de este campo tiene que ser multiplo de una palabra de 32 bits
    +Datos: Su longitud varia.

Bien entonces tenemos con que se divide en dos la cabezera,
en el eje de las X, y en el eje de las Y.
Donde la longitud en el eje de la X es de 32 bits,
y en Y es variable dependiendo de algunos campos como lo son
Opciones y Datos, que su tamaño varia.

Bueno pero necesitamos conoser los Flags que son muy importantes.
Estos nos indicaran cosas distintas en cada caso, pero son esenciales.
Veamos la funcion de cada uno:


IMPORTANTE

Cada Flags cuando esta activo se indica con 1 y cuando no lo esta con 0
    +CWR: Significa "Congestion Window Reduced" y se activa (1), cuando el cliente a recibido un paquete TCP
    con el Flag ECE activo.

    +ECE:"ECN-Echo" Sirve para indicar que se pueden hacer notificaciones ECN. Se activa en el Three Way Handshake

    +URG: "urgent" Este activa la seccion urgente dentro de la cabecera TCP, sino se ignora.

    +ACK: Significa "acknowledge", se activa cuando un host (cliente o servidor), an recibido un mensaje o varios
    mensaje y correctamente. De lo contrario no se activa.

    +PSH: "push" Sirve para que los datos de ese segmento y los datos y los almacenados en el buffer del receptor
    deben ser trasnferidos a la cliente lo antes posible.

    +RST: "rest" Sirve para detener la conexion sin esperar respuesta algun, o para reinciar la conexion.

    +SYN: "synchronize" se utiliza para sincronizar los ISN durante el Three Way Handshake.

    +FIN: Sirve para terminar la conexion entre cliente / servidor, y siempre se activa en el ultimo paquete
    para terminar la conexion.

Ahora algo importante igualmente es que dentro de la suma de control o Checksum, apesar de ser de 16bits tienes una "cabecera" de 96 bits prefija. Esta cabecera tienes la direccion de origen, direccion de destino, protocolo y longitud del segmento TCP.
Es como una medida de seguridad que implementaron.
+--------+--------+--------+--------+
| Dirección de origen |
+--------+--------+--------+--------+
| Dirección de destino |
+--------+--------+--------+--------+
| cero | PTCL | Longitud TCP |
+--------+--------+--------+--------+ 
 Vale pues si nos damos cuenta y leemos el primer paper, podemos darnos
cuenta de que entenderemos un poco mejor como funciona el Three Way Handshake.
Que lo volvere a explicar pero muy sintetizado por si caben algunas dudas.

Recordemos un poco


Three Way Handshake:Son 3 etapas
    1.- Se establece la Conexion
    2.- Transferencia de Datos
    3.- Fin de la Conexion


Generalmente uno de los dos abre un socket en algun puerto TCP y escucha por incoming connections(pasivo). El host cliente hace una apertura activa de algun puerto TCP y envia
un paquete SYN incial al host Servidor.
EL host Servidor comprueba si el puerto esta abierto o esta cerra y/o ocupado.
Al estar abierto responde a SYN que recibio con un paquete SYN+ACK.
El host Cliente responde con al host Servidor con un ACK y se completa el Three Way Handshake

En resumen: Se envia SYN, se responde SYN+ACK, y se envia ACK.



Fuente: Indetectables




Publicar un comentario

 
Top