Yeniden iletim ve sürgülü pencere. Kayıpsız Görüntü Sıkıştırma Algoritmaları

  • 03.05.2019

KARN Uyarlanabilir Zaman Aşımı Algoritması

zaman aşımları

bayt numaraları

kopyalar

El sıkışma ile çözülen sorunlar

İstasyon 20 bayt gönderirse, sunucu ACK'yi 20 artıracak (751 bayt olacak) vb.

Gelen tüm baytlar için bir onay oluşturulur istenen sıra. Kopyalar gönderilirse, resmi bozmaz. 731 baytın geldiğini 3 kez onaylayabilirsiniz (bu bir örnektir). Tüm onaylar birikimlidir. Kaybedilen onaylar sorun değildir.

TCP'deki kopyalar oluşabilir:

  1. Orijinal segmentin kaybı nedeniyle
  2. Onay kaybı nedeniyle
  3. Yeniden iletim zaman aşımı nedeniyle
  4. Segment gecikmesi nedeniyle
  5. Hepsinin sayılmasından dolayı olası sayılar bayt

2'ye kadar sıralı sayılar 32 . 2 Mbps hızında, tüm değerleri numaralandırmak 9 saat sürecektir. Seri numarasının çoğaltılması nedeniyle, bir kopya oluşabilir. Hız arttıkça bu ihtimal artıyor.

İnanılmaz miktarda parayla savaşıyorlar.

Zaman aşımlarını ayarlayın. Zaman aşımı değeri performansı etkiler. Zaman aşımı ilgili çift ​​çalışma süresi(RTT). Büyük zaman aşımı - büyük beklenti hata üzerine. Küçük bir zaman aşımı, gereksiz bir yeniden iletimdir.

Çeşitli var uyarlanabilir zaman aşımı algoritmaları(işletim sistemi görevi). CISCO, KARN algoritmasını kullanır.

Algoritmanın özü. Ortalama RTT süresi hesaplanır, belirli bir katsayı ile çarpılır (KARN'de katsayı 2'dir). Yalnızca ortalama zaman aşımı süresini değil, aynı zamanda pencere boyutunu da değiştirmek gerekir. KARN'da pencere, pencerenin %20'sinden %40'ına kadar serbest olana kadar değişir.

TCP protokolü dinamik bir pencere olduğunu varsayar. Alıcı, alabileceği bayt sayısını bildirir (0'dan 65535'e kadar). Başlangıç ​​numarası windows her zaman bağlantı kurma aşamasında ayarlanır. Alıcı, aşağıdakilere göre hangi pencerenin olması gerektiğini belirler. asgari fırsatlar. Arabellekleri kullanan alıcı uygulama sürecinin TCP performansı üzerinde önemli bir etkisi vardır. Doğru seçim pencere boyutu TCP'yi optimize eder. Diğer taraftaki alıcı işlem alındıyı okuduğunda ve TCP arabelleğini boşalttığında bir pencere açılır. Sol kenarlık sağ kenarlık ile aynı ise, gönderici iletimi sonlandırmalıdır (sıfır pencere). Pencere, veri iletildiğinde ve onaylandığında kapanır (sol kenar sağa doğru hareket eder).

İstasyon sunucuya FIN bayrağını gönderdiğinde bağlantı sonlandırılır. Sunucu ACK ve FIN gönderir. Ayrıca sunucu tekrar FIN gönderir ve istasyon ACK ve FIN gönderir.

Aşırı yükleme koruması - yavaş başla- paketleri hemen ve hızlı bir şekilde ağa göndermeyin.

Ayrıca birde şu var hızlı yeniden iletim mekanizması(yavaş başlatma gerekmez) ve

gecikmeli alındı ​​mekanizması (Windows'ta).

düzenlemek için kullanılan en doğal tekniklerden biri güvenilir iletim- bu teşekkür. Gönderici, verileri gönderir ve verilerinin alıcıya güvenli bir şekilde ulaştığına dair bir makbuz alana kadar bekler. AT TCP protokolü Kullanılmış özel durum el sıkışma - sürgülü pencere algoritması. Bu algoritmanın TCP protokolünde uygulanmasının ayrıntılı bir değerlendirmesine geçmeden önce, onu genel bir bakış açısından tartışmak çok yararlıdır.

Bu nedenle, makbuz alışverişi sürecini organize etmenin iki yöntemi vardır: kaynak boşta yöntemi ve kayan pencere yöntemi.

Yöntem boş kaynakçerçeveyi gönderen kaynağın (içinde bu durum iletilen veri birimi için hangi ad kullanılırsa kullanılsın), alıcıdan orijinal çerçevenin alındığını ve içindeki verilerin doğru olduğunu bildiren bir makbuz bekledi ve ancak bundan sonra bir sonraki çerçeveyi gönderdi (veya çarpıklığı tekrarladı). bir). Makbuz zaman aşımı sırasında ulaşmamışsa, çerçeve (veya makbuz) kayıp olarak kabul edilir ve iletimi tekrarlanır. Şek. Şekil 17.10, ikinci çerçevenin ancak ilk çerçevenin teslimatını onaylayan makbuz geldikten sonra gönderildiğini göstermektedir.

