Повторная передача, потеря и восстановление
Протоколы передачи данных в реальном времени позволяют устранять ошибки, связанные с задержкой и нарушением порядка следования пакетов, но в них не предусмотрено использование подтверждений и повторной передачи для устранения ошибок, связанных с потерей пакетов. Чтобы понять, с чем это связано, напомним, что в приложениях, работающих в реальном времени, применяется принцип воспроизведения с соблюдением такого же интервала времени между пакетами, как и при передаче данных: данные передаются с постоянной скоростью и с такой же скоростью должно выполняться их воспроизведение. Например, рассмотрим, к чему приведет повторная передача пакета с аудиоинформацией. Если короткий фрагмент аудиоинформации не поступит к тому моменту, когда в процессе воспроизведения потребуются недостающие данные, придется на время приостановить вывод звукового сигнала. Если же в протоколе будет предусмотрено, что на время ожидания повторной передачи воспроизведение должно приостанавливаться, то новые данные будут продолжать поступать, а очередь невоспроизведенных данных будет расти. После поступления повторно переданного пакета и возобновления воспроизведения очередь невоспроизведенных данных останется заполненной, поскольку новые данные будут по-прежнему поступать с той же скоростью, с какой происходит воспроизведение. Это означает, что размер очереди возрастает при каждой повторной передаче и больше не уменьшается. Фактически по мере дальнейшей повторной передачи очередь возрастает неограниченно.
Для предотвращения формирования очередей неопределенно большой длины в протоколах передачи данных в реальном времени не используется повторная передача. Вместо этого в них выполняется либо опережающее исправление ошибок, либо воспроизведение с пропусками. Метод опережающего исправления ошибок предусматривает включение в каждый пакет дополнительной информации, которая используется получателем для восстановления данных, относящихся к пропущенному пакету. Метод воспроизведения с пропусками предусматривает замену недостающего фрагмента другой информацией на интервал времени, равный продолжительности воспроизведения недостающих данных. Например, если потерян пакет с данными, относящимися к сеансу передачи аудиоинформации, то получатель может прекратить вывод данных, повторить звуковой фрагмент, полученный в последнюю очередь, или выработать белый шум (например, усилить фоновые помехи).
Полное прекращение воспроизведения применяется редко, поскольку эксперименты показали, что люди предпочитают, чтобы был слышен белый шум, а не наступала полная тишина.