Aptal Pencere Sendromu Nedir - Açıklama ve Önleme

Veriler(Data) ağ ve İnternet(Internet) üzerinden TCP/IP Protocol kullanılarak aktarılır . TCP/IP mükemmel değildir, ancak ISO OSI modeli gibi veri iletişimi için teorize edilen diğer protokollere kıyasla uygulanması daha kolaydır(ISO OSI) . Herhangi bir teknik konuda olduğu gibi, TCP/IP de bazı kusurları vardır ve Silly Window Sendromu(Silly Window Syndrome) bu kusurlardan birinin eseridir. Silly Window Sendromu(Silly Window Syndrome) veya SWS'nin(SWS) ne olduğunu anlamak için öncelikle TCP/IP veri iletişiminin altında yatan mekanizmayı anlamanız gerekir .

Aptal Pencere Sendromu

aptal pencere sendromu

Pencereyi ve boyutunu anlama

TCP/IP altında iletişim kurduğunda , bir onay mekanizması içerir. Bu onaylama mekanizması, daha fazla açıklandığı gibi Silly Window Sendromuna neden olan şeydir. (Silly Window Syndrome)Puanlar iki bilgisayara, istemci ve sunucuya vb. atıfta bulunabilir.

SWS is caused by the receiver advancing the right window edge whenever it has any new buffer space available to receive data and by the sender using any incremental window, no matter how small, to send more data. The result can be a stable pattern of sending tiny data segments, even though both sender and receiver have a large total buffer space for the connection, says MSDN.

Bir bilgisayar, örneğin A, başka bir B bilgisayarına bir veri paketi gönderdiğinde, ikincisi veri paketini aldığını kabul etmeli ve yanıt vermelidir. Onayın yanı sıra, o iletişim dizisi için ayrılmış arabellek boyutunu da göndermesi gerekir. Bu genellikle iletişim için serbest bırakılan bayt sayısıdır.

Dolayısıyla B, bir sonraki mesaj için 100B'nin uygun olduğunu söylediğinde, 100B, Silly Window Syndrome'daki(Silly Window Syndrome) penceredir . Yani, arabellek boyutudur. TCP/IP mekanizması , kendi kusuruyla, A'dan gelen her iletişim/veri için arabellek boyutunu azaltabilir. Yani, A mesaj gönderdiğinde B, arabellek boyutunun küçüldüğünü varsayar ve daha küçük bir sayı gönderir. Böylece pencere boyutu küçülmeye devam eder ve bir noktada B pencere boyutu olarak 0B gönderirken iletişim durur.

Aptal Pencere Sendromu Nasıl Çalışır?

Yukarıdaki A ve B örneğine göre, B pencere boyutu olarak 1000B gönderirse, A onu iki 500B'ye bölecek ve iki 500B paketi gönderecektir. İlk paketin alınması üzerine B, ikinci paket henüz alınmadığı için pencere için 500B'nin mevcut olduğunu belirten bir onay gönderecektir. A, 500B'nin pencere boyutu olduğunu varsayar ve sonuç olarak iki 250B paketi gönderir. B'de 500B kullanılırken ve 500 henüz alındığında, mevcut olduğu gibi 0B gönderecektir. Bu noktada A, kullanılabilir pencere olmadığını varsayar, ancak işlemci oradaki verileri kullandığından arabellek boş olabilir. A, herhangi bir pencere olup olmadığını görmek için daha küçük bir paket gönderecektir. B'deki arabelleğin içeriği henüz kaldırılmamışsa, yanıt/onay olarak yine de 0 alacaktır.

Böylece, B, A'dan her paket aldığında onay gönderdiği için pencere boyutu küçülmeye devam eder. B, parça parça veri paketleri aldığından, bu boyut genellikle önceki bildirimden daha küçüktür. A, bir seferde B'deki arabellek boyutunu kaplayacak kadar büyük bir paket gönderebilseydi sorun olmazdı. Ancak bunun için ek mekanizmalar ve dolayısıyla Silly Window Sendromu(Silly Window Syndrome) gerektirecektir . A, iki veya üç kez 0 aldıktan sonra iletişim durur.

Aptal Pencere Sendromu(Silly Window Syndrome) ( SWS ) nasıl önlenir

SWS'den(SWS) kurtulmak için uygulanacak basit bir algoritma var . İlk paketi aldıktan sonra B, gerçekten kullanılabilir alanın yarısını pencere olarak gönderir. Bu, A'nın daha küçük paketler göndermesini sağlayacaktır. Sonuç olarak, paketler çok küçüldüğünde, B toplam arabellek boyutunu gönderir, böylece A daha büyük veri baytları göndermeye başlayabilir.

Başka bir deyişle, 1000B varsa, B, onay olarak 500B'yi gönderir. Buna göre A, 250B x ​​2 paket gönderir. Bunun için A, alındı ​​olarak 100B alır. 50B paketini aldığında B, A'ya 1000B – 50B gönderir. Bu, tüm konuşmayı tekrar çalışır hale getirir. Bu, işlemde biraz gecikmeye neden olabilir, ancak Silly Window Sendromunun(Silly Window Syndrome) oluşmasını ve tüm konuşmayı durdurmasını önleyecektir .

Özetlemek gerekirse, SWS , alıcının kullanabileceği arabellek boyutuna ve gönderici tarafından hesaplanan varsayılan boyuta dayanır. SWS'yi(SWS) önlemek için , bir gecikme eklenir ve paket boyutu çok küçük olana kadar kasıtlı olarak daha küçük bir pencere boyutu karşılık gelir. Daha sonra alıcı gerçekten kullanılabilir pencere boyutunu açıklar. Tüm süreç, iletişim tamamlanana kadar tekrar etmeye devam eder.

Her ne kadar pencere ve arabellek kelimelerini birbirinin yerine kullanmış olsam da. Aralarında herhangi bir fark kastetmiyorum. SWS çalışmalarında arabellek penceredir.



About the author

10 yılı aşkın deneyime sahip bir iOS geliştiricisiyim. iPhone ve iPad için uygulama geliştirme konusunda uzmanım. Kullanıcı akışları oluşturma, Özel Geliştirme Kitleri (CDK'ler) oluşturma ve çeşitli uygulama geliştirme çerçeveleriyle çalışma deneyimim var. Önceki çalışmamda, bir ürün yönetim aracı ve bir uygulama gönderme aracı içeren Apple'ın App Store'unu yönetmeye yardımcı olacak araçlar da geliştirdim.



Related posts