Заголовки TCP и объясненные заголовки UDP

Протокол управления передачей и Протокол пользовательских дейтаграмм — это два стандартных транспортных уровня, используемых с Интернет-протоколом.

Как TCP, так и UDP используют заголовки как часть упаковки данных сообщения для передачи по сетевым соединениям. Заголовки TCP и заголовки UDP содержат набор параметров, называемых поля определяется протоколом технических спецификаций.

Формат заголовка TCP

Каждый заголовок TCP имеет десять обязательных полей общим объемом 20 байтов (160 бит). Они также могут дополнительно включать в себя дополнительный раздел данных размером до 40 байт.

Требуется 8 бит, чтобы равняться 1 байту.

Заголовки TCP отображаются в следующей последовательности:


  1. Номер исходного TCP-порта (2 байта или 16 бит)


  2. Номер порта TCP назначения (2 байта или 16 бит)


  3. Порядковый номер (4 байта или 32 бита)


  4. Номер подтверждения (4 байта или 32 бита)


  5. Смещение данных TCP (4 бита)


  6. Зарезервированные данные (3 бита)


  7. Контрольные флаги (до 9 бит)


  8. Размер окна (2 байта или 16 бит)


  9. Контрольная сумма TCP (2 байта или 16 бит)


  10. Срочный указатель (2 байта или 16 бит)


  11. Необязательные данные TCP (0-40 байт)


Заголовки предоставляют конкретную информацию:

  • Номера портов источника и назначения являются конечными точками связи для отправляющих и принимающих устройств.
  • Отправители сообщений используют порядковые номера для обозначения порядка группы сообщений. Как отправители, так и получатели используют поле номеров подтверждений для передачи порядковых номеров сообщений, которые были недавно получены или ожидаются для отправки.
  • В поле смещения данных хранится общий размер заголовка TCP, кратный четырем байтам. Заголовок, не использующий необязательное поле TCP, имеет смещение данных 5 (представляющее 20 байтов), тогда как заголовок, использующий необязательное поле максимального размера, имеет смещение данных 15 (представляющее 60 байтов).
  • Зарезервированные данные в заголовках TCP всегда имеют значение ноль. Это поле служит для выравнивания общего размера заголовка, кратного четырем байтам (что важно для эффективности компьютерной обработки данных).
  • TCP использует набор из шести стандартных и трех расширенных контрольных флагов (каждый из которых включает или выключает отдельный бит) для управления потоком данных в определенных ситуациях. Например, один битовый флаг инициирует логику сброса TCP-соединения.
  • Отправители TCP используют число, называемое размером окна, чтобы регулировать объем данных, которые они отправляют получателю, прежде чем запрашивать подтверждение в ответ. Если размер окна становится слишком маленьким, передача сетевых данных будет излишне медленной, в то время как если размер окна станет слишком большим, сетевое соединение может стать насыщенным (непригодным для любых других приложений) или получатель может не иметь возможности быстро обрабатывать входящие данные достаточно (также приводит к снижению производительности). Встроенные в протокол оконные алгоритмы динамически вычисляют значения размера и используют это поле заголовков TCP для координации изменений между отправителями и получателями.
  • Значение контрольной суммы внутри заголовка TCP генерируется отправителем протокола в качестве математического метода, помогающего получателю обнаружить сообщения, которые были повреждены или подделаны.
  • Поле срочного указателя часто устанавливается в ноль и игнорируется, но в сочетании с одним из контрольных флагов оно может использоваться как смещение данных, чтобы пометить подмножество сообщения как требующее приоритетной обработки.
  • Использование дополнительных данных TCP включает поддержку специальных алгоритмов подтверждения и масштабирования окна.

Формат заголовка UDP

Поскольку возможности UDP значительно более ограничены по сравнению с TCP, его заголовки намного меньше. Заголовок UDP содержит 8 байтов, разделенных на следующие четыре обязательных поля:

  • Номер исходного порта (2 байта)
  • Номер порта назначения (2 байта)
  • Длина данных (2 байта)
  • Контрольная сумма UDP (2 байта)

UDP вставляет поля заголовка в свой поток сообщений в порядке, указанном выше.


  1. Номера портов источника и назначения UDP являются конечными точками связи для отправляющих и принимающих устройств.


  2. Поле длины в UDP представляет общий размер каждой дейтаграммы, включая заголовок и данные. Значение этого поля варьируется от минимум 8 байтов (требуемый размер заголовка) до размеров, превышающих 65 000 байтов.


  3. Подобно TCP, контрольная сумма UDP позволяет получателям перепроверять входящие данные на наличие поврежденных битов сообщения.


Ссылка на основную публикацию