Bu yazımızda istemci-sunucu arasında web servisi ve 3G iletişiminde gönderilen/alınan veri miktarlarında yaşanılan problemli bir senaryodan bahsedilecektir.
Problemli Senaryo Tanıtımı ve DeneylerAşağıdaki şekilde “Application Server” olarak adlandırılan sunucu üzerinde örnek bir web servisi bulunmaktadır. PDA istemci el terminali de 3G ile internete bağlanıp, web servisine erişerek bir dosya istemektedir. İstenilen dosya bayt dizesi olarak network üzerinden el terminaline gönderilmektedir.
Bu senaryoda alınan verinin boyutu 250 KB olmasına rağmen, network izleme araçlarıyla bakıldığında 1,25 MB civarında veri alış-verişi olduğu gözlenmektedir. Yani indirilen verinin 5 katı gibi bir veri boyutu oluşmaktadır. 3G sağlayıcılar, ücretlerini veri alış veriş miktarına göre belirlemektedir. Gerçek verinin 5 katı boyutunda veri alış verişi yapmak, doğal olarak fazla maliyet demektir. Problemin neden kaynaklandığını anlamak için senaryo aşağıdaki gibi farklılaştırılmıştır.
“NOTEBOOK” istemcisi normal ADSL bağlantı üzerinden ilgili web servisine bağlanıp aynı veriyi almaktadır. Hem indirilen veri hem de network üzerinden aktarılan verinin boyutu 250 KB olarak gözlenmiştir. Dolayısıyla bu senaryoda problem olmadığı görülmüştür.
5 kat farkın nereden oluştuğunu anlamak için network kartı üzerinden gelen giden paketleri tekrar izlenmeye başlanmıştır. Bunun için Microsoft’un bir ürünü olan Network Monitoring 3.3 programı kullanılmıştır. Yukarıdaki senaryolarda network monitoring aracı ile gidip gelen veriler izlenildiğinde, 244 KB büyüklüğündeki veri ADSL hattımızda 244KB ve 300 pakete ayrılarak indirilmesine rağmen 3G modem ile 1500 pakete ayrılarak 1,22 MB olarak indirilmektedir.
Aradaki farklara bakıldığında, 3G modem ile indirilen paketlerde “retransmit” attribute’ü ile belirtilmiş paketler görülmektedir. Bu durum aynı paketlerin birden fazla gönderilmesi anlamına gelmektedir. Genelde yeniden gönderilme işlemi, paketlerde bozulmalar olduğu zaman gerçekleşebilir.
244 KB * 5 = 1220 KB = 1,22 MBÇözümler
Bu sorunların network altyapılarından kaynaklanma olasılığı yüksektir. Dolayısıyla çözüm sürecinde, öncelikle network altyapısına bakılmalıdır. Örnek senaryoda yaşanılan sorunun, network altyapısında kullanılan 4 adet fiziksel LAN kartlarının arasında oluşan uyumsuzluktan kaynaklandığı tespit edilmiştir. Gelen paket 1 network kartına girdikten sonra aynı karttan dönmesi gerekirken diğer 3 kartı da denemekte ve esas MAC adresini bulunca transfer başlamaktadır. Çözüm için LAN kartlarının sayısı düşürülmüş ve 3G ile aynı veri ADSL deki gibi retransmit olmadan indirilebilmiştir.
Eğer sorun bu şekilde çözülemiyorsa aşağıdaki çözüm denenebilir. Eski SPI güvenlik duvarı olan NAT router’lar kullanılan sistemlerde, router arkasındaki sunucu üzerindeki “tcp auto-tuning” parametresinin değerine bakılmalıdır. Bu değer default olarak “normal”’dir. “Normal” olması durumunda, paket kayıplarına ve düşük hızlara sebep olabilmektedir. Auoto-tuning değerini değiştirerek bu sorun çözülebilir.
Auto-tuning parametresi şu değerleri alabilir:- disabled: Sabirt bir değer verilir. Maksimum 64KB olabilir.
- highlyrestricted: default değerin ötesinde, aşırı bir şekilde büyüyerek artmasına olanak sağlar.
- restricted: default değerin ötesinde sınırlı artmasını sağlar.
- normal: default değerin koşullara uygun bir şekilde artmasını sağlar.
- experimental: En uç senaryolara göre artış sağlar. Araştırma amaçlı kullanılabilir. Önerilmeyen bir değerdir.
Eğer bu tür routerlar ile sorun yaşanıyor ise, server üzerindeki auto-tuning parametresi değeri "restricted", " highlyrestricted" veya "disabled" duruma alınması sorunu giderebilecektir.Bu parametrenin değeri aşağıdaki komut ile değiştirilebilir.
netsh int tcp set global autotuninglevel=disabledArmağan DÖKER, Ali KALFAOĞLU, Deniz KILINÇ
Yorumlar
Yorum Gönder