Nothing gets lost. Not having every packet get delivered is already entirely normal on any internet application, and already solved.
Solving that "problem" is as simple as sending an acknowledgement back when a message is received, and retrying when acknowledgement isn't received. Routing P2P is more (but not very) complicated than that is.