Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

ограничение трафика   Найти похожие ветки 

 
SEvgeniy   (2003-09-05 18:27) [0]

а вот собственно и сабж мастера. подскажите плиз кто знает,как (например Reget) ограничить входящий трафик.


 
panov ©   (2003-09-05 18:31) [1]

Использовать прокси, например, WinGate.


 
Esu ©   (2003-09-05 18:36) [2]

В ReGet помнится есть такая настройка.


 
panov ©   (2003-09-05 18:52) [3]

Esu © (05.09.03 18:36) [2]
В ReGet помнится есть такая настройка.

А что, в Reget есть возможность ограничить объем скачиваемой информации?


 
Reindeer Moss Eater ©   (2003-09-05 19:56) [4]

Входящий трафик ограничивается так:
Читаем кусочек, измеряем bps.
Если больше чем надо, делаем паузу, кушаем твикс.
Переходим ко второй строчке.


 
Anatoly Podgoretsky ©   (2003-09-05 19:57) [5]

panov © (05.09.03 18:52) [3]
Скорость, но не объем, на чисто лигическом уровне, просто не передаем больше чем заказано, а квант передаваемой информации ограничивает указанным размером.


 
panov ©   (2003-09-05 20:05) [6]

я из вопроса понял, что нужн оогранчит объем, а не скорость.


 
Anatoly Podgoretsky ©   (2003-09-05 20:10) [7]

Ну для меня в данному случае было понятно как скорость, хотя пусть автор уточнит и еще где надо ограничить.


 
SEvgeniy   (2003-09-08 12:12) [8]

ну вроде как объем зависит от скорости,ну да ладно,допустим у меня канал 115к,а надо из него (например) попользовать 9600,чтобы и другим осталось.

to Reindeer Moss Eater ©
ну сделаю я паузу,а буфер TCP один хрен набивается,и его надо вовремя выбрать,не выбереш - переполнение...


 
panov ©   (2003-09-08 12:18) [9]

Переполнения не будет. Будет появляться ошибка(WSAEWOULDBLOCK для неблокирующего режима), которую тебе нужно обрабатывать.


 
esu ©   (2003-09-08 12:36) [10]

Вообще конечно вечная тема. Все равно предложенным panov © образом красивого ограничения не получится. Будут периодические пиковые нагрузки на канал.

Интерестно почему не сделали это на уровне протокола (http, ftp ??). Скажем посылаешь команду "шлите мне не быстрее чем N байт в секунду" и сервер послушненько шлет не быстрее чем N... Вроде бы ничего сложного в реализации нет. Неужели просто "не подумали" ?


 
Reindeer Moss Eater ©   (2003-09-08 12:43) [11]

Неужели просто "не подумали" ?
То, что так очевидно для комнатной сети, выглядит бессмыслицей для реальных условий.


 
Reindeer Moss Eater ©   (2003-09-08 12:44) [12]

Будут периодические пиковые нагрузки на канал.

"шлите мне не быстрее чем N байт в секунду"

И периодических пиковых нагрузок не будет?????


 
Anatoly Podgoretsky ©   (2003-09-08 12:51) [13]

Именно, никаких перегрузок не будет, не надо сразу передавать 9600 бит, надо передавать за раз 9600/115200 бит и будет плавно


 
Reindeer Moss Eater ©   (2003-09-08 12:53) [14]

Ну а первый-то байт (и все остальные тоже) все равно полетит со свистом и неограниченной скоростью :)


 
Anatoly Podgoretsky ©   (2003-09-08 12:53) [15]

9600/115200*9600 это 800 и интервал между посылками


 
Reindeer Moss Eater ©   (2003-09-08 12:56) [16]

Это "средняя по палате температура"


 
Anatoly Podgoretsky ©   (2003-09-08 12:59) [17]

Ну да, при желании можно добавить адаптацию, по результатам передачи предыдущих блоков.
На самом деле даже коэффициент не обязательно расчитыывать, достаточно назбить передачу на фиксированные интервалы времени. например по 100 мс.


 
Anatoly Podgoretsky ©   (2003-09-08 13:01) [18]

А можно и не обеспечивать плавность, передал 9600 и ждемс начало следующей секунды, нужно всего лишь ограничения трафика, а не плавность.


 
Reindeer Moss Eater ©   (2003-09-08 13:01) [19]

Анатолий, я в общем-то не спорю, я возражал против [10]


 
Anatoly Podgoretsky ©   (2003-09-08 13:03) [20]

И я против, поскольку про красоту в вопросе ничего не было.


 
esu ©   (2003-09-08 13:11) [21]

Reindeer Moss Eater © (08.09.03 12:53) [14] Ну а первый-то байт (и все остальные тоже) все равно полетит со свистом и неограниченной скоростью :)

Ну и пусть себе летит, главное что б пакетики других сервисов рядышком могли лететь :) У меня ping www.delphimaster.ru никаких пиковых нагрузок не вызывает. Передает себе по 32 байта раз в секунду и никому не мешает.

А среднюю по больнице температуру можно было бы и понастраивать.


 
esu ©   (2003-09-08 13:14) [22]

насчет команды "шлите мне не быстрее чем N байт в секунду" погорячиля конечно. Подразумевал конечно n байт с периодичностью m.


 
SEvgeniy   (2003-09-08 18:22) [23]