Pirinç. 17.10. Boşta Kaynak Yöntemi

Ancak, sonraki üçüncü kareyi gönderirken uzun bir duraklama oldu. Bu duraklama sırasında, ilk kopyanın makbuzu kaybolduğundan kaynak, çerçeve 2'yi yeniden iletmeye zorlandı. Kaynağın böyle bir algoritmasıyla, alıcı tarafın yinelenen çerçeveleri tanıması ve onlardan kurtulması gerektiği açıktır.

Kullanırken oldukça açıktır. Bu method veri alışverişi performansı potansiyel olarak olası olandan daha düşüktür - verici öncekini gönderdikten hemen sonra bir sonraki çerçeveyi gönderebilir, ancak makbuzun gelmesini beklemesi gerekir.

İkinci yönteme yöntem denir. sürgülü pencere(sürgülü pencere). Bu yöntemde, veri aktarım hızını artırmak için kaynağın belirli sayıda çerçeveyi sürekli modda, yani kaynak için mümkün olan maksimum hızda iletmesine izin verilir. bu çerçeveler için makbuz almadan önce. Bu şekilde iletilmesine izin verilen çerçeve sayısına denir. Pencere boyutu.

Şekil 17.11, 5 çerçeveli bir pencere için bu yöntemin uygulamasını göstermektedir.

Pirinç. 17.11. sürgülü pencere yöntemi

İlk anda, henüz hiçbir çerçeve gönderilmediğinde, pencere 1'den 5'e kadar bir dizi çerçeve numarası tanımlar. Kaynak çerçeveleri iletmeye başlar ve bir süre sonra yanıt olarak alındıları alır. Basitlik için, makbuzların karşılık geldikleri çerçevelerle aynı sırayla (ancak aynı hızda değil) geldiğini varsayalım. Gönderici makbuz 1'i aldığı anda, pencere bir konum yukarı hareket ederek gönderilmesine izin verilen yeni bir çerçeve aralığı (2'den 6'ya) tanımlar.

Paket gönderme ve makbuz alma süreçleri birbirinden oldukça bağımsızdır. Örneğimizde, gönderici çerçeveleri iletmeye devam ediyor, ancak bir süre onlar için makbuz almıyor. Çerçeve 6 iletildikten sonra pencere tükenir ve kaynak aktarımı askıya alır.

Makbuz 2'nin alınmasından sonra (kare 2), pencere bir yukarı kaydırılır ve 3'ten 7'ye iletim için izin verilen çerçeve aralığı belirlenir. Pencerenin yukarı doğru benzer bir "kayması" gerçekleşir. her makbuzu aldıktan sonra: pencere 1 kaydırılır, ancak boyutu değişmez ve 5'e eşit kalır. Makbuz 8'in gelmesinden sonra, pencere 9 ila 13 arasındadır ve uzun bir süre öyle kalır, çünkü bir nedenden dolayı kaynak, teslimat onay çerçevelerini almayı durdurur. Son izin verilen çerçeve 13'ü gönderdikten sonra verici, alındı ​​9'un alınmasından sonra yeniden başlatmak için iletimi tekrar durdurur.

Bir çerçeve gönderildiğinde, kaynakta bir zaman aşımı ayarlanır. eğer için ayarlanan zaman Gönderilen çerçevenin makbuzu alınmazsa, çerçeve (veya bunun için makbuz) kayıp olarak kabul edilir ve çerçeve tekrar iletilir. Makbuz akışı 5 çerçevelik bir tolerans dahilinde düzenli olarak gelirse, döviz kuru verilen kanal ve kabul edilen protokol için mümkün olan maksimum değere ulaşır.

