реклама на сайте
подробности

 
 
> Возможно ли отключить входящий трафик при TCP соединении по GPRS?
Alt.F4
сообщение Apr 25 2011, 17:06
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Добрый день.
Соединяюсь с сервером по TCP и передаю GET'ом несколько переменных, в ответ сервер шлет отклик в два раза больший по размеру.
Можно ли как-то на модеме отключить входящий трафик?
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alx125
сообщение May 3 2011, 23:27
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 18-05-09
Из: Novosibirsk
Пользователь №: 49 204



Вопрос с блокировкой UDP-портов (впрочем не только их) виртуального хостинга решается в индивидуальном порядке с администратором.
Или же ищется хостинг под задачи - что не редкость!
Я задал этот вопрос двум хостинговым компаниям и получил ответ - "Мы разрешаем UDP".
Я также спросил и у Вашего провайдера (адрес взял из вашего скрипта) - он не ответил.
Задайте этот вопрос админу хостинга сами. Ведь Вы его клиент.
Обычный подход для безопасности - запретить сначала по-максимуму, а потом задействовать что-то по мере необходимости.
Большинству клиентов хостинга эта возможность (UDP-сокеты) не нужна.
Но дело тут не только в безопасности.
Особенностью TCP является регулирование нагрузки на канал в зависимости от его (канала) загрузки.
Это делается с помощью "скользящего окна". Своего рода обратная связь (регулировочный "винтик") как в электронике и т.п.
Именно поэтому при старте TCP сначала идет так называемая "фаза медлеленного старта" с маленьким "скользящим окном" и далее оно увеличивается до момента потери большого числа пакетов.
При одновременной передачей на канале UDP (например VoIP) и TCP покетов - сложнее, т.к. UDP пытается сразу использовать канал по-максимуму не чувствуя текущей загрузки канала!
Тем самым потери TCP-покетов возрастают, а далее TCP передачи снова начинаются с маленьких "скользящих окон". Что плохо для соседних сайтов!
Это особенно актуально для виртуального хостинга, где все дешево и ресурсов по-минимуму и есть взаимовлияние быстродействия сайтов от загрузки соседних на одном IP-адресе.
В Вашем случае трафик, судя по всему, минимален (претензий администратора не будет), а следовательно может получиться.
Но лучше подойдет для этого виртуальный сервер, где ширина канала (нагрузка на CPU в данном случае не важна) гарантирована. Чуть дороже зато решит Ваши задачи с UDP-сокетами.
Для Вашего случая он может даже самоокупиться по сравнению с использованием TCP-HTTP протоколов.



По поводу нехватки портов в системе.
Как известно их >60тысяч для UDP и столько же для TCP ("Хорошо известные" и доп. я грубо вычел)
В случае виртуального хостинга на одном IP-адресе находится от нескольких десятков до несколько сотен сайтов (у меня это - 260 шт)
Так что свободных портов (особенно UDP) "завались" по определению.
А если у сервера несколько IP - то и больше.
Есть только такой момент - если порт выделен операционной системой по запросу, из скрипта вернуть его в пул системы не получится.


Есть еще несколько соображений как получить подходящий результат простыми средствами.
Попытаться использовать AT-команды (я рассматриваю SimCom):
Вариант 1). AT+CIPCLOSE - закрыть TCP соединение ч/з некоторое время после отправки запроса. При этом PDP контекст остается активен и не начнется новый период тарификации!
Вариант 2). AT+CLPORT - сменить порт ч/з некоторое время после отправки TCP-запроса. Ответ Web-сервера поступит, но не будет подтвержден модулем, а значит не будет и тарифицирован.

Задержка сброса соединения и смены порта подбирается экспериментально (например 0,5с),т.к. эта часть встроенного TCP-стека модуля наверняка работает в отдельном потоке и не предсказуема.
Конечно это только гипотеза требующая проверки на реальной реализации.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 4 2011, 05:48
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(alx125 @ May 4 2011, 02:27) *
Но лучше подойдет для этого виртуальный сервер, где ширина канала (нагрузка на CPU в данном случае не важна) гарантирована. Чуть дороже зато решит Ваши задачи с UDP-сокетами.
Для Вашего случая он может даже самоокупиться по сравнению с использованием TCP-HTTP протоколов.


Понимаете, все рассуждения о преимуществе UDP перед TCP высказанные в паре слов, даже если краткость и сестра таланта никакого доверия вызвать не могут.
TCP родился как метод надежной работы через медленные и глючные модемные каналы. Лучше чем TCP данные через такие каналы никто не передаст.
Сколько бы вы не изощрялись с повышением надежности при использовании UDP вы в конечном счете придете к идеям реализованным в TCP.



Цитата(alx125 @ May 4 2011, 02:27) *
По поводу нехватки портов в системе.
Как известно их >60тысяч для UDP и столько же для TCP ("Хорошо известные" и доп. я грубо вычел)
В случае виртуального хостинга на одном IP-адресе находится от нескольких десятков до несколько сотен сайтов (у меня это - 260 шт)
Так что свободных портов (особенно UDP) "завались" по определению.
А если у сервера несколько IP - то и больше.
Есть только такой момент - если порт выделен операционной системой по запросу, из скрипта вернуть его в пул системы не получится.


