Как 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, но я не могу найти источник этого поведения.

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

One Solution collect form web for “Как Linux запрещает приложениям отправлять больше пакетов, чем может обрабатывать ссылка, не отбрасывая пакеты?”

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

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

  • Являются ли исходные IP-адреса включенными в уникальность уникального порта Linux?
  • Обнаружение общедоступного IP-адреса серверов и разрешение удаленного доступа
  • iptables: нет цепочки / цели / соответствия этим именем - добавление правила SSH ATTACK
  • Проверьте диапазон IP-адресов, чтобы узнать, активен ли хост
  • Выводить только IP-адреса онлайн-машин с nmap
  • (ошибка) не является допустимым идентификатором номера IP на терминале Ubuntu
  • Используются ли правила IPTABLE для других устройств в сети?
  • Как создать оверлейную сеть IPv6?
  • Как найти MAC или IP-адрес устройства, подключенного к одному мосту Ethernet?
  • Два IP-адреса, назначенные одному и тому же компьютеру?
  • Маршрутизация трафика на мои маршруты ipv4, кроме адреса 0.0.0.0?
  • Interesting Posts

    Как я могу прокрутить страницу в iftop?

    Как изменить кодировку из текста с расширенным ASCII, отличного от ISO, с терминаторами линии CRLF до UTF-8?

    Несоответствие протокола SSH

    Перемещение файлов по дате в другую папку с использованием CLI

    Ошибка ввода звука со скайпом, выбор микрофона?

    Возможно ли автоматически отображать содержимое каталога во время ввода команды?

    Какие менеджеры пакетов используют популярные дистрибутивы Unix?

    Какие пакеты содержат реализации IPsec и алгоритмы, которые используют его для шифрования?

    Установка нескольких пакетов с помощью одной команды yum

    Управление конфигурацией через версии пакетов

    Мигающий экран и мигание подчеркивания при загрузке

    Рассчитать и разделить на общую сумму AWK

    Захват данных с Fluke 1620a через netcat

    Имеет ли информация о кэше Linux?

    Звуковой сигнал Ubuntu 10.0 автоматически отключается на ThinkPad

    Linux и Unix - лучшая ОС в мире.