Я бы хотел контролировать объем / скорость загрузки со своей стороны - и со стороны сервера (чтобы быть вежливым).
... Это не о "моем собственном менеджере загрузок".
Давайте представим: я позволяю моему сыну загружать максимум 500 МБ / день с utube, и все же он инициирует сеанс для загрузки фильма HD 10 ГБ.
(Не обязательно аб. Родительский контроль, но технически это хороший пример).
У меня вопрос: как ограничить.
Я хочу написать драйвер, который будет контролировать это на уровне TCP (IP?).
Можно ли на уровне TCP?
Я знаю, что могу справиться с этим локально (например, сузив окно TCP, которое я объявляю серверу, или просто закрыв соединение после XXX байт).
Но что я действительно хочу - это сказать (сказать) утубе вежливо:
(после того, как соединение было установлено и загрузка продолжается): не пытайтесь изо всех сил сжать этот фильм на маленькие сегменты, и создайте много заторов на н / ж - все готово.
Я бы хотел избежать ненужных н / ж с любой стороны; в основном я хотел бы иметь возможность (на уровне TCP) сказать другому концу: вот и все, на сегодня мы закончили. Пожалуйста, не пытайтесь доставить весь фильм, я не заинтересован в просмотре остального фильма (сегодня). (Так что utube просто перестанет загрязнять полосу пропускания мгновенно).
Может быть, вас больше смущает, но, надеюсь, прояснит,
Вот выдержка из «Полного руководства по сетевому программированию в Linux», стр.31:
(Говоря о 6-битной части заголовка TCP: URG, ACK, PSH, RST, SYS, FIN):
"" ... возникают ситуации, когда данные должны передаваться вне диапазона. ... Это то, вступает ли бит URG в игру. Рассмотрим соединение, которое пользователь желает прервать , например ... "(и т. Д.).
Это, наверное, то, что я ищу:
отправьте утубе "URG" с "ABORT".
Единственное, что мне непонятно из этого текста - это «АБОРТ». Это "RST"? или что?
Пожалуйста, подтолкните меня немного в правильном направлении.