Разрешить маркировку типа службы/DSCP в Windows для сетевого сокетаC#

Место общения программистов C#
Ответить
Anonymous
 Разрешить маркировку типа службы/DSCP в Windows для сетевого сокета

Сообщение Anonymous »

Я хочу программно пометить байт типа службы/DSCP в пакетах из сетевого сокета. Текущая реализация на C# приведена ниже:

Код: Выделить всё

UdpClient udpClient = new UdpClient();

string ipAddress = "xxx.xxx.xxx.xxx";
int port = 3999;

udpClient.Connect(ipAddress, port);

udpClient.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.TypeOfService, 8);
Console.WriteLine(udpClient.Client.GetSocketOption(SocketOptionLevel.IP, SocketOptionName.TypeOfService)); // Gives value 8

udpClient.Send(Encoding.ASCII.GetBytes("Hello World!"));

udpClient.Close();
Однако выходные данные показывают, что он был установлен успешно, но при проверке пакетов в Wireshark они по-прежнему имеют значение DSCP, равное 0.
Решения, которые я пробовал до сих пор, заключались в следующих изменениях реестра:
  • Установите для параметра DWORD «Не использовать NLA» значение 1 в Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\QoS. (Согласно этому руководству Cisco.
  • Задайте для параметра DWORD DisableUserTOSSetting значение 0 в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters. (Согласно этой старой странице Microsoft (archive.org)).
  • Измените «Дополнительные настройки QoS» в редакторе групповой политики, чтобы приложения могли переопределять настройки политики.
В идеальном мире решение было бы программным и не требовало бы от пользователя редактирования своей групповой политики, поскольку я хочу, чтобы ею можно было управлять из пользовательского интерфейса программы.

Подробнее здесь: https://stackoverflow.com/questions/788 ... ork-socket
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»