- Подробности
-
Просмотров: 10748
В данный момент большинство пользователей
спутникового интернета испытывает проблемы, связанные со скоростью получения данных. В связи с этим назрела необходимость дать краткие разъяснения, от каких параметров зависит скорость, а так же некоторые замечания по поводу работы TCP/IP в спутниковых системах.
Система передачи данных через спутник способна обеспечить однонаправленную передачу данных пользователю, обратная связь часто обеспечивается по наземным линиям связи, т.е. по обычному Dial-Up. Такой тип подключения приводит к тому, что мы имеем соединение с различной пропускной способностью к пользователю и от него. Большой процент пользователей (обычно около 85% от общего числа абонентов ISP) в основном получает информацию, нежели передает, поэтому такая асимметричность канала оправдана. Но высокая степень зависимости каналов (в большей степени это относится к обратному каналу) друг от друга становится критическим моментом для работы с подобной системой.
Пропускная способность TCP/IP соединения ограничена двумя пунктами:
1) временем возвращения - RTT round trip time
2) размером TCP окна. Производительность DVB-систем построена на возможности IP->DVB шлюза устанавливать максимальные размеры TCP окон, а именно делать их равным 65535 байт. Использование конечным пользователем TCP стеков, отвечающих всем современным стандартам, позволяет IP->DVB шлюзам выполнять RFC-1323, имеющей возможность запрашивать увеличение размера окна для повышения пропускной способности канала.
Ограничения, которые накладывает обратный канал, являются в подобных системах наиболее <узким> местом, т.к. весь исходящий трафик, который порождает удаленный клиент, должен быть получен и обработан прокси-сервером до посылки клиенту.
Какие же негативные моменты порождает данный процесс?
Данный процесс особенно негативно отражается на работе с web-узлами, т.к. IP протокол имеет ряд <медленных> мест, а именно IP протокол начинает эффективно работать только тогда, когда от запрашиваемого узла получен основной <скелет> страницы, основной HTML код и начинается подгрузка остальных объектов (картинок, апплетов и т.п.). Любое соединение начинается с запросом клиентом TCP-соединения с Интернет, после чего клиент запрашивает требуемый HTML-документ, обычно это корневая страница сервера. Сервер подтверждает запрос и начинает передачу данных. Сначала он отсылает только один пакет и получает подтверждение о его приеме (ACK), но обычно страница имеет размер больший, нежели чем размер пакета, и сервер передает столько пакетов, сколько требуется для полной передачи запрашиваемой страницы и, соответственно, получает столько подтверждений, сколько необходимо. Если Вся страница передана, то сервер посылает пакет с информацией о конце передачи (FIN).
После получения основного <скелета> страницы, клиент, а точнее его броузер, анализирует поступивший код, на предмет наличия в нем ссылок на графические или еще какие либо объекты. После этого он открывает необходимое количество соединений и начинает получение этих объектов.
Как видно из следующего примера, чем больше объектов имеет запрашиваемая страница, тем выше будет скорость передачи.
Количество объектов |
2 |
4 |
8 |
16 |
32 |
Скорость передачи, Кбит/сек |
34 |
83 |
140 |
295 |
560 |
Время передачи |
3 sec |
3 sec |
3 sec |
3 sec |
3 sec |
Как видно из данной таблицы, наибольшая скорость была достигнута на страничке, имеющей 32 встроенных объекта, но на практике такая ситуация случается довольно редко и средняя скорость при серфинге обычно не превышает 30 - 100 Кбитсек.
Все вышесказанное имеет отношение только к получению WEB трафика, и никаким образом не относится к получению больших файлов.
В случае получения большого объема данных с использованием DVB системы приходится заниматься подстройкой TCP стека самостоятельно, соответствуя рекомендациям ISP.
Как было отмечено выше, на каждый полученный пакет клиент вынужден посылать подтверждение о его получении. Т.к. обратный канал зачастую имеет скорость 28.800 - 33.600, то большое количество подтверждений, значительно замедляют работу системы, т.к. обратное соединение не успевает справляться с тем количеством пакетов, которое необходимо отправить через него.
Выходом из данной ситуации является увеличение размера TCP окна, а именно приводу его к размеру 32768 байт или более. Но также необходимо учесть, что при скорости соединения ниже, чем 19.200 время на передачу пакетов начинает значительно возрастать, вследствие чего может потребоваться менять значения на другие, подобранные экспериментальным путем.
Наиболее оптимальные значения MTU и MaxRcvWindow является:
MTU: 1020 и выше.
MaxRcvWindow: 32768