AT Genel dava Kayan pencere yönteminin uygulanması, boş kaynak yönteminden daha zordur, çünkü vericinin, henüz alındı ​​bilgisi alınmamış olan tüm çerçevelerin bir kopyasını bir arabellekte saklaması gerekir. Ek olarak, bu yöntemi kullanırken, pencere boyutu, makbuzun alındığı çerçeve numarası, yeni bir makbuz alınmadan önce hala iletilebilecek çerçeve numarası gibi algoritmanın çeşitli parametrelerinin izlenmesi gerekir. Alınan.

sürgülü pencere nedir?

TCP bir paket göndermez, sonrakini göndermek için onay bekler. Bunun yerine "sürgülü pencere" ilkesini kullanır. Bu ilke, birkaç mesaj göndermenize ve ancak daha sonra onay için beklemenize izin verir.

TCP sürgülü pencere

Taşıma protokolü nedir?

Mecazi olarak konuşursak, TCP iletilmeyi bekleyen veri akışına bir pencere yükler ve pencereye düşen tüm verileri iletir. Tüm verilerin teslim edildiğine dair bir onay alan TCP, pencereyi daha aşağı yönde hareket ettirir ve içine düşen sonraki mesajları iletir. TCP, aynı anda birkaç mesajla çalışarak, onları aynı anda "koyabilir". ağ kanalı ve ancak o zaman onay için bekleyin. Kayar pencere yöntemi, bağlantının verimini ve ayrıca mesaj alışverişinin verimliliğini ve teslimatlarının onaylanmasını önemli ölçüde artırır.

Kayar pencerenin şemasına göre mesajların iletilmesi ve teslimat onayları.

Verici ve alıcı, üç patlamalı geniş sürgülü bir pencere kullanır. Yani, verici önce üç paket gönderir ve ancak ondan sonra bir alındının gelmesini bekler. Üçüncü teslimat onayını kabul ederek son paket, verici aşağıdaki üçünü gönderebilir.

TCP, veri akışının bazı parametreleri hakkında diğer tarafla görüşerek ağ bant genişliğini düzenler. Ayrıca, ayarlama süreci baştan sona gerçekleşir. TCP bağlantıları. Özellikle, ayarlama, sürgülü pencerenin boyutlarının değiştirilmesinden oluşur. Ağ çok yüklü değilse ve veri çakışması olasılığı minimumsa, TCP kayan pencerenin boyutunu artırabilir. Aynı zamanda, ağdan aynı anda daha fazla veri geçtiği için kanal başına veri hızı artar ve bağlantı daha verimli hale gelir.

Aksine, veri çarpışma olasılığı yüksekse, TCP kayan pencerenin boyutunu küçültür. Kayan pencerenin boyutu normal bir paket ile sekiz pakete eşit alınırsa ağ trafiği, daha sonra en kötü koşullarda, İnternet yoğun bir şekilde yüklendiğinde, boyutu beşe düşürülebilir. Tersine, ağda fazla veri olmadığında, pencere boyutu örneğin 10-20 pakete kadar artabilir.

Lütfen açıklamanın önceki paragraflar diyagram biraz basitleştirilmiştir. Aslında TCP, pencere boyutunu bayt cinsinden belirtir. Yani, varsayılan pencere boyutu, önceki örnekte olduğu gibi sekiz, on ve on iki bayt değil, birkaç bin bayt olabilir. Tipik olarak, TCP modülü, sürgülü pencere dolmadan önce birkaç segment gönderir. İnternetteki çoğu sistem, pencereyi varsayılan olarak 4096 bayt değerine ayarlar. Bazen pencere boyutu 8192 veya 16384 bayttır.

Bu yöntemin ana fikri (genellikle LZ1 yöntemi olarak da adlandırılır, bkz.) önceden okunan kısmı kullanmaktır. giriş dosyası sözlük olarak. Kodlayıcı, girdi dosyası için bir pencere oluşturur ve onu sıkıştırılacak bir karakter dizisi olarak sağdan sola hareket ettirir. Bu nedenle, yöntem sürgülü bir pencereye dayanmaktadır. Pencere iki bölüme ayrılmıştır. Soldaki kısma arama arabelleği denir. Geçerli sözlük görevi görecek ve her zaman yakın zamanda gelen ve kodlanmış karakterleri içerecektir. Sağ kısım penceresine, şimdi kodlanacak metni içeren ileriye dönük arabellek adı verilir. Pratikte, arama arabelleği birkaç bin bayttan oluşur ve ileriye dönük arabelleğin uzunluğu birkaç on karakterdir. dikey çubuk| t ve e karakterleri arasında, iki arabellek arasındaki geçerli bölünme anlamına gelir. "sir_sid_eastman_easily_t" metninin zaten sıkıştırıldığını ve "eases_sea_sick_seals" metninin sıkıştırılması gerektiğini varsayalım.

