Имеется такая задача, не знаю как решить:
Некая программа шлёт TCP запросы на сервер. Ответа от сервера она не ждёт. Необходимо ловить эти запросы на сервере, и в неизменном виде передавать на два других других сервера. Пытаюсь копать в сторону netcat и nettee, но пока не соображу, как это сделать, и возможно ли в принципе.
Подскажите, как это можно сделать?
Как распараллелить tcp запросы?
Модераторы: SLEDopit, Модераторы разделов
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как распараллелить tcp запросы?
потрясающе. это называется syn flood: http://en.wikipedia.org/wiki/SYN_flood
p.s. вы ничего в своём сообщении не напутали?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
polosat
- Сообщения: 2
Re: Как распараллелить tcp запросы?
sash-kan писал(а): ↑01.05.2009 23:52потрясающе. это называется syn flood: http://en.wikipedia.org/wiki/SYN_flood
p.s. вы ничего в своём сообщении не напутали?
Видимо напутал
Я имел в виду следующее:
Например, если взять HTTP, то клиент отправляет GET, а сервер возвращает ему данные.
В моём случае клиент шлёт данные серверу, тот их просто обрабатывает, а клиенту ничего не возвращает.
Т.е. сервер не шлёт ответов на уровне приложения. На уровне TCP, конечно, всё в порядке.
А задача стоит такая: все запросы, которые присылает клиент не обрабатывать, а форвардить дальше на два других сервера, каждый из которых уже и обработает эти данные.
У меня пока получилось что-то типа такого:
Код: Выделить всё
nc -l -p 1000 | tee >(nc host1.com 1000)|(nc host2.com 1000)Но как-то мне это кажется кривым
Да и если клиент закрывает соединение, то слушающий nc тоже отваливается, а мне надо, чтобы он постоянно слушал порт. Т.е. надо сверху ещё цикл как-то нагромождать.
Хочется найти надёжное и красивое решение этой задачи.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как распараллелить tcp запросы?
если вам нужна особая реакция на уровне приложения, то самым логичным и будет работать именно на этом уровне.
как вариант:
с помощью rewriteengine заворачивайте нужные вам get-запросы на какой-нибудь скрипт (на удобном вам языке). а если клиент настраиваем, то без всякого заворота, напрямую делайте get <скрипт>.
естественно, httpd должен понимать, чего с этим скриптом делать.
как вариант:
с помощью rewriteengine заворачивайте нужные вам get-запросы на какой-нибудь скрипт (на удобном вам языке). а если клиент настраиваем, то без всякого заворота, напрямую делайте get <скрипт>.
естественно, httpd должен понимать, чего с этим скриптом делать.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
sim1
- Сообщения: 155
- ОС: GNU,BSD
Re: Как распараллелить tcp запросы?
Сложно въехать в постановку вопроса. Возможно вам стоит ознакомится с таким вопросом, как балансировка нагрузки ? Чего вы хотите решить, получив ответ на вашу "задачу" ? Опишите суть вашей проблемы (чего от вас хочет ваш "заказчик"
? ) ...
Разработка программ для *nix