Protocol stack
Some layers within the protocol stack will work on reliability. They will send a message again if the first message was lost in communication.  Some layers will provide compatibility. They will let data to be communicated in different ways. They also let different types of data to be communicated in a standard manner.  Layers often handle a series of chunks of data. Some layers split the data into smaller chunks when sending it. This is called fragmentation. When the data is received, another layer puts the smaller chunks back together to form larger chunks or media streams. This is called reassembly.  Some layers may encrypt the data when it is sent. This is done so it cannot be read. A layer at the receiving side will remove the encryption.