我正在尝试构建一个使用sctp的SS7网络实体,我的问题是我应该如何设计用于路由到GT上的路由中的每个关联或PC上的路由的路由表。
例如,假设这个实体连接到2个STP,每个STP有2个关联
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之外的任何其他想法。
答案 0 :(得分:0)
假设您的目标是实现针对STP或网络故障的均匀负载共享和弹性,则每个线程需要与每个STP建立关联。因此我会在线程之间共享文件描述符。
请记住,SS7希望在MTP SLS上执行负载共享,以确保通过网络按顺序传送。
如果我正在开发SS7应用程序,我会查看第三方协议栈,例如Dialogic提供的协议栈,您可以从他们的网站下载和试用。这在Linux(或Solaris和Windows)中可用,并提供基于消息的API,允许您的应用程序是多线程或单线程等。它们支持SCTP,M3UA,M2PA,SUA,MTP3,SCCP,TCAP,INAP,MAP ,ISUP等。