2016-08-03 37 views
0

In VoIP haben wir SIP und RTP Protokoll und SIP arbeitet auf 5060, aber während RTP arbeitet auf großen Bereich wie 10000 to 20000 was auch immer Sie in Config definieren.Warum VoIP RTP hat mehrere Ports statt Single?

Nur wundern, warum RTP nicht funktioniert wie DNS/HTTP nur single zu vielen, ich meine serverseitig es auf einzelnen Port zu hören und Clients mit bestimmten einzelnen Port verbinden, in diesem Fall Sicherheit wird es viel einfacher sein.

Antwort

1

I 3 Gründe sehen, warum RTP erfunden wurde verschiedene Ports zu verwenden:

  1. Paketgröße: wenn es ein einziger Hafen sei, dann sollte es in jedem Paket über die Kanalnummer zusätzliche Informationen, die erhöht die Nutzlast Größe ein bisschen
  2. Leistung: mit mehreren Ports können wir vermeiden, eine zusätzliche Suche nach Kanalnummer, die bei jedem Paket Ankunft durchgeführt werden sollte sonst
  3. Benutzerfreundlichkeit: für Entwickler ist es einfacher, den Medien-Stack mit zu schreiben mehrere Ports

Jedoch gibt es spezielle SIP-Software modifizierte, die auf diese Weise arbeiten können (port Multiplexing)

0

SIP muss nicht zu 5060-Port zugeordnet werden kann, kann sie dynamisch Port verwenden (z.B. softphone Registrierung beim Server und Empfang von Anrufen über Proxy - andere Peers müssen ihren Port nicht kennen.

Technisch gesehen sehe ich nicht, warum sowohl SIP als auch RTP den einzigen (gleichen) Port nicht benutzen konnten, zumindest nicht mit einem einzigen Telefon. Es kann jedoch Probleme mit mehreren Anrufen geben, da separate lokale Ports möglicherweise nur eine Möglichkeit sind, eingehende Streams zu unterscheiden (z. B. mehrere Streams/Aufrufe desselben Host- und Quellports, die in SDP anders als von Router/NAT zugewiesen sind).

Anwendung, die Sie beschrieben haben, ändert wahrscheinlich RTP/RTCP-Port (s) jeden Anruf, jedes Mal neue Socket (s) zu öffnen. Es reduziert erheblich die Wahrscheinlichkeit, dass der aktuelle Strom (Anruf) durch RTP-Pakete von vorherigem Anruf gestört würde, wenn dies nicht in geeigneter Weise abgeschlossen wurde (z. B. Transaktionszeitüberschreitung für BYE aufgrund von Netzwerkproblemen oder Absturz + Neustart).

Port-Bereich kann wahrscheinlich ohne größere Probleme reduziert werden (Anzahl der gleichzeitigen Anrufe oder Anzahl der Anrufe x2 wegen RTCP), obwohl das Risiko besteht, dass Ports aus dem angegebenen Bereich von einer anderen Anwendung verwendet werden.