Internet Nasıl Çalışır?
Bir gün, bilgisayarın başında otururken aklınıza belki hiç gelmeyen bir soru belirdi: “İnternet nasıl çalışıyor?” İşte bu sorunun cevabı, bilgisayarlar arası muazzam bir iletişim ağı ve gizli bir dünya olan internetin içinde gizli.
Her şeyden önce, internetin doğuşuyla başlamış bu hikaye. İnternet, başlangıçta bir iletişim kanalı olarak düşünülmedi. Tam aksine, savaş durumları veya saldırılar sonucunda bile yaşamaya devam edebilecek bir ağ olarak tasarlandı. Bu sayede, bir yer bombalandığında veya bir savaş durumunda, internet devam edebilecek ve iletişim kurabilecekti. Merkezi bir yapıya sahip olmadan, bağlantılar kopabilir, ancak internet yaşamaya devam ederdi. Başka bir deyişle, internet herhangi bir noktanın çökmesinden etkilenmeyen dağıtık bir sistemdi.
1. Sunucu (Server) – İstemci (Client) Konsepti
Şimdi, internetin nasıl çalıştığını daha iyi anlamak için sunucu ve istemci konseptine bir göz atalım. İnternet ağı, temelde sunucu ve istemci mimarisinden oluşur. Bu, bilgisayarlar arasındaki temel iletişim yapısını oluşturur. Sunucu, veriyi sunan taraftır, istemci ise veriyi alan taraftır.
2. Bit – Binary
İnternette dolaşan veriler, temelde “bit” adı verilen kavramla ifade edilir. Bir bit, ya 0 ya da 1 değerini alabilen en küçük bilgi birimidir. İnsan, her şeyi bu 0 ve 1’lerle ifade etmeye çalışır. Mesela, “merhaba” yazdığınızda, bu ifade 01101101 01100101 01110010 01101000 01100001 01100010 01100001 olarak internet üzerinden iletilir.
Bu veri iletimi, kablolar üzerinden gerçekleşir. Kablolar üzerinden iletilen 0’lar ve 1’ler aslında voltaj sinyalleridir. +12 volt, 1’i temsil ederken -12 volt, 0’ı temsil eder. Bilgisayar, bu voltaj sinyallerini alarak veriyi anlamlandırır. Bu düzenleme, verinin bozulma olasılığını en aza indirir.
3. Verinin Transferi
Şimdi, internet üzerinden veri transferinin nasıl gerçekleştiğine dair bazı kilit kavramları ele alalım.
Latency: Bir işin tamamlanması için geçen süredir.
Signal Speed: Sinyalin karşı tarafa ulaşma hızıdır.
Transfer Rate (Bandwidth): Verinin ne kadar hızlı indirildiğini gösterir. Örneğin, 4 Mbps, 1 saniyede 1 Megabit indirebildiğiniz anlamına gelir.
İnternet hızınızı artırmak için yapabileceğiniz bazı şeyler var. Örneğin, daha hızlı sinyaller gönderebilir veya ek bir hat ekleyebilirsiniz. Ancak bunun masraflı olabileceğini unutmayın.
4. Protocol
Protokol, iki varlığın iletişim kurması için önceden tanımlanmış kurallar dizisi olarak tanımlanabilir. Yani, internet üzerindeki tüm iletişim, belirli protokollere tabidir. Protokoller, veri transferinin düzenini ve güvenliğini sağlamak için kullanılır. Protocol kelimesi yalnızca, yazılım ve internet için geçerli bir terim olmayıp günlük hayatımızda da aynı anlamla kullanılabilir. Örneğin, kişiler arasında iletişimin bir protokolü yani toplumca kabul görmüş kuralları vardır. Siz yolda gördüğünüz bir arkadaşınıza merhaba! dersiniz o da buna karşılık size merhaba diyerek cevap verir. Bu selamlaşma protokolüdür. Ya da bir davete gidersiniz ancak sizi takım elbisesiz içeri almazlar. Bu davetin kıyafet protokolüdür diyebiliriz.
5. Port
Port, bilgisayarlar arasında iletişim kurarken belirli bir hedefe veya kaynağa bağlı kalmak için kullanılan numaralı kapılardır. Bu kapılar, bilgisayarların ağ üzerinde birbirleriyle konuşmasını sağlar.
Diyelim ki bir bilgisayar, başka bir bilgisayara bir dosya göndermek istiyor. Gönderim ve alım işlemleri birbirinden farklı işlevlere sahip olduğu için bu işlemi ayırmak gerekir. İşte bu noktada portlar devreye girer. Gönderilen veri belirli bir port numarası üzerinden çıkarken, alıcı bilgisayar bu veriyi belirli bir başka port numarasından kabul eder.
Örneğin, web siteleri genellikle 80. portu kullanır. Bir bilgisayar web tarayıcısıyla bir web sitesine bağlanırken, tarayıcı otomatik olarak 80. porta yönlendirme yapar. Aynı zamanda e-posta gönderimi için kullanılan standart port 25, güvenli iletişimde ise genellikle 443. port kullanılır.
Portlar, ağ üzerindeki veri alışverişini düzenleyerek, her bir uygulamanın belirli bir port üzerinden çalışmasını sağlar.
6. www.google.com’u Ziyaret
Şimdi, tarayıcınıza www.google.com yazdığınızda neler olduğunu hayal edin.
- Kullanıcı yönlenmek istediği urli girer.
- Bu linkin IP adresi DNS tarafından çözülür. Yani, www.google.com’un karşılığı olan IP adresi bulunur. Artık bu IP ile nereye bağlanacağımızı biliriz.
- Routerlar, bu IP adresini kullanarak paketleri yönlendirir.Elimizdeki IP numarasından routerlar tarafından yönlendirile yönlendirile doğru yolu bulur paketler. Her router kendi bildiği kadarını söyler. Yani IP’nin kendini ilgilendiren rakamlarına bakar. İlk durağı söyler sonrası artık o durağın problemidir. Mevcut routerdan çıkar.
- Web sitesi, belirli bir TCP portunda (genellikle 80) çalışır ve istemciyle bağlantı kurar.
- Sunucu kendi diskinde bu web sitesini arar. Bulduktan sonra bu web sitesini aynı dosya transfer eder gibi, mail transfer eder gib istenen web sitesinin içeriği paketler halinde istemciye gönderilir.
- TCP bağlantısı kapatılır.
- İstemci, indirilen veriyi görselleştirir.
HTTP 1.0da bu alım işlemi nesne nesne olurken, 1.1’de bağlantı açılır, işi bitene kadar bağlantı açık tutulup nesneleri transfer edip sonrasında kapatıyor.Bu katman verinin ne şekilde gönderildiğini gösterir.
Bu süreç, internetin karmaşık yapısında sadece bir küçük pencere. TCP ve UDP protokollerinin çalıştığı bu katman, verinin nasıl iletilip alındığını düzenler. TCP, veriyi kayıpsız bir şekilde iletmek için kullanılır ve Three-Way Handshake adı verilen bir bağlantı kurma yöntemine sahiptir. Bu bağlantı kurma yöntemi bir bağlantı kurulurken bir de kapanırken olmak üzere iki kez gerçekleşir.
7. TCP ve UDP Farkı
TCP (Transmission Control Protocol) ve UDP (User Datagram Protocol), internet üzerinde veri iletimi için kullanılan iki farklı protokoldür. TCP, kayıpsız veri iletimi sağlamak için kullanılırken, UDP daha hızlı ancak kayıplı iletimi tercih eder. TCP’nin Three-Way Handshake adı verilen bir bağlantı kurma yöntemi vardır, bu da veriyi güvenli bir şekilde iletmeyi sağlar. UDP ise hızlı ancak güvensizdir, çünkü veriyi kayıp yaşanmasına rağmen iletebilir.
TCP (Transmission Control Protocol), veriyi iletim sırasında küçük paketlere böler ve bu paketlere numaralar atar. Bu işlem, büyük veri setlerini daha küçük ve yönetilebilir parçalara böler ve her parçaya bir numara atarak sıralar. Bu sayede, verinin karşı tarafa düzenli bir şekilde iletilmesi sağlanır.
Her TCP paketi, başlık (header) ve taşıyıcı (payload) olmak üzere iki ana bölümden oluşur. Başlık, iletimle ilgili bilgileri içerirken, taşıyıcı kısmında ise asıl veri bulunur. Numaralandırma, her pakete benzersiz bir numara atarak verinin doğru sırayla alınmasını sağlar.
Örneğin, bir dosyanın gönderilmesi durumunda, dosya küçük parçalara bölünür ve her parça bir TCP paketi olarak gönderilir. Alıcı, bu paketleri aldığında numaralandırmaya bakarak parçaları doğru sırayla birleştirir.
TCP, güvenilir bir iletişim protokolüdür ve veri iletiminde kayıp yaşanmasını minimize etmeyi hedefler. Eğer bir TCP paketi kaybolursa veya hedefe ulaşmazsa, alıcı tarafından eksik olduğu belirlenir. Bu durumda, alıcı eksik paketi gönderen tarafından tekrar talep eder.
İnternet, bu temel prensipler ve birçok karmaşık katman ile çalışır. Bu büyülü dünya, birçok bilinmeyenin ardında gizlenmiş olsa da, internetin sırlarını çözmek heyecan verici bir yolculuktur. Bilgisayarın başında oturup bir web sitesine giriş yaparken, artık bu karmaşık dünyanın nasıl işlediğini bir nebze daha iyi anlıyorsunuz.