Ассоциация SCTP

Я пытаюсь создать сетевой объект SS7, который использует sctp, мой вопрос заключается в том, как мне спроектировать таблицу маршрутизации, используемую для маршрутизации к каждой ассоциации в обоих маршрутах на GT или маршруте на ПК.

Например, предположим, что этот объект связан с 2 STP, 2 ассоциациями с каждым STP.

node1 (thread 1)  ----association 1---->STP1
node1 (thread 2)  ----association 2---->STP1

node1 (thread 3)  ----association 1---->STP2
node1 (thread 4)  ----association 2---->STP2

Как показано выше, у каждого потока есть одна ассоциация, поэтому я думал о том, чтобы поделиться файловым дескриптором каждой ассоциации со всеми потоками, тогда я могу отправить трафик любой ассоциации (конечно, с помощью механизма блокировки), так как ассоциация рассматривается здесь как набор ссылок, опять же на основе кода точки или GT.

Или создайте всю ассоциацию в одном процессе и просто отправьте каждой ассоциации на основе ее дескриптора, конечно, без многопоточности.

Среда - Linux, а язык - C. И обратите внимание, я могу использовать любую другую идею, кроме вышеуказанной 2.

1 ответ

Исходя из предположения, что ваша цель - добиться равномерного распределения нагрузки и устойчивости к сбоям STP или сети, каждый поток должен быть связан с каждым STP. Поэтому я бы разделял файловые дескрипторы между потоками.

Помните, что SS7 ожидает, что распределение нагрузки на MTP SLS будет выполняться для обеспечения последовательной доставки через сеть.

Если бы я разрабатывал приложение SS7, я бы посмотрел на стеки протоколов сторонних производителей, такие как те, которые доступны в Dialogic, которые вы можете загрузить и попробовать на их веб-сайте. Это доступно в Linux (или Solaris и Windows) и предоставляет API на основе сообщений, который позволяет вашему приложению быть многопоточным или однопоточным и т. Д. Они поддерживают SCTP, M3UA, M2PA, SUA, MTP3, SCCP, TCAP, INAP, MAP, ISUP и многое другое.

Другие вопросы по тегам