Internet nedir ve nasıl çalışır?
İnternet nedir?#
Aslında internetin tanımını yapmadan evvel ağ tanımını yapmalıyız. Ağ birden fazla bilgisayarın birbirlerine bağlanarak bilgi alışverişinde bulunabildikleri ortama denir.
Dolayısıyla en basit ağı şu şekilde gösterebiliriz:
İnternet ise dünya üzerindeki ağların en büyüğüne verilen isimdir. Yani internet birçok bilgisayarın kablolar veya uzaydaki uydular vasıtasıyla bir şekilde birbirleriyle haberleşebildiği en büyük ağın adıdır.
Peki dünya üzerinde milyarlarca cihaz internete bağlı. Yukardaki şekle göre bütün cihazları birbirine bağlamaya kalkarsak büyük bir karmaşanın ortasında kalıyoruz. Milyarlarca cihaz bir yana sadece 5 adet cihazı bile birbirine bağlamaya kalksak, her cihazdan diğerlerine 4’er adet bağlantı gerekiyor.
Bu yöntemin ölçeklenebilir olmadığı ortada. İşte bu noktada router olarak isimlendirdiğimiz, Türkçe’ye yönlendirici olarak çevirebileceğimiz küçük cihazlar devreye girerek veri alışverişinde bulunmak isteyen bilgisayarları birbirine ulaştırıyor.
Aslında bu çözümün telefon santrallerinden hiçbir farkı yok öyle değil mi?
Peki küçük bir yönlendiriciye yine milyarlarca cihazı bağlamak mümkün mü? Tabi ki değil, bu durumda yönlendirici sayısının artırıp, bir yönlendiriciyi başka bir yönlendiriciye bağlayarak sonsuz sayıda cihazı ağa dahil edebiliriz.
Bu durumda mavi ağda bulunan bir bilgisayar, kırmızı ağdaki bir bilgisayara erişmek istediğinde bağlı olduğu yönlendirici kırmızı ağın yönlendiricisine bağlanarak erişim sağlayabiliyor. Bu sayede bir çok ağı birbirine bağlayabiliyoruz.
Aslında bu çözümün günümüzdeki internet yapısına çok benzer olduğunu söyleyebiliriz. Çünkü istediğimiz sayıda cihazı birbirine bağlayabiliyoruz. Evimizdeki tüm cihazları yukardaki gibi bağladığımızı varsayalım, peki yan komşumuzun bilgisayarını hatta köydeki halamızın bilgisayarını nasıl bizim ağımıza bağlayacağız? Bunun için kilometrelerce uzunlukta kabloya ihtiyacımız var. Aslında o kablo halihazırda bulunuyor, belki günümüzdeki çocuklar çok bilmese de eskiden evlerimizde bulunan sabit telefon hatları sokaktaki, mahalledeki, ilimizdeki hatta tüm ülkedeki evlerin birbirine kabloyla bağlanmasıyla çalışıyordu. Bilgisayarlarımızı birbirine bağlamak için de hali hazırda var olan bu kabloları kullanmamız için hiçbir engel yok.
Netice itibariyle günümüzde, evinize internet bağlatmak istediğinizde başvurduğunuz internet servis sağlayıcısı (ISP), sokağınızda bulunan kablo ağından sizin dairenize bir bağlantı kuruyor. Bu kabloyu da size verdikleri bir cihaza bağlıyor. Aslında bu cihaz hem telefon kablolarından gelen bilgiyi dijital bir formata dönüştürerek modem görevi yapıyor, hem de evinizde bağlı olan cihazların hem internetteki cihazlarla hem de evinizdeki diğer cihazlarla haberleşmesini sağlayan yönlendirici görevi yapıyor.
İnternet nasıl çalışır?#
Bir önceki başlıkta internetin çalışabilmesi için gerekli fiziksel yapının nasıl kurgulandığını açıklamaya çalıştık. Ancak anlatırken sanki mucizevi bir şekilde iki bilgisayarın birbiriyle konuştuğunu varsaydık. Bu başlıkta ise tüm bu cihazların birbirleriyle nasıl haberleştiğine göz atalım.
İnternetin nasıl çalıştığını anlamak için öncelikle temelinde yer alan 2 kavramı anlamak gerekiyor.
Paket (Packet)#
Bir cihaz ağ üzerindeki başka bir cihazla haberleşmek istediğinde göndermek istediği veriyi küçük parçalara bölüyor ve her bir parçanın içerisine başlık (header), veri (payload/data) ve kuyruk (trailer) bilgisi yerleştiriliyor ve bu bilgi veri hattına gönderiyor.
Başlık ya da header paketin hangi cihazdan gönderildiğini, hangi cihaza gönderileceğini, paketin büyüklüğünün ne olduğunu, birazdan anlatacağımız protokol bilgisini parçalara bölünen büyük verinin kaçıncı parçası olduğunu barındırıyor.
Veri ya da payload gönderilmek istenen veriyi barındırıyor.
Kuyruk ya da trailer paketin imzasını taşıyor, böylece paketi alan kişi gönderilen paketin içeriğinin bozulup bozulmadığını kontrol edebiliyor.
Protokol (Protocol)#
Farklı diller konuşan iki insanın birbiriyle anlaşması ne kadar zor ise, farklı donanım ve yazılımlara sahip iki ayrı bilgisayarın da birbiriyle düzgün bir şekilde veri alışverişinde bulunması öyle zordur. Bu problem ancak her iki tarafın da ortak bir dil kullanmasıyla çözülebilir.
İşte protokol farklı cihazların haberleşebilmesi için ortaya konulan standartlar bütünüdür, dolayısıyla ortak dildir. Verinin hangi formatta gönderileceği, gönderilen verinin sıralı işlenip işlenmeyeceği gibi bütün konular protokolün standartlarıyla belirlenir. Böylece ağa bağlı olan cihaz her ne olursa olsun, hangi donanımı veya yazılımı kullanıyorsa kullansın protokol standartlarına uyduğu sürece sistem çalışacaktır.
Örneğin aynı ağdaki cihazlar birbirleriyle anlaşırken Ethernet, farklı ağlardaki iki cihaz anlaşırken IP, gönderilen paketlerin sıralı bir şekilde ulaştırılması isteniyorsa TCP, gönderilen verinin bir web uygulaması formatında işlenmesi gerekiyorsa HTTP protokolleri kullanılır.
Sonuç#
Burada sadece yüzeysel olarak bahsettiğimiz bu konuların hemen hemen her biri aslında üzerinde uzun yıllar yapılan çalışmaların sonucu ve her birinin detayına indiğinizde bir çok problem ve onlara geliştirilmiş çözümlerle karşılacaksınız. Bizim burdaki amacımız, özellikle geliştirici olmaya çalışan arkadaşların çalışma prensipleri hakkında genel bir fikir sahibi olması için katkıda bulunmaktır.
Serinin bir sonraki yazısında, Web uygulamalarının bu internet alt yapısında nasıl çalıştığına değineceğiz.
Lütfen eksik/hatalı gördüğünüz noktaları belirtmekten çekinmeyin.