Назначение заголовка - передать информацию о пакете, который следует за заголовком. В качестве аргумента рассмотрим приложение для передачи файлов, такое как разрабатываемое вами, где, например, файл может быть передан от нескольких пользователей одновременно пользователю, который хочет этот файл. Если каждый отправитель отправляет пакет, содержащий часть файла, вам потребуется некоторая форма информации о том, какая это часть - например, порядковый номер или смещение в файле, чтобы получатель мог соединить части в фактический файл.
Чтобы вам было проще, вы можете взглянуть на Буферы протокола Google , которые позволяют указать, какие поля составляют сообщения, а также сериализовать и десериализовать их.
Вы можете найти примеры вещей, которые можно поместить в заголовок, например, в протокол TCP , хотя вам не следует думать, что вам нужно все, что находится в этом заголовке или что-то в этом роде. Хотя изучение других протоколов является хорошим способом изучения.