On a network, which protocol is responsible for dividing files into chunks, adding headers containing information for reassembling packets in their original order, and verifying that the data was not corrupted while in transit?.