sir_sid_eastman_easily_t

easys_sea_sick_seals

Kodlayıcı, arama arabelleğini ters sırada (sağdan sola) tarar ve ileriye dönük arabellekte e karakterinin ilk oluşumunu arar. Böyle bir karakteri bir kelimenin başında kolayca algılar. Yani e, arama arabelleğinin sonundan (ofset olarak) 8'dir. Kodlayıcı daha sonra bu iki karakteri kaç eşleşen karakterin izlediğini belirler e. Bu durumda, karakter eşleşmesinin uzunluğu 3'tür. Kodlayıcı daha uzun eşleşen diziler bulmaya çalışarak aramaya devam eder. Bizim (ray) 'de, eastman kelimesinde 16 ofset ile aynı uzunlukta 3 başka bir eşleşen dizi var. Kod çözücü bunlardan en uzun olanı ve uzunluklar eşleşirse en uzak olanı seçer ve etiketi hazırlar (16, 3, "e").

Daha uzak bir bağlantı seçmek kodlayıcıyı basitleştirir. Programın bazı komplikasyonlarına rağmen en yakın eşleşmenin seçiminin de bazı avantajları olduğunu belirtmek ilginçtir. Bu, en küçük ofseti seçer. Etiketin en büyük ofseti depolamak için yeterli biti olacağından, bu bir avantaj gibi görünmeyebilir. Bununla birlikte, LZ77'yi Huffman kodlaması veya daha kısa ofsetlerin daha fazla atandığı diğer entropi etiket kodlaması ile takip edebilirsiniz. kısa kodlar. Bernard Herd tarafından önerilen bu yönteme LZH denir. Çok sayıda kısa ofset elde edilirse, LZH ile daha fazla sıkıştırma elde edilir.

Bir sonraki fikri kavramak çok kolaydır. Kod çözücü, kodlayıcının hangi eşleşmeyi seçtiğini, en yakın veya en uzak olanı bilmez, ancak bilmesine gerek yoktur! Kod çözücü sadece etiketleri okur ve bulmak için ofseti kullanır. Metin dizesi arama arabelleğinde. İlk tesadüf mü yoksa son mu olduğu onun için önemli değil.

Genel olarak, LZ77'den gelen bir etiketin üç alanı vardır: ofset, uzunluk ve ileriye dönük arabellekteki sonraki karakter (bizim durumumuzda, teases kelimesindeki ikinci e olacaktır. Bu etiket çıktı dosyasına yazılır, ve pencere sağa kaydırılır (veya girdi dosyası sola kaydırılır) dört pozisyona kaydırılır: eşleştirme dizisi için üç pozisyon ve sonraki karakter için bir pozisyon.

Sid_eastman_easily_tease

s_sea_sick_seals …

Geriye doğru aramada bir karakter eşleşmesi bulunamazsa, ofset 0 ve uzunluk 0 olan bir etiket yazılır. Aynı nedenle, etiketin üçüncü bir bileşeni olacaktır. Sıfır ofset ve uzunluklu etiketler, arama arabelleği boş veya neredeyse boş olduğunda her zaman işin başına yerleştirilir. Örneğimizin ilk yedi kodlama adımı aşağıda gösterilmiştir.

sir_sid_eastman_r

ir_sid_eastman_e

r_sid_eastman_ea

Sid_eastman_eas

sid_eastman_easy

astman_easily_te

Açıkça, (0,0,...) gibi tek karakterleri kodlayan etiketler iyi bir sıkıştırma sağlamaz. Uzunluklarını tahmin etmek kolaydır. Ofsetin boyutu, arama arabelleğinin uzunluğu nerede. Pratikte, bu arabellek birkaç yüz bayt uzunluğundadır, dolayısıyla ofset 10 - 12 bit uzunluğundadır. "uzunluk" alanı, ileriye dönük arabelleğin uzunluğuna eşit bir boyuta sahiptir (sonraki paragraf neden 1 çıkarmanız gerektiğini açıklayacaktır). Tipik olarak, ileriye dönük arabellek birkaç on bayt uzunluğundadır. Bu nedenle, bu alanın uzunluğu birkaç bittir. "Karakter" alanının boyutu genellikle 8 bittir, ancak genel olarak - , nerede - alfabenin boyutu. Tek bir karakterin toplam etiket boyutu (0,0,...) bit eşittir sıfır kod öğesi içermeyen 8 "ham" karakterin uzunluğundan çok daha fazladır.

