Вопрос

Клиент запросил ограничение MTU 1492.

Есть ли способ сделать это в исходном коде (программе на C)?

Есть ли вообще другой способ сделать это?(ifconfig?)

Зачем кому-то нужно изменять MTU до определенного предела?Какая польза?И самый важно: есть ли риск нарушения кода при изменении MTU?

Это было полезно?

Решение

Дело не в скорости напрямую;Увеличивая MTU, вы сокращаете накладные расходы, то есть данные, которые отвечают за правильную доставку пакета, но не могут использоваться конечным пользователем;Это может привести к увеличению скорости, но только при интенсивном движении;

Кроме того, если вы увеличите MTU, вы склонны к увеличению количества отбрасываемых пакетов (поскольку у вас есть фиксированная вероятность битовой ошибки и больше битов в пакете), что в конечном итоге приведет к снижению производительности с повторно отправленными пакетами,и т.д ... Так что это компромисс между накладными расходами и целостностью данных;

Я полагаю, что это скорее конфигурация интерфейса, чем то, что вы управляете с помощью программы;Так что лучше придерживаться команды ifconfig или найти эквивалентное решение для Windows.

Другие советы

Программным способом с использованием C:

общий

Он работает как минимум в Ubuntu, см. man netdevice .

MTU - это число, которое определяет максимальную единицу передачи в пакете.Чем он больше, тем быстрее будут отправлены ваши данные.Предполагая, что вы можете отправлять npackets / s для msize, если m растет, возрастает и m*n.

Я думаю, вашему клиенту нужен этот MTU из-за сетевого оборудования (возможно, Ethernet 802.3).Некоторое оборудование рассчитано на больший размер рамы, чем другое.

Вы можете использовать ifconfig с опцией mtutoизмените его значение: ifconfig eth0 mtu 1492.

Современный способ установить параметры интерфейса через SYSFSS

sudo sh -c 'echo 1492 > /sys/class/net/tun/mtu'
.

по C, просто открыть и записать как файлы

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top