![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ограничение трафика
SEvgeniy © (2003-09-05 18:27:00)
а вот собственно и сабж мастера. подскажите плиз кто знает,как (например Reget) ограничить входящий трафик.
Izyum (2003-09-11 18:08:00) [1]
Я не буду обсужать возможность или невозможность реалтзовать подобный алгоритм средствами Делфей, но есть такая вещь как UserGate-классический пркси-сервер+много чего интересного, так вот он умеет устанавливать лимит индивидуально для конкретного пользователя по времени, по объему, по скорости ит.д.
SEvgeniy (2003-09-11 14:45:00) [2]
понятно,как нибудь попробую и раскажу что получится,ну а пока всем БОЛЬШОЕ спасибо за обсуждение.
Anatoly Podgoretsky (2003-09-10 20:36:00) [3]
Да но мы уходим от темы, если ты дудешь передавать/принимать указанное количество байт в секунду, то ты достигнешь своей прямой цели - занять 1/12 от канала в 115 кбод.
Anatoly Podgoretsky (2003-09-10 20:33:00) [4]
SEvgeniy (10.09.03 19:29) [38]
Зря сомневаешься, я встречал сайты, которые не соглашались работать на низкой скорости, при это это было явно указано в Welcome сообщении.
Тоже по времени, конечно никто не будет ставить такие маленькие таймауты, но допустимо.
panov (2003-09-10 20:13:00) [5]
>SEvgeniy (10.09.03 19:29) [38]
вот именно!!!!,но это же не так
Есть стандарты...
SEvgeniy (2003-09-10 19:29:00) [6]
вот именно!!!!,но это же не так
panov (2003-09-10 18:19:00) [7]
ну секунду ладно,можно,а 20 или минуту,вдруг мне захочется ограничить,например, 10 байт/сек?
В таком случае передающая сторона решит, что у тебя слишком глюкавое соединение и оборвет связь.
SEvgeniy (2003-09-10 17:32:00) [8]
ну дык я же и спрашивал чисто теоретически,хотя в принципе и такая задача может возникнуть,поэтому и интересно!как ее можно реализовать...
panov (2003-09-10 14:50:00) [9]
ну секунду ладно,можно,а 20 или минуту,вдруг мне захочется ограничить,например, 10 байт/сек?
Значит, получишь ошибку.
Ты смотри реально на вещи.
SEvgeniy (2003-09-10 14:13:00) [10]
ну секунду ладно,можно,а 20 или минуту,вдруг мне захочется ограничить,например, 10 байт/сек?
Anatoly Podgoretsky (2003-09-10 11:56:00) [11]
Какой то нехороший сервер, не может секунду подождать.
Reindeer Moss Eater (2003-09-10 11:47:00) [12]
[4].
SEvgeniy (2003-09-10 11:21:00) [13]
ну то что ждет это я знаю(гарантия доставки всетаки),но он же может и не дождаться и пошлет повторный пакет,так несколько раз,потом забъет и отвалит конекшн.
Reindeer Moss Eater (2003-09-10 11:12:00) [14]
TCP так устроен. Он ждет квитанции на отправляемые пакеты.
SEvgeniy (2003-09-10 10:57:00) [15]
тоесть, получается,система скажет серверу,типа погоди не шли больше данных,и он(сервер) будет ждать пока я весь буфер не выберу?
panov (2003-09-09 19:37:00) [16]
>SEvgeniy (09.09.03 17:43) [25]
ну буду я медленно читать,а сервер то наливает с максимально возможной для себя скоростью(или я не прав),ну переполнится у меня буфер и что?
Ну не может буфер переполниться - это система обеспечивает.
SEvgeniy (2003-09-09 19:19:00) [17]
ну неправильно выразился,для клиента конечно,понятно что больше физической возможности (модема,линии, и.т.д. у клиента) не пролезет.
Reindeer Moss Eater (2003-09-09 17:47:00) [18]
ну буду я медленно читать,а сервер то наливает с максимально возможной для себя скоростью(или я не прав),ну переполнится у меня буфер и что?
А ты не пробовал представить ситуацию когда сервер расположен на толстенном backbone и сливает инфу на клиента со страшной скоростью а по пути к клиенту встречается канальная аппаратура провайдера клиента имеющая меньшую полосу. Происходит что-то неприятное для провайдера клиента или нет?
SEvgeniy (2003-09-09 17:43:00) [19]
толи лыжи не едут,толи я не понимаю :( значит имеем что то вроде:
T:=1000;
N:=1024;
repeat
tcp.readbuffer(buf,N);
.....................
sleep(T);
until false;
ну буду я медленно читать,а сервер то наливает с максимально возможной для себя скоростью(или я не прав),ну переполнится у меня буфер и что?
panov (2003-09-08 20:06:00) [20]
Предлагал и предлагаю такой метод реализовать, хотя сам не пробовал.
1. Вычисляем, сколько байт(N) с каким интервалом(T) мы должны получать, чтобы получить искомую скорость.
2. Читаем из сокета N байт.
3. Устанавливаем паузу(T) секунд.
4. Переходим к п.1.
WSAEWOULDBLOCK использовать при приеме не надо. Эту ситуацию будет посылающая сторона обрабатывать...