Ассоциация 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 и многое другое.