Passa al contenuto principale

7. Controllo della congestione

La ritrasmissione RTP comporta il rischio di aumentare la congestione di rete. In un ambiente best-effort, la perdita di pacchetti è causata dalla congestione. Reagire alla perdita ritrasmettendo dati più vecchi senza ridurre il bitrate del flusso originale aumenterebbe ulteriormente la congestione. Le implementazioni SHOULD seguire le raccomandazioni di seguito per usare la ritrasmissione.

Il profilo RTP sotto cui è usato lo schema di ritrasmissione definisce un meccanismo appropriato di controllo della congestione in ambienti diversi. Seguendo le regole del profilo, un'applicazione RTP può determinare il bitrate e il packet rate accettabili per essere equa rispetto ad altri flussi TCP o RTP.

Se un'applicazione RTP usa la ritrasmissione, il packet rate e il bitrate accettabili includono sia i dati originali sia quelli ritrasmessi. Ciò garantisce che un'applicazione che usa la ritrasmissione raggiunga la stessa equità di una che non la usa. Tale regola si tradurrebbe in pratica nelle azioni seguenti:

Se si usa un servizio migliorato, occorre assicurarsi che il bitrate totale e il packet rate non superino quelli del servizio richiesto. Occorre inoltre monitorare che i servizi richiesti siano effettivamente erogati. In un ambiente best-effort, il mittente SHOULD NOT inviare pacchetti di ritrasmissione senza ridurre il packet rate e il bitrate del flusso originale (ad esempio codificando i dati a bitrate inferiore).

Inoltre, il mittente MAY ritrasmettere in modo selettivo solo i pacchetti che ritiene importanti e ignorare i messaggi NACK per altri pacchetti al fine di limitare il bitrate.

Questi meccanismi di controllo della congestione dovrebbero mantenere il tasso di perdita di pacchetti entro parametri accettabili. Nel contesto del controllo della congestione, la perdita di pacchetti è considerata accettabile se un flusso TCP sullo stesso percorso di rete e nelle stesse condizioni di rete raggiungesse, su una scala temporale ragionevole, un throughput medio non inferiore a quello che il flusso RTP raggiunge. Se la congestione non è tenuta sotto controllo, la ritrasmissione SHOULD NOT essere usata.

Le ritrasmissioni MAY essere comunque inviate in alcuni casi, ad esempio su collegamenti wireless in cui le perdite di pacchetti non sono causate dalla congestione, se il server (o il client che effettua la richiesta di ritrasmissione) stima che un particolare pacchetto o frame sia importante per continuare il playout, o se è stato emesso un RTSP PAUSE per consentire al buffer di riempirsi (RTSP PAUSE non influisce sull'invio delle ritrasmissioni).

Infine, può essere ulteriormente necessario adattare il bitrate di trasmissione (o il numero di layer sottoscritti per una sessione multicast stratificata), o far sì che il ricevente lasci la sessione.