Qachon RTP paketlari o'tish yoqilgan haqiqiy tarmoqlar, tebranishlar portlashlar oralig'i muqarrar. Tarmoqdagi uzatishning sezilarli beqarorligi bo'lsa, qabul qiluvchi uni ijro etish buferiga kechikish qo'shish orqali qoplashi kerak. Shaklda. 6.13 tarmoqning beqarorligini qoplash jarayonini ko'rsatadi.
Guruch.6.13.Kompensatsiyabeqarorliktarmoq ishlashi standart algoritmlar hisob-kitoblar hajmi shunday kechikishlar mavjud emas. Ilovalar foydalanish ichida asosan har xil dastur turiga va tarmoq holatiga qarab moslashuvchan algoritmlar.
In ko'p holatlar beqarorlik ish tarmoqlar kiyadi tasodifiy xarakter . Ustida guruch. 6.14 ko'rsatilgan jadval o'zgarishlar interval orasida paketlar qarab _ dan chastota, qaysi yoqilgan aql yaqin uchun tarqatish Gauss.
Tarmoqlar bo'ylab ma'lumotlarni uzatishning amaldagi amaliyoti tarqatishni kattaroq intervallarga o'tkazsa ham, bu taxminiylik ko'p hollarda mos keladi. Bu taxmin ijro etish kechikishini hisoblashni ancha osonlashtiradi. Standart og'ish hisoblab chiqiladi beqarorlik tarmoqlar, a dan nazariyalar ehtimolliklar biz bilamiz normal taqsimotning 99% o'rtachadan uchta standart og'ish oralig'ida yotadi.
Standart og'ish qanday o'lchanadi? Tarmoq beqarorligining ma'nosi hisoblangan uchun binolar ichida hisobot oluvchi uchun paketlarni yetkazib berish vaqtidagi o'rtacha o'zgarishlarni kuzatish, bu esa o'z navbatida
radiuslar standart og'ishning qiymatini taxmin qilish uchun ishlatilishi mumkin. Ushbu yaqinlashuvga asoslanib, tarmoqning beqarorligini qoplash uchun zarur bo'lgan ijro etish kechikishi sifatida qabul qilinishi mumkin. teng uch barobar hajmi beqarorlik tarmoqlar, hisoblangan alohida oqim manbai uchun.
T o'yin=T oqimi+3J Bu yerda Jhisoblanadi joriy hisoblangan qiymat 5-bobda tavsiflanganidek, tarmoq beqarorligi.
Guruch.6.15.Kattalashtirish; ko'paytirishintervalvaqtorasidapaketlar Narxi qancha tez-tez kerak qayta hisoblang ichida bular holatlar hajmi bufer o'ynayaptimi? Ustida yechim bu savol ta'sir qilish bir nechta omillar.
mazmunli kattalashtirish; ko'paytirish ulushlar paketlar, tashlanadi sababli kechikish .
Kvitansiya bir nechta paketlar shartnoma, qaysi kerak xuddi shu sababga ko'ra tashlang (uchta shunday paket etarli).
Kvitansiya paketlar dan manba, qaysi harakatsiz uzoq vaqt (odatda 10 soniya ichida).
keskin kattalashtirish; ko'paytirish vaqt yuqish yoqilgan tarmoqlar.
Aniqlash moment keskin kattalashtirish; ko'paytirish vaqt yuqish yoqilgan tarmoqlar juda oddiy. Bu ketma-ket paketlar orasidagi etkazib berish muddatining kutilmagan o'sishining bir lahzasidir. Bunday holat rasmda ko'rsatilgan. 6.15.
Tegishli psevdokod ko'rinadi Keyingisi yo'l:
int adjustment_due_to_jitter(...)
{
delta_transit = abs (tranzit - oxirgi_transit); agar (delta_transit > SPIKE_THRESHOLD) {
// A yangi "kechikish boshoq" ega boshlangan playout_mode = SPIKE;
spike_var = 0; moslashish = FALSE;
} boshqa {
agar (o'yin_rejimi == SPIKE) {
// Biz ichida a kechikish boshoq; saqlab turish qiyalik taxminiy spike_var = spike_var / 2;
delta_var = (abs(tranzit - oxirgi_transit) + abs (tranzit
oxirgi_oxirgi_transit))/8; spike_var = spike_var + delta_var;
agar (spike_var < spike_end) {
// qiyalik hisoblanadi tekis; qaytish uchun normal operatsiya playout_mode = NORMAL;
}
moslashish = FALSE;
} boshqa {
// Oddiy operatsiya; ahamiyatli voqealar mumkin sabab bizga _
// moslashtirish the o'yin
agar (ketma-ket tushdi > DROP_THRESHOLD) {
// Yiqildi ham ko'p ketma-ket packetsadapt = TRUE;
}
agar ((joriy_vaqt - oxirgi_sarlavha_vaqt) >
INACTIVE_RESHOLD) {
// jim manba qayta ishga tushirildi; tarmoq sharoitlar bor
// ehtimol o'zgartirilgan moslash = TRUE;
}
}
}
istalgan_o'yin_offset = 3 * jitter if (moslashish) {
playout_offset = istalgan_o'yin_offset;
} boshqa {
playout_offset = oxirgi_o'yin_offset;
}
qaytish playout_offset;
}