powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Прием передача сообщений по TCP/IP
21 сообщений из 21, страница 1 из 1
Прием передача сообщений по TCP/IP
    #38843507
Поставлена задача организовать прием передачу сообщений по TCP/IP между серверами.
На начальном этапе имеем две программы. Одна это сервер другая клиент. Серверная программа открывает порт: o dev:(:port:"CT"):1 i '$t w "<error>",! q
и слушает: u dev f  r data:1 i $t q:data="<STOP>"  u $p w data,! u dev

Клиентская программа открывает порт: o dev:(ip:port:"CT"):10 s t=$t i '$t w "<error>",! q
и посылает на сервер сообщения: u dev  f n=1:1:max w Message(n),!

Обнаружилась следующая проблема: Если серверная и клиентская машина находятся в одной сети, все работает. Если в разных сетях, не работает. На клиентской машине не открывается порт: o dev:(ip:port:"CT"):10

Подскажите, в чем тут дело ?
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #38843519
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бакланов СергейЕсли в разных сетях, не работает.
А машины то видны друг другу в этих разных сетях? Пинг идет между ними? А то может быть тут вопрос и к каше то не относится, а скорее к конфигурированию сети.
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #38843528
PING есть
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #38843532
PING проверил только с клиентской машины. С серверной не знаю
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #38843541
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если внутри одной сети все работает, а в разных сетях нет, то тут разумно проверять маршрутизацию трафика между этими сетями, и все брандмауэры. Скорее всего где то закрыт доступ по вашему порту
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #38843632
Да, дело оказалось в брандмауэре на серверной машине.
Спасибо
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #38846295
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бакланов Сергей ,

С сокетами можно работать и по-другому .
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #38846813
eduard93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

Или встроенный %CSP.WebSocket использовать.
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #38847030
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard93 ,

Вебсокеты - это "несколько" другое.
Тогда ТС придётся использовать ещё и веб-сервер в своей схеме общения между серверами, настраивать веб-сервер, CSP-Шлюз и т.п.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Прием передача сообщений по TCP/IP
    #39272519
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напишу тут, чтобы не плодить темы...

Одно и то же ПО (Обмен по TCP-сокету) установлено на машинах, находящихся в пределах внутренней и внешней сети.
Тестирую обмен короткими пакетами, отрабатываю различные команды, измеряю время отклика. Обмен происходит каждые 5 минут (288 сеансов в сутки). Время отклика во внутренней сети составляет примерно 50 мс(плюс-минус влияние моделируемой нагрузки на сервер Каше), во внешней сети (разные города) - примерно 100..120..140 мс(тоже с учетом влияния нагрузки). Соединение непостоянное, после окончания сеанса TCP-порты закрываются. Проверяю и набираю статистику времени отклика, в зависимости от графика суточной загрузки сети, суточной (предполагаемой) нагрузки на серверах Каше (моделирую нагрузку). В целом получаю картину, удовлетворяющую поставленным требованиям.
Но!!!
При обмене между серверами во внешней сети наблюдаю всплески задержки с устойчивым временем 3 секунды. Их количество колеблется от 5..10 до 15..20 в сутки. Во время нагрузки на канал связи всплески появляются чаще, во время небольшой нагрузки на канал связи их может не быть часами.

Вопрос: что это могут быть за 3 секунды, можно ли на них повлиять как-то, путем настроек..?

Кто сталкивался с подобным - поделитесь мыслями, соображениями, опытом...

Заранее благодарен.
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39272545
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл сказать, я пытался найти в интернете что-нибудь по поводу этих 3 секунд, но так и не нашел ничего внятного...
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39272548
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKBВо время нагрузки на канал связи всплески появляются чаще, во время небольшой нагрузки на канал связи их может не быть часами.А не могут ли это быть проблемами сетевого стека, все от драйверов до железа ? В таком случае имеет смысл попробовать что-то поменять, и такие проблемы как я понимаю тоже могут быть смоделированы.
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39272786
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,
По моим, правда субъективным, оценкам пики задержек возникают где-то на уровне транспорта за пределами офиса. Внутри офиса таких задержек с таким устойчивым временем 3 сек не возникает. Бывают спонтанные задержки, зависимые от нагрузки сервера, с которым ведется общение. Мои предположения, что где-то на уровне провайдеров, сетевого канального оборудования, всего того, чем я не владею...
Тут весь вопрос в том, сталкивался ли кто-нибудь с подобным? Есть ли способы устранить, или уменьшить такое влияние? Удалось ли это сделать?
Само по себе проявление таких задержек не является критичным, но является неприятным, поскольку не прогнозируемо.
Ну и вытекающие отсюда последствия локализации такого проявления, последующего анализа, т.п.

Тестирование проводится на временно предоставленным мне машинам (около 20), и я это наблюдаю только если связь происходит между абонентами, не находящимися в пределах одного офиса. Скоро машины заберут и я не смогу больше экспериментировать, к сожалению...
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39272836
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKB,

