Sürgülü pencere kullanma ilkelerini anlama. Yeniden iletim ve sürgülü pencere

  • 03.05.2019

TCP teknolojiyi kullanır sürgülü pencere alındı ​​numarasından iletilen alıcının alabileceği bölüm sayısını belirtmek için. Bu bölüm TCP Kayar Penceresini kapsar.

Bir pencere kullanırken sabit boyut, pencerenin boyutu bir kez belirlenir ve gelecekte değişmez. Kayan pencere kullanıldığında, pencere boyutu iletimin başlangıcında belirlenir ve tüm TCP iletişim oturumu boyunca dinamik olarak değiştirilebilir. Kayar pencere bant genişliğinin daha verimli kullanılmasına yardımcı olur çünkü daha büyük boyut pencereler, onay alınmadan önce daha fazla veri gönderilmesine izin verir. Ayrıca, alıcı pencere boyutunu 0'a düşürürse, bu eylem, 0'dan büyük bir pencere değeri gönderilene kadar daha fazla veri iletimini etkin bir şekilde durdurur.

Şekilde pencere boyutu 3'tür. Gönderici, alıcıya üç segment iletebilir. Bu andan itibaren gönderici, alıcıdan onay bekler. Alıcı, üç veri bölümünün alındığını onayladıktan sonra, gönderici sonraki üç bölümü iletebilir. Ancak, bölümleri alma yeteneği azalırsa, alıcı pencere boyutunu küçültür, böylece alınan veriler arabellek taşmasına neden olmaz ve bölümler atılır.

Alıcı tarafından gönderilen her alındı ​​bildirimi, alıcının kabul etmeyi kabul ettiği bayt sayısı (aksi takdirde pencere boyutu) olarak ifade edilen, beyan edilen pencere boyutunu içerir. Bu, arabellek boyutunu ve alıcının verileri işleyebileceği hızı kontrol etmek için pencerenin gerektiği gibi genişlemesine veya daralmasına izin verir.

TCP, genellikle alıcı penceresiyle aynı boyutta olan Congestion Window Size (CWS) adlı özel bir parametreyi destekler, ancak segmentler kaybolmaya başladığında CWS yarıya iner. Segment kaybı, ağ tıkanıklığı olarak algılanır. TCP, gelişmiş bir geri alma mekanizması çalıştırır ve daha fazla ağ tıkanıklığını önlemek için algoritmaları yeniden başlatır.

SÜRGÜ PENCERE UYGULAMA SÜRECİ.

Eylem

Bir yorum

Gönderici ve alıcı, ilk pencere değerlerini değiştirir: bu örnekte, bir onay alınmadan önce pencere boyutu 3 segmenttir.

Bu, bağlantı kurma prosedürü sırasında olur.

Gönderici, alıcıya 1, 2 ve 3 numaralı segmentleri gönderir

3. segmenti gönderdikten sonra gönderici, alıcıdan bir onay bekleyecektir.

Alıcı, segment 1 ve 2'yi alır, ancak şimdi pencere boyutunu 2'ye ayarlar.

Alıcı, bir veritabanında merkezi işlem birimi (CPU) araması veya bir indirme işlemi gibi birçok nedenden dolayı yavaş olabilir. büyük dosya grafiklerle.

Gönderici, segment 3 ve 4'ü iletir.

Gönderici, iki segment gönderdikten sonra, alıcının ulaşması için bir onay bekler.

Alıcı, segment 3 ve 4'ü kabul eder, ancak 2 pencere boyutunu korumaya devam eder.

Alıcı, segment 5'in iletilmesini gerektiren önceki segment 3 ve 4'ün başarılı bir şekilde alındığını onaylar.

AKIŞ KAPASİTESİNİN MAKSİMİZASYONU.

Pencereleme algoritması, veri aktarım hızını kontrol eder. Böylece kayıp verilerin aktarımı için harcama yaptığınız için verilerin atılmasını en aza indirmek mümkün oluyor" ek süre, ve bu nedenle, verimliliği artırmak mümkündür.

KÜRESEL SENKRONİZASYON.

Öte yandan, tıkanıklık penceresi algoritması, TCP işleminin genel senkronizasyonuna neden olur ve bu da verimliliği olumsuz etkiler. Genel senkronizasyon tüm gönderenler aynı algoritmaları kullandığında ve gönderenlerin eylemleri aynı olduğunda oluşur. Gönderenler aynı tıkanıklığı aynı şekilde algılar ve aynı süre için geri alma ayarlar. Şimdi, tüm göndericiler aynı algoritmaları kullandığından, aynı zaman aralığında iletmeye devam edecekler ve bu da dalgalı sıkışıklığa yol açacaktır.

Bu algoritma (algoritma LZ77 4 Adını yazarlar Abraham Lempel ve Jacob Ziv'den almıştır. 1977'de yayınlandı.) sözlüğü ilk kullananlardan biriydi. Dizinin son N zaten kodlanmış öğesi bir sözlük olarak kullanılır. Sıkıştırma sürecinde, sözlük-alt dizisi, gelen dizi boyunca hareket eder ("kaydırır"). Çıkış zinciri kodlanmıştır Aşağıdaki şekilde: sözlükteki işlenmiş element zincirinin eşleşen kısmının konumu - offset (geçerli konuma göre), uzunluk, zincirin eşleşen kısmını takip eden ilk eleman. Kibrit zincirinin uzunluğu yukarıdan n sayısı ile sınırlandırılmıştır. Buna göre görev, işlenmekte olan diziyle eşleşen sözlükten en büyük dizeyi bulmaktır. Eşleşme yoksa sıfır ofseti, birim uzunluk ve yalnızca kodlanmamış dizinin ilk öğesi - (0, 1, e) kaydedilir.

Yukarıdaki kodlama şeması konsepte yol açar sürgülü pencere(İng. sürgülü pencere), iki bölümden oluşur:

  1. N uzunluğundaki zaten kodlanmış öğelerin devamı - sözlük - arama arabelleği(İngilizce arama arabelleği);
  2. bir eşleşme bulmaya çalışılacak olan elementler zincirinden n uzunluğunda bir dizi - tampon Ön izleme (İngilizce ileriye dönük arabellek).

