Ускорение инета - продолжение
Бывают самопроизвольные "отключения от сети". Симптомы в Виндоус: 1)изображение дисплейчика исходящего сигнала горит, входящего не горит; 2)страницы грузятся со второго раза.
Возможные причины:
1)допустимая задержка ответа в Скайлике до 500 мс - это полсекунды. Некоторые модемы(телефоны) теряют сигнал присутствия несущей.
2)Ошибки в реализации алгоритма сжатия либо у сервера, либо на Вашей машине. Используется алгоритм, специфический для виндоус.
Пути исправления:
0) Проверить, хороший ли у Вас драйвер модема\телефона. Самые лучшие я находил на сайтах московского Скайлинка.
1) Поставить в строке инициализации модема такое:
AT&C0S10=255
Обьяснение: &C0 принудительно взводит флаг наличия несущей; S10=255 снимает контроль времени отсутствия несущей для отключения. Возможно, это избыточность, не проверял.
Некоторые модемы требуют вместо &C0 ставить &C2
2) Отключить в свойствах модема и соединения программное сжатие и сжатие IP-заголовков
3) Просмотреть параметры USB и снять там флаг "отключение для экономии электроэнергии"
После выполнения любого из пп 0-3, Д00 выключить и включить и компьютер и телефон (последний так: после выключения вынуть и вставить батарейку) (перезагрузки недостаточно)
Дополнительные меры (годятся не только для Скайлинка)
Д0) Отключить расширения LCP.
Д00)Уменьшить скорость порта в параметрах СОЕДИНЕНИЯ до 115200 для 3G и до 57600 для GPRS\EDGE. Обещанных мегабитов Вы всё равно, ск всего, не дождётесь. А вот схемы\программы эмуляции UART в USB или, чаще, самого телефона могут быть не рассчитаны на эти частоты.
Делать вместе:
Д1) Установить MTU=576
Д2) Отключить тестирование MTU
Д3) Отключить контроль чёрных дыр
Д4) Включить выборное подтверждение
Д5) Число перескоков установить в 128
Д6) Размер буфера виндоус проверить и выставить по понятиям. Понятия, по слухам, такие:
- если буфер мал, а передано данных больше, то все эти данные отвергаются и,возможно, запрашиваются по новой. Возможно, при переполнении буфера портится память. Пишет за пределы буфера. Это - интел со своими DMA и виндоус :) Передача может происходить не по прерываниям, а автономно - асинхронно по отн к работе программы в "ЦП";
- Передача данных из буфера прикладной программе происходит лишь после его заполнения (или, возможно, передачи какого-то спецзапроса, что ск всего не наблюдается). При возникновении ошибки в данных в пределах буфера отвергается ВЕСЬ буфер, и, возможно, запрашивается по новой. Поэтому не нужно заводить слишком длинных буферов
Опытная рекомендация:
для 3G - 8192 (оно на самом деле не кратно 8, но округлит куда надо само)
для GPRS 2094
для EDGE 4096
Слухи собраны из разных источников и мне как разработчику представляются весьма правдоподобными.
Вы спросите: как тогда оно вообще работает?! - Да оно и не работает :)
Свидетельство о публикации №110110903601
Махов Александр 03.04.2015 19:30 Заявить о нарушении