Трафик

Для клиента входящий поток, это графическая информация с рабочего стола удаленного компьютера, а исходящий поток это управляющая информация о нажатии клавиш и управлении мышкой. Очевидно, графическая информация намного превышает по объему управляющую. Поэтому задача уменьшения объема графической информации основная для снижения трафика. Для сервера входящий и исходящий потоки такие же по объему, но зеркально противоположные по назначению. Ниже я опишу основные этапы сжатия картинки рабочего стола.

Этап 1. Преобразование разрядности цвета пикселов в 8 бит, с одной стороны это вносит цветовые искажения, с другой позволят значительно снизить объем картинки.

Этап 2. Из всего объема извлекается запрашиваемая часть и при необходимости масштабируется до требуемого размера. Обычно размер экрана в телефоне меньше размера монитора компьютера, при этом обычно рабочий стол отображается на экране телефона в сжатом виде или его часть в масштабе 1:1. Из этого следует, что передаваемая картинка всегда соответствует разрешению экрана телефона.

Этап 3. Полученное изображение сравнивается с изображением, полученным на предыдущем цикле с целью выделения изменений, все не изменившиеся пикселы заменяются на специальный код, означающий, что эти пикселы не нужно перерисовывать, на этапе сжатия это позволяет значительно уменьшить объем.

Этап 4. Сжатие. Алгоритм сжатия основан на преобразовании битовой картинки в последовательность команд рисования примитивов (отрезок, прямоугольник, точка и т.д.) одного цвета. Из этого следует, чем меньше мелких деталей в изображении, тем лучше сжатие, чем меньше используется цветов, тем лучше сжатие, чем меньше изменений в изображении, тем лучше сжатие. Отсюда, для уменьшения трафика целесообразно использовать простую тему рабочего стола (без эффектов), вместо фонового рисунка одноцветную заливку и по возможности уменьшить разрешение.

 

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

 

В Интернете сложно найти место для размещения сервера со специфическим протоколом, самое близкое решение которое я нашел это бесплатный PHP-хостинги. Но http протокол текстовый и для передачи двоичных данных приходиться применять представление данных в системе счисления 64 (одному числу соответствует один печатный символ), что увеличивает трафик на 50%, это плата за бесплатность, если можно так сказать. Но даже при этом результаты получаются вполне приличные.

Последнее, что нужно отметить, http сервер возвращает результат на запрос и для клиента и для сервера, если для клиента это то, что надо, то для сервера, это означает, что сервер должен постоянно опрашивать PHP-сервер на предмет появления запроса от клиента. Из этого следует, что даже в отсутствии обмена сервер будет генерировать трафик, хотя и небольшой порядка 20Мб за месяц при 8-ми часовом рабочем дне. Это может быть проблемой, если оплачивается трафик, но на безлимитном  тарифе это не проблема

Для примера, на телефоне с разрешением 240*320 перерисовка всей картинки, при средней загрузки рабочего стола, весит 10-15 кб, а последующие кадры той же картинки с минимальными изменениями 100-200 байт. Частота обновления, учитывая скорость мобильного Интернета, составляет раз в 3-5 секунд. Из этого следует, что в режиме с небольшими изменениями картинки на экране, трафик составляет порядка 100-200 кбайт в час, но при активной работе трафик будет заметно больше.

Реклама

нашел все о взломе электронной почты