Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Задача: уменьшение TCP-трафика. Как поступить?
Форумы портала PHP.SU » » Работа с сетью » Задача: уменьшение TCP-трафика. Как поступить?

Страниц (2): [1] 2 »
 

1. Alt.F4 - 25 Августа, 2011 - 16:01:16 - перейти к сообщению
Добрый день.
Работаю с GPS-трекером, который соединяется с сервером по HTTP (используется GPRS, коннект каждую секунду).
Но беда в том, что трекер шлет на сервер 100байт, а сервер в ответ чуть ли не 300. В результате огромный перерасход денег на счете SIM-карты.
Решение одно: не использовать HTTP (т.е. 80 порт).
Вопрос: какое будет оптимальное решение, если учитывать, что сервер хостера?
Просить хостера открыть доп.порт? Наверное не согласиться.
Спасибо.
2. Мелкий - 25 Августа, 2011 - 16:09:22 - перейти к сообщению
Alt.F4 пишет:
Просить хостера открыть доп.порт?

И чем это вам поможет?
Ну разве только разная тарификация опсоса на разных портах.

Трафик от порта не зависит. Вам нужен именно другой протокол. Вероятно, бинарный, как наиболее компактный метод упаковывания.

Если у сервера других нет, то:
Пишете сетевой шлюз, которому будете слать по своему протоколу команды, а тот уже отсылать на сервер.
3. Alt.F4 - 25 Августа, 2011 - 16:15:50 - перейти к сообщению
Вы меня не поняли. Мне надо избавиться от "лишнего" ответа сервера. По HTTP он выдает при успешной передаче:
CODE (htmlphp):
скопировать код в буфер обмена
  1. HTTP/1.1 200 OK
  2. Date: Sat, 04 Jun 2011 13:26:40 GMT
  3. 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
  4. X-Powered-By: PHP/5.2.6-1+lenny8
  5. Vary: Accept-Encoding
  6. Content-Type: text/html

Если использовать другой порт, то можно написать соккет-соединение на PHP, и ответ сервера уже сам придумаю.
4. EuGen - 25 Августа, 2011 - 16:17:50 - перейти к сообщению
Остановите веб-сервер и используйте 80 порт
5. Alt.F4 - 25 Августа, 2011 - 16:23:51 - перейти к сообщению
Цитата:
Остановите веб-сервер и используйте 80 порт
В смысле? Типа PHP-скриптом можно остановить Apache хостера?
6. Viper - 25 Августа, 2011 - 16:23:54 - перейти к сообщению
Alt.F4 вы не поняли. Сервер в любом случае будет пихать хидеры. Мелкий правильно предложил вам вариант.

ЗЫ! А не проще хостера послать и найти нормального?
7. Alt.F4 - 25 Августа, 2011 - 16:27:56 - перейти к сообщению
Что-то я не въезжаю. Хидеры пишет Apache по идее только при коннекте по 80 порту, на других такого не должно быть (ведь как-то работает и почта и FTP).
И не понял про смену хостера, что измениться?
P.S. вообще трекер работает чисто по TCP.
8. Viper - 25 Августа, 2011 - 16:33:15 - перейти к сообщению
Alt.F4 вы когда по telnet соединяетесь на ftp или почту не смотрели что сервер вам шлет и что вам надо послать?

Выход один писать свой сервер+клиента. Как вариант cherryp+python
9. LIME - 25 Августа, 2011 - 16:40:53 - перейти к сообщению
апач это веб сервер и накой порт его повесите на том работать и будет и слать хедеры
а все остально (почта фтп итд) этим уже не апач занимается
(Добавление)
не встречалось вам чтоли веб на порту8080?
10. Мелкий - 25 Августа, 2011 - 16:44:09 - перейти к сообщению
Alt.F4 пишет:
По HTTP он выдает при успешной передаче:

Я, конечно, понимаю, с миру по нитке. Но 256 байт при трафике в 300кб экономить? Несерьёзно, по-моему.

Alt.F4 пишет:
Хидеры пишет Apache по идее только при коннекте по 80 порту, на других такого не должно быть (ведь как-то работает и почта и FTP).

0) Заголовки отсылает любой HTTP-сервер. Т.к. это требование HTTP протокола.
1) Порт совершенно никак не зависит от протокола. Есть только соглашения, которых стараются придерживаться.
11. EuGen - 25 Августа, 2011 - 16:49:48 - перейти к сообщению
Я предполагал что Вы можете управлять тем, что у Вас на сервере исполняется.
Если же нет - значит, вариант, предложенный ранее.
12. Alt.F4 - 25 Августа, 2011 - 17:25:15 - перейти к сообщению
Цитата:
апач это веб сервер и накой порт его повесите на том работать и будет и слать хедеры
Ну так все верно, апач по умолчанию висит на 80порту.
Выходит надо упрашивать хостера, чтобы открыл какой-нибудь порт, затем размещать у него (у хостера) свой написанный сервер, который будет висеть на этом порту. Верно?
Цитата:
Но 256 байт при трафике в 300кб экономить? Несерьёзно, по-моему.
я случайно добавил приставку "кило", трекер шлет 100байт полезной информации, а сервер в ответ 300байт шлака. Экономия колосальная за месяц при условии посекундного обмена 24часа в сутки.
13. Ch_chov - 25 Августа, 2011 - 19:16:36 - перейти к сообщению
Alt.F4 пишет:
По HTTP он выдает при успешной передач

Некоторые из этих заголовков, можно убрать с помощью php. Некоторые с в конфиге apache.
Возможно стоит настроить ваш GPS так чтобы он конектился реже чем раз в секунду,
14. Alt.F4 - 25 Августа, 2011 - 21:58:09 - перейти к сообщению
Цитата:
Некоторые из этих заголовков, можно убрать с помощью php. Некоторые с в конфиге apache.
Вот это очень интересно. Apache поковырять не дадут, а вот с php пробовал header(), но изменяется только ответ, а заголовки остаются...
Или есть другой вариант?
Спасибо.
15. Ch_chov - 26 Августа, 2011 - 07:58:05 - перейти к сообщению

 

Powered by ExBB FM 1.0 RC1