Размер пустых пакетов UDP и TCP?

Каков размер пустой UDP-дейтаграммы? И что из пустого пакета TCP?

Я могу только найти информацию о MTU, но я хочу знать, что такое «базовый» размер, чтобы оценить потребление полосы пропускания для протоколов поверх них.

Размер кадра Ethernet – 24 байта
Размер заголовка IPv4 (без каких-либо опций) – 20 байт
Размер заголовка TCP (без каких-либо опций) – 20 байт
Таким образом, общий размер пустой TCP-дейтаграммы – 24 + 20 + 20 = 64 байта

Размер заголовка UDP – 8 байтов
Таким образом, общий размер пустой UDP-дейтаграммы – 24 + 20 + 8 = 52 байта

Ответ Himanshus совершенно правильный.

Что может ввести в заблуждение при рассмотрении структуры фрейма Ethernet (см. Дальнейшее чтение), заключается в том, что без полезной нагрузки минимальный размер кадра Ethernet будет 18 байтов: Dst Mac (6) + Src Mac (6) + Length (2) ) + Fcs (4), добавляя минимальный размер IPv4 (20) и TCP (20), дает нам всего 58 байт.

Что еще не было упомянуто, так это то, что минимальная полезная нагрузка кадра ethernet составляет 46 байт, поэтому 20 + 20 байт от IPv4 TCP не хватает полезной нагрузки! Это означает, что должно быть заполнено 6 байтов, из которых исходит общее количество 64 байтов.

18 (минимальные поля заголовка Ethernet) + 6 (дополнение) + 20 (IPv4) + 20 (TCP) = 64 байта

Надеюсь, это немного облегчит ситуацию.

Дальнейшее чтение :

  • Ethernet_frame
  • Ethernet

См. Протокол пользовательских дейтаграмм . Заголовок UDP имеет длину 8 байтов (64 бит).

Минимальный размер голого заголовка TCP составляет 5 слов (32-битное слово), а максимальный размер заголовка TCP – 15 слов.

С наилучшими пожеланиями, Фабиан

Артелиус и Halfdan правильны, но вы что-то упускаете: UDP и TCP работают поверх некоторого физического транспорта. Например, если вы используете UDP через ethernet, вы также должны указать размер frameworks Ethernet

Если вы планируете рассчитать потребление пропускной способности и относите их к максимальной скорости вашей сети (например, 1 Гбит / с или 10 Гбит / с), необходимо, как указано в «Бесполезном», добавить служебные данные для фрейма Ethernet на уровне 1 на числа, рассчитанные Феликс и другими, а именно

  • 7 байт преамбулы
  • 1 байтовый разделитель начала кадра
  • 12-байтовый промежуток между пакетами

т.е. в общей сложности еще 20 байтов, потребляемых для каждого пакета.

  • Почему имена таблиц / столбцов / индексов Oracle ограничены 30 символами?
  • Как определить искусственный смелый стиль, искусственный курсив и искусственный контурный стиль текста с помощью PDFBOX
  • Определите размер слова моего процессора
  • Как я могу получить размер файла в C?
  • Проверка размера объекта в Objective-C
  • Является ли sizeof (некоторый указатель) всегда равным четырем?
  • Может кто-нибудь объяснить этот код шаблона, который дает мне размер массива?
  • Выбор размера System.Drawing.Icon?
  • Размер массива (длина) в C #
  • Java / ImageIO получает размеры изображения без чтения всего файла?
  • resize массива
  • Давайте будем гением компьютера.