açısından sürgülü pencere sıkıştırma algoritması aşağıdaki gibi tanımlanır: eğer e 1,. ... ... , e i zaten kodlanmış bir alt dizidir, o zaman e i-N + 1'dir. ... ... , e i bir sözlük veya arama arabelleğidir ve e i + 1'dir. ... ... , e ben + n - önbellek önbelleği. Benzer şekilde, görev, arama tamponundaki zincirle eşleşen e i + 1 öğesinden başlayarak önizleme arabelleğinden en büyük öğe zincirini bulmaktır - bu zincir herhangi bir öğede başlayabilir ve herhangi bir öğeyle sona erebilir, yani. Önizleme arabelleğini işgal ederek arama arabelleğinin ötesine geçin. ötesine geçmek doğaldır sürgülü pencere yasaktır. Kayar pencerede çakışan elemanların maksimum uzunluğu e i-p bulunsun. ... ... , ei + q, o zaman aşağıdaki gibi kodlanacaktır: (p + 1, q + p + 1, ei + p + q + 2) - önizleme arabelleğinin başlangıcına göre ofset (ei + 1), uzunluk eşleşen zincirin önizleme tamponundan eşleşen zinciri takip eden öğe. Arama aynı uzunlukta iki eşleşme bulursa, önizleme arabelleğinin başlangıcına en yakın olan seçilir. Bundan sonra, kayan pencere p + q + 2 eleman kadar ileriye kaydırılır ve arama prosedürü tekrarlanır.

N ve n sayılarının seçimi ayrıdır önemli konu dan beri daha fazla N ve n, daha çok alan ofset ve uzunluk değerlerini saklamak için gereklidir. Doğal olarak, algoritmanın çalışma süresi de N ve n'nin büyümesiyle artar. Genellikle N ve n'nin büyüklük sırasına göre farklılık gösterdiğine dikkat edin.

Bu algoritma ile bir sıkıştırma örneği verelim. "TOBEORNOTTOBE" dizesini N = 10 ve n = 3 parametreleriyle sıkıştıralım:

adım sürgülü pencere Maks. eşleşen zincir çıktı
1 "" + "TOB" T 0.1, T
2 "T" + "OBE" Ö 0.1, O
3 "TO" + "BEO" B 0.1, B
4 "TOB" + "EOR" E 0.1, E
5 "TOBE" + "ORN" Ö 3.1, Sağ
6 "TOBEOR" + "DEĞİL" n 0.1, N
7 "KÖTÜ" + "OTT" Ö 3.1, T
8 "TOBEORNOT" + "TOBE" TOB 9.3, E

Ofseti saklamak için 4 bit, 2 bit uzunluk ve 8 bit eleman tahsis edersek, kodlanmış dizinin uzunluğu (dizinin sonunun belirtilmesi hariç) 4 x 8 + 2 x 8 + 8 olacaktır. x 8 = 112 bit ve orijinal - 102 bit. V bu durum diziyi sıkıştırmadık, aksine sunumun fazlalığını artırdık. Bunun nedeni, dizi uzunluğunun böyle bir algoritma için çok küçük olmasıdır. Ancak, örneğin, Şekil 1'deki Huffman kod ağacının çizimi. 13.1, 420 kilobayt kaplıyor disk alanı, sıkıştırmadan sonra yaklaşık 310 kilobaytlık bir boyuta sahiptir.

Aşağıda sıkıştırma algoritmasının sözde kodu verilmiştir.

// M sabit bir kenarlıktır // karakterleri sırayla oku giriş akışı// giriş - sıkıştırılmış sıra // n - maksimum uzunluk zincirler // konum - sözlükteki konum, uzunluk - zincirin uzunluğu // nelem - zincire göre eleman, str - bulunan zincir // giriş - çıkış - çıkış // SlideWindow - arama arabelleği while (! in.EOF ( )) // veri varken (// maksimum eşleşmeyi ve SlideWindow.FindBestMatch parametrelerini arıyor (in, n, pos, len, nelem); // çıktıyı yaz: offset, length, element out.Write (pos ); out.Write (len ); out.Write (nelem); // sürgülü pencereyi len + 1 eleman ile hareket ettirin SlideWindow.Move (in, len + 1);) Liste 13.2. LZ77 sıkıştırma algoritması

Sıkıştırılmış bir dizinin kodunun çözülmesi, kaydedilen kodların doğrudan çözülmesidir: her giriş, bir sözlükten bir dize ve açıkça yazılmış bir öğe ile eşleştirilir, ardından sözlük kaydırılır. Açıkçası, sözlük, kod çözme algoritması çalışırken yeniden oluşturulur.

Kod çözme işleminin hesaplama açısından çok daha basit olduğu görülebilir.

// n - maksimum zincir uzunluğu // konum - sözlükteki konum, len - zincir uzunluğu // nelem - zincire göre eleman, str - bulunan zincir // in - input, out - output // Dict - sözlük while (! in .EOF ()) // veri varken (in.Read (pos); in.Read (len); in.Read (nelem); if (pos == 0) (// yeni tek karakter // kaldır sözlükten ilki (far) bir eleman Dict.Remove (1); // Dict.Add (nelem) elemanını ekle; out.Write (nelem);) başka (// sözlükten karşılık gelen dizeyi kopyala str = Dict.Get (pos, len); // sözlükten kaldır len + 1 element Dict.Remove (len + 1); // Dict.Add (str + nelem); out.Write (str + nelem) zincirini ekle ;)) Liste 13.3. algoritma

Bu algoritma, bütün bir algoritma ailesinin atasıdır ve kendi başına orijinal haliyle pratik olarak kullanılmaz. Avantajları, oldukça büyük dizilerde iyi bir sıkıştırma oranı, hızlı paket açma ve ayrıca bir patentin olmamasıdır 5 belirli bir süre (genellikle 15-20 yıl) için buluştan yararlanma münhasır hakkını sağlayan bir belge algoritma üzerinde. Dezavantajları şunları içerir: yavaş hız sıkıştırma ve ayrıca alternatif algoritmalardan daha düşük bir sıkıştırma oranı (algoritmanın modifikasyonları bu dezavantajla mücadele eder). Huffman algoritmaları ("Kayıpsız Görüntü Sıkıştırma Algoritmaları") ve LZ77'nin birleşimine DEFLATE 6 yöntemi denir. Bu sıkıştırmanın adıdır ve dekompresyona INFLATE (İngilizce DEFLATE - söndürmek, ENFLATE - şişirmek için) denir.... DEFLATE yöntemi grafiksel olarak kullanılır. PNG formatı ayrıca evrensel biçim zip veri sıkıştırma.

Taşıma katmanı, ağ katmanı tarafından sağlanan hizmetleri kullanır:

yol seçimi ve mantıksal adresleme hizmetleri. Bu Katman 3 hizmetleri, gönderici ve alıcı arasında uçtan uca bağlantı sağlar. Bu bölüm, taşıma katmanının göndericiden alıcıya bilgi akışını nasıl düzenlediğini açıklar. Taşıma katmanı aşağıdaki özelliklere sahiptir:

