+  HandyCache форум
|-+  Главная категория» Новые предложения» Управление загрузкой по Заголовкам
Имя пользователя:
Пароль:
Страниц: 1 [2]  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: Управление загрузкой по Заголовкам  (Прочитано 26196 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #20 : 22 января 2007, 18:20:53 »

Цитировать
Это что? Размер заголовка, или объем поступивших данных до принятия решения об отказе загрузки этого файла? Интересует именно второе. И как измерял.
Именно второе - объём поступивших данных.
Просто поставил лимит размера для jpg в 16к и открыл страничку с фишек (сотня картинок где-то)

На индикаторе загрузки файла было 1-3%
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #21 : 22 января 2007, 18:40:27 »

ЗЫ.
Тут прогнал такую програмку:
Код:
Char[] read = new Char[4096];
int count = sr.Read( read, 0, 4096 );
while (count > 0) {
    Console.Write(count);
    count = sr.Read(read, 0, 4096);
}
sr - естественно сокет.
Результат слегка поразил:

3937 1460 1435 2645 1212 1110 1181 1291 4096 657 1630 1424 1416 1364 2831 732 515 1228 4096 2044 565 448 1439 4096 2195 584 1433 1387 877

Т.е. винда вообще читает как бог на душу положит...
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #22 : 22 января 2007, 19:07:22 »

Просто поставил лимит размера для jpg в 16к и открыл страничку с фишек (сотня картинок где-то)
На индикаторе загрузки файла было 1-3%
Это некоррекное измерение. В самом НС можно увидеть только то что он принял, но не то, что фактически пришло (и посчиталось как трафик) но было им не востребовано. Нужно смотреть, например, firewall'ом сколько было принято. Хотя и это не "чистый" результат, но куда больше похожий на правду.

Цитировать
Т.е. винда вообще читает как бог на душу положит...
Да, верно. Поэтому и нужны измерения. Поэтому и желательно измерять на быстром канале. Хотя 512Кбит - тоже не медленный. Улыбка
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #23 : 23 января 2007, 00:34:55 »

винда вообще читает как бог на душу положит
А какие данные ты брал из сокета? Опиши условия,- как именно они попали в сокет

Наполнение буфера означает, что продолжающие поступать пакеты будут отвергаться, затем запрашиваться вновь. Поэтому начало чтения с момента заполнения буфера - путь к ошибкам и многократным повторам
Это не так, поскольку в системе имеются два буфера - интерфейсный (представляющий собой стек типа FIFO, или проще - "очередь", размер задаётся в реестре) и буфер сокета (обычный байтовый массив, размер задаётся при создании объекта сокета), из которого в свою очередь приложение читает уже в свой собственный буфер (rem: когда я писал о статистике, процентах, и оптимальном размере - речь шла о буфере сокета). Так вот эта входная очередь и позволяет избежать потерь данных при заполнении буфера сокета и вызываемой этим задержки для осуществления операции переброса данных приложением в собственный буфер, так что отвергаться пакеты не будут
Цитировать
похоже кроме тебя некому провести такой эксперимент
Сумневаюсь. На величину получаемого "мусорного хвоста" влияет не cтолько полоса канала, сколько размер интерфейсного буфера (RWIN). При установлении соединения TCP клиент сообщает серверу размер RWIN в двух байтах заголовка TCP (смещение 0x1C), и сервер формирует блоки данных для отправки клиенту именно такого размера (если не имеет собств. огранич.), после приёма которых клиент отправляет серверу сообщение об успешном приёме блока и готовности к следующему или (при ошибке) просьбу повторить отправку сбойного блока (т.н. "квитирование"). Поэтому, даже если HC и "не хочет больше кушать", первый блок длиной, равной размеру RWIN будет принят в любом случае. Термины "клиент" и "сервер" в данном контексте означают не HC и Апач, а стеки TCP запрашивающего и отвечающего компьютеров. У меня RWIN установлен в 252K. При установке у себя параметров сетевого доступа пользовался этим ресурсом

Может, все-таки, пересилишь лень и проведешь "полевые испытания"!? Время на это уйдет гораздо меньше, чем на теоретические споры в этой теме!
Да, DenZzz, так и поступлю...

Убил вечер на эксперименты и поиски доп. инф., но выяснил новые подробности - всё вышесказанное справедливо в отношении использования модема в режиме бриджа, т.е. когда винда напрямую смотрит в сеть. У меня же роутер с хардварным фаером, эта штука "раздевает" мои IP-пакеты и формирует свои. Сетевой буфер там так же свой, и похоже весьма небольшой. С одной стороны это радует - "мусорные хвосты" будут меньше. С другой - небольшой напряг - надо будет пересмотреть свои сетевые настройки. Ну, да нет худа без добра - благодаря нашей дискуссии теперь смогу заново оптимизировать с учётом неожиданно (для меня) открывшихся новых "вводных"
Да, чуть не забыл главного :Улыбка При установке в HC ограничения 1K хвост на разных ресурсах (испытывл на 5 URI) непостоянен, и плавает в пределах 6-40K. При этом, в мониторе HC "Получено" перемежаются только два значения - 4096 и 4109
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #24 : 23 января 2007, 14:27:25 »

Цитировать
А какие данные ты брал из сокета? Опиши условия,- как именно они попали в сокет
Разобрался, почему таки странные цифири. Наш глобальный файрвол, получая сжатую инфу, её разжимает (анализирует/фильтрует) и уже в таком виде отдаёт клиенту.
А при разжатии у него достаточно странные размеры кусков получаются, и он их так и отдаёт.
Для бинарников результат гораздо стабильней 1420-1440-1460
Сообщить модератору   Записан
Colonel
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #25 : 19 октября 2007, 13:57:52 »

...
3. Идея использовать "Content-Type" вместо расширения очень интересна. Если можно будет указывать ограничения основываясь и на "Content-Type", то я обеими руками "за". Но анализ URL-а не следует исключать, т.к. это позволит настроить разные правила для разных групп сайтов (например есть "доверенные" сайты и "остальные"). В общем, что-то в этом духе.

Что получается:
Набор строк вида
Маска URL-а + Список "Content-Type" = ограничение + признак прерывания закачки
позволит настроить большинство вариантов

Идея в принципе не плохая, и она должна сработать в моём случае.
Я не могу перекрыть доступ к потоковому видео и радио!!
Часть сайтов передают потоки без расширений и вычислить откуда появилась утечка, чтобы добавить в чёрный список, достаточно тяжело. Тем более я заметил что медиатрансляции в мониторе редко отображаются.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #26 : 19 октября 2007, 14:12:44 »

Тем более я заметил что медиатрансляции в мониторе редко отображаются.

Не совсем так. Все, что идет через HC, в Мониторе обязательно отображается, если не включен фильтр!
Другой момент, что длительные соединения через несколько минут убираются из окна активных соединений, но они продолжают работать и в верхней таблице по-прежнему активны!
Сообщить модератору   Записан
ivan386
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #27 : 15 мая 2008, 23:09:16 »

Интересует возможность работы с заголовками в фильтрах.
Меня конкретно интересует Content-Type: для принятия решения о записи в кеш. Но думаю не стоит ограничиваться только на этом параметре.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #28 : 15 мая 2008, 23:32:23 »

Это уже реализовано! Читай тему: "Скрипты Lua в HandyCache".
Сообщить модератору   Записан
Страниц: 1 [2]  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: