Diferencia entre revisiones de «Ejercicio de fragmentación de tráfico con Hping3»

sin resumen de edición
Sin resumen de edición
Sin resumen de edición
Línea 34: Línea 34:
<p> Vamos a analizar qué es lo que ha sucedido en este paquete, desde la IP fuente 215 (que es la mía) hacia la IP destino. Ampliamos el campo "data" y lo primero que vemos es que en este primer paquete, el protocolo IP le está diciendo que él, en este protocolo, tiene un flag que informa que hay "more fragments". Entonces, le está diciendo que ha usado la función de fragmentación. Ha colocado este "ID" en este caso = 187, que hay "more fragments" y que el fragment offset ocupa la posición 0. Es decir, ha generado una trama de longitud total de 1514 bytes que se corresponde al identificador 187 y que vienen más fragmentos dentro de este datagrama.</p>
<p> Vamos a analizar qué es lo que ha sucedido en este paquete, desde la IP fuente 215 (que es la mía) hacia la IP destino. Ampliamos el campo "data" y lo primero que vemos es que en este primer paquete, el protocolo IP le está diciendo que él, en este protocolo, tiene un flag que informa que hay "more fragments". Entonces, le está diciendo que ha usado la función de fragmentación. Ha colocado este "ID" en este caso = 187, que hay "more fragments" y que el fragment offset ocupa la posición 0. Es decir, ha generado una trama de longitud total de 1514 bytes que se corresponde al identificador 187 y que vienen más fragmentos dentro de este datagrama.</p>


<p>Si analizamos el segundo, me está diciendo que sigue siendo el ID 187, que ya no tiene más fragmentos ("no more fragments") y que ocupa la posición 1480 (porque es este valor, 1480).</p>
<p>Si analizamos el segundo, me está diciendo que sigue siendo el ID 187, que ya no tiene más fragmentos ("no more fragments") y que ocupa la posición 1480. estudiemos más en detalle por qué este valor de 1480.</p>


<p>Un poco más en detalle, fíjense que el primer paquete (estos son los dos paquetes que generamos con [[hping3]] cuando le dijimos que ocupe una posición de 1600 bytes) entonces, IP, como no puede meter más de 1500 bytes en una red Ethernet, lo partió como un primer paquete con la máxima longitud que soporta una red Ethernet, que son 1514 bytes. Y estos 1514 bytes están divididos en 14 bytes del encabezado [[Ethernet]] (que es lo que estamos viendo en azul aquí abajo). Toda esta línea en hexadecimal ocupa 16 bytes completos. El primer encabezado, que es [[Ethernet]] (que es lo que estoy marcando aquí), ocupa 14 bytes. Y el segundo encabezado, que se le degrada, es el de IP.</p>
<p> Fíjense que el primero de estos dos paquetes que generamos con [[hping3]] cuando le dijimos que ocupe una posición de 1600 bytes, es menor de 1600. Como no puede meter más de 1500 bytes en una red Ethernet, lo partió en un primer paquete con la máxima longitud que soporta una red Ethernet, que son 1514 bytes. Y estos 1514 bytes están divididos en 14 bytes del encabezado [[Ethernet]] (que es toda esa línea en hexadecimal ocupa 14 bytes completos y que se marca en azul cuando clicamos sobre la entrada "Ethernet II Src:"). Y el segundo encabezado, que se le degrada, es el de IP. Este segundo <strong>siempre comenzará por 45</strong> que es lo que demarca el comienzo de un encabezado IP, 14 bytes en la segunda línea y dos últimos que cierran el encabezado IP que siempre serán 20. </p>


<p>Si contamos lo que figura aquí abajo en esa decimal, tenemos dos objetos. Siempre el valor 45 es el que identifica el inicio de un encabezado IP. Luego los 14 bytes están en la segunda línea, y 2 bytes están abajo.</p>
<p>Estos son los 20 bytes del encabezado IP, más 14 bytes del encabezado Ethernet, son 34.  34 más 1480, que es la posición que ocupa este dato, suman los 1514 del que aparece en la longitud total del primer datagrama. Es decir, cuando le dijimos a [[hping3]] que genere un datagrama de 1600 bytes, él generó primero 1514. Entonces, en este primer, me dice el ID es 187, tengo "more fragments" y ocupó la posición 0. En el segundo, me dice "sigo siendo el ID 187", ya no tengo más fragmentos, y este lo empiezo a contar a partir de la posición 1480, porque 1480 más los 20 del encabezado IP más los 14 del encabezado de Ethernet, suman los 1514 bytes que son los que realmente puso en el canal de comunicación.</p>


