holautn
Es así:
El paquete va a intentar hacer el camino más corto, por lo que si
no tenes prendido el bit de no fragmentar (don't fragment) no tenes problemas, es solo ver a ojo cual es el camino más corto (el que pasa por menos routers) y listo.
Los paquetes se particionan cuando tienen que pasar por una MTU más pequeña que la de su tamaño. Si por ejemplo del router 1 al router 2 tns una mtu de 500 y tu paquete pesa > 500, tenes que partirlo (tamaño de tu paquete / tamaño del mtu - 20). El que fragmentaría sería el router 1. Ahora vas a tener todos paquetes de 500,
los mismos se reensamblan recién en la máquina destino, NO en los routers intermedios, o sea que en este ejemplo, el router 2 NO reensamblaría, porque destino es el host B.
Tenes que tener en cuenta que tu paquete ahora pesa lo que pesan sus fragmentos, así que sería raro que tengas por delante una mtu más chica que ellos y que necesites volver a fragmentar (no imposible, pero raro, y engorroso).
Entonces, si fragmentaste, a destino (máquina B) llegan esos N paquetes, y es dicha máquina la que reensambla.
Ahora, si tu paquete tiene prendido el bit de DN (don't fragment), si bien tu paquete/datagrama va a intentar hacer el camino màs corto, va a estar condicionado por los MTUs, no puede cruzar un MTU más chico que su tamaño porque no puede ser fragmentado, así que acá vas a buscar el camino más corto pero que al mismo tiempo permita pasar a tu paquete, si no lo encontras, la respuesta es que no llega a destino y decis en que router se quedo "trabado".
Entonces, nuevamente, si entre el router 1 y 2 hay una mtu de 500 y tu paquete pesa > 500, tu paquete será rechazado por el router 1, porque éste se dio cuenta que no lo puede hacer pasar (hablando mal y pronto)
Se entendió?
Saludos!