Как установить бит ECN (явное уведомление о перегрузке) в Java-программе Socket клиент / сервер - PullRequest
2 голосов
/ 06 декабря 2011

Я написал базовую программу сокетов для сервера и клиента. Я хотел бы знать, как передавать данные с сервера на клиент с использованием Java, а также во время отправки данных сервером, если переполнение буфера клиента приводит к уменьшению его сервера.скорость отправки (перегруженность указывается битом ECN в tcp / ip) ..... спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011
Поле

ECN является свойством IP и Транспортный уровень . Поэтому я не думаю, что вы можете установить его из обычного приложения. Один из способов сделать это - создать RAW Socket и создать пакеты самостоятельно с правильными полями, заданными (ECN в вашем случае) в заголовке TCP / IP.

Следует также отметить, что все маршрутизаторы и участвующие конечные хосты должны будут иметь поддержку ECN. В противном случае маршрутизаторы могут просто отбросить пакет или произвольно установить значение ECN в ноль.

Google смог найти мне несколько библиотек Java с поддержкой необработанных сокетов, которые вы найдете здесь .

0 голосов
/ 24 июля 2017

Вы можете включить или отключить возможности ECN с помощью команды cmd - netsh interface tcp set global ecncapability = enabled

При включении возможностей ECN заголовок TCP автоматически устанавливает флаг ECN и CWR.

https://www.saotn.org/explicit-congestion-notification-ecn-slows-outbound-connections/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...