каков размер пустой UDP-дейтаграммы? И пустой TCP-пакет?
Я могу найти информацию о MTU, но я хочу знать, что такое "базовый" размер, чтобы оценить потребление полосы пропускания для протоколов поверх них.
Заранее спасибо за информацию.
каков размер пустой UDP-дейтаграммы? И пустой TCP-пакет?
Я могу найти информацию о MTU, но я хочу знать, что такое "базовый" размер, чтобы оценить потребление полосы пропускания для протоколов поверх них.
Заранее спасибо за информацию.
Размер кадра Ethernet - 24 байта
Размер заголовка IPv4 (без каких-либо опций) - 20 байт
Размер заголовка TCP (без каких-либо опций) - 20 байт
Таким образом, общий размер пустой TCP-дейтаграммы - 24 + 20 + 20 = 64 байта.
Размер заголовка UDP - 8 байт
Таким образом, общий размер пустой UDP-дейтаграммы - 24 + 20 + 8 = 52 байт
Что может ввести в заблуждение при взгляде на структуру Ethernet-фрейма [см. дальнейшее чтение], заключается в том, что без полезной нагрузки минимальный размер кадра Ethernet будет 18 байтов: Dst Mac (6) + Src Mac (6) + Длина (2) + Fcs (4), добавляя минимальный размер IPv4 (20) и TCP (20), дает нам всего 58 байтов.
То, что еще не было упомянуто, состоит в том, что минимальная полезная нагрузка кадра ethernet составляет 46 байт, поэтому 20 + 20 байт от IPv4 TCP не хватает полезной нагрузки! Это означает, что должно быть заполнено 6 байтов, из которых исходит общее количество 64 байтов.
18 (минимальные поля заголовка Ethernet) + 6 (дополнение) + 20 (IPv4) + 20 (TCP) = 64 байта
Надеюсь, что это немного облегчит.
Дополнительная литература:
См. Протокол пользовательских дейтаграмм. Заголовок UDP имеет длину 8 байтов (64 бит).
Минимальный размер голого заголовка TCP - 5 слов (32-битное слово), а максимальный размер заголовка TCP - 15 слов.
С наилучшими пожеланиями, Fabian
Артелиус и Halfdan верны, но вы что-то упускаете: UDP и TCP работают поверх некоторого физического транспорта. Например, если вы используете UDP через ethernet, вы также должны указать размер ethernet frame
Если вы планируете рассчитать потребление пропускной способности и относите их к максимальной скорости вашей сети (например, 1 Гбит/с или 10 Гбит/с), необходимо, как указано в Useless, добавить Накладные расходы на фреймворк Ethernet на уровне 1 до чисел, рассчитанных Felix и другими, а именно
то есть. в общей сложности 20 байтов, потребляемых за пакет.