Gdy protokół STUN działa przez UDP, istnieje możliwość, że wiadomość STUN zostanie odrzucona przez sieć. Niezawodność transakcji żądanie/odpowiedź STUN jest zapewniana przez ponowne wysyłanie wiadomości żądania przez samą aplikację kliencką.
Klient powinien retransmitować wiadomość żądania STUN, zaczynając od interwału RTO („Retransmission TimeOut"), podwajając go po każdej retransmisji. RTO jest szacunkiem czasu podróży w obie strony.
Domyślnie klient STUN sgcWebSockets jest skonfigurowany z RTO wynoszącym 500 ms i maksymalną liczbą ponownych prób równą 7.
Na przykład, zakładając RTO wynoszące 500 ms, żądania byłyby wysyłane w chwilach 0 ms, 500 ms, 1500 ms, 3500 ms, 7500 ms, 15500 ms i 31500 ms. Jeśli klient nie otrzyma odpowiedzi po 39500 ms, uzna transakcję za przeterminowaną.
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;