<p>Estos son los 20 bytes del encabezado IP, más 14 bytes del encabezado Ethernet, son 34.  34 más 1480, que es la posición que ocupa este dato, se suman los 1514 del que aparece en la longitud total del primer datagrama. Es decir, cuando le dijimos a [[hping3]] que genere un datagrama de 1600 bytes, él generó primero 1514.</p>
<h3> Analizando el segundo comando ejecutado por hping3</h3>


<p>Entonces, en este primer, me dice el ID es 187, tengo "more fragments" y ocupó la posición 0. En el segundo, me dice "sigo siendo el ID 187", ya no tengo más fragmentos, y este lo empiezo a contar a partir de la posición 1480 porque 1480 más los 20 del encabezado IP más los 14 del encabezado de Ethernet, suman los 1514 bytes que son los que realmente puso en el canal de comunicación.</p>
<p>Vamos a analizar el segundo comando que nosotros ejecutamos, [[hping3]]. Le dijimos que era de 5000 bytes. En este caso, vamos a ver que lo partió en cuatro paquetes. El primer paquete, al igual que el anterior, dice que tiene "more fragments". En este caso, le dio el ID 189 y ocupa la posición 0.</p>


<p>Vamos a analizar el segundo comando que nosotros ejecutamos, [[hping3]]. Le dijimos que era de 5000 bytes. En este caso, vamos a ver que lo partió en cuatro paquetes. El primer paquete, al igual que el anterior, dice que tiene "more fragments". En este caso, le dio el ID 189 y ocupa la posición 0.</p>
[[File:Segundo_paquete_realizado_por_Hping3.jpg|thumb|Segundo paquete realizado por Hping3|center|650px]]


<p>El segundo paquete, vemos que igual que antes, ocupa la posición 1480. En este caso, me dice que tengo "more fragments" y sigue siendo de 1514.</p>
<p>El segundo paquete, vemos que igual que antes, ocupa la posición 1480. En este caso, me dice que tengo "more fragments" y sigue siendo de 1514.</p>
Línea 54: Línea 54:
<h3>Conclusiones</h3>
<h3>Conclusiones</h3>


<p>Es decir, para meter en la red una información de 5000 bytes, que es lo que le hemos ordenado con [[hping3]], lo partió en cuatro paquetes sin excederse del máximo tamaño que permite la red Ethernet, que recuerdo es 1514.</p>
<p>Es decir, <strong>para meter en la red una información de 5000 bytes</strong>, que es lo que le hemos ordenado con [[hping3]], lo partió en cuatro paquetes sin excederse del máximo tamaño que permite la red Ethernet, que recuerdo es 1514.</p>


<p>En un primer paquete lo llamó 189, "more fragments", y ocupa la posición cero. Un segundo paquete, también 189, también "more fragments", ocupa 1480. En un tercer paquete, también 189, "more fragments", ocupa 2960 (que es 1480 por 2). Y en un último paquete, que también es ID 189, ya no hay más fragmentos, este es el último y ocupa la posición 4440 (que es 1480 por 3).</p>
<p>En un primer paquete lo llamó 189, "more fragments", y ocupa la posición cero. Un segundo paquete, también 189, también "more fragments", ocupa 1480. En un tercer paquete, también 189, "more fragments", ocupa 2960 (que es 1480 por 2). Y en un último paquete, que también es ID 189, ya no hay más fragmentos, este es el último y ocupa la posición 4440 (que es 1480 por 3). El último tiene una longitud de 614.</p>


<p>Entonces, así es como IP fragmenta un volumen grande que puede recibir de los niveles de transporte o de aplicación. Así es como cuando nosotros queremos enviar una película a través de internet de un gigabyte, pues lo va a partir en tantos paquetitos como necesite para que esta información llegue desde el origen en que enviamos hasta el destino que queremos llegar con la tele.</p>
<p><strong>Así es como IP fragmenta un volumen grande</strong> que puede recibir de los niveles de transporte o de aplicación. Así es como cuando nosotros queremos enviar una película a través de internet de un gigabyte, pues lo va a partir en tantos paquetitos como necesite para que esta información llegue desde el origen en que enviamos hasta el destino que queremos llegar con la tele.</p>


<p>Así es como trabaja IP en fragmentación. Y el proceso inverso es lo que sucedería en el otro extremo.
<p>Así es como trabaja IP en fragmentación y reensamble. Y el proceso inverso es lo que sucedería en el otro extremo. Así es como trabaja hping3 que en nuestro primer ejemplo, lo hemos visto para generar datagramas IP de distintas longitudes y obligarlos a que hagan uso de la función de fragmentación. </p>
164

ediciones