SIP(G.711)数据包乱序

SIP(G.711)数据包乱序

我在两个不同的数据中心有 2 台星号服务器。通话从一个服务器转到另一个服务器。突然音频质量下降。我在两台服务器上都进行了 SIP 跟踪。以下是我发现的情况:

  1. 服务器 A 向服务器 B 发送 RTP。(在服务器 A 上进行 SIP 跟踪,在跟踪中一切似乎都很好。使用 Wireshark RTP 播放器可以很好地播放音频)
  2. 服务器 B 从服务器 A 接收 RTP。(在服务器 B 上进行的 SIP 跟踪显示,有许多(45.3%)乱序数据包)

问题:如何确定问题出在哪里?:)

谢谢!

答案1

通常,当您看到流中大量无序数据包时,罪魁祸首是数据包路径上某个路由器的负载平衡路由做得不好。 IP 不保证数据包的按序传送,但 TCP 和 RTP 等协议确实假设数据包在大多数情况下都是有序的,当该假设不成立时,性能会严重下降。因此,最佳实践规定路由器的配置方式不应导致大量无序数据包。

当大多数路由器配置为跨多个链路负载平衡流量时,它们会使用哈希算法(通常基于源和目标 IP 地址,也可能是 TCP/UDP 端口),以确保属于单个流的数据包都选择负载平衡组的同一成员。这有助于确保数据包保持有序。如果路由器在不使用此类哈希的情况下进行负载平衡,并且属于单个流的数据包最终位于不同的链路上,则它们很容易花费不同的传输时间(主要是由于缓冲,这意味着即使负载平衡的链路具有相同的特征也会发生这种情况)并最终在目的地乱序。

如果您遇到了这种情况,并且情况非常糟糕以至于 RTP 接收器的抖动缓冲区无法补偿,那么恐怕您除了让管理网络的人来修复它之外别无他法。

相关内容