Ассоциация 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 

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

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

Окружающая среда Linux и язык C. Обратите внимание, что я могу использовать любую другую идею, отличную от приведенной выше.

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

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

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