SIP(G.711)数据包发生故障

我有两个不同的数据中心上的2个星号服务器。 呼叫正在从一个到另一个。 突然audio质量下降。 我在两台服务器上都做了SIP跟踪。 这是我发现的:

  1. 服务器A向服务器B发送RTP(服务器A上的SIP跟踪和跟踪一切似乎都很好,audio播放使用Wireshark RTP播放器)
  2. 服务器B从服务器A接收到RTP。(在服务器B上做的SIP跟踪显示,有很多(45.3%)不符合顺序的数据包)

问题:如何确定问题在哪里? 🙂

谢谢!

通常,在stream中看到很大一部分乱序数据包的罪魁祸首是负载均衡路由,这是由数据包path上的某个路由器完成的。 IP并不保证按顺序传送数据包,但像TCP和RTP这样的协议确实假定数据包在大多数情况下都是按顺序排列的,而当这种假设不成立时,数据包会严重劣化。 因此,最佳实践规定,路由器不应以会导致大量出站或订购数据包的方式进行configuration。

当大多数路由器被configuration为跨多个链路负载均衡stream量时,他们使用散列algorithm(通常基于源和目标IP地址以及可能的TCP / UDP端口)来确保属于单个stream的分组都select相同的成员负载平衡组。 这有助于确保数据包保持有序。 如果一个路由器没有使用这样的哈希来进行负载均衡,并且属于单个stream的数据包最终位于不同的链路上,他们可以很容易地花费不同的时间来传输(主要是由于缓冲,即使负载均衡链接具有相同的特征),并在目的地结束乱序。

如果这就是发生在你身上的事情,并且RTP接收器的抖动缓冲器已经足够坏了,那恐怕除了pipe理networking的人来解决这个问题之外,你无能为力。