􀂄 veri akışı taşıma katmanı ağ uç noktaları arasında mantıksal bir bağlantıdır;

􀂄 sürgülü pencere mekanizması, bağlantının uçtan uca kontrolünü ve güvenilirliğini sağlar, paket numaralarının ve bildirimlerin sırasının izlenmesini sağlar;

􀂄 çeşitli yönetmek için ağ bağlantıları dördüncü katman TCP ve UDP protokollerinde ve sözde üst katmanlara bilgi aktarmak için limanlar(Liman).

Taşıma katmanı yığınıTCP / IP

Adından da anlaşılacağı gibi, TCP / IP protokol yığınının taşıma katmanı, alıcı ve gönderen cihaz uygulamaları arasında veri aktarımından sorumludur. Taşıma katmanı ilkelerinin bilgisi, modern kavramın derinlemesine anlaşılması için gerekli olan kilit bir noktadır. ağ teknolojileri... Aşağıdaki bölümler, TCP / IP modelinin en önemli katmanlarından biri olan taşımanın işlevlerini ve hizmetlerini detaylandırmaktadır.

Yığının taşıma katmanına girişTCP / IP

Dördüncü, taşıma, katmanı tanımlamak için ifade sıklıkla kullanılır. hizmet kalitesi... Aşağıda detaylı olarak ele alınan UDP, bir taşıma katmanıdır ve bağlantısız taşıma hizmetleri sağlar. Ancak bu katmanda çalışan ana protokol, bağlantı kurma mekanizması kullanan TCP'dir. Bu protokolün ana işlevleri, göndericiden alıcıya bilgi akışının taşınması ve güvenilir kontrolüdür. Taşıma katmanının ana işlevleri, uçtan uca iletim kontrolü, sürgülü pencere mekanizması aracılığıyla akış kontrolü sağlamak ve sıralı numaralar ve bildirimler aracılığıyla teslimat güvenilirliğini garanti etmektir.

Güvenilirlik ve akış kontrolünün ne işe yaradığını anlamak için çok hızlı konuşan bir yabancı hayal edin. Dinleyicisi büyük olasılıkla tekrar sormak zorunda kalacak Tek kelimeler(iletim güvenilirliğinin analogu) ve daha yavaş konuşmayı isteyin (bir akışın analogu).

Taşıma katmanı şunları sağlar: güvenilir iletim gönderen düğümden alıcı düğüme veri. Bu seviyede, ağın uç noktaları arasında mantıksal bir bağlantı oluşturulur; ek olarak, taşıma katmanının görevleri, çeşitli tarafından iletilen verilerin bölümlenmesini ve yeniden birleştirilmesini içerir. uygulamalarüst katmanları bir taşıma katmanı veri akışına dönüştürür. Bu akış, uç noktalar arasında uçtan uca veri aktarımı sağlar.

Bir taşıma katmanı veri akışı, bir ağ üzerindeki uç noktalar arasındaki mantıksal bir bağlantıdır; taşıma katmanı ayrıca uygulamalar arasındaki bağlantıyı da kontrol eder. İncirde. 11.2, taşıma katmanının çalışmasını gösterir.

Taşıma katmanı aşağıdaki işlevleri sağlar:

    üst düzey uygulamalardan verilerin bölümlenmesi;

    uçtan uca iletişim yönetimi;

    segmentlerin bir uç düğümden diğerine aktarılması;

    pencereyi yeniden boyutlandırarak akış kontrolü;

    numaralar atayarak ve onayları kullanarak güvenilirliği sağlamak.

Taşıma katmanı için harici ağ veri paketlerinin göndericiden alıcıya iletildiği bir ortam (genellikle bir bulut olarak gösterilir) şeklinde temsil edilebilir. Bu ortam, belirli bir alıcı için hangi yolun en uygun olduğundan sorumludur. Zaten bu aşamada, ağda veri iletme sürecinde yönlendiricilerin ne kadar önemli bir rol oynadığını anlayabilirsiniz.

TCP/IP protokol paketi iki ayrı protokolden oluşur: TCP ve IP. IP, verilerin bir ağ üzerinden verimli bir şekilde iletilmesini sağlayan bağlantısız bir Katman 3 protokolüdür. TCP bir Katman 4 protokolüdür, bağlantı odaklı bir hizmettir ve akış kontrolü ve dolayısıyla yüksek iletim güvenilirliği sağlar. Bu iki protokolün kombinasyonu, çok çeşitli veri iletim problemlerinin çözülmesine izin verir. Tabii ki, TCP/IP protokol yığını başka birçok protokolden oluşur, ancak TCP ve IP başlıcalarıdır. Bu arada, tüm internet ağı TCP / IP protokol yığınına dayalıdır.

Akış kontrolü

TCP taşıma protokolü veri segmentlerini ilettiğinde, verilerin bütünlüğünü garanti edebilir. Bu amaca ulaşmanın yollarından biri, akış kontrolü (akışkontrol) Bu, bir bağlantının bir ucundaki bir düğümün diğer ucundaki bir istasyonun arabelleklerini aştığı durumlarla ilgili sorunları ortadan kaldırır. Taşma, veri kaybına yol açabileceğinden ciddi bir sorundur.

Taşıma hizmetleri, kullanıcıların gönderen ve alan düğümler arasında güvenilir veri aktarımı gerektirmesini sağlar. İletişim ortağı sistemleri arasında güvenilir veri aktarımı sağlamak için bağlantı odaklı bir mekanizma kullanılır. Güvenli ulaşım aşağıdaki işlevleri sağlar:

    göndericinin her bölümün teslimatının onayını alacağını garanti eder;

    teslimat onayının alınmadığı bölümlerin yeniden gönderilmesini sağlar;

    hedefteki segmentleri doğru sırada sıralamanıza olanak tanır;

    ağ tıkanıklığını önler ve bir tıkanıklık durumunda tıkanıklık yönetimini sağlar.

Kurulum, kontrol ve oturum sonlandırma

OSI referans modelinde, birden fazla uygulama aynı anda aynı taşıma bağlantısını kullanabilir. Veri taşıma işlevi, parça parça uygulanır. Bu, farklı uygulamaların verileri ilk giren ilk çıkar (FIFO) temelinde aktarabileceği anlamına gelir. Segmentler bir alıcıya veya farklı alıcılara yönelik olabilir. Bu kurala bazen en üst düzey uygulama diyaloğu çoğullama mekanizması denir (Şekil 3).

