Bir internet kullanıcısı, adres çubuğuna bir web sitesi adresini yazıp enterladığı anda, 3 adımda gerçekleşen bir olay zinciri tetiklenir. Sitenin, sunucu üzerinden son kullanıcıya servis edilmesi (sitenin açılması) için bir takım bağlantı protollerinin kurulması gerekir ve bağlantılar oluşturulduktan sonra veri aktarımı başlar, yani site internet tarayıcısında görüntülenmeye başlar. Enter tuşuna basıp kullanıcıdan gönderilen sorguya verilen ilk yanıt arasında geçen süreye round-trip times (makalemde bundan sonra RTT olarak kısaltacağım) denilmekte ve http’nin response ettiği ilk byte’lık datanın alımına kadar da sürer. İnternet teknolojilerinde RTT terimini, bir ping süresi olarak da düşünebilirsiniz. Bir çok web sitesinin açılması için düzinelerce RTT’ye ihtiyaç vardır. Fakat daha önce burada gelen ilk RTT’lerden biraz bahsetmek istiyorum.
İlk RTT DNS çözümlemesi için kullanılır, 2inci RTT bir TCP bağlantısının kurulması için ve 3üncüsü bir http üzerinden yapılan istek ve buna verilen yanıtta kullanılır. 3üncü RTT, http’den alınan ilk byte’lık datanın alımına kadar sürer. Şu aşamada TCP’nin ve RTT ne olduğu anlamamız gerekiyor. Kısaca:
Bilgisayarlar ile veri iletme/alma birimleri arasında organizasyonu sağlayan, böylece bir yerden diğerine veri iletişimini olanaklı kılan pek çok veri iletişim protokolüne verilen genel addır. (Yani, TCP/IP protokolleri bilgisayarlar arası veri iletişiminin kurallarını koyar). Bu protokollere örnek olarak, dosya alma/gönderme protokolü FTP (File Transfer Protocol), elektronik posta iletişim protokolü SMTP (Simple Mail Transfer Protocol), TELNET protokolü (Internet üzerindeki başka bir bilgisayarda etkileşimli çalışma için geliştirilen *login* protokolü) verilebilir.
TCP hakkında daha fazla bilgi için ise TCP/IP Protokolü Nedir yazısından faydalanabilirsiniz.
RTT süresi bir LAN (Local Area Network) ortamında genelde 1ms‘den daha kısa sürer. Fakat bazı durumlarda 1sn’nin üzerine çıkabiliyor. Bu duruma örnek olarak, bir istemci modemin yer aldığı kıta ile talep edilen dataları servis eden server’ının başka bir kıtada yer alması olabilir…
Bu yüzden RTT sürelerini kısa tutmamızda yarar var. Ayrıca istemciye gönderilecek dataların aktarımını ne kadar çok fazla paralel hat üzerinden gerçekleştirirseniz, sitenizin kullanıcı tarafında olan load time değerini düşürebilirsiniz. Bu bağlamda en ucuz ve pratik olan çözüm, bir subdomaininizi cname olarak tanımlayıp resim, sitil ve(ya) javascriptleri bu kanallardan yükletmektir.
Burada dikkat etmeniz gereken nokta, bazı durumlarda bir cname üzerinden 25-30′un üzerinde bir yükleme oluşturmanız, iyileştirmeden çok kötüleştirme (veya nötr bir durum) yapabiliyor. Örneğin sitenizin açılması için bir istemci 240 http isteğinde bulunuyor ve siz bunun 40′ını ana domain, 200′ünü de tek bir cname üzerinden yapıyorsanız çok da fazla yararlı olmayacaktır. Çünkü tarayıcı sadece 80 talebi paralel olarak yükleyecak, kalan 160 isteği tek bir hat üzerinden yüklemeye devam edecektir. Bu gibi durumlarda sitenize ait dosyaları (resim, javascript kütüphaneleri, sitil dosyaları vb.) çok iyi bir şekilde organize etmek ve ihtiyaç halinde cname’lerinizi de artırmanız gerekebilir. Paralel hatları artırarak bu sorunu çözümlemiş olursunuz. Profesyonel anlamda ise alternatif olarak CDN servislerini kullanılabilirsiniz, fakat biraz bütçeli bir mevzudur
Testlerinizi yaparken türk telekom faktörünü de göz önünde bulundurmanız faydalı olacaktır

Site Yüklenme Süresi ve Analiz
RTT Sürelerini Kısaltmak?
RTT sürelerini kısaltmak için bir takım iyileştirme çalışmaları yapılabilir. Bu konuda Google Pagespeed yardım dokümanları size çok iyi bir şekilde kaynaklık edecektir. Ayrıca Yahoo Developer Network sayfalarına da göz atabilirsiniz. Yazımın kalan kısmında da bu dokümanlardan biraz faydalandım.

















