Мне интересно, можно ли ограничить / контролировать скорость загрузки и загрузки Ethernet на определенных транспортных уровнях (tcp / udp), используя c ++? Я пытаюсь сделать простую в использовании программу, которая может контролировать скорость любого устройства, к которому подключен Ethernet. Например: компьютер B подключен к компьютеру A через общий доступ к подключению к Интернету, я использую свою программу, чтобы ограничить скорость загрузки или загрузки компьютера B до 120 Кбит (или любого другого числа, которое я выберу), при этом я также хотел бы выбрать udp или tcp.
По сути, я хочу создать свою собственную программу, аналогичную сетевому ограничителю и другому подобному программному обеспечению, но я также хочу добавить свои собственные функции, которых многим не хватает для моих нужд. Эти другие функции достаточно просты, но я понятия не имею, как поступить с фактическим процессом ограничения.
Путь вперед в общем случае, о котором вы спрашиваете, заключается в создании виртуального сетевого адаптера и всего трафика отслеживаемого маршрута через него. Как только это будет сделано, вы сможете отслеживать потоки между хостами или на определенных портах.
Не легкая работа … Отправной точкой мог бы стать комплект драйверов для Windows.
Если бы вы были готовы ограничить только одно приложение и могли бы изменить его, задача была бы намного проще … wget и curl, например, оба предлагают ограничение.
HTH, Рут
Других решений пока нет …