The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"timers in the socket communications"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Сеть, сокеты)
Изначальное сообщение [ Отслеживать ]

"timers in the socket communications"  +/
Сообщение от handler2006 email(ok) on 22-Мрт-12, 13:41 
Здравствуйте!
Имеем два приложения, взаимодействующие друг с другом посредством сокетов.
Оба приложения могут быть многопоточными и находиться как на одной так и на разных машинах, а так же использовать как прямые функции управления сокетами, так и посредством сторонних библиотек.
Так же оба приложения могут выступать как в роли клиента, так и в роли сервера.
Одно приложение  посылает другому сообщение и принимает от него ответ на это сообщение. В данный момент для взаимодействия приложений используются таймеры: если в течении таймаута не получен ответ - сообщение считается невалидным и весь запрос отбрасывается.
Таким образом, от значения таймаута зависит производительность и работоспособность всей системы в целом.
Как можно еще реализовать сетевое взаимодействие приложений с максимальной доставкой сообщений и минимальным таймаутом?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "timers in the socket communications"  +/
Сообщение от svn (??) on 23-Мрт-12, 00:57 
Так или иначе.

Какой используется протокол запросов (stateless или statefull)?
Размер запроса и ответа?

Что такое "максимальной доставкой сообщений" и "минимальным таймаутом"? Доставляй все сообщения максимально, делай таймаут нулевым, разрешаю. Дальше что?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "timers in the socket communications"  +/
Сообщение от handler2006 email(??) on 23-Мрт-12, 11:30 
Протокол используется простой: устанавливается сокет на хост и порт и слушаются все входящие сообщения.
Максимальная доставка сообщений - максимальное количество сообщений, которое может быть доставлено.
Минимальный таймаут - минимальное значение времени, необходимое на отправку, обработку и доставку сообщения.
Предположим, мы установили значение таймера равным одной единице:  если за эту единицу времени ответ не получен, сервис считается недоступным.
Если это значение слишком мало, мы отбрасываем валидные ответы и наоборот, если значение слишком велико, мы ждем ответов от недоступных сервисов.
Думаю, модель взаимодействия приложений в сети достаточно распространенная.
Как же мне добиться производительности ответов хотя бы 100 тыс. запросов в секунду?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "timers in the socket communications"  +/
Сообщение от svn (??) on 24-Мрт-12, 23:20 
> Максимальная доставка сообщений - максимальное количество сообщений, которое может быть
> доставлено.

Уменьшай заголовки. Это достигается упрощением протокола, например отказом от tcp или ip. То что ты написал про "слушается сокет" означает что ты даже не рассматривал вариант отказа от TCP.

>  минимальное значение времени, необходимое на отправку, обработку
> и доставку сообщения.

Минимальный таймаут - это бредятина. Таймаут это настройка. То что ты сказал называется задержкой передачи сообщения. И зависит она от устройства сети больше чем от протокола. Хотя протокол может её увеличить повторной посылкой потерянных при передаче данных.


> Как же мне добиться производительности ответов хотя бы 100 тыс. запросов в
> секунду?

Проблема реализовать такой сервис, который обработает столько запросов, а не в сети.

PS: Вы не отвечаете на мой ответ. stateless и размер запроса/ответа?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

6. "timers in the socket communications"  +/
Сообщение от handler2006 (ok) on 25-Мрт-12, 12:11 

> Уменьшай заголовки. Это достигается упрощением протокола, например отказом от tcp или ip.

Вы шутите?!
А как же слать пакеты по сети?
Или Вы думаете, что все на одной машине крутится?
К сожалению, у меня нет mainframe

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "timers in the socket communications"  +/
Сообщение от svn (??) on 31-Мрт-12, 18:44 
> Вы шутите?!
> А как же слать пакеты по сети?

Кроме tcp есть уйма протоколов. Например столь же популярный, но намного более простой UDP, который идеально подходит для общения вида запрос-ответ.
Если всё работает в одной локальной сети можно использовать ethernet без обёртки ip.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

3. "timers in the socket communications"  +1 +/
Сообщение от тень_pavel_simple on 23-Мрт-12, 11:50 
>[оверквотинг удален]
> Так же оба приложения могут выступать как в роли клиента, так и
> в роли сервера.
> Одно приложение  посылает другому сообщение и принимает от него ответ на
> это сообщение. В данный момент для взаимодействия приложений используются таймеры: если
> в течении таймаута не получен ответ - сообщение считается невалидным и
> весь запрос отбрасывается.
> Таким образом, от значения таймаута зависит производительность и работоспособность всей
> системы в целом.
> Как можно еще реализовать сетевое взаимодействие приложений с максимальной доставкой сообщений
> и минимальным таймаутом?

не придумывать велосипед
http://www.zeromq.org/

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "timers in the socket communications"  +/
Сообщение от handler2006 (ok) on 23-Мрт-12, 23:14 
Спасибо - интересная либа
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру