2016-08-03 728 views
0

在VoIP中,我們有SIPRTP協議和SIP工作於5060,但同時RTP適用於大範圍的像10000 to 20000無論你在配置定義。爲什麼VoIP RTP有多個端口而不是單個端口?

只是想知道爲什麼RTP不像DNS/HTTP只是單一對多的工作,我的意思是服務器端它監聽單端口和客戶端連接到特定的單個端口,在這種情況下安全明智,它會很容易。

回答

1

我可以看到3個原因,RTP被髮明使用不同的端口:

  1. 包大小:如果將只有一個端口,那麼就應該在有關的通道號,每個數據包的額外信息,其增加有效負載大小
  2. 性能:使用多個端口,我們可以避免對每個數據包到達時應執行的通道號的額外查找,否則使用易用性:對開發人員而言,使用易於編寫媒體堆棧多個端口

然而有特殊修改的SIP軟件,它可以以這種方式工作(端口複用)

0

SIP不必被分配到5060端口,它可以使用動態端口(例如軟電話註冊到服務器並通過代理接收呼叫 - 其他對等方不需要知道其端口)。

從技術上講,我不明白爲什麼SIP和RTP不能用單一的(相同的)端口,至少有一個呼叫電話。可能有一些問題,多次調用,雖然作爲單獨的本地端口可能只是有時區分輸入流的方式(例如多個流/來自同一主機和源端口的SDP不同不是通過路由器/ NAT分配廣告調用)。你可能已經描述

應用改變RTP/RTCP端口每次調用,開闢新的插座(S)各一次。它顯著降低的機會,當前流(呼叫)將通過RTP數據包從以前的通話受到干擾,如果以適當的方式並沒有完成(即交易超時BYE由於網絡問題或崩潰+重新啓動)。大概可以減少不會有更大的問題(以同時通話,或者因爲RTCP的通話X2的數)

端口範圍,雖然有風險,即從指定範圍的端口會被其他應用程序使用。

相關問題