SIP Retransmission: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| 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. | + | *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: | + | *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 19: | Zeile 21: | ||
|-------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. | + | *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: | + | *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 46: | Zeile 50: | ||
=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: | + | *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 | ||
| | | | | | ||
| − | |----INVITE------>| (Versuch 1, T1 = 500 ms) | + | |----INVITE------>| (Versuch 1) |
| + | | | | ||
| + | |----INVITE------>| (Versuch 2, T1 = 500 ms) | ||
| | | | | | ||
| − | |----INVITE------>| (Versuch | + | |----INVITE------>| (Versuch 3, T1*2 = 1 s) |
| | | | | | ||
| − | |----INVITE------>| (Versuch | + | |----INVITE------>| (Versuch 4, T1*2*2 = 2 s) |
| | | | | | ||
| − | |----INVITE------>| (Versuch | + | |----INVITE------>| (Versuch 5, T1*2*2*2 = 4 s) |
| | | | | | ||
| − | |----INVITE------>| (Versuch | + | |----INVITE------>| (Versuch 6, T1*2*2*2*2 = 8 s) |
| | | | | | ||
| − | |----INVITE------>| (Versuch | + | |----INVITE------>| (Versuch 7, T1*2*2*2*2*2 = 16 s) |
| | | | | | ||
| − | |----INVITE------>| (Versuch | + | |----INVITE------>| (Versuch 8, T1*2*2*2*2*2*2 = 32 s) |
| | | | | | ||
| (Client gibt auf, da keine Antwort vom Server erhalten wurde) | | | (Client gibt auf, da keine Antwort vom Server erhalten wurde) | | ||
</pre> | </pre> | ||
Version vom 2. Juli 2023, 11:05 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) | | |----INVITE------>| (Versuch 2, T1 = 500 ms) | | |----INVITE------>| (Versuch 3, T1*2 = 1 s) | | |----INVITE------>| (Versuch 4, T1*2*2 = 2 s) | | |----INVITE------>| (Versuch 5, T1*2*2*2 = 4 s) | | |----INVITE------>| (Versuch 6, T1*2*2*2*2 = 8 s) | | |----INVITE------>| (Versuch 7, T1*2*2*2*2*2 = 16 s) | | |----INVITE------>| (Versuch 8, T1*2*2*2*2*2*2 = 32 s) | | | (Client gibt auf, da keine Antwort vom Server erhalten wurde) |