我正在开发用Java编写的DRA替换节点,使用RestComm和LKSCTP在CentOS 7上。
基于SCTP的RFC,建立关联的第一条消息是INIT,另一方应使用init_ack回复
正在发生的事情是,即使我没有发送初始化,我也会收到init_ack多次。
RFC中提到了此行为,建议您忽略此冗余消息。
我已经检查了lksctp的文档https://linux.die.net/man/7/sctp,并找到了一些可以调整的参数,我将PRSCTP_ENABLE更改为false,我能够删除前向TSN TSN在INIT中发送的参数(在原始DRA中,这是参数未发送(。但是有一个称为ECN的参数(明确的拥塞通知(,我无法从初始化中删除(这仍然是当前DRA和我的替换DRA之间的唯一区别(。
那么,最后,如何避免冗余init_acks?任何参数调整可能会帮助我
既没有与您看到多个INI_ACK的事实相关的forward tsn和ECN功能。没有参数可以打开多个init_ack响应。我会怀疑它是路由/流量捕获问题,或者您不小心发送了INTS。值得捕获Wireshark跟踪,并在那里查看实际导致远程端发送init_ack的原因。