2013-08-20 8 views
0

Я занимаюсь некоторыми исследованиями, связанными с QOS для отправки UDP-приложений.QOS для UDP в Linux или любой другой UNIX-подобной платформе

Мое приложение отправляет UDP-пакеты по возможно загруженным сетям. Он делает это с небольшими требованиями к пропускной способности по сравнению, например, с BitTorrent над UDP. Поскольку мои потоки имеют довольно низкую пропускную способность, я бы хотел, чтобы мои пакеты UDP были отброшены, когда было решение между моим UDP-пакетом и пакетом UDP BitTorrent.

Там, кажется, способ, чтобы попытаться некоторые QOS сигнализации на Windows, используя WSAIoctl() с SIO_SET_QOSFLOWSPEC с отправкой с ServiceType набор для SERVICETYPE_QUALITATIVE и т.д.

Я был не в состоянии найти способ установить любую такую ​​QOS сигнализация для Linux (или любой другой платформы * NIX). Возможна ли сигнализация QOS для каждого приложения в Linux? Если да, то как?

ответ

2

Если ваша сеть реализует DiffServ, вы можете использовать setsockopt() с IP_TOS, чтобы установить кодовую точку DiffServ (DSCP) на ваши пакеты до подходящего значения. (До того, как был задан DiffServ, эти биты были интерпретированы как Type of Service (TOS) и поля приоритета, отсюда и название.)

Обратите внимание, что протокол UTP на основе протокола UTP в современных реализациях BitTorrent уже ведет себя так, как если бы он имел более низкий приоритет, чем «нормальный» трафик, и будет отступать, когда он ощущает перегрузку.

 Смежные вопросы

  • Нет связанных вопросов^_^