Foro de elhacker.net

Comunicaciones => Redes => Mensaje iniciado por: soyloqbuskas en 10 Junio 2013, 23:39 pm



Título: Reensamblado TCP
Publicado por: soyloqbuskas en 10 Junio 2013, 23:39 pm
¡Buenas a todos!

Tengo una dudilla....

Estoy haciendo un programa que usa raw socket, y estoy recibiendo paquetes TCP por el socket y necesito saber cuando debo reemblar un segmento y cuando no. Mi pregunta es...¿Que campo de la cabecera me proporciona dicha informacion?

Estoy usando wireshark para capturar datos de una conexion cualquiera y no por mas que miro las cabeceras TCP no veo nada que me diga que un paquete esta completo o si es un segmento de un paquete mas grande....Lo que si veo es que todos los segmentos llevan el flag ACK a 1 y luego llevan datos y que cuando llega el ultimo segmento lleva el flag ACK a 1 el PUSH a 1 y datos tambien.

¿Debo entender que todo paquete TCP con el flag ACK a 1 y que lleva datos es un segmento?

¿alguna idea sobre el tema?

Gracias, un saludo


Título: Re: Reensamblado TCP
Publicado por: soyloqbuskas en 11 Junio 2013, 20:39 pm
Bueno, sigo sin dar con la respuesta....asi que voy a reformular mi pregunta a ver si alguien me puede ayudar mejor.

Tengo una aplicacion que recibe 10 segmentos TCP y se de antemano que los 10 segmentos forman parte de 2 paquetes enviados por una aplicacion. ¿como puedo saber que segmentos son del primer paquete y que segmentos son del 2º paquete? porque podrian ser los 4 primeros segmentos  para el primer paquete y los 6 siguientes para el segundo...ó....podrian ser los 7 primeros segmentos para el primer paquete y los 3 ultimos para el segundo....

¿alguna idea sobre como tcp identifica un segmento para hacer el reensamblado?


Título: Re: Reensamblado TCP
Publicado por: engel lex en 12 Junio 2013, 01:06 am
http://es.wikipedia.org/wiki/Transmission_Control_Protocol (http://es.wikipedia.org/wiki/Transmission_Control_Protocol)

aqui está cuales son los bit de control como se maneja la ventana, el ack y numero de secuencia, con eso ya deberias guiarte un poco bastante...

en inglés está más detallado

http://en.wikipedia.org/wiki/Transmission_Control_Protocol (http://en.wikipedia.org/wiki/Transmission_Control_Protocol)


Título: Re: Reensamblado TCP
Publicado por: estepeño en 13 Junio 2013, 14:45 pm
para eso tienes como ha dicho el compañero el numero de secuencia y la ventana que son creo que los mas importantes...

Un segmento de un tamaño X puede ser ensamblado en varios paquetes IP, los cuales yevaran un identificador que diga la ordenacion de los paquetes para su reconstruccion en el receptor.

El flag ACK se usa en los paquetes TCP para llevar el control del "circuito virtual que forma el protocolo TCP... El ACK nos da informacion de que el circuito sigue abierto, o sea, que hay comunicacion con el emisor y receptor, ye que se siguen enviando informacion y recibiendo informacion....

Sobre todo, fihate en el numero de secuencia porque es el valor que se le da al un segmento para que poder ordenarlo en el destino o para poder volverlo a pedir al emisor.