İnternette bant genişliği ve hız
Yüksek bağlantı hızınıza karşın tıkladığınız bir sayfa neden geç açılır? İşte nedenleri...
Dünyayı saran kablolar okyanusların altından bile geçerek ülkeleri birbirine bağlıyor. Ülkelerin ana omurgasına bağlı kablolar, uydu bağlantıları, radyo sinyalleri, hatta lazer ışınları veri iletimini sağlıyor.
Biz Türkiye'de ağırlıklı olarak eskiden kalma telefon hatları üzerinden çalışan dial-up yani çevirmeli hatlarla internete bağlanmaya başladık. Daha sonra yine aynı kabloları kullanan ucuz bir teknoloji olan ve çok daha fazla bantgenişliği sunan ADSL ile tanıştık. ADSL'den sonra en büyük alternatif geniş bant internet türü de kablo televizyon altyapısının yaygınlığından yararlanan kablo internet oldu.
Tıpkı yüksek gerilim hattından elektriğin kofralara, oradan da kablolarla eve iletilmesi gibi, veriler de bağlantı kapasitesinin yüksek olduğu veri merkezlerinden diğerlerine ve evlerimize aktarılıyor. Kaptan daha küçük kaba aktarılan su gibi bantgenişliği de bize ulaştıkça daralıyor. Evlerimizden toplanıp altyapının belirli noktalarında bir derya gibi çoğalıyor ve tekrar dağılıyor.
Gezegeni saran kablolar
Aktarılan yüksek miktarda veri ve bu işlemin gezegeni saran bir ağ üzerinden olması, bir kesintisizlik ve akıcılık ilüzyonu yaratıyor. Aslında interneti yanlış hayal ediyoruz denebilir. Çünkü işler gerçekte bu kadar akıcı bir şekilde yürümüyor. Zaten işlerin bu kadar kusursuz yürümediğini de hemen hemen her gün yaşadığımız bağlantı problemlerinden, takılma ve yavaşlamalardan hissediyoruz. Peki çözüm ne? Daha fazla bantgenişliği mi?
Çözüm ne yazık ki zannedildiği gibi 1 Mbit bağlantıdan 2'ye, 4'e veya 8'e çıkmak değil. İnternet hızı artsa da kalite sorunları devam ediyor. Özellikle de ADSL'de aktarımın asimetrik yürümesi bunun başlıca sebeplerinden..
İnternet aslında tam bir karmaşa ortamı, ama bir yandan da belirli bir düzeni var, veriler belirli kurallara uygun aktarılıyor. Ancak bu kuralların detaylarına inildiğinde siz de göreceksiniz ki iş zannedildiği kadar basit değil. İnternette veriler bilgisayarlar arasında atılıp, tutuluyor. Ancak her zamana tutulamıyor ve bazı veriler sekip düşüyor, yerine ulaşmıyor. Bunun sonucunda daha fazla paket atılıyor, herkes birbirine paket yağdırıp duruyor ve bu paketlerin bir kısmı yerine ulaşırken bazıları kayboluyor.
Bağlantı hızı ne olursa olsun yavaşlama olabilir
İnternet bağlantı kalitesinde de internet bağlantılarında kullanılan teknolojilerin verileri yerine başarılı ve düzenli bir şekilde ulaştırabilme kabiliyeti etki ediyor. Yani önceden de belirttiğimiz gibi daha hızlı bir bağlantı tanımı aslında daha geniş bantgenişliği için kullanılıyor. Bu kullanım da yanlış, daha çok bantgenişliği gerçek anlamda bağlantının daha hızlı olduğu anlamına gelmiyor.
Unutulan iki önemli unsur var, gecikme (Latency) ve asimetri. Çünkü evimize ulaşan internetin, en son bağlantı noktasından bize ulaşana kadar kat ettiği mesafe bu ikisinden ağır bir şekilde etkileniyor ve bağlantı hızı ne olursa olsun, kalite yerlerde sürünebiliyor.
Günümüzde standart bir ev kullanıcısının indirdiği veri miktarının artmış olması da bu kaliteyi oldukça zorlayan etkenler arasında yer alıyor. Sosyal ağlar, video paylaşımı, müzik ve multimedya büyük miktarlarda veri aktarımı demek. Yani bantgenişliğinin önemini de unutmuyor, bir kenara kaldırmıyoruz. Daha yüksek bağlantı hızı gerekiyor ama gereken diğer unsurlar: saniyedeki paket sayısı, paket gecikmesi, dosya yollama ve indirme oranı oluyor.
İnternet bitle değil paketle çalışır
İnternet bağlantısını bitlerle değil paketlerle ölçmek gerekiyor. İnternette veri aktarımı paketlerle gerçekleşiyor ve bir paket 1,460 bit veri depolayabiliyor. 1 bit veri de atsanız 1,460 bit veri de atsanız yine yollanan bir paket oluyor. Bir paketin aktarım hızı da internetin gerçek hızı oluyor. 1,461 bit veri aktarmak için ikinci bir paket yollanması gerekiyor ki, bu da veri aktarım süresini ikiye katlıyor.
Hyper Text Transfer Protocol kullanımında bu paket sınırını farkına varmadan aşmak çok kolay. Uygulama üçüncü parti bir web analiz kütüphanesi kullanıyorsa, bu kütüphane alan adına bağlı çerez içerisinde kullanıcıyla ilgili tonla bilgi saklar. Bu çereze yeni bir bilgi eklendiği zaman bu geri yansıyarak her seferinde sunucuya da gelir. http başlıkları her bütün modern internet tarayıcılarda kullanılır ve birkaç yüz bit boyutundadır. URL, gönderen başlığı ve arama parametreleri de eklendikçe, yani kullanıcının sörfünün tarihçesi aktarıldıkça bu paket büyür. Trafik analizi için kullanılan ve basit görünen araçlar biriken bir yük oluşturur. Üstüne üstlük internet tarayıcılar çeşitli istek mesajlarını boyuta bakmadan en az iki pakete bölerler.
Daha fazla bağlantı daha fazla paket
Bir paket eksik ya da bir paket fazla ne önemi var diye düşünebilirsiniz ancak her paket önemli. Önbellekleme ve CDN'ler alıcı tarafından yollanan verilerde sunucunun bir işine yaramaz. TCP Slow-Start, siteye bağlı kullanıcının yollanan ilk paketin alındı mesajını beklemesi ve aldıktan sonra ikinciyi yollaması demek oluyor. Bu fazladan veri paketi yüzünden internette sörf yapan kullanıcılar daha kötü tepki süresiyle karşılaşıyor
Böylece paket gecikmesine geliyoruz. İki nokta arasındaki yolculuğun süresi bu gecikmeyi belirliyor. İki yer arasındaki gerçek mesafenin ışık hızının üçte ikisine bölünmesiyle ve buna paketin aradaki veri aktarım istasyonlarında kaybettiği süreyi eklemek suretiyle gecikme hesaplanabilir. İki şehir arasında ortalama 60 milisaniye gecikme vardır. Ancak ana altyapı istasyonları arasındaki veri aktarımı oldukça hızlıdır. Esas hız kaybı buralardan kullanıcıya yaklaştıkça artar.
Hava sıcaksa ve router yavaş çalışıyorsa bu gecikmeyi etkiler. Fiziksel şartlar ve hesaplanamayan etkenler yavaşlığa sebep olur. 2G olarak da bilinen EDGE bağlantısının en iyi gecikme süresi 150 milisaniyedir. Pratikte ise ortalama 500 milisaniyedir. 1996 yılında 100 milisaniye gecikmeden şikayet edildiği düşünülecek olursa, gerçekten internet daha iyi durumda mı bir durup sormak gerekiyor.
Kablosuz bağlantılar
Paket kaybı da gecikmeye etki eden önemli unsurlar arasındadır. İnternette veri aktarımı esnasında oluşan paket kayıpları, yerine iletilemeyen bu paketlerin yeniden gönderilmesi gecikmeyi arttırır. Kablosuz bağlantıların en zayıf yanı da bu veri kaybıdır. Mesafe arttıkça ve sinyal gücü zayıfladıkça hedefe ulaşamayan paket sayısı artar. Tepki süresi uzar ve internet bağlantısı yavaşlar.
2.4GHz bant genişliği üzerinde çalışan cihazlar, kablosuz ev ağları, mikrodalgalar ve bebek telsizleridir. Aynı bandı kullanan farklı cihazların birbirini kötü etkilemesi olasılığı vardır. Üstüne üstlük tüketicilere satılan WiFi cihazlarının çoğunda trafik düzenleme özelliği yoktur. Bu özellik olmadığı için de bir kullanıcının video izlemesi ya da dosya indirmesi, o ortamda internete bağlanan herkesin bağlantısının sürünmesine sebep olur.
100 Milisaniyenin bedeli
İnternet servis sağlayıcılarının bir pazarlama hilesine de dikkat çekelim. Örneğin 4 Megabit bağlantı paketinde tüketiciye satılan 6Mbit indirme ve 1Mbit yükleme hızı oluyor. 4 Mbit hızlardan sonra da yükleme hızı 1Mbit'in üzerine çıkmıyor. Günümüz internet hızlarına ve yoğun kullanımına erişilmeden önce bu savunulabilir bir politikaydı. Ama artık kullanıcılar birbirine dosya atıyor, Torrent'te hızlı paylaşım için indirme ve yükleme oranını eşit tutmaya çalışıyor, dahası her türlü yüksek bant genişliği isteyen uygulamada bu olay darboğaz yaratıyor.
Yüksek gecikme simülasyonları durumun ne kadar vahim olduğunu ortaya koyuyor. Sadece 100 milisaniyelik gecikme, ortalama dosya indirme süresini örnek değer olan 350 milisaniyeden 1500 milisaniyeye çıkartıyor. 100 Milisaniyenin bedeli, yüzde 428 gibi bir değerde yavaşlama demek! Bu değer tekrar eden indirmelerle yapılan testlerde ortaya çıkıyor. Tek dosya indirme denemesinde 100 ms gecikme, 1,000 ila 3,000 milisaniyelik gecikmeye sebep oluyor. İşte böylece yüksek bantgenişliği satın alan ve internette hızlı sörf yapabileceğini düşünen kullanıcılar, internet tarayıcı karşısında deliriyorlar.
TCP bağlantıları ve DNS araması
İnternetin hızlı çalışması için internet servis sağlayıcıların,
tüketiciye ulaşan internet bağlantısının en son adımlarında yüksek
kalite sunması gerekiyor. Ama iş servis sağlayıcıyla bitmiyor.
İnternet sitelerinin de göze çok gözükmeyen ama trafiği arttıran
küçük veri paketlerinin sayısını azaltması
gerekiyor.
Ne yazık ki değişmeyen kötü durumlar şunlar:
İndirme hızları yüksek, gönderme hızı düşük
Yüksek gecikme istisnai bir durum olmaktan çıkıp, hayatın bir gerçeği halini aldı.
TCP bağlantıları ve DNS aramaları yüksek gecikme yüzünden kötü durumda. Kullanıcıların bağlantı sorunlarında en büyük etkenlerden birisi de DNS'ler yani aranan internet sitesinin adresini yazılan isimden IP'ye dönüştüren Domain Name Server'lar ve bunlara erişim süresi.
Devamlı değişen gecikme oranları, düşük bantgenişliğinden daha kötü bir etken.
Az bit tutuyor demek yavaşlatmıyor demek değil
İnternet siteleri kullanıcılara hızlı hizmet sağlayabilmek için http isteklerini tek pakete indirebilir, çerez ve URL için 800 bitlik bir sınır içerisinde kalabilir. URL'nin iki kat önemli olduğunu, siteye bağlantısı aracılığıyla ulaşılan sitenin başlığının da eklendiğini hatırlatalım.
Zaten sıkıştırılmış olan medya dosyalarına etki etmese de yollanan diğer veriler için sıkıştırma uygulanabilir. LZW+Base64 fonksiyonu ile 1.5:1 oranında sıkıştırma sağlanabilir. AcrionScript ile uğraşarak gzip sıkıştırması da sağlanabilir.
Kodda JavaScript'i aşağılarda kullanmak, HTML başlık kısmının erken alınmasına ve internet tarayıcının sayfayı yüklemeye başlayabilmesine olanak tanıyarak sörfü hızlandırmak mümkün. JavaScript başta kullanılırsa paralel indirmeyi durduruyor.
CSS/HTML/Javascript'e ek olarak kullanıcı arayüzünün küçük bir versiyonu ilk 1 ila 3 kb'ye sıkıştırılırsa ve daha sonra tam sürümle değiştirilirse yükleme hızlandırılabilir. Google Docs belgeleri hızla gösterse de her şeyin düzgün olduğuna emin olana kadar düğmeleri iptal ediyor. Yahoo'nun anasayfası da benzer bir yöntem uyguluyor.
İnternet hızı demek, bantgenişliği demek değil
İnternet sitelerinin ve hizmetlerinin tasarımında gecikmeyi engelleyici örnekler vermeyi sürdürürsek; site programcılarının scriptlerin veya stillerin yüklenmemesi, önbellekte bulunan kopyanın bozulması riskine karşın bir kontrol mekanizması eklemesi yerinde olacaktır.
CSS ve JavaScript ne kadar harici olursa ve http istekleri paralelleştirilirse o kadar yararlı olur. Ancak DNS kontrollerini ve yeni TCP bağlantıların açılmasını yüksek gecikmeli durumlarda tercih etmemek gerekiyor. Yeni bağlantı kurmak birkaç saniye alabiliyorsa, durum tersine dönüyor ve işlemlerin olan bağlantı üzerinden yürümesi daha mantıklı hale geliyor. Bu kullanıcıların da dikkat etmesi gereken bir durum.
Dosya indirmeyi hızlandıran yazılımlar, internet sitelerinin kısıtlamalarını aşarak aynı anda, aynı dosyayı pek çok paralel bağlantıdan parça parça indirdiğinde sunucuya çok ağır bir yük biniyor. İndirme hızlanacağı yerde yavaşlayabiliyor.
Bütün bunlar göz önüne alındığında diyebiliriz ki, bantgenişliği çok olsa da internetin "küçük" detaylar biriktikçe büyük miktarda yavaşlayabiliyor. Servis sağlayıcılara ve internette sayfa yapan, gezen herkese interneti hızlandırmakta iş düşüyor.