Aşağıdaki örnek, "uzunluk" alanının neden ileriye dönük arabelleğin boyutundan daha uzun olabileceğini gösterir:

alf_eastman_easily_grows_alf

İleriye dönük arabelleğindeki ilk a, arama arabelleğindeki 5 a ile eşleşir. Her iki uç a'nın da 3'lük bir eşleşme uzunluğuna uyduğu görülecektir, bu nedenle kodlayıcı en soldaki karakteri seçecek ve bir etiket oluşturacaktır (28,3,"a"). Aslında, kodlayıcı bir etiket (3,4, "_") oluşturur. İleriye dönük arabelleğindeki dört "alfa" karakter dizisi, ileriye dönük arabelleğin üç "alf" karakteriyle ve ileriye dönük arabelleğin ilk "a" karakteriyle eşleşir. Bunun nedeni, kod çözücünün böyle bir etiketi herhangi bir değişiklik yapmadan çok doğal bir şekilde işleyebilmesidir. Arama ara belleğinin 3. konumunda başlar ve arabelleği sağa doğru genişleterek sonraki 4 karakteri birbiri ardına kopyalar. İlk 3 karakter, ara belleğin eski içeriğinden kopyalanır ve dördüncüsü, bu yeni üçün ilkinin bir kopyasıdır. Aşağıdaki örnek daha da inandırıcıdır (biraz yapmacık olsa da):

alf_eastman_easily_yells_A

Kodlayıcı, onuncu A karakteri de dahil olmak üzere ileriye dönük arabellekteki "A" karakterinin ilk dokuz kopyasını eşleştirmek için bir etiket (1,9, "A") oluşturur. Bu nedenle eşleşmenin uzunluğu, ilkesine göre, ileriye dönük arabelleğin boyutu eksi 1'e eşit olmalıdır.

LZ77 yönteminin kod çözücüsü kodlayıcıdan çok daha basittir (yani LZ77 yöntemi asimetrik bir sıkıştırma yöntemidir). Kodlayıcı ile aynı arama arabelleğini oluşturmalıdır. Kod çözücü etikete girer, tamponunda bir eşleşme bulur, eşleşen karakterleri ve üçüncü alandaki karakteri tampona yazar. Bu yöntem veya bunun bir modifikasyonu, dosya bir kez (veya birden çok kez) sıkıştırılırsa ancak sık sık açılırsa iyi çalışır. Sık kullanılan eski arşiv sıkıştırılmış dosyalar bu algoritmanın kullanımına iyi bir örnek teşkil edebilir.

İlk bakışta, açıklanan sıkıştırma yöntemi, giriş verileri hakkında herhangi bir varsayımda bulunmaz. Özellikle, bireysel simgelerin ortaya çıkma sıklıklarına hiç dikkat edilmez. Ancak, küçük bir düşünceyle, kayan pencerenin doğası gereği, LZ77 yönteminin ileriye dönük arabelleği her zaman arama arabelleğinin son içeriğiyle karşılaştırdığını, ancak çok uzun bir süre önce gelen verilerle karşılaştırmadığını görebilirsiniz. zaman önce (ve arama arabelleğinden zaten ayrıldı). Bu nedenle, girdi dosyasının benzer bölümlerinin birbirine yakın olarak tekrarlandığı örtük olarak varsayılır. Bu özelliği karşılayan veriler iyi sıkıştırılacaktır.

LZ77 temel yöntemi, geçen yüzyılın 80'li ve 90'lı yıllarında araştırmacılar ve programcılar tarafından birçok yönden geliştirildi. Bir olası yol kodların kullanımıdır değişken uzunluk etiketteki ofset ve uzunluk alanlarını kodlarken. Başka bir yol, her iki arabelleğin boyutunu artırmaktır. Arama arabelleğini artırmak, daha fazla eşleşme aramayı mümkün kılar, ancak bunun bedeli artan arama süresi pahasınadır. Açıktır ki, büyük bir arama arabelleği, aramayı hızlandırmak için daha karmaşık bir veri yapısı gerektirecektir (bkz. § 2.4.2). Üçüncü gelişme, sürgülü pencere ile ilgilidir. En basit yaklaşım, her eşleşmeden sonra tüm metni sola taşımaktır. Daha hızlı bir hile, doğrusal pencereyi dairesel bir sıra ile değiştirmektir, burada pencere kayması iki işaretçiyi sıfırlayarak yapılır (bkz. § 2.1.1). Başka bir iyileştirme, her etikete üçüncü alanı ortadan kaldıran bir bit (bayrak) eklemektir (bkz. § 2.2).

