Networking
SIP (G.711) 數據包出現故障
我在 2 個不同的數據中心上有 2 個星號伺服器。呼叫從一個到另一個。音頻質量突然下降。我在兩台伺服器上都進行了 SIP 跟踪。這是我發現的:
- 伺服器 A 將 RTP 發送到伺服器 B。(在伺服器 A 上進行的 SIP 跟踪,在跟踪中一切似乎都很好。使用 Wireshark RTP 播放器可以很好地播放音頻)
- 伺服器 B 從伺服器 A 接收 RTP。(在伺服器 B 上進行的 SIP 跟踪顯示,有很多(45.3%)亂序數據包)
問題:如何確定問題出在哪裡?:)
謝謝!
通常,當您在流中看到大量無序數據包時,罪魁禍首是數據包路徑上某處的某個路由器執行的負載平衡路由做得不好。IP 不保證數據包的有序傳遞,但 TCP 和 RTP 等協議確實假設數據包大部分時間都是有序的,並且當該假設不成立時會嚴重降級。因此,最佳實踐規定不應以會導致大量輸出或有序數據包的方式配置路由器。
當大多數路由器配置為跨多個鏈路負載平衡流量時,它們使用散列算法(通常基於源和目標 IP 地址,可能還有 TCP/UDP 埠),以確保屬於單個流的數據包都選擇相同的成員負載均衡組。這有助於確保數據包保持有序。如果路由器在不使用這種散列的情況下進行負載平衡,並且屬於單個流的數據包最終在不同的鏈路上,它們很容易花費不同的時間來傳輸(主要是由於緩衝,這意味著即使負載平衡也會發生這種情況連結具有相同的特徵)並最終在目的地出現故障。
如果這就是發生在您身上的事情,並且 RTP 接收器的抖動緩衝區無法補償已經夠糟糕了,那麼恐怕您無能為力,只能讓管理網路的人來修復它。