Pirinç. 3. OSI modelinin en üst katmanının çeşitli uygulamaları taşıma katmanını kullanır

Taşıma katmanının ana işlevlerinden biri, eşler arası sistemle bir bağlantı oturumu kurmaktır. Veri aktarımını başlatmak için gönderici ve alıcı uygulamaları, işletim sistemi bağlantı başlatma hakkında. İstasyonlardan biri, diğer istasyon tarafından kabul edilmesi gereken bir bağlantı başlatır. Protokollerin çalışmasından sorumlu işletim sistemi modülleri, birbirleriyle özel bir mesaj göndererek iletişim kurar ve veri aktarımı olasılığını ve uç düğümlerin hazır olup olmadığını kontrol eder.

Senkronizasyon işlemi tamamlanıp bağlantı kurulduktan sonra veri aktarımı başlar. Aktarım işlemi sırasında her iki istasyon da mesaj alışverişini durdurmaz, bu da alınan verilerin doğru olduğundan emin olmanızı sağlar. İncirde. Şekil 4, bir gönderici ve bir alıcı arasındaki tipik bir bağlantıyı gösterir. İlk istek mesajı, uç düğümleri senkronize etmek için gereklidir. İkinci ve üçüncü, ilk senkronizasyon talebini onaylamak için gereklidir; ayrıca bağlantı parametrelerini ters yönde senkronize ederler. Son gönderi Onayla(onay), alıcıya her iki tarafın da bağlantı kurmaya hazır olduğunu bildirmek için kullanılır. Bağlantı kurulduktan sonra veri aktarımı başlar.

Pirinç. 4. Eşler arası sistemle bağlantı kurma süreci

Veri aktarımı sırasında iki nedenden dolayı aşırı yük oluşabilir. Birincisi, hızlı bir bilgisayarın, ağın iletebileceğinden daha hızlı bir veri akışı oluşturabilmesidir. İkincisi, birçok bilgisayarın aynı anda bir alıcıya veri göndermesi gerektiğinde ortaya çıkar. Bu durumda, her bir gönderici soruna neden olmamasına rağmen, alıcı tıkanıklık yaşayabilir.

Datagramların çok hızlı ulaştığı ve uç düğümün veya ağ geçidinin bunları işleyemediği durumlarda geçici olarak bellekte depolanırlar. Veri trafiği azalmazsa, sonunda bellek kaynaklarını tüketen uç düğüm veya ağ geçidi, sonraki tüm veri birimlerini atmak zorunda kalacaktır.

Veri kaybını önlemek için, taşıma işlevi göndericiye 'cihaz almaya hazır değil' bilgi mesajı gönderebilir. Kırmızı trafik ışığı gibi davranan bu gösterge mesajı, göndericiye veri göndermeyi durdurması için sinyal verir. Alıcı ek verileri tekrar işleyebilir hale geldikten sonra, yeşil trafik ışığına benzer bir trafik gösterge mesajı 'veri almaya hazır cihaz' mesajı gönderir. Böyle bir göstergeyi alan gönderici, bölümlerin iletimine devam edebilir.

Veri aktarımının sona ermesinden sonra, gönderici alıcıya aktarımın tamamlandığını belirten bir sinyal gönderir. Alıcı, bağlantının kesildiğini onaylar, ardından makineler arasındaki bağlantı sonlandırılır.

Üç adımlı onay

TCP, bağlantı yönelimli bir algoritma kullanır, bu nedenle verileri aktarmadan önce mantıksal bir bağlantı kurulmalıdır. İki iş istasyonu arasında bir ağ bağlantısı kurmak için, ilk sıra numaraları (ISN - İlk Sıra Numarası) senkronize edilmelidir. Senkronizasyon, SYN kontrol bitini (kısaca ssenkronizasyon) ve ISN. SYN bitini taşıyan modüllere bazen SYN mesajları da denir. Kurulum problemini çözmek için, ISN numaralarını değiştirmek için bir ilk bağlantı kurarak ISN numaralarını seçmek için uygun bir mekanizma seçmek gerekir.

Senkronizasyon, her iki tarafın da ilk ISN'sini göndermesini ve bir ACK (kısacası) biçiminde bir onay almasını gerektirir. teşekkür) bağlantıdaki başka bir katılımcıdan. Ayrıca, her bir taraf iletişim ortağının ISN numarasını almalı ve bununla ilgili bir ACK bildirimi göndermelidir. A ve B olmak üzere iki ağ düğümü arasındaki mesaj alışverişinin sırası aşağıda açıklanmıştır.

Bu mesajın adı üç aşamalı onay (üç- yol tokalaşma) (şekil 5).

Pirinç. 5. Üç aşamalı onay

1 AB SEN. benim ilk seri numarası ISN X, ACK numarası = 0, SYN biti ayarlandı, ancak ACK biti ayarlanmadı.

2.BBir ACK. Sıra numaranız X + 1, ISN'm Y ve SYN ve ACK bitleri ayarlandı.

3 AGERİ. Sıra numaranız Y + 1, sıra numaram X + 1, ACK biti ayarlandı ve SYN biti ayarlanmadı.

Üç yollu el sıkışma, sıra numaralarını senkronize etmek için gerekli olan asenkron bir bağlantı mekanizmasıdır, çünkü bu numaralar ağdaki bazı sanal global sayaçlardan bağımsızdır. Bu nedenle, bir TCP ağı, ISN'leri atamak için farklı mekanizmalar kullanır. Bunlardan biri üç aşamalı bir el sıkışmadır. Ancak bu mekanizma sadece bir ISN numarası almak için tasarlanmamıştır. Bunun yardımıyla uç cihazlar, veri iletim penceresinin boyutu hakkında bilgi alışverişinde bulunur, parametre MTU ve ağdaki veri iletiminin gecikmesi. İlk SYN'nin alıcısı, bir sonraki mesaj alınana kadar alınan bölümün bekleyen eski veya yeni bir mesaj olup olmadığını belirleme araçlarına sahip değildir; tek istisna, alıcının bağlantıda kullanılan son sıra numarasını kaydetmesidir (ki bu her zaman mümkün değildir). Bu nedenle alıcı, göndericiden böyle bir SYN mesajını doğrulamasını istemelidir.

Sürgülü pencere mekanizması

Güvenilir bağlantı yönelimli veri aktarımının en genel biçiminde, veri paketleri gönderildikleri sırayla alıcı uca teslim edilmelidir. Herhangi bir veri paketi kaybolursa, bozulursa, kopyalanırsa veya farklı bir sırada alınırsa protokol bir hata sinyali verir. Bu sorunun en basit çözümü, alıcının her bir veri segmentinin alındı ​​bilgisini kullanmaktır.

