Leyendo en el libro sobre el proceso de fragmentación y re-ensamblado de los datagramas IP, entiendo cual es el funcionamiento del mismo.
Leí en el libro y en algunas RFC que cuando un datagrama que fue fragmentado, al momento de re-ensamblarse se identifica unicamente con el ID, la IP de origen, el offset y la flag MF (y ademas hay una ventana temporal en la cual esos fragmentos "valen" de 15 segundos aprox) [Puede ser que me esté comiendo algun detalle menor del proceso].
Y también encontré que la RFC 4963 (IPv4 Reassembly Errors at High Data Rates - 2007): https://www.ietf.org/rfc/rfc4963.txt indica que cuando se tienen velocidades muy altas, los identificadores unicos generados por un router se podrían repetir y vi que hay otras RFC que proponen cambios para corregir esto (RFC 6864: https://tools.ietf.org/html/rfc6864 ).
Pero se me ocurre una situacion que no parece ser contemplada por estas RFC ni en ninguna fuente que consulté.
La situacion es: que pasaría si se da lo siguiente (un caso bastante muy poco probable, pero aún así posible):
Desde un host se envian ciertos datagramas hacia un host destino, y en un instante de tiempo ese flujo de datagramas es enrutado por otro camino distino, de tal manera que al host destino llega un flujo de datagramas por dos rutas distinas.
Supongo que en algun punto intermedio de cada uno de los 2 caminos, hay un router que hace fragmentación de los datagramas que pasan por el.
Y ademas supongo que tanto el router del camino 1 como el router del camino 2 que fragmentan, justo le asignan igual ID a los fragmentos del datagrama que forwardean hacia el destino, y encima, esos fragmentos llegan en un tiempo valido a destino (si, ya se que es recontra improbable pero no imposible),
que pasaría al momento de re-ensamblar si se toman fragmentos de un datagrama y fragmentos del otro?
En el proceso de re-ensamblado hay algun mecanismo para detectar esto?
O es un problema tan poco probable que ni siquiera tiene sentido plantearse un mecanismo para solucionarlo?
Edit: Se me ocurrió otra cosa sinó, puede ser que si justo se da la inprobabilidad de que ese datagrama con algunos fragmentos incorrectos (que no pertenecen al mismo datagrama original) se re-ensamble bien pero sea rechazado al hacer el checksum en la capa superior?