Ну теперь представим что эти 260 клиентов юзают движки на PHP которые отсылают емайлы, сканируют фиды, лазят по соц. сетям, держат магазины и т.д. Т.е. каждый в секунду делает по 10-100 DNS запросов в среднем.
Итого только от этого у вас все время занято 26 тыс. UDP портов! на одном IP адресе.
Далее, применение NAT сразу ставит проблему определения номера публичного UDP порта, он будет не такой какой вы открыли на сервере.
И наконец хостеры с учетом большого трафика на UDP порты могут изменить политику их удержания, т.е. открытый UDP может удерживаться значительно короче чем обычно, и тогда необходим будет лишний трафик для поддержания такого канала открытым.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alt.F4   Возможно ли отключить входящий трафик при TCP соединении по GPRS?   Apr 25 2011, 17:06
- - ArtemKAD   Да, со стороны сервера не отправлять. ЗЫ. Ну сам ...   Apr 25 2011, 17:16
- - Alt.F4   ЦитатаДа, со стороны сервера не отправлять.А это в...   Apr 25 2011, 17:34
- - MKdemiurg   Соединяйся с БД напрямую. Или напиши сервер TCPшн...   Apr 25 2011, 17:48
- - Alt.F4   ЦитатаСоединяйся с БД напрямую.Я в БД пишу еще вре...   Apr 25 2011, 17:56
- - MKdemiurg   Цитата(Alt.F4 @ Apr 25 2011, 21:56) А вот...   Apr 25 2011, 18:53
- - Alt.F4   ЦитатаДа в чём угодно, Qt4 хотябы (отличная вещь),...   Apr 25 2011, 19:03
|- - sobr   Цитата(Alt.F4 @ Apr 26 2011, 01:03) ...   Apr 25 2011, 23:42
- - MKdemiurg   2 вариант , но с заливкой в БД мне кажется нереаль...   Apr 25 2011, 19:11
- - AlexandrY   Цитата(Alt.F4 @ Apr 25 2011, 20:06) Добры...   Apr 25 2011, 19:21
- - Alt.F4   ЦитатаМожно, конечно. Отправляйте данные сразу с ф...   Apr 26 2011, 04:05
|- - sobr   Цитата(Alt.F4 @ Apr 26 2011, 10:05) А кто...   Apr 26 2011, 04:59
|- - AlexandrY   Цитата(sobr @ Apr 26 2011, 07:59) Опять ш...   Apr 26 2011, 05:20
|- - sobr   Цитата(AlexandrY @ Apr 26 2011, 11:20) Со...   Apr 26 2011, 05:24
|- - AlexandrY   Цитата(sobr @ Apr 26 2011, 08:24) У меня ...   Apr 26 2011, 08:33
- - av-master   vps - от 10у.е. / мес . что хочешь делай.   Apr 26 2011, 05:53
|- - Frolov Kirill   Цитата(av-master @ Apr 26 2011, 08:5...   Apr 26 2011, 09:09
- - MKdemiurg   Если комерческий проЕкт то можно и бабла отвалить ...   Apr 26 2011, 05:54
- - Alt.F4   Проект для себя. Сервер писать пока не готов. Alex...   Apr 26 2011, 15:24
|- - AlexandrY   Цитата(Alt.F4 @ Apr 26 2011, 18:24) Проек...   Apr 26 2011, 19:16
- - Alt.F4   ЦитатаСоединяйся с БД напрямую.Видимо надо останов...   Apr 27 2011, 15:43
- - alx125   Цитата(Alt.F4 @ Apr 25 2011, 20:06) Добры...   Apr 28 2011, 01:50
- - Alt.F4   ЦитатаВы бы уточнили про какой размер трафика запр...   Apr 28 2011, 04:25
|- - alx125   Цитата(Alt.F4 @ Apr 28 2011, 07:25) ... Э...   Apr 29 2011, 00:45
- - Alt.F4   alx125, спасибо. На выходных ознакомлюсь с рекомен...   Apr 29 2011, 03:45
- - Roman_V   Ребята уже предлагали, но повторюсь. Если сервер в...   Apr 29 2011, 10:24
- - Alt.F4   Сервер хостера.   Apr 29 2011, 13:58
- - Alt.F4   alx125, полистал рекомендованную Вами книгу. Но во...   Apr 30 2011, 09:54
|- - AlexandrY   Цитата(Alt.F4 @ Apr 30 2011, 12:54) з.ы. ...   Apr 30 2011, 10:13
- - Alt.F4   ЦитатаУ вас реально один путь, как я сказал, это у...   May 1 2011, 02:49
- - MKdemiurg   Цитата(Alt.F4 @ May 1 2011, 06:49) А как,...   May 1 2011, 16:08
- - Alt.F4   ЦитатаТогда тебе придётся свой стек городить ...   May 1 2011, 16:31
- - MKdemiurg   Напиши в С++ сервачок сокетный c доступом к БД. И ...   May 1 2011, 17:03
- - Alt.F4   ЦитатаНапиши в С++ сервачок сокетный c доступом к ...   May 1 2011, 17:37
- - av-master   ЦитатаВ принципе нашел недорогой пакет интернета н...   May 1 2011, 18:17
- - Alt.F4   Познавательно! ЦитатаЕсть еще несколько сообр...   May 5 2011, 15:31
|- - alx125   Цитата(Alt.F4 @ May 5 2011, 19:31) Познав...   May 5 2011, 23:13
|- - AlexandrY   Цитата(alx125 @ May 6 2011, 02:13) Если ц...   May 6 2011, 05:36
|- - sobr   Цитата(AlexandrY @ May 6 2011, 11:36) ......   May 6 2011, 08:18
- - av-master   NТо что предназначено Вам и прилетит на Оператора....   May 6 2011, 08:39
- - satellite-plus   Цитата(Alt.F4 @ Apr 25 2011, 20:06) Добры...   May 10 2011, 13:02
- - AlexandrY   Цитата(satellite-plus @ May 10 2011, 16...   May 10 2011, 13:23


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 16:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01577 секунд с 7
ELECTRONIX ©2004-2016