Çevrimiçi kodlar - Online codes

Gelen bilgisayar bilimleri , çevrimiçi kodlar bir örnektir rateless silme kodları . Bu kodlar, bir mesajı bir dizi sembole kodlayabilir, öyle ki bunların herhangi bir kısmının bilgisi, orijinal mesajı kurtarmaya izin verir (yüksek olasılıkla). Sınırsız kodlar, alıcılar yeterli simgeye sahip olana kadar yayınlanabilen, keyfi olarak çok sayıda simge üretir.

Image
Çevrimiçi kodların kullanımının üst düzey görünümü

Çevrimiçi kodlama algoritması birkaç aşamadan oluşur. İlk olarak mesaj, n adet sabit boyutlu mesaj bloğuna bölünür . Daha sonra dış kodlama , birleşik bir mesaj oluşturmak için mesaj bloklarına eklenen yardımcı bloklar üreten bir silme kodudur .

Bundan, iç kodlama kontrol blokları oluşturur. Belli sayıda kontrol bloğu alındığında, bileşik mesajın bir kısmı kurtarılabilir. Yeterince kurtarıldıktan sonra, dış kod çözme orijinal mesajı kurtarmak için kullanılabilir.

Ayrıntılı tartışma

Çevrimiçi kodlar, blok boyutu ve iki skaler , q ve ε ile parametrelendirilir . Yazarlar q = 3 ve ε = 0.01 önermektedir . Bu parametreler, kodlamanın karmaşıklığı ve performansı arasındaki dengeyi ayarlar. (1 + 3ε) n kontrol bloğundan yüksek olasılıkla n blokluk bir mesaj kurtarılabilir . Başarısızlık olasılığı (ε / 2) q + 1'dir .

Dış kodlama

Dış kodlama olarak herhangi bir silme kodu kullanılabilir, ancak çevrimiçi kodların yazarı aşağıdakileri önerir.

Her bir mesaj bloğu için, eklenecek q yardımcı blokları (toplam 0.55 q ε n yardımcı bloktan) sözde rastgele seçin . Her bir yardımcı blok, kendisine bağlı olan tüm mesaj bloklarının XOR'udur.

İç kodlama

Image
10000 blok mesaj için sabitlenmiş mesaj bloklarının sayısına karşı alınan kontrol bloklarının bir grafiği.

İç kodlama, bileşik mesajı alır ve bir kontrol blokları akışı oluşturur. Bir kontrol bloğu , eklendiği bileşik mesajdaki tüm blokların XOR'udur .

Derece bir kontrol bloğunun bağlı olduğu blokların sayısıdır. Derecesi, aşağıdaki gibi tanımlanan rastgele bir dağılım p örneklenerek belirlenir :

için

Kontrol bloğunun derecesi bilindikten sonra, eklendiği bileşik mesajdaki bloklar muntazam bir şekilde seçilir.

Kod çözme

Açıktır ki, iç aşamadaki kod çözücü, halihazırda kodunu çözemediği kontrol bloklarını tutmalıdır . Bir kontrol bloğunun kodu, yalnızca bağlı olduğu bloklardan biri hariç tümü bilindiğinde çözülebilir. Soldaki grafik, bir iç kod çözücünün ilerlemesini gösterir. X ekseni, alınan kontrol bloklarının sayısını gösterir ve kesikli çizgi, halihazırda kullanılamayan kontrol bloklarının sayısını gösterir. Bu, ilk başta, derece> 1 olan birçok kontrol bloğu alındığı, ancak kullanılamadığı için neredeyse doğrusal olarak tırmanır. Belirli bir noktada, bazı kontrol blokları aniden kullanılabilir hale gelir ve daha fazla blok çözülür ve bu da daha fazla kontrol bloğunun kullanılabilir olmasına neden olur. Çok hızlı bir şekilde tüm dosyanın kodu çözülebilir.

Grafikte de gösterildiği gibi, iç kod çözücü, n kontrol bloğunu aldıktan sonra kısa bir süre için her şeyin kodunu çözmekten çekiniyor . Dış kodlama, dosya onlar olmadan kurtarılabildiğinden, iç kod çözücüden birkaç zor bloğun sorun olmamasını sağlar.

Dış bağlantılar