ORIGINAL COMPANY-CONTEXT PRACTICE
Keep a simulated mobile session stable through handovers
Original practice scenario: A mobile-network simulator reports connection handovers while an application uploads chunks. Events can duplicate and connectivity can briefly disappear.
Written for independent practice using company context; this is not a verified question from a company interview.
A REASONED APPROACH
Model answer.
Separate application transfer identity from a changing network connection. A reconnect should resume acknowledged progress without assuming that a dropped response means the server rejected a chunk.
Work through it
- Give transfers and chunks stable identifiers, verify content hashes and record server acknowledgements independently from client send attempts.
- Resume from confirmed chunk state after reconnect, use bounded retries with jitter and make final assembly validate completeness before committing.
- Test handovers during acknowledgements, duplicate chunks, reordered arrivals, corrupt payloads and cancellation while ensuring cleanup does not remove another active transfer.
Tradeoffs to discuss
- Small chunks reduce retransmission cost but increase metadata and request overhead; persistent transfer state improves recovery at a storage cost.
Common pitfalls
- Do not append a resent chunk twice.
- A successful network handover does not guarantee that every application request completed.