винда вообще читает как бог на душу положит
А какие данные ты брал из сокета? Опиши условия,- как именно они попали в сокет
Наполнение буфера означает, что продолжающие поступать пакеты будут отвергаться, затем запрашиваться вновь. Поэтому начало чтения с момента заполнения буфера - путь к ошибкам и многократным повторам
Это не так, поскольку в системе имеются два буфера - интерфейсный (представляющий собой стек типа 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