我使用Linux SCTP栈。目前在同一台Linux机器上,我需要部署一个使用非操作系统SCTP STACK的进程。(即,它打开一个RAW套接字,然后自己处理传输级消息)。当SCTP Init到来时,Linux将数据包分发给两个进程。这种情况可以避免吗?我不希望Linux SCTP处理不被它使用的消息。(其他非操作系统SCTP栈使用)这可能吗?
一般来说,当面对这类问题时,有三种选择:
1)停止在引导时加载Linux SCTP模块(注意:它不能在运行时卸载),只使用非操作系统实现。2)如何预先配置每个SCTP实现以知道它拥有哪些关联并忽略其他的消息。3)移植非操作系统以使用Linux实现。
如果不提供第三个选项,任何使用SCTP的Linux系统都将出现问题。
注意:如果你在Linux上使用Dialogic非操作系统SCTP实现,那么你可以很容易地切换到使用他们的操作系统包装版本'SCTPN'。
对
这可能不是一个选择,但是让非lksctp进程使用SCTP的UDP隧道对我们来说非常好。我们使用的(商业)堆栈是可配置的,用于UDP上的SCTP,或IP上的SCTP(使用原始套接字,像你一样)。