посмотрел я в msdn справочку на recv и пишут там:

If no incoming data is available at the socket, the recv call blocks and waits for data to arrive. When the socket is nonblocking, a value of SOCKET_ERROR is returned with the error value set to WSAEWOULDBLOCK

тоесть,если я правильно понял,ошибочка выдается если данных не приехало?и как мне это может помочь?хотя на самом деле задача чисто теоретическая...просто интересно


 
panov ©   (2003-09-08 20:06) [24]

Предлагал и предлагаю такой метод реализовать, хотя сам не пробовал.

1. Вычисляем, сколько байт(N) с каким интервалом(T) мы должны получать, чтобы получить искомую скорость.
2. Читаем из сокета N байт.
3. Устанавливаем паузу(T) секунд.
4. Переходим к п.1.

WSAEWOULDBLOCK использовать при приеме не надо. Эту ситуацию будет посылающая сторона обрабатывать...


 
SEvgeniy   (2003-09-09 17:43) [25]

толи лыжи не едут,толи я не понимаю :( значит имеем что то вроде:

T:=1000;
N:=1024;
repeat
tcp.readbuffer(buf,N);
.....................
sleep(T);
until false;

ну буду я медленно читать,а сервер то наливает с максимально возможной для себя скоростью(или я не прав),ну переполнится у меня буфер и что?


 
Reindeer Moss Eater ©   (2003-09-09 17:47) [26]

ну буду я медленно читать,а сервер то наливает с максимально возможной для себя скоростью(или я не прав),ну переполнится у меня буфер и что?

А ты не пробовал представить ситуацию когда сервер расположен на толстенном backbone и сливает инфу на клиента со страшной скоростью а по пути к клиенту встречается канальная аппаратура провайдера клиента имеющая меньшую полосу. Происходит что-то неприятное для провайдера клиента или нет?


 
SEvgeniy   (2003-09-09 19:19) [27]

ну неправильно выразился,для клиента конечно,понятно что больше физической возможности (модема,линии, и.т.д. у клиента) не пролезет.


 
panov ©   (2003-09-09 19:37) [28]

>SEvgeniy (09.09.03 17:43) [25]

ну буду я медленно читать,а сервер то наливает с максимально возможной для себя скоростью(или я не прав),ну переполнится у меня буфер и что?

Ну не может буфер переполниться - это система обеспечивает.


 
SEvgeniy   (2003-09-10 10:57) [29]

тоесть, получается,система скажет серверу,типа погоди не шли больше данных,и он(сервер) будет ждать пока я весь буфер не выберу?


 
Reindeer Moss Eater ©   (2003-09-10 11:12) [30]

TCP так устроен. Он ждет квитанции на отправляемые пакеты.


 
SEvgeniy   (2003-09-10 11:21) [31]

ну то что ждет это я знаю(гарантия доставки всетаки),но он же может и не дождаться и пошлет повторный пакет,так несколько раз,потом забъет и отвалит конекшн.


 
Reindeer Moss Eater ©   (2003-09-10 11:47) [32]

[4].


 
Anatoly Podgoretsky ©   (2003-09-10 11:56) [33]

Какой то нехороший сервер, не может секунду подождать.


 
SEvgeniy   (2003-09-10 14:13) [34]

ну секунду ладно,можно,а 20 или минуту,вдруг мне захочется ограничить,например, 10 байт/сек?


 
panov ©   (2003-09-10 14:50) [35]

ну секунду ладно,можно,а 20 или минуту,вдруг мне захочется ограничить,например, 10 байт/сек?

Значит, получишь ошибку.
Ты смотри реально на вещи.


 
SEvgeniy   (2003-09-10 17:32) [36]

ну дык я же и спрашивал чисто теоретически,хотя в принципе и такая задача может возникнуть,поэтому и интересно!как ее можно реализовать...


 
panov ©   (2003-09-10 18:19) [37]

ну секунду ладно,можно,а 20 или минуту,вдруг мне захочется ограничить,например, 10 байт/сек?

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


 
SEvgeniy   (2003-09-10 19:29) [38]

вот именно!!!!,но это же не так


 
panov ©   (2003-09-10 20:13) [39]

>SEvgeniy (10.09.03 19:29) [38]
вот именно!!!!,но это же не так

Есть стандарты...


 
Anatoly Podgoretsky ©   (2003-09-10 20:33) [40]

SEvgeniy (10.09.03 19:29) [38]
Зря сомневаешься, я встречал сайты, которые не соглашались работать на низкой скорости, при это это было явно указано в Welcome сообщении.
Тоже по времени, конечно никто не будет ставить такие маленькие таймауты, но допустимо.



Страницы: 1 2 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.026 c
1-41574
maestro
2003-10-27 14:29
2003.11.13
Создание Button


4-42255
w666w
2003-09-15 15:02
2003.11.13
Drag & Drop - без WinAPI никуда...


14-42102
Nikolay M.
2003-10-17 14:17
2003.11.13
Нет ли у кого вакансии на программиста (Дельфи)?!


14-41902
Behemoth
2003-10-13 09:45
2003.11.13
Какой язык программирования под WEB выбрать?


3-40994
Term
2003-10-16 12:38
2003.11.13
Как сделать аналог автоинкремнтоного поля в dbf