SIP Retransmission: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| 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) |