Kanalın yükünü artırmak için kullanılır sürgülü pencere mekanizması.Öncelikle belirtelim ki, yukarıda ele alınan anlaşma ve zaman aşımı mekanizmaları, etkileşim halindeki düğümler arasında yarı çift yönlü bir kanalın varlığını varsayarsa, kayan pencere mekanizması ancak bir çift yönlü kanal mevcutsa uygulanabilir. Aynı zamanda, veri çerçeveleri ve makbuzlar aynı anda iletilebilir. farklı kanallar(Şekil 1.48).

Sürgülü pencere mekanizmasının özü aşağıdaki gibidir. Gönderen düğüm, bu çerçeveler için makbuz almadan arka arkaya birkaç veri çerçevesi gönderebilir. Çerçeveler döngüsel olarak 1'den W, nerede W - pencere boyutu (genişlik) - onaylanmadan iletilebilecek maksimum çerçeve sayısı. Çerçeve numarası başlıkta belirtilmiştir. Pencerenin genişliği maksimum yük koşulundan seçilebilir doğrudan kanal gönderici düğümden alıcı düğüme iletişim, ilk çerçevenin alınmasını beklerken birkaç çerçeve daha ileterek elde edilebilir:

nerede - makbuz için minimum bekleme süresi; -

çerçeve iletim süresi - kanal yayılma süresi

iletişim, - çerçeveyi işleyen alıcı düğümde harcanan zaman ve

makbuz oluşturma.

Sunulan ifadeden aşağıdaki gibi, iletişim kanalı üzerinden sinyal yayılma süresini ve alıcı düğümdeki çerçeve işlem süresini Y 2 ihmal edersek, minimum pencere genişliği en az 2 olmalıdır.

İlk anda gönderen düğümün penceresinin U1 1.49, a)'da gösterildiği gibi görünüyor, bu da bulaşma olasılığı anlamına geliyor W onay olmadan çerçeveler. İletişim kanalının kapalı kalma süresini en aza indirmek için, alıcı düğümdeki makbuz, tüm aktarımlardan önce oluşturulabilir. Wçerçeveler, yani alıcı düğüm, kendisi için uygun olan herhangi bir zamanda gönderici düğüme bir alındı ​​bilgisi gönderebilir. Böyle bir an, genellikle gönderilen bir veri çerçevesinin oluşumu ile ilişkilendirilir. arka kanal U2 düğümünden U1 düğümüne. Aynı zamanda, bu çerçevenin başlığına, hatasız (pozitif alındı) veya hatalı (olumsuz alındı) alınan son çerçevenin numarasını belirten bir alındı ​​eklenir. Numaralı bir çerçeve makbuzu varsa ile(1 < ile< W) - pozitif ise, daha sonra U1 düğümündeki pencere, Şekil 1'de gösterildiği gibi kaydırılır. 1.49.6), bu da daha fazla iletme olasılığı anlamına gelir W makbuz olmadan sayılarla çerçeveler. Numaralı bir çerçeve makbuzu varsa - negatiftir, bu, en fazla sayı içeren çerçevelerin (k-1) doğru alındı ​​ve sayıdan başlayarak çerçeveler ile, yeniden iletilmelidir. Bu durumda, U1 düğümündeki pencere, Şekil 1.49, c)'de gösterildiği gibi kayar, bu da daha fazla iletme olasılığı anlamına gelir. W makbuz olmadan sayılarla çerçeveler. Bu nedenle, iletilen tüm çerçeveler için değil, yalnızca bazıları için bir makbuz oluşturulabilir, ayrıca, numaralandırılmış çerçeveye bir olumlu alındı ​​geldiyse. ile, o zaman bu çerçevenin ve 1'den 1'e kadar sayılarla önceki tüm çerçevelerin olduğu kabul edilir. (ile-1) hatasız kabul edildi. Benzer şekilde, sayı içeren bir çerçeve için negatif bir makbuz ileönceki tüm karelerin hatasız alındığı anlamına gelir ve yeniden iletim sayıdan başlayarak, önceden iletilen tüm çerçeveler tabidir. ile.