Bununla birlikte, gönderici, Şekil 2'de gösterildiği gibi her bir bölümü gönderdikten sonra bir onay beklemek zorunda kalırsa. 6, bu yöntemle iletim hızı önemli ölçüde azalır. Göndericinin veri paketini göndermeyi bitirdiği andan alınan herhangi bir alındının işlenmesinin tamamlanmasına kadar belirli bir zaman aralığı geçtiğinden, verilerin ek bir bölümünü iletmek için kullanılabilir. Onay almadan gönderene gönderilmesine izin verilen veri paketi sayısına denir. pencere(pencere).

V TCP protokolü sözde bekleyen onaylar kullanılır; daha sonra beklenen bir sekizli sayı içerirler. Kayan pencere mekanizması, pencere boyutlarının TCP oturumu sırasında dinamik olarak müzakere edilmesidir. Sürgülü pencere mekanizması belirli bir miktarda veri gönderdikten sonra alıcının göndericiden bir onay almasını gerektiren bir akış kontrol mekanizmasıdır.

Pirinç. 6. Pencerenin boyutu birdir

TCP, iki cihaz arasındaki veri akışını kontrol etmek için akış kontrol mekanizması(akış kontrol mekanizması). Alıcı, verilerin alındığını gönderene bildirir; böyle bir bildirim almak, pencerenin boyutunu ayarlamanıza olanak tanır. Pencere, TCP cihazının belirli bir zamanda alabileceği geçerli alındı ​​numarasından sayılan sekizli sayısını tanımlar.

Örneğin, pencere boyutu 3 olduğunda, gönderici alıcıya üç sekizli gönderebilir. Bundan sonra, alıcıdan onay beklemesi gerekir. Alıcı üç oktet aldıysa, oktetleri gönderene bir onay göndermesi ZORUNLUDUR. Gönderici daha sonra sonraki üç sekizliyi iletebilir. Alıcı, örneğin bir arabellek taşması nedeniyle üç sekizli almadıysa, bir alındı ​​bildirimi göndermeyecektir. Gönderici bir onay almazsa, bu, son sekizlilerin yeniden iletilmesi ve iletim hızının düşürülmesi gerektiği anlamına gelir.

TCP penceresi boyutu, iki ağ cihazı arasında bir veri akışı iletilirken değişebilir. Alıcıdan gönderilen her onay, alıcının alabileceği bayt sayısı hakkında bilgi içerir. TCP protokolü, sözde tıkanıklık kontrol penceresinin kullanımını sağlar. normal durum alıcı cihazın penceresine eşittir, ancak herhangi bir veri segmenti kaybolursa (örneğin, ağ tıkanıklığı nedeniyle) boyutu yarıya iner. Bu mekanizma, aygıt arabelleğini yönetme ve veri akışını işleme sürecinde gerektiği gibi pencerenin boyutunu küçültmenize veya artırmanıza olanak tanır. Daha büyük pencere boyutu, eşzamanlı aktarıma izin verir büyük miktar sekizli.

Gönderici üç sekizli gönderdiğinde, dört sekizli için bir ACK sinyali beklemeye geçer. Alıcı iki sekizli veri bloğunu işleyebiliyorsa, üçüncü sekizliyi atar ve onu bir sonraki beklenen veri bloğu olarak belirler. Bu durumda, ikiye eşit olan yeni pencere boyutu belirtilir. Gönderici sonraki iki sekizliyi iletir, ancak pencere boyutu hala üçtür (aygıtın hala aynı anda üç sekizli işleyebildiğini varsayalım). Alıcı, 5 numaralı sekizli ve setleri talep eder. yeni boyut pencereler ikiye eşittir.

Onayla

Güvenilir bir dağıtım mekanizması, bir istasyon tarafından gönderilen bir veri akışının, tekrarlama veya veri kaybı olmadan başka bir veri bağlantısı üzerinden teslim edilmesini sağlar. Veri akışlarının güvenilir bir şekilde teslim edilmesini sağlamak için bir teknik, yeniden iletimle birlikte olumlu onaydır. Olumlu bir alındı, alıcının verileri aldıktan sonra bir onay mesajı göndererek göndericiyle iletişim kurmasını gerektirir. Gönderici, gönderdiği her paketi kaydeder ve bir sonraki veri paketini göndermeden önce onay bekler. Segmenti gönderme anında, gönderici ayrıca zamanlayıcıyı başlatır ve eğer varsa veri bloğunu yeniden iletir. zamanlayıcı tarafından ayarla onay alınmadan önce süre sona erer.

İncirde. Şekil 7, paket 1, 2 ve 3'ü ileten bir göndericiyi göstermektedir. Alıcı, paket 4'ü talep ederek paketlerin alındığını onaylar. Gönderici, bir onay aldıktan sonra 4, 5 ve 6 numaralı paketleri gönderir. alıcı, yeniden deneme talebinde bulunarak karşılık gelen bir onay gönderir 5. paketi gönderir.

TCP, ardından onay gelen segment dizisini zorlar. Her datagrama aktarımdan önce bir numara atanır (Şekil 8). Alıcı tüm datagramları aldıktan sonra, bunlar eksiksiz bir mesaj halinde birleştirilir. TCP, İnternet üzerinden iletilen hasarlı, kayıp, çoğaltılmış veya bozuk verilerin kurtarılmasından sorumludur. Kurtarma mekanizması, alındıktan sonra alıcının bir alındı ​​(ACK) göndermesi gereken iletilen her sekizliye bir sıra numarası atayarak çalışır. Zaman aşımı süresi içinde herhangi bir onay alınmazsa, veriler gönderici tarafından tekrar iletilir. Oktetler alıcıya teslim edildikten sonra, sıra numaraları mesajı parçalardan yeniden birleştirmek ve kopyaları ortadan kaldırmak için kullanılır. Hasarlı veriler, iletilen her segmente eklenen bir sağlama toplamı kullanılarak kurtarılır. Sağlama toplamı alıcı tarafından doğrulanır ve eşleşmezse bozuk veriler atılır.

Pirinç. 7. Pencerenin boyutu üç

Pirinç. 8. Sıralı numaralar ve onaylar

ProtokolTCP

