Intereting Posts
Создайте загрузочную постоянную систему USB Livesystem для UEFI Как найти и подсчитать, сколько файлов содержит определенное слово? Как запустить приложение node.js при загрузке машины, создав загрузочную службу sh – Использование аргументов в .profile-функциях Является ли реализация Linux конфигурации «переменной» ARG_MAX отличной от других системных переменных и совместима ли она с POSIX? Маршрутизация Debian IPv6 Синтаксическая ошибка при использовании sed для параллельной замены строки, специфичной для строки: {= s / _1 / _2 / =}? Преобразование нескольких секунд, прошедших до даты с произвольной даты начала Замените новые строки в многострочном вводе на "\ n" Как мне узнать, что такое моя модель и модель моего компьютера? Не удалось запустить alsamixer в Fedora 25 как Root User Где определение struct task_struct в ядре Linux 2.6.30.5? Может ли несколько пользователей одновременно выполнять команды, используя tmate с отдельными курсорами в одном сеансе? Статус выхода в сценарии bash Не удается удалить <файл>: нет такого файла или каталога

Как Linux запрещает приложениям отправлять больше пакетов, чем может обрабатывать ссылка, не отбрасывая пакеты?

Я не мог сделать вопрос более ясным, вот пример сценария:

Учитывая, что Linux-машина подключена к IP-сети через физический интерфейс с пропускной способностью 10 Мбит / с (или интерфейс с более высокой скоростью с помощью фильтра ток-кодов tc для ограничения скорости до 10 Мбит / с).

На удаленном компьютере (с равной скоростью или более быстрой ссылкой) запустите ip-сервер UDP:

iperf -s -u -i 1

На локальной машине запустите клиент iperf с bw = 20 Мбит / с:

iperf -c <server ip> -u -i 1 -b 20M

Наблюдение : отправитель никогда не превышает скорость 10 Мбит / с (определенную в канальном уровне либо на аппаратном, либо на tc qdisc).

Я ожидал увидеть, что отправитель выталкивает пакеты на 20 Мбит на секунду, заставляя локальную очередь tx интерфейса наращивать, а потери пакетов начинают происходить. Но это не так. Зачем?

Я попытался заглянуть в папку net / sched для ядра Linux, но я не могу найти источник этого поведения.

Цените, что помогаете. Также не стесняйтесь предлагать изменения в названии, чтобы сделать его более актуальным.

Это связано с процедурой, называемой Autonegotiation , которая происходит на физическом уровне . Что касается ядра, эта связь (соединение) может обрабатывать только пропускную способность 10 Мбит / с, а iperf, по-видимому, уважает максимальную скорость соединения.

Хорошие люди на https://networkengineering.stackexchange.com/ могут, вероятно, углубиться в более подробные сведения, если у вас есть дополнительные вопросы об этом взаимодействии.