Bufferbloat Nedir?
Bufferbloat, paketlerin aşırı arabelleğe alınmasından kaynaklanan paket anahtarlamalı ağlarda yüksek gecikme ve titreşimin bir nedenidir. Bufferbloat ayrıca paket gecikme varyasyonuna neden olabilir ve genel ağ verimini azaltabilir. Bir yönlendirici veya anahtar aşırı büyük arabellek kullanacak şekilde yapılandırıldığında, çok yüksek hızlı ağlar bile IP üzerinden ses (VoIP), ses akışı, çevrimiçi oyun ve hatta sıradan web’de gezinme gibi birçok etkileşimli uygulama için pratik olarak kullanılamaz hale gelebilir.
Ağ ekipmanı üreticileri için yerleşik bir temel kural, bir aygıttan geçen trafik akışı için en az 250 ms arabelleğe almayı sağlayacak kadar büyük arabellekler sağlamaktı. Örneğin, bir yönlendiricinin Gigabit Ethernet arabirimi, ortalama 32 MB arabellek gerektirmektedir. Bu şekilde yapılacak olan boyutlandırılma, TCP tıkanıklık kontrol algoritmasının başarısız olmasına yol açabilir. Ardından, tıkanıklık kontrolü sıfırlanmadan ve TCP bağlantısı hızlanmak ve arabellekleri yeniden doldurmadan önce arabelleklerin boşalması biraz zaman alır. Bu nedenle, arabellek şişmesi, yüksek ve değişken gecikme gibi sorunlara ve arabellek bir TCP akışının paketleriyle dolduğunda ve diğer paketler daha sonra bırakıldığında diğer tüm akışlar için ağ tıkanıklıklarına neden olur.
Şişirilmiş bir arabellek, yalnızca bu arabellek gerçekten kullanıldığında bir etkiye sahiptir. Başka bir deyişle, büyük boyutlu arabellekler, yalnızca arabelleğe aldıkları bağlantı bir darboğaz haline geldiğinde zarar verici bir etkiye sahiptir. Bir darboğaza hizmet eden arabelleğin boyutu, çoğu işletim sistemi tarafından sağlanan ping yardımcı programı kullanılarak ölçülebilir. İlk olarak, diğer ana bilgisayara sürekli olarak ping atılmalıdır; daha sonra, birkaç saniyelik bir indirme başlatılmalı ve birkaç kez durdurulmalıdır. Tasarım gereği, TCP tıkanıklığı önleme algoritması, rotadaki darboğazı hızla dolduracaktır. İndirme (ve sırasıyla yükleme), ping tarafından bildirilen gidiş-dönüş süresindeki doğrudan ve önemli bir artışla ilişkiliyse, bu, indirme (ve sırasıyla yükleme) yönündeki mevcut darboğazın tamponunun şişirildiğini gösterir. Gidiş dönüş süresinin artışına, darboğazdaki arabellek neden olduğundan, maksimum artış, boyutunun milisaniye cinsinden kaba bir tahminini verir.
Önceki örnekte, basit ping (örneğin, MTR) yerine gelişmiş bir traceroute aracı kullanmak, yalnızca darboğazda şişirilmiş bir arabellek varlığını göstermekle kalmayacak, aynı zamanda ağdaki yerini de belirleyecektir. Traceroute bunu, rotayı (yolu) görüntüleyerek ve paketlerin ağ üzerindeki geçiş gecikmelerini ölçerek başarır. Rotanın geçmişi, yoldaki (yol) her bir ardışık ana bilgisayardan (uzak düğüm) alınan paketlerin gidiş-dönüş süreleri olarak kaydedilir.
Ağ ekipmanı üreticileri için yerleşik bir temel kural, bir aygıttan geçen trafik akışı için en az 250 ms arabelleğe almayı sağlayacak kadar büyük arabellekler sağlamaktı. Örneğin, bir yönlendiricinin Gigabit Ethernet arabirimi, nispeten büyük bir 32 MB arabellek gerektirir. Tamponların bu şekilde boyutlandırılması, TCP tıkanıklık kontrol algoritmasının başarısız olmasına yol açabilir. Ardından, tıkanıklık kontrolü sıfırlanmadan ve TCP bağlantısı hızlanmak ve arabellekleri yeniden doldurmadan önce arabelleklerin boşalması biraz zaman alır. Bu nedenle, arabellek şişmesi, yüksek ve değişken gecikme gibi sorunlara ve arabellek bir TCP akışının paketleriyle dolduğunda ve diğer paketler daha sonra bırakıldığında diğer tüm akışlar için ağ tıkanıklıklarına neden olur.
Şişirilmiş bir arabellek, yalnızca bu arabellek gerçekten kullanıldığında bir etkiye sahiptir. Başka bir deyişle, büyük boyutlu arabellekler, yalnızca arabelleğe aldıkları bağlantı bir darboğaz haline geldiğinde zarar verici bir etkiye sahiptir. Bir darboğaza hizmet eden arabelleğin boyutu, çoğu işletim sistemi tarafından sağlanan ping yardımcı programı kullanılarak ölçülebilir. İlk olarak, diğer ana bilgisayara sürekli olarak ping atılmalıdır; daha sonra, birkaç saniyelik bir indirme başlatılmalı ve birkaç kez durdurulmalıdır. Tasarım gereği, TCP tıkanıklığı önleme algoritması, rotadaki darboğazı hızla dolduracaktır. İndirme (ve sırasıyla yükleme), ping tarafından bildirilen gidiş-dönüş süresindeki doğrudan ve önemli bir artışla ilişkiliyse, bu, indirme (ve sırasıyla yükleme) yönündeki mevcut darboğazın tamponunun şişirildiğini gösterir. Gidiş dönüş süresinin artışına, darboğazdaki arabellek neden olduğundan, maksimum artış, boyutunun milisaniye cinsinden kaba bir tahminini verir.
Önceki örnekte, basit ping (örneğin, MTR) yerine gelişmiş bir traceroute aracı kullanmak, yalnızca darboğazda şişirilmiş bir arabellek varlığını göstermekle kalmayacak, aynı zamanda ağdaki yerini de belirleyecektir. Traceroute bunu, rotayı (yolu) görüntüleyerek ve paketlerin ağ üzerindeki geçiş gecikmelerini ölçerek başarır. Rotanın geçmişi, yoldaki (yol) her bir ardışık ana bilgisayardan (uzak düğüm) alınan paketlerin gidiş-dönüş süreleri olarak kaydedilir.
Bant genişliği gereksinimlerinden bağımsız olarak, sürekli olarak düşük gecikme süresi veya titreşimsiz iletim gerektiren herhangi bir hizmet türü, arabellek şişmesinden etkilenebilir. Örnekler arasında sesli aramalar, çevrimiçi oyunlar, görüntülü sohbet ve anlık mesajlaşma, radyo akışı, isteğe bağlı video ve uzaktan oturum açma gibi diğer etkileşimli uygulamalar sayılabilir.
Bufferbloat fenomeni mevcut olduğunda ve ağ yük altındayken, normal web sayfası yüklemelerinin tamamlanması bile birkaç saniye sürebilir veya zaman aşımları nedeniyle basit DNS sorguları başarısız olabilir. Aslında herhangi bir TCP bağlantısı zaman aşımına uğrayabilir ve bağlantıyı kesebilir ve UDP paketleri kaybolabilir. Bir TCP indirme akışının devamı, yükleme akışındaki ACK paketlerine bağlı olduğundan, yükleme işlemindeki bir arabellek şişmesi sorunu, istemci ACK paketleri internet sunucusuna zamanında ulaşmadığından, ilgili olmayan diğer indirme uygulamalarının başarısız olmasına neden olabilir.
Alıntıdır