Your question is Low-Level Fragmented Packet Copy. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
Tell me about how you would implement a low-level data copy function for a network driver that handles fragmented packets, given arrays of source and destination memory segments (pointer plus length).