我正在尝试构建一个使用 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 之外的任何其他想法。
最佳答案
假设您的目标是实现均匀的负载共享以及针对 STP 或网络故障的恢复能力,那么每个线程都需要与每个 STP 关联。因此我会在线程之间共享文件描述符。
请记住,SS7 期望在 MTP SLS 上执行负载共享,以确保通过网络按顺序传送。
如果我正在开发 SS7 应用程序,我会查看第三方协议(protocol)栈,例如 Dialogic 提供的协议(protocol)栈,您可以从他们的网站下载并试用。这在 Linux(或 Solaris 和 Windows)中可用,并提供基于消息的 API,允许您的应用程序是多线程或单线程等。它们支持 SCTP、M3UA、M2PA、SUA、MTP3、SCCP、TCAP、INAP、MAP 、ISUP 等。
关于c - SCTP协会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13832273/