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

 
 
> Возможно ли отключить входящий трафик при 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
3 страниц V  < 1 2 3 >  
Start new topic
Ответов (15 - 29)
MKdemiurg
сообщение Apr 26 2011, 05:54
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Если комерческий проЕкт то можно и бабла отвалить хостеру за уменьшеный трафик. Если для себя или протестить - купить внешний айпи и запустить у себя на компе. К примеру у нас в Украине внешний айпи стоит 48грн (6$) + пакет инета ещё столько же (UKRTEL). Или базу данных и оболочку запустить на хостере, а сервер и обработчик запустить у себя.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Apr 26 2011, 08:33
Сообщение #17


Ally
******

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



Цитата(sobr @ Apr 26 2011, 08:24) *
У меня хост на Majordomo.ru проблем нет, правда я и нагрузку большую не давал, девайсов 20-30.


Ну-ну, прямо нет, их не может не быть с таким скриптом. Хостеры держат всю эту лабуду как минимум за NAT-ом.
Дайте прямой IP и порт на такой сервер у Majordomo.ru, тогда поверю.
Go to the top of the page
 
+Quote Post
Frolov Kirill
сообщение Apr 26 2011, 09:09
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 2-02-11
Пользователь №: 62 643



Цитата(av-master @ Apr 26 2011, 08:53) *
vps - от 10у.е. / мес . что хочешь делай.


http://budgetdedicated.com - ~$20-30/month

Но я таки тоже посоветую этот вариант. Сервер на php, на вебхостинге -- это сколько-нибудь массово и надёжно не работает. Сервер писать на C или perl. На php тоже можно, но плохо. Лучше на C. И не факт, что нужна реляционная субд. Скорей достаточно berkeleydb. Лучше, быстрей, надёжней.

И, возможно, UDP лучше. TCP в общем случае не гарантирует доставку... и какой-то ответ получать надо (туда пакеты ушли, обратно нифига -- а как понять, что они дошли? таймаут по-дефолту пол-дня ждёт если не больше)


Сообщение отредактировал Frolov Kirill - Apr 26 2011, 09:11
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Apr 26 2011, 15:24
Сообщение #19


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

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



Проект для себя. Сервер писать пока не готов.
AlexandrY, я так понимаю заголовок TCP генерирует сам модем, тогда как мне установить флаг сброса соединения RST?
Спасибо.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Apr 26 2011, 19:16
Сообщение #20


Ally
******

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



Цитата(Alt.F4 @ Apr 26 2011, 18:24) *
Проект для себя. Сервер писать пока не готов.
AlexandrY, я так понимаю заголовок TCP генерирует сам модем, тогда как мне установить флаг сброса соединения RST?
Спасибо.


Если вы используете встроенный TCP/IP то честно говоря не знаю.
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Apr 27 2011, 15:43
Сообщение #21


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

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



Цитата
Соединяйся с БД напрямую.
Видимо надо остановиться на этом варианте.
Подглядеть бы где рабочий листинг команд соединения с MySQL... blush.gif
Go to the top of the page
 
+Quote Post
alx125
сообщение Apr 28 2011, 01:50
Сообщение #22


Местный
***

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



Цитата(Alt.F4 @ Apr 25 2011, 20:06) *
Добрый день.
Соединяюсь с сервером по TCP и передаю GET'ом несколько переменных, в ответ сервер шлет отклик в два раза больший по размеру.
Можно ли как-то на модеме отключить входящий трафик?
Спасибо.


Вы бы уточнили про какой размер трафика запроса/ответа идет речь!
Чтобы можно было понять чей это ответ - TCP или Web-сервера или серверного скрипта
Сервер и скрипт Ваши? Что он отвечает точно понятно? Или это чужая реализация?

Если Вы хотите чтобы входящего трафика с сервера не было вообще - транспорт TCP не подойдет.
Т.к. он по определению подразумевает обмен и наклодные затраты - синхронизация, квитирование, повтор при потере ...
Сброс флага RST в заголовке TCP не подойдет (даже если бы у Вас был внешний стек), т.к. не угодать с моментом его установки!
Он должен установлен и отослан уже после получения запроса Web-сервером и скриптом, но до ответа! Что не реально!

Прямое подключение к сетевой СУБД MySQL- тоже не спасет, т.к. используется транспорт TCP тоже.

Если необходимо минимизировать трафик, и в частности входящий от ответа сервера - используйте UDP.
Но платой за это является отсутствие уверенности о доставке Ваших данных!
Впрочем, что-то простое здесь можно и самому предложить в зависимости от ТЗ.

Совсем уж доводить до нескольких сотен байт мобильный трафик вряд ли уместно, т.к. существует округление в большую сторону у операторов.
Если же Вы расчитываете использовать нетарифицируемый интервал (есть на некоторых тарифах ~ <2кб), то тоже сомнительно.
Как я ранее описывал на форуме такую ситуацию у меня - оператор просто заблокировал не несколько недель целевой IP.
Правды у него (GSM-оператора) добиться не удалось.
И мне пришлость использовать proxy. Но трафик уже был болеее 2кб. А значит округлялся до 100 кб sad.gif
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Apr 28 2011, 04:25
Сообщение #23


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

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



