STUN-client | UDP-hertransmissies

Bij het uitvoeren van STUN via UDP is het mogelijk dat het STUN-bericht door het netwerk verloren gaat. De betrouwbaarheid van STUN-verzoek/antwoord-transacties wordt bereikt door het opnieuw verzenden van het verzoekbericht door de clienttoepassing zelf.

 

Een client moet een STUN-aanvraagbericht opnieuw verzenden, te beginnen met een interval van RTO ("Retransmission TimeOut"), na elke hertransmissie verdubbeld. De RTO is een schatting van de round-trip-tijd.

 

Standaard is de sgcWebSockets STUN Client al geconfigureerd met een RTO van 500 ms en een maximale herhalingswaarde van 7.

 

Aangenomen een RTO van 500 ms worden verzoeken verzonden op tijdstippen 0 ms, 500 ms, 1500 ms, 3500 ms, 7500 ms, 15500 ms en 31500 ms. Als de client na 39500 ms geen antwoord heeft ontvangen, beschouwt de client de transactie als verlopen.

 


oSTUN := TsgcSTUNClient.Create(nil);
oSTUN.Host := 'stun.sgcwebsockets.com';
oSTUN.Port := 3478;
oSTUN.RetransmissionOptions.Enabled := true;
oSTUN.RetransmissionOptions.RTO := 500;
oSTUN.RetransmissionOptions.MaxRetries := 7;
oSTUN.SendRequest;