Насколько я понимаю, в данном случае, единственно что может как то влиять это изменение размера MTU
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39272949
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKBгде-то на уровне провайдеров, сетевого канального оборудования, всего того, чем я не владею...Наблюдал, как этим занимаются специалисты, и немного занимался этим сам.
Надо искать узкое место - слабое звено. Меня бы встревожил уже ping > 100ms (в нашей системе ping > 50ms недопустим, хорошим значением считается 25ms).
Для моделирования трафика есть специальные утилиты (e.g. iperf), но часто применяют простейшие приёмы:
1)
a. ping -t <тот конец>
b. ping -t <какой-нибудь популярный и-нет ресурс, который должен отвечать быстро>
если большая разница между a и b, <подозрение на провайдера на том конце> либо <на том конце что-то не так настроено>;
если a и b одинаково плохо, <подозрение на провайдера на нашем конце> либо <на нашем конце что-то не так настроено>.

2) Далее можно искать, какое именно звено тормозит, если неясно, в сети какого провайдера проблема. Утилиты: pathping (windows), nmap (linux).

Такая вот муторная работа. Задержки скорее всего на стадии установления соединения: 3 минуты > всех разумных tcp-таймаутов, вы скорее всего делаете повторные попытки установления соединения на прикладном уровне. Установление соединения - вообще самая уязвимая операция, вспомните, как часто при плохом и-нете приходится жать на Ctrl-F5 в браузере. Понимаю, что софт править нелегко, но если перейти на постоянные сеансы, ситуация с задержками может улучшиться.
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39273036
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,
Задержка отклика не 3 минуты, а 3 секунды+штатная задержка отклика. Пинг в основном на уровне 40 и меньше мсек (бывают правда всплески..., но редко). Определение стороны проблем по пингу да, я так примерно и делаю(вручную). Но я не могу таким образом определить на прикладном уровне, где возникают эти три секунды. Всплески одиночные, даже на одном провайдере, по одному общему направлению на другой город, где в одном офисе стоят два удаленных сервера, один отклик будет с задержкой, а второй нет.
Мне просто непонятно, почему стабильно 3 секунды присутствуют в таких всплесках.
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39273046
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Время пинга определяю таким образом:
Код: plaintext
1.
2.
set tPing1=$zh
set restTestTCP=##class(%SYSTEM.INetInfo).CheckAddressExist(IPaddress)
set timePing=$zh-tPing1*1000
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39273225
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKB,

извини, ошибся с 3 минутами :)
Тестируя сетку, лучше действовать на уровне утилит ОС.
Даже простенький непрерывный 'ping -t ip-address' позволяет собрать статистику по потерям пакетов и колебаниям времени ответа (в Cache это, конечно, можно заскриптовать, но смысл?)

tracert | pathping | nmap могут помочь найти тормозящую сеть/хост.
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39273239
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovТестируя сетку, лучше действовать на уровне утилит ОС.Что метод CheckAddressExist и делает.AlexKBВопрос: что это могут быть за 3 секунды, можно ли на них повлиять как-то, путем настроек..?Это могут быть константы жёстко вшитые в код (типа hang 3), как например:
Код: plaintext
quit $zf(-1,"ping -w 1000 -n 1 "...
в указанном Вами CheckAddressExist или настройки ОС.AlexKBВопрос: можно ли на них повлиять как-то, путем настроек..?Хороший вопрос для WRC.
Попробуйте поиграться с:их объектных аналогов : так будет больше контроля за открытием/закрытием соединений, обработкой ошибок, callback-и и т.д.
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39273261
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

у каждого конечно свой опыт, но:

servitЧто метод CheckAddressExist и делаетОн совсем другое делает: шлёт всего один пакет (-n 1), я же предложил непрерывный ping; добавлю к этому, что на длительное время (на 1 час как минимум).

servitЭто могут быть константы жёстко вшитые в код В код вшито '-w 1000' - этого всего лишь время ожидания ответа (в мс), а не принудительная задержка. Как вы, конечно, знаете, ping работает не по tcp, а по icmp, поэтому время ожидания надо задавать явно.

AlexKB, а вот случайно и про 3 сек нашёл: Microsoft TechNet. Appendix A: TCP/IP Configuration ParametersTcpInitialRTT
Key: Tcpip\Parameters\Interfaces\interfaceGUID
Value Type: REG_DWORD—number
Valid Range: 0–0xFFFF
Default: 3
Description: This parameter controls the initial time-out in seconds used for a TCP connection request and initial data retransmission on a per-interface basis. Use caution when tuning with this parameter because exponential backoff is used. Setting this value to larger than 3 results in much longer time-outs to nonexistent addresses

Возможно, совпадение, но подтверждает начальное предположение, что проблема возникает при установлении соединения.
...
Рейтинг: 0 / 0
Прием передача сообщений по TCP/IP
    #39273268
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovservitЭто могут быть константы жёстко вшитые в кодВ код вшито '-w 1000' - этого всего лишь время ожидания ответа (в мс), а не принудительная задержка. Как вы, конечно, знаете, ping работает не по tcp, а по icmp, поэтому время ожидания надо задавать явно.Это был всего лишь пример того, как в код по-разному могут быть вшиты константы, и совершенно не относящийся к проблеме ТС.
Жаль, что построенная мною фраза вызвала недопонимание.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Прием передача сообщений по TCP/IP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]