Цитата
Вы бы уточнили про какой размер трафика запроса/ответа идет речь!
Собираюсь отправлять 80байт/с (это без заголовков TCP), и на каждый запрос, сервер будет отвечать:
HTTP/1.1 200 OK
Date: Sat, 23 Apr 2011 20:31:22 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny8 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g mod_perl/2.0.4 Perl/v5.10.0
X-Powered-By: PHP/5.2.6-1+lenny8
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html
Цитата
Сервер и скрипт Ваши? Что он отвечает точно понятно? Или это чужая реализация?
Сервер хостера, скрипт мой. В принципе понятно, HTTP так устроен, на запрос-ответе...

Цитата
Если необходимо минимизировать трафик, и в частности входящий от ответа сервера - используйте UDP.
Но платой за это является отсутствие уверенности о доставке Ваших данных!
Это было бы идеальным вариантом, но я не знаю как обработать полученные данные по UDP на сервере.
А уверенность о доставке мне не нужна... пока.
Цитата
Совсем уж доводить до нескольких сотен байт мобильный трафик вряд ли уместно, т.к. существует округление в большую сторону у операторов.
У нас МТС до 50кбайт округляет.
Но все равно из-за ответов сервера, я прикинул, за час работы набежит примерно 0,5$.

Сообщение отредактировал Alt.F4 - Apr 28 2011, 04:27
Go to the top of the page
 
+Quote Post
alx125
сообщение Apr 29 2011, 00:45
Сообщение #24


Местный
***

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



Цитата(Alt.F4 @ Apr 28 2011, 07:25) *
...
Это было бы идеальным вариантом, но я не знаю как обработать полученные данные по UDP на сервере.


Про реализации и особенности UDP-сервера можно познакомиться например в кн. "Разработка сетевых программ на Perl"
Но все это возможно и на PHP.
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Apr 29 2011, 03:45
Сообщение #25


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

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



alx125, спасибо. На выходных ознакомлюсь с рекомендованной книгой.
Линкольн Д. Штайн "Разработка сетевых программ на Perl"
Go to the top of the page
 
+Quote Post
Roman_V
сообщение Apr 29 2011, 10:24
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 1-11-06
Пользователь №: 21 854



Ребята уже предлагали, но повторюсь. Если сервер ваш, то зачем использовать текстовый протокол HTTP? Откройте сокет и шлите данные какие вам угодно и ответ формируйте также какой нужен. обычный обмен данными через TCP. входящий траффик не возьмется ни откуда. На том же Builder или Delphi есть готовые неплохие компоненты работы с сокетом.

Сообщение отредактировал Roman_V - Apr 29 2011, 10:26
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Apr 29 2011, 13:58
Сообщение #27


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

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



Сервер хостера.
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Apr 30 2011, 09:54
Сообщение #28


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

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



alx125, полистал рекомендованную Вами книгу. Но вот как все это дело развернуть на PHP, ума не приложу.
Пробовал использовать пример с оф.сайта PHP. Взял порт 80, у хостера почти все закрыты:
Код
<?php
$socket = stream_socket_server("udp://91.149.145.36:80", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
    die("$errstr ($errno)");
}

do {
    $pkt = stream_socket_recvfrom($socket, 1, 0, $peer);
    echo "$peer\n";
    stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer);
} while ($pkt !== false);

//и пишу в БД "$pkt"
?>
Пробую передавать данные через терминалку "Hercules" (поддерживает UDP соединение).
Но в результате ничего не приходит в ответ и в БД пусто...
Подскажите пожалуйста, где ошибка.
Спасибо.
з.ы. видимо в строку udp://91.149.145.36:80 необходимо писать айпи клиента? Я написал сервера, считая что PHP будет просто слушать порт.

Сообщение отредактировал Alt.F4 - Apr 30 2011, 09:57
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Apr 30 2011, 10:13
Сообщение #29


Ally
******

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



Цитата(Alt.F4 @ Apr 30 2011, 12:54) *
з.ы. видимо в строку udp://91.149.145.36:80 необходимо писать айпи клиента? Я написал сервера, считая что PHP будет просто слушать порт.


Ну я же предупреждал. wink.gif Эта лабуда работать не будет у нормального хостера.
Потому как у них интернет идет через NAT-ы и файрволы. Порты надо открывать прежде всего на них, а уж потом на самом хосте.
Без хака сети првайдера тут не обойтись. biggrin.gif

У вас реально один путь, как я сказал, это управлять непосредственно содержимым заголовков TCP пакетов исходящих от вас.
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение May 1 2011, 02:49
Сообщение #30


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

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



Цитата
У вас реально один путь, как я сказал, это управлять непосредственно содержимым заголовков TCP пакетов исходящих от вас.
А как, в таком случае, на модеме можно открыть сессию TCP без использования встроенного стека?
Спасибо.
Go to the top of the page
 
+Quote Post

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

 


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


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