TCP(İletim Kontrol Protokolü - iletim kontrol protokolü), güvenilir, tam çift yönlü veri iletimi sağlayan bağlantı yönelimli bir aktarım katmanı protokolüdür. TCP, TCP / IP protokol yığınının bir parçasıdır. Bağlantı yönelimli bir ortamda, veri aktarımını başlatmak için iki bilgisayar arasında bir bağlantı kurulmalıdır. TCP, mesajları paketlere ayırmaktan, alıcı tarafından yeniden bir araya getirmekten ve alınmamışsa herhangi bir veri parçasını yeniden iletmekten sorumludur. Protokol ayrıca oluşturma yeteneğine sahiptir sanal devreler son kullanıcı uygulamaları arasında

TCP mekanizmalarını kullanan üst katman hizmetleri ve protokolleri:

    FTP (Dosya Aktarım Protokolü);

    HTTP ( Köprü Metni Aktarımı Protokol - köprü metni aktarım protokolü);

    SMTP (Basit Posta Aktarım Protokolü);

Slaytta gösterilen TCP segment alanları aşağıda açıklanmıştır.

Gönderen bağlantı noktası - port numarası aranıyor.

Alıcı bağlantı noktası - port numarası denir.

Seri numarası - gelen verileri doğru sıraya yerleştirmek için kullanılan sayı.

Onay numarası bir sonraki beklenen TCP sekizlisinin sayısıdır.

HLEN - başlıktaki 32!-bit sözcük sayısı.

ayrılmış alan- tüm bitler 0'a ayarlanmıştır.

Kod bitleri- hizmet işlevleri (örneğin, oturum kurulumu ve sonlandırma).

pencere- gönderenin kabul etmek istediği sekizli sayısı.

Toplamı kontrol et- tahmini toplamı kontrol et başlık ve veri alanları.

Acil veri işaretçisi- acil verilerin sonunu gösterir.

Seçenekler- şu anda bir parametre tanımlanmıştır: en büyük boy TCP segmenti.

Veri- daha yüksek katman protokolü verileri.

ProtokolUDP

UDP (kullanıcı veri birimi Protokol- kullanıcı datagramlarını aktarmak için protokol), segment formatı slaytta gösterilen, TCP/IP protokol yığınında bağlantısız bir taşıma protokolüdür. UDP, onay ve teslimat garantisi olmaksızın datagramları değiş tokuş eden basit bir protokoldür. UDP ve TCP protokollerinin segment formatlarını karşılaştırırken protokolün basitliği ortaya çıkıyor. UDP kullanılırken, hata işleme ve verilerin yeniden iletimi, daha yüksek katman protokolü tarafından gerçekleştirilmelidir. Örneğin, TFTP aracılığıyla veri aktarılırken aktarım kesintiye uğrarsa, yalnızca insan operatör bilgileri yeniden indirebilir.

Aşağıdaki liste, slaytta gösterilen UDP segmentinin alanlarını listeler.

    Gönderen bağlantı noktası - port numarası aranıyor.

    Alıcı bağlantı noktası - port numarası denir.

    Uzunluk- başlık ve veriler dahil olmak üzere bayt sayısı.

    Toplamı kontrol et- başlık ve veri alanlarının hesaplanan sağlama toplamı.

    Veri- daha yüksek katman protokolü verileri.

UDP protokolü kayar pencere mekanizması kullanmaz, bu nedenle veri iletiminin güvenilirliği sağlanmalıdır. uygulama katmanı protokolleri(uygulama katmanı protokolü). UDP, sıralı segmentleri bir araya getirmesi gerekmeyen uygulamalar için tasarlanmıştır.

UDP, aşağıdaki hizmetler ve üst düzey protokoller tarafından kullanılır:

    TFTP (Sıradan Dosya Aktarım Protokolü - en basit protokol dosya transferi);

    SNMP (Basit Ağ Yönetim Protokolü);

    DHCP (Dinamik Ana Bilgisayar Yapılandırma Protokolü);

    DNS (Alan Adı Sistemi).

Protokol bağlantı noktası numaralarıTCPveUDP

Bilgileri aktarmak için üst seviyeler hem TCP protokolü hem de UDP protokolü port numarasını (port) veya sözde soketi (soket) kullanın. Bağlantı noktası numaraları, ağ üzerinde aynı anda devam eden çeşitli iletişimleri takip etmek için kullanılır.

Uygulama geliştiricileri, Internet Assigned Numbers Authority (IANA) tarafından yönetilen ayrılmış bağlantı noktası numaralarını kullanmayı kabul etti. Örneğin, herhangi bir FTP iletişimi, 20 (veri için) ve 21 (kontrol için) standart bağlantı noktalarını kullanmalıdır. Bilinen bir bağlantı noktası numarasına sahip uygulamalarla ilişkili olmayan ağ etkileşimleri için, bağlantı noktası numaraları rastgele atanır, ancak belirli bir değer aralığından seçilir - 1023'ün üzerinde. Bazı bağlantı noktaları TCP ve UDP protokollerinde ayrılmıştır. Bazı bağlantı noktaları TCP ve UDP protokollerinde ayrılmış olsa da, uygulamalar bu numaralara sabit kodlanmış olmayabilir.

Uygun uygulamayı seçmek için slaytta gösterildiği gibi son sistem port numarasını kullanır. Gönderici bağlantı noktası numarası genellikle 1023'ten büyük herhangi bir sayıdır ve gönderen ana bilgisayar tarafından dinamik olarak atanır. Örneğin, bir ana bilgisayar, 21 numaralı alıcı TCP bağlantı noktası (FTP) ile paketler göndererek FTP kullanarak başka bir ana bilgisayara bağlanmaya çalışır ve dinamik olarak gönderici bağlantı noktası numarası 1028'i oluşturur. Bu bağlantı noktası çifti (gönderen ve alıcı) etkileşimin benzersizliğini belirler. iki ana bilgisayar arasında. ... Aynı ana bilgisayar üçüncü bir ana bilgisayarla bir FTP bağlantısı başlatırsa, alıcı bağlantı noktası 21'de kalır, ancak iki iletişim oturumunu ayırmak için gönderen bağlantı noktası öncekinden farklı (örneğin 1030) seçilir.

Güvenilir iletimi organize etmek için kullanılan en doğal hilelerden biri, 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. TCP kullanır özel durum el sıkışma - sürgülü pencere algoritması. TCP protokolünde bu algoritmanın uygulanmasının ayrıntılarının ayrıntılı bir değerlendirmesine geçmeden önce, genel terimlerle tartışmak çok yararlıdır.

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

Yöntem kaynak boştaçerçeveyi gönderen kaynağın (bu durumda, iletilen veri birimi için hangi adın kullanıldığı önemli değildir), orijinal çerçevenin alındığını ve içindeki verilerin alındığını bildiren bir makbuz için alıcıdan beklemesini gerektirir. düzeltin ve ancak bundan sonra sonraki kareyi gönderin (veya tekrarlanan çarpık). Makbuz zaman aşımı içinde ulaşmadıysa, çerçeve (veya makbuz) kayıp olarak kabul edilir ve iletimi tekrarlanır. İncirde. 17.10, ikinci çerçevenin ancak ilk çerçevenin teslimini onaylayan bir makbuz geldikten sonra gönderildiğini gösterir.

Pirinç. 17.10. Kaynak boşta yöntemi

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

kullanıldığında oldukça açıktır. Bu method iletişim performansı potansiyel olarak olası olandan daha düşüktür - verici öncekini gönderdikten hemen sonra bir sonraki çerçeveyi gönderebilir, ancak makbuzun alınmasını 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. pencerenin 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 olan çerçeve sayıları aralığını tanımlar. Kaynak çerçeveleri iletmeye başlar ve bir süre sonra yanıt olarak makbuzlar alır. Basitlik için, makbuzların karşılık geldikleri çerçevelerle aynı sırayla (ancak aynı oranda değil) geldiğini varsayalım. Gönderici bir makbuz 1 aldığı anda, pencere bir konum yukarı kaydırılır ve göndermeye izin verilen yeni bir çerçeve aralığı (2'den 6'ya) tanımlanır.

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'ye göre), pencere bir yukarı kaydırılarak 3'ten 7'ye iletim için izin verilen çerçeve aralığı tanımlanır. her makbuzu aldıktan sonra: pencere 1 artar, ancak boyutu değişmez ve 5'e eşit kalır. Makbuz 8'in alınmasından sonra, pencere 9 ila 13 arasındadır ve uzun bir süre öyle kalır, çünkü nedense kaynak teslimat çerçevelerinin onayını almayı durdurur. Son izin verilen çerçeve 13'ü gönderdikten sonra, verici, alındı ​​9'un alınmasından sonra devam etmek için iletimi tekrar durdurur.

Bir çerçeve gönderirken, kaynakta bir zaman aşımı ayarlanır. eğer için ayarlanan zaman gönderilen çerçeve için bir makbuz gelmez, daha sonra çerçeve (veya bunun için bir makbuz) kayıp sayılır ve çerçeve tekrar iletilir. Makbuz akışı düzenli olarak 5 çerçeve toleransı içinde gelirse, döviz kuru verilen kanal ve kabul edilen protokol için mümkün olan maksimum değere ulaşır.

V Genel dava Kayan pencere yönteminin uygulanması, kaynak boşta yöntemine göre daha zordur, çünkü vericinin henüz hiçbir makbuz alınmamış tüm çerçevelerin arabellek kopyalarında saklaması gerekir. Ek olarak, bu yöntemi kullanırken, pencere boyutu, makbuzun alındığı çerçeve sayısı ve hala iletilebilen çerçeve sayısı gibi algoritmanın çeşitli parametrelerini takip etmek gerekir. yeni bir makbuz almadan önce.

Diğer güvenilirlik yöntemlerinin başarısız olduğu ve paketlerin kaybolduğu durumlarda paket yeniden iletim yöntemleri kullanılır. Bu yöntemler, bağlantı yönelimli protokollerin kullanılmasını gerektirir.

Verilerin yeniden iletilmesinin gerekli olduğundan emin olmak için, gönderici gönderilen çerçeveleri numaralandırır ve her çerçeve için alıcıdan, orijinal çerçevenin alındığını ve verinin alındığını bildiren bir hizmet çerçevesi olan Pozitif Onay (ACK) olarak adlandırılır. içinde doğrudur. Böyle bir numaralandırmayı organize etmek için mantıksal bir bağlantı prosedürü gereklidir - numaralandırmanın başladığı bir başlangıç ​​​​noktası verir. Bir makbuz için bekleme süresi sınırlıdır - her kareyi gönderirken, verici bir zamanlayıcı başlatır ve belirli bir süre geçtikten sonra olumlu bir makbuz alınmazsa, karenin kaybolduğu kabul edilir. Alıcı, bozuk veri içeren bir çerçeve alması durumunda, olumsuz bir alındı ​​(Olumsuz Alındı ​​Bildirimi, NACK) gönderebilir - bu çerçevenin yeniden iletilmesi gerektiğinin açık bir göstergesi.

Makbuz alışverişini düzenlemek için iki yöntem vardır: boşta kaynak yöntemi ve kayan pencere yöntemi.

Kaynak boşta kalma yöntemi, çerçeveyi gönderen kaynağın alıcıdan bir alındı ​​(olumlu veya olumsuz) beklemesini ve ancak bundan sonra bir sonraki çerçeveyi göndermesini (veya bozuk olanı tekrarlamasını) gerektirir. Makbuz zaman aşımı içinde gelmezse, çerçeve (veya makbuz) kayıp olarak kabul edilir ve iletimi tekrarlanır. İncirde. 6.6, ancak bu durumda, vericinin bir sonraki çerçeveyi öncekini gönderdikten hemen sonra gönderebilmesine rağmen, veri alışverişi performansının potansiyel olarak olası olandan daha düşük olduğu görülebilir.

ayrıca, olumlu bir makbuzun gelmesini beklemek zorundadır. (Bundan böyle, konunun özünü bozmadığı takdirde, olumlu makbuzlar kısaca "makbuzlar" olarak anılacaktır.)


Bu düzeltme yönteminin dezavantajları, özellikle düşük hızlı iletişim kanallarında, yani bölgesel ağlarda fark edilir.

İkinci yönteme sürgülü pencere yöntemi denir. Bu yöntemde, veri aktarım hızını artırmak için, kaynağın bu paketler için makbuz almadan sürekli modda, yani kaynak için mümkün olan maksimum hızda belirli sayıda çerçeve iletmesine izin verilir. Bu şekilde iletilmesine izin verilen paket sayısına pencere boyutu denir. Şekil 6.6, b, W paketlerinin bir penceresi için bu yöntemin uygulamasını göstermektedir.

İlk anda, henüz paket gönderilmediğinde, pencere 1'den W'ye kadar sayılarla paket aralığını tanımlar. Kaynak, yanıt olarak paketleri göndermeye ve makbuz almaya başlar. Basitlik için, makbuzların aldıkları paketlerle aynı sırada geldiğini varsayalım.

karşılık. t t zamanında, ilk Kj makbuzunun alınması üzerine, pencere bir konum kaydırılır ve 2'den (W + 1)'ye yeni bir aralık tanımlanır.

Paket gönderme ve makbuz alma süreçleri birbirinden oldukça bağımsızdır. Kaynak numaralandırılmış bir paket için bir makbuz aldığında, rastgele bir t n anını düşünün.Pencere sağa kaydırılır ve (n + 1)'den (W + n'ye) iletim için izin verilen paket aralığını belirler. Kaynaktan ayrılan tüm paketler aşağıda listelenen gruplara ayrılabilir (bkz. Şekil 6.6, b).

1'den η'a kadar sayılara sahip paketler zaten gönderildi ve onlar için makbuzlar alındı, yani soldaki pencerenin dışındalar.

(η + 1) sayısı ile başlayan ve (W + n) sayısı ile biten paketler pencere içindedir ve bu nedenle herhangi bir makbuz beklenmeden gönderilebilir. Bu aralık ayrıca iki alt aralığa bölünebilir:

(η + 1)'den m'ye kadar sayılara sahip paketler zaten gönderildi, ancak makbuzları henüz alınmadı;

Bu konuda bir yasak olmamasına rağmen, m'den (W + n)'ye kadar olan paketler henüz gönderilmedi.

(W + η + 1)'den büyük veya eşit sayılara sahip tüm paketler sağdaki pencerenin dışındadır ve bu nedenle henüz gönderilemez.

Pencereyi paket numaraları dizisi boyunca hareket ettirmek Şekil 2'de gösterilmektedir. 6.6, c. Burada t〇 - başlangıç ​​noktası, tļ ve t n sırasıyla birinci ve η. paket için alındıların alındığı anlardır. Her makbuz geldiğinde pencere sola kaydırılır, ancak boyutu değişmez ve W'ye eşit kalır.

Bir paket gönderildiğinde, kaynakta bir zaman aşımı ayarlanır. Bu süre zarfında gönderilen paketin makbuzu gelmezse, paket (veya bunun için bir makbuz) kayıp olarak kabul edilir ve paket tekrar iletilir.

Makbuz akışı düzenli olarak W paketlerinin toleransı dahilinde gelirse, döviz kuru verilen kanal ve kabul edilen protokol için mümkün olan maksimum değere ulaşır.

Bazı kayan pencere uygulamalarında, alıcının alınan her geçerli paket için makbuz göndermesi gerekli değildir. Alınan paketler arasında "boşluk" yoksa, alıcının yalnızca son alınan paket için bir makbuz göndermesi gerekir ve bu makbuz göndericiye her şeyin olduğunu gösterecektir. önceki paketler ayrıca güvenli bir şekilde geldi.

Diğer yöntemler negatif makbuzları kullanır. İki tür negatif makbuz vardır - grup makbuzları ve seçici makbuzlar. Grup makbuzu, verici tarafından ağa gönderilen tüm paketlerin iletiminin tekrarlanmasının gerekli olduğu paket numarasını içerir. Seçici bir negatif alındı, yalnızca bir paketin yeniden iletimini gerektirir.

Kayar pencere yönteminin, verici ve alıcı arasındaki veri iletiminin verimliliğini önemli ölçüde etkileyebilecek iki parametresi vardır - pencerenin boyutu ve makbuz için bekleyen zaman aşımı miktarı. Zaman aşımı seçimi ağın güvenilirliğine değil, paketlerin ağ tarafından iletilmesindeki gecikmelere bağlıdır.

Paketlerin bozulduğu ve nadiren kaybolduğu güvenilir ağlarda, veri değişim hızını artırmak için, verici paketleri daha az duraklama ile göndereceğinden pencere boyutunun büyütülmesi gerekir. Güvenilir olmayan ağlarda, sık paket kayıpları ve bozulmaları ile, ağ üzerinden ikincil olarak iletilen paketlerin hacmi keskin bir şekilde arttığından, pencere boyutu azaltılmalıdır, bu da şu anlama gelir: verim ağın çoğu boşa harcanır ve kullanılabilir ağ bant genişliği düşer.

Pencere boyutu, kayan pencere algoritmasının sabit bir parametresi olabilir. Bu durumda bağlantı kurulduğunda seçilir ve oturum sırasında değişmez. Ayrıca orada uyarlanabilir sürümler ağın ve hedef düğümün mevcut durumuna göre oturum sırasında pencere boyutu değiştiğinde algoritma.

Bu tür algoritmalarda ağın güvenilirliği, pozitif bir alındı ​​için bir zaman aşımı süresinin dolması veya belirli bir paket için bir mükerrer alındının gelmesi gibi paket kaybı işaretleri ile belirlenir. Kopya, hedef düğümün bir sonraki paketi beklerken zaman aşımına uğradığını ve düğümün bu paketi ikinci kez göndermesini istediğini gösterir. Bu tür olaylar meydana geldiğinde, gönderen düğüm pencere boyutunu küçülterek bulmaya çalışır. optimal mod veri aktarımı.

Pencere ayrıca hedef düğüm tarafından yeniden boyutlandırılabilir. Pencere boyutundaki azalmanın nedeni, gelen paketleri işlemek için zamanı olmayan hedef düğümün aşırı yüklenmesidir. Bu konuya daha sonra “bölümünde döneceğiz. Geri bildirim”Bölüm 7'de tıkanıklıkla başa çıkma yöntemlerini keşfediyoruz.

Pencere boyutu olarak paket sayısından ziyade bayt sayısının kullanıldığı kayan pencere yönteminin uygulamaları da vardır. Çoğu ünlü örnek bu yaklaşım TCP protokolüdür.

Genel durumda, kayan pencere yönteminin uygulanması, kaynak boşta yönteminden daha zordur, çünkü verici, henüz olumlu alındılar alınmamış tüm paketleri arabellekte depolamak zorundadır. Ek olarak, bu yöntemi kullanırken, algoritmanın birkaç parametresini izlemek gerekir: W penceresinin boyutu, makbuzun alındığı paket sayısı, alınmadan önce hala iletilebilecek paket sayısı. yeni bir makbuz.

Yeniden İletim ve Kayar Pencere ile ilgili daha fazla bilgi:

  1. § 29 Yükümlülükler kapsamında hakların devri ve devri. - Devir hakkının Roma yapımı. - En son mevzuat ile iletimi kolaylaştırmak. - Transfer yazıtı. - Transfer kısıtlamaları. - Aktarma eylemi. - Vericinin sorumluluğu ve alıcının hakları. - Alacaklı veya rücu hakkına girme. - Rus iletim yasası. - Kredi mektuplarının transferi. - Alacaklılara alacakların devri.