SIP Retransmission: Unterschied zwischen den Versionen
| Zeile 1: | Zeile 1: | ||
=Grundlegendes= | =Grundlegendes= | ||
| − | + | Das Session Initiation Protocol (SIP) ist ein Kommunikationsprotokoll, das für die Signalisierung und Kontrolle von Multimedia-Kommunikationssitzungen in Anwendungen wie Sprach- und Videotelefonie verwendet wird. Im Falle von verlorenen oder verzögerten Paketen hat SIP eingebaute Mechanismen für Retransmission. Diese Mechanismen sind in RFC 3261, die SIP-Spezifikation, definiert. | |
| − | + | ||
=Prinzip= | =Prinzip= | ||
| + | SIP basiert auf dem Request-Response-Modell. Es verwendet mehrere verschiedene Nachrichtentypen, einschließlich INVITE, ACK, BYE, CANCEL, OPTIONS und REGISTER. Ein einfacher Aufruffluss könnte so aussehen: | ||
<pre> | <pre> | ||
Client Server | Client Server | ||
| Zeile 18: | Zeile 19: | ||
|-------ACK------->| | |-------ACK------->| | ||
</pre> | </pre> | ||
| + | In diesem Flussdiagramm sendet der Client eine INVITE-Nachricht an den Server, um einen Anruf zu initiieren. Wenn die endgültige Antwort des Servers verloren geht, wiederholt der Client die INVITE-Anfrage. | ||
| + | |||
=Es wird solange wiederholt, bis ein Erfolg eintritt= | =Es wird solange wiederholt, bis ein Erfolg eintritt= | ||
| + | Die Anfrage wird mehrmals wiederholt, um zu versuchen, eine erfolgreiche Verbindung herzustellen. Jede Wiederholung erfolgt nach einer festgelegten Wartezeit, die sich nach jedem fehlgeschlagenen Versuch verdoppelt: | ||
<pre> | <pre> | ||
Client Server | Client Server | ||
| Zeile 40: | Zeile 44: | ||
|------ACK------->| | |------ACK------->| | ||
</pre> | </pre> | ||
| + | |||
=Oder bis das 32 fache von T1(hier 500ms) erreicht wird= | =Oder bis das 32 fache von T1(hier 500ms) erreicht wird= | ||
| + | Wenn keine Antwort vom Server empfangen wird, gibt der Client den Versuch nach einer bestimmten Zeit auf. Diese Zeit ist das 32-fache des ursprünglichen Retransmissions-Intervalls (T1), das hier auf 500 ms gesetzt ist: | ||
<pre> | <pre> | ||
Client Server | Client Server | ||
Version vom 2. Juli 2023, 11:02 Uhr
Grundlegendes
Das Session Initiation Protocol (SIP) ist ein Kommunikationsprotokoll, das für die Signalisierung und Kontrolle von Multimedia-Kommunikationssitzungen in Anwendungen wie Sprach- und Videotelefonie verwendet wird. Im Falle von verlorenen oder verzögerten Paketen hat SIP eingebaute Mechanismen für Retransmission. Diese Mechanismen sind in RFC 3261, die SIP-Spezifikation, definiert.
Prinzip
SIP basiert auf dem Request-Response-Modell. Es verwendet mehrere verschiedene Nachrichtentypen, einschließlich INVITE, ACK, BYE, CANCEL, OPTIONS und REGISTER. Ein einfacher Aufruffluss könnte so aussehen:
Client Server | | |-----INVITE------>| | | |<----100 Trying---| | | | | (Paket geht verloren, keine Antwort) | | |-----INVITE------>| (Retransmission) | | |<----200 OK-------| | | |-------ACK------->|
In diesem Flussdiagramm sendet der Client eine INVITE-Nachricht an den Server, um einen Anruf zu initiieren. Wenn die endgültige Antwort des Servers verloren geht, wiederholt der Client die INVITE-Anfrage.
Es wird solange wiederholt, bis ein Erfolg eintritt
Die Anfrage wird mehrmals wiederholt, um zu versuchen, eine erfolgreiche Verbindung herzustellen. Jede Wiederholung erfolgt nach einer festgelegten Wartezeit, die sich nach jedem fehlgeschlagenen Versuch verdoppelt:
Client Server | | |----INVITE------>| (Versuch 1) | | |----INVITE------>| (Versuch 2 nach 500 ms) | | |----INVITE------>| (Versuch 3 nach 1 s) | | |----INVITE------>| (Versuch 4 nach 2 s) | | |----INVITE------>| (Versuch 5 nach 4 s) | | |----INVITE------>| (Versuch 6 nach 8 s) | | |----INVITE------>| (Versuch 7 nach 16 s) | | |<---200 OK-------| (Antwort vom Server erreicht den Client) | | |------ACK------->|
Oder bis das 32 fache von T1(hier 500ms) erreicht wird
Wenn keine Antwort vom Server empfangen wird, gibt der Client den Versuch nach einer bestimmten Zeit auf. Diese Zeit ist das 32-fache des ursprünglichen Retransmissions-Intervalls (T1), das hier auf 500 ms gesetzt ist:
Client Server | | |----INVITE------>| (Versuch 1, T1 = 500 ms) | | |----INVITE------>| (Versuch 2, T1*2 = 1 s) | | |----INVITE------>| (Versuch 3, T1*2*2 = 2 s) | | |----INVITE------>| (Versuch 4, T1*2*2*2 = 4 s) | | |----INVITE------>| (Versuch 5, T1*2*2*2*2 = 8 s) | | |----INVITE------>| (Versuch 6, T1*2*2*2*2*2 = 16 s) | | |----INVITE------>| (Versuch 7, T1*2*2*2*2*2*2 = 32 s) | | | (Client gibt auf, da keine Antwort vom Server erhalten wurde) |