Full transcript
0:00Hoy vamos a ver asignación de direcciones y fragmentación.
0:03Hasta ahora hemos hablado de la capa de red y las direcciones IP.
0:07Sin embargo, parte importante de lo que es la capa de red es asignar direcciones para que los usuarios puedan comunicarse.
0:13Aquí veremos 2 formas de asignar direcciones:
0:15Asignación de direcciones estáticas.
0:18Y Asignación de direcciones dinámica.
0:20Las direcciones estáticas son direcciones que se asignan a un equipo o interfaz y no cambian más,
0:25salvo que se solicite, por ejemplo, al migrar un servidor.
0:29Estas son utilizadas cuando queremos que nuestra IP pueda ser alcanzada directamente desde Internet,
0:33como cuando hosteamos una página web.
0:36Estas direcciones, al ser estáticas, se asignan “a mano”,
0:39por lo que se requiere de alguna persona o entidad que maneje estas direcciones cuidando de no generar colisiones,
0:45o sea, que no queden 2 hosts con la misma dirección.
0:48También existen redes locales que usan direcciones estáticas, en ellas hay una persona encargada de asignar las direcciones a mano.
0:54Las direcciones dinámicas son asignadas en el momento en que un host entra a una red.
0:59Un ejemplo de esto es cuando se conectan a una red wifi.
1:02Cada vez que se conectan a una red wifi, esta les asigna una dirección IP de forma dinámica.
1:07Cuando dejan dicha red, esta libera la dirección que les había asignado y ahora la puede usar para otra interfaz que la necesite.
1:14Un protocolo que nos permite manejar direcciones dinámicas es DHCP.
1:18Con DHCP se puede automatizar completamente la asignación de direcciones dentro de una red.
1:24Para obtener una dirección con DHCP debemos seguir 4 pasos:
1:28DHCP server discovery
1:30DHCP server offer
1:32DHCP request
1:34Y DHCP ACK
1:35Veamos cada paso:
1:37Primero, el cliente envía un mensaje DHCP discover dentro de un paquete UDP hacia el puerto 67.
1:43Enviamos el paquete a la dirección de broadcast desde la dirección de “origen” 0.0.0.0.
1:49Básicamente, como el cliente no sabe su propia dirección, y menos la del servidor,
1:53simplemente le envía el mensaje a toda la red con dirección de origen “esta red”.
1:58Una vez el servidor DHCP recibe el mensaje DHCP discover,
2:02responde con un DHCP offer, el cual contiene la IP propuesta, la máscara propuesta y el tiempo de préstamo.
2:09Como el servidor DHCP no sabe de dónde vino la petición, envía su DHCP offer con un broadcast.
2:15Luego de recibir uno o más DHCP offers,
2:18el cliente selecciona una propuesta y le indica al servidor cuál configuración quiere usar con un DHCP request.
2:24Finalmente, si la configuración sigue disponible, el servidorle responde al cliente con un DHCP ACK confirmando los parámetros.
2:32Viendo cómo funciona asignar direcciones, es claro que estas le pertenecen a la red y no a los equipos.
2:37Gracias a esto, los routers no necesitan conocer todas las direcciones IP para poder rutear los datos,
2:43sino que solo necesitan saber más o menos hacia donde queda cada red.
2:47Un problema que puede aparecer al rutear los datos es la cantidad de datos que puede transmitir un enlace físico.
2:53Cuándo llegan los datos a un router,
2:55es posible que nos encontremos con que los datos recibidos no quepan en el enlace que lleva al siguiente salto.
3:00¿Qué hacemos si un datagrama no cabe por el siguiente enlace?
3:04Lo fragmentamos.
3:06Como el nombre sugiere, cuando no caben los datos por un enlace
3:09vamos a tener que fragmentarlos o partirlos en trocitos más pequeños que si quepan.
3:13Para ello vamos a usar el Maximum Transmission Unit o MTU.
3:17El MTU corresponde a la máxima cantidad de bytes que puede pasar por un enlace.
3:22Este valor puede ser distinto para cada enlace y un fragmento IP puede pasar por muchos enlaces distintos.
3:28Como la ruta se va armando en el camino,
3:30a priori no sabemos por cuáles enlaces van a pasar los datos, por lo que hay que fragmentar según sea necesario.
3:36Y puede ser que tengamos que fragmentar un fragmento.
3:40En este caso vamos a fragmentar el datagrama en partes que sean de tamaño menor o igual a MTU y lo vamos a mandar por el enlace.
3:48Este proceso se va a repetir las veces que sea necesario hasta que el fragmento llegue a su destino.
3:53Dado que uno de los principios de IP es el end-to-end argument, no vamos a reensamblar el datagrama hasta que llegue a su destino.
4:00Así evitamos estar armando y desarmando los datos en cada salto.
4:04Una vez allí, el datagrama se reensambla y se le pasa a la capa de transporte.
4:09La información necesaria para reensamblar el datagrama original es guardada en el header en los siguientes campos:
4:15El identification number o número de identificación nos indica a qué datagrama pertenece el fragmento
4:21Offset nos indica en qué byte parte dicho fragmento respecto al tamaño original del datagrama.
4:25Pero, el offset almacena este dato dividido en 8, en octetos.
4:29Así, si un fragmento parte en el byte 400 respecto al datagrama original, el offset va a ser igual a 50.
4:35Finalmente, el campo Flag (more fragment flag) indica si quedan más fragmentos del datagrama después de este.
4:42Si este es el último fragmento, entonces FLAG se setea en 0.
4:45Y si no, este se setea en 1.
4:47Veamos un ejemplo.
4:48Supongamos que nos llegan estos fragmentos. Vemos que un par traen 400 bytes y un par traen menos que eso.
4:55Viendo el offset sabemos que este es el primer fragmento
4:57y viendo el flag sabemos que este es el último fragmento.
5:00De hecho, viendo el offset, podemos ordenar los fragmentos que nos quedan, así.
5:07Aquí vemos que algunos trozos fueron fragmentados más de una vez.
5:11Si sumamos los tamaños de estos dos fragmentos, vemos que suman 400, similar a estos fragmentos de aquí.
5:17Es decir, estos probablemente fueron un fragmento original de 400 bytes que luego fueron fragmentados nuevamente.
5:24Ahora queda armar el datagrama original y pasárselo a la capa de transporte.
5:29Lo armamos y vemos que…
5:32nos falta un fragmento :o
5:34Si un fragmento se pierde, no tenemos cómo recuperar solo ese fragmento, pues no sabemos en qué punto fue generado,
5:40y aunque lo supiéramos, los routers no guardan ese tipo de información.
5:43Así, si nos damos cuenta de que falta un fragmento, no nos queda más que desechar todo y hacer como que no llegó.
5:49Si en la capa de transporte se manejan pérdidas,
5:51eventualmente vamos a recibir todos los fragmentos y lograremos reensamblar el datagrama original completo,
5:56y entregarlo a la capa superior.
5:58Y así es como un datagrama puede pasar por varios enlaces, incluso si el MTU es más pequeño que el tamaño del datagrama.
6:05En esta clase hemos visto:
6:06Asignación de direcciones.
6:08Direcciones estáticas
6:10Direcciones dinámicas.
6:11DHCP.
6:13Y fragmentación.
6:14Cualquier duda o consulta, ¡no duden en contactar al equipo docente!