Işık Hızında Bir Yolculuk; İnternet
Şimdi tam da buraya bir video bırakıyorum. YouTube’daki bu birkaç dk’lık video acaba sana nasıl ulaşıyor hiç düşündün mü? Bir şekilde ulaştı diyelim. Nasıl bu kadar hızlı ulaştı? Server ya da Browser kavramları sana neyi ifade ediyor? IP adresi ne demek? Protocol ne demek? Domain ne anlama geliyor? DNS ne? Babam böyle pasta yapmayı nereden öğrendi?
Aslında bu kavramları anlayabilmek için, internetin o sihirli dünyasına çok hızlı bir yolculuk yapmamız lazım. Çünkü bu kavramlar internetin nasıl çalıştığı ile alakalı kümülatif bilgiler.
İnternetin tarihi 1960'lı yıllara dayanır. ABD’de askeri ve akademik amaçlarla kullanılmak üzere geliştirilen ARPANET adlı bir projeyle modern internetin temelleri atıldı. Sonrasında özel kuruluşların ve üniversitelerin desteğiyle bir kamu projesi haline geldi.
Araştırma yaparken karşıma çıkan, ilgi çekici bir kaç tanım;
İnternet, web’in omurgasıdır. Web’i mümkün kılan teknik altyapıdır. En temelde internet, hep birlikte iletişim kuran bilgisayarlardan olulan geniş bir ağdır. İnternet, bilgisayarları birbirlerine bağlamanın ve ne olursa olsun bağlantıda kalmanın bir yolunu bulmayı sağlamanın bir yoludur.
Dinlediğiniz GodFather’ın soundtrack’i bilgisayarımıza ya da telefonumuza nasıl ulaşır?
Öncelikle cebimize koymamız gereken bir kaç bilgi ile yola çıkalım. Bu video günün sonunda bilmediğimiz bir yerlerde kayıtlı. Kayıtlı olmayan bir şeye zaten erişemeyiz. YouTube ise Google’a ait bir kuruluş. Google ise Amerika’da faliyetlerine devam eden bir firma. O zaman bu video ABD’de bir yerlerde saklı olarak düşünebiliriz. (Google’ın veri merkezi) Yani temelde bu video ABD’de Google’ın veri merkezinde fiziksel sunucularda saklanan bir veri.
Bu videoyu uydular aracılığıyla izleyebiliriz. Veri merkezinden bir anten aracılığı ile uyduya sinyal gönderilebilir ve yakınımızdaki başka bir uydu vasıtasıyla cep telefonumuza bu video gelebilir.
Ama bu çok iyi bir fikir olmayabilir. Çünkü;
Uydu, Dünya ekvatorunun yaklaşık 22.000 mil yukarısına park edilmiş olduğundan veri iletiminin başarılı olması için verilerin toplam 44.000 mil yol kat etmesi gerekir. Bu kadar uzun bir yolculuk mesafesi, sinyalin alınmasında önemli gecikmelere yol açacaktır.
Burada, veri merkezi ile cihazımız arasında bağlantı kuran karmaşık bir fiber optik kablonun yardımıyla yapılır.
Telefonumuz internet hücresel veri veya herhangi bir wi-fi yönlendirici aracılığıyla bağlı olabilir. Ancak telefon ya da bilgisayar(ethernet kablosuna ve wi-fi ye yazının ilerleyen satırlarında değineceğim) bir noktada bağlanacaktır.
Tam bu noktada daha fazla ilerlemeden bilmemiz gereken bir kavram var.
Ip Adresi (İnternet Protocol Adresi): İster sunucu, ister bilgisayar, ister cep telefonu olsun internete bağlanan her cihaz ip adresi olarak bilinen bir dizi sayıyla benzersiz bir şekilde tanımlanır. Bunu, benzersiz olan ev adreslerimize benzetebiliriz. Gönderdiğimiz bir mektup, ev adreslerimiz vasıtasıyla tam olarak bize ulaşır. Benzer şekilde internet dünyasında bir IP adresi, tüm bilgilerin hedefine ulaştığı bir teslimat adresi görevi görür. IP adresileri Ipv4 ve Ipv6 şeklinde 2 farklı şekilde karşımıza çıkarlar. Aslında her ikisi de bilgisayarı tanımlar fakat Ipv4 32 bittir. Ipv6 ise 128 bittir. Cihazları benzersiz yapabilmek için bu standartlar vardır.
Kısaca IP adresini de tanıdıktan sonra;
Veri merkezindeki sunucunun da bir IP adresi vardır. Sunucu bir web sitesini saklar, böylece yalnızca sunucunun IP adresini bilerek bir web sitesine erişebilirsiniz.
Ancak bir kişinin bu kadar çok IP adresini hatırlaması çok zordur. Bu sorunu çözmek için uzun sayı dizilerinden ziyade hatırlamamız daha kolay olan IP adreslerine karşılık gelen domain (alan adı) adları kullanılır. (Farklı sunuculardaki farklı web sitelerini sayılarıyla bilmek imkansızdır. Bunu aslında rehberimizdeki telefon numaralarına benzetebiliriz. Kişilerin numaraları yerine, adları ile biliriz.)
Burada dikkat edilmesi gereken bir diğer husus, bir sunucunun veri depolama kapasitesine sahip olmasıdır. Birden fazla web sitesi ve sunucu birden fazla web sitesinden oluşuyorsa tüm web sitelerine sunucunun IP adresiyle erişilemez. Bu gibi durumlarda, web sitesini benzersiz bir şekilde tanımlamak için ek bilgi parçaları, ana bilgisayar başlıkları kullanılır.
İnternete erişmek için her zaman karmaşık IP adresi numaraları yerine alan adları kullanırız.
Peki internet alan adı (domain), taleplerimize karşılık gelen IP adreslerini nereden alıyor?
İnternet bu amaçla DNS (Domain Name Server) olarak bilinen bir yapı kullanıyor. (Burada yine telefon rehberini düşünebiliriz.) Bir kişinin adını biliyorsanız ancak telefon numarasını bilmiyorsanız, onu telefon rehberinden arayabilirsiniz. DNS sunucusu internete aynı hizmeti sağlar. İnternet servis sağlayıcınız, DNS sunucusunu yönetebilir.
Yani tüm operasyonu şu şekilde özetleyebiliriz.
- Alan adını gireriz.
- Tarayıcı, ilgili IP adresini almak için DNS sunucusuna bir istek gönderir.
- IP adresini aldıktan sonra tarayıcımız talebi veri merkezine, daha spesifik olarak ilgili sunucuya iletir.
- Sunucu belirli bir web sitesine erişim isteği aldığında veri akışı başlar.
- Veriler fiber optik kablolar aracılığıyla dijital formatta daha spesifik olarak ışık darbeleri şeklinde aktarılır.
- Evimizdeki router’lar gelen ışık sinyallerini elektrik sinyallerine dönüştürür.
- Daha sonra elektrik sinyalleri, bilgileri almak için ethernet kablosuna ihtiyaç duyar. Ancak internete hücresel veri kullanarak erişiyorsanız, sinyalin optik kablodan baz istasyonuna gönderilmesi ve baz istasyonundan sinyalin elektromanyetik dalgalar şeklinde cep telefonuna ulaşması gerekir.
İnternet küresel bir ağ olduğundan, IP adresi tahsisi, alan adı kaydı vb. işleri yöneten bir organizasyona sahip olmak önemli hale geldi. Bunların hepsi ABD’de bulunan ICANN adlı bir kurum tarafından yapılır.
İnternetin veri aktarımındaki verimliliği çok önemli bir noktadır. YouTube üzerinden izlediğimiz bir video Google Veri Merkezi’nden bize sıfırlar ve birlerden oluşan devasa bir collection (veri demeti/veri kümesi) halinde gönderilir. İnternetteki veri aktarımını verimli kılan şey, bu sıfırların ve birlerin paket adı verilen küçük parçalara bölünerek iletilmesidir. Bu sıfır ve bir akışlarının sunucu tarafından, her paketin 6 bitten oluştuğu farklı paketlere bölündüğünü varsayalım. Her paket, videonun bitlerinin yanı sıra, sunucunun ve telefonumuzun sıra numarasını ve IP adreslerini de içerir. Bu bilgilerle paketler telefonumuza yönlendirilir. Tüm paketlerin aynı yoldan yönlendirilmesine gerek yoktur. Ve her paket bağımsız olarak o anda mevcut olan en iyi rotayı alır. Paketler telefona ulaştığı anda sıra numarasıan göre yeniden birleştirilir. Herhangi bir paketin telefona ulaşmaması durumunda, telefondan kayıp paketlerin yeniden yönlendirilmesi için onay gönderilir.
Bunu iyi bir altyapıya sahip bir posta ağıyla karşılaştıralım. Ancak müşteriler, hedef adreslerle ilgili temel kurallara uymuyor olsun ve mektuplar doğru adreslere ulaşmıyor olsun. Benzer şekilde internette de veri paketlerinin bu karmaşık akışının yönetimi için, çeşitli protokoller kullanılır. (TCP/IP, HTTP/HTTPS, RTP, FTP, SMTP vs.)
Protokoller, veri paketlerini dönüştürme kurallarını her pakete kaynak ve hedef adreslerinin eklenmesini ve routerlar için belirli kuralları belirler.
Farklı uygulamalar için kullanılan portlar farklıdır.
Network
2 bilgisayar birbirleriyle iletişim kurma ihtiyacı hissettiğinde, fiziksel olarak (genellikle ethernet) ya da wireless (wi-fi, bluetooth) ile bunu yapar.
Bu tür bir ağ, sadece 2 bilgisayarla sınırlı değildir. İstediğimiz kadar çok bilgisayarı birbirleriyle bağlayabiliriz. Ancak bu durum, bilgisayar sayısı arttıkça çok karmaşık bir duruma yol açar. Örneğin 2 bilgisayarı bir networke almak için 1 tane kablo gerekecektir. 3 bilgisayarı birbirine bağlamak için 2 tane kablo gerekecektir. 10 bilgisayar için ise, 45 tane kablo ve 9 tane de fiş gerekmektedir.
Bu sorunu çözmek için ağdaki her bilgisayar router’a bağlanır. Router’ın tek görevi vardır. Bir bilgisayardan gelen verinin doğru hedef bilgisayara ulaştığından emin olur. Bir router’ı sisteme entegre ettiğimiz zaman, 10 bilgisayarlı ağınız sadece 10 kabloya ihtiyaç duyar.
Bu durum, yüzlerce, binlerce, yüz binlerce bilgisayar için de geçerli olur. Bu sefer routerları birbirlerine bağlayarak bu sorun çözülebilir.
Bu tür bir ağ, internet dediğiniz şeye çok yakın bir noktaya gelir. Ancak şu ana kadar okuduğunuz birkaç cümle ile kendi ağımızı kurduk. Dışarıda, bizim ağımız haricinde başka ağlar da mevcut. Peki bizim ağımız ile bu dışarıdaki ağları nasıl bağlayacağız?
Bu sorununun çözümü oldukça kolay. Evlerimizde telefon ve elektrik var. Sonuçta telefonlar ile dış dünyaya açılıyoruz. Bu yüzden ihtiyacımız olan aslında sihirli bir kablo. Ağımızı telefona bağlamak için bir modeme ihtiyaç var. Bu modem, ağımızdaki bilgileri telefon altyapısı tarafından yönetilebilir bilgilere dönüştürür, ya da tam tersi.
Telefon altyapısı bağlandıktan sonra, bir sonraki adım iletileri ağımızdan ulaştırmak istediğimiz ağa göndermek. Bunu yapmak için ağımız bir ISP (Internet Service Provider — Internet Hizmet Sağlayıcı)’ye bağlayacağız. Ağımızdaki ileti ISP ağlarının ağı boyunca taşınır.
Network Vs Internet
Network
- Tanım: Bir ağ, bilgisayarlar, cihazlar veya kaynaklar arasında bilgi ve veri paylaşımını sağlayan bir iletişim altyapısıdır. Ağlar, yerel alan ağları (LANs), geniş alan ağları (WANs), kablosuz ağlar (Wi-Fi), sanal özel ağlar (VPN’ler) gibi farklı türlerde olabilir.
- Kapsam: Ağlar, genellikle sınırlı bir alan içindeki cihazlar arasında iletişimi kolaylaştırır. Örneğin, bir ofis binasındaki bilgisayarlar arasında bir yerel ağ (LAN) oluşturabilirsiniz. Bu ağ, dosya paylaşımı, yazıcı erişimi ve diğer kaynaklara kolay erişim sağlar.
- Kontrol: Ağlar genellikle daha sınırlı bir kontrol ve güvenlik düzeyine sahiptir. Ağ yöneticileri, ağa bağlı cihazların erişimini kontrol etmek ve güvenlik önlemleri uygulamakla sorumludur.
- Protokoller: Ağlar, cihazlar arasındaki veri iletimini düzenlemek ve yönlendirmek için belirli ağ protokollerini kullanır.
İnternet
- Tanım: İnternet, dünya çapında milyonlarca farklı ağın birbirine bağlandığı küresel bir ağdır. İnternet, bilgisayarlar, sunucular, cihazlar ve ağlar arasında bilgi alışverişi için kullanılır. İnternet, World Wide Web (WWW), e-posta, dosya paylaşımı, iletişim ve daha birçok hizmeti içerir.
- Kapsam: İnternet, dünya genelindeki farklı bölgelerdeki ve ülkelerdeki ağları birbirine bağlar. Bu, herhangi bir yerdeki bilgisayarın veya cihazın diğer herhangi bir yerdeki kaynaklara erişimini mümkün kılar.
- Kontrol: İnternet, dünya genelinde birçok farklı kurum ve hükümet tarafından yönetilen karmaşık bir yapıya sahiptir. İnternetin erişim ve güvenliği, çeşitli düzenlemeler ve protokoller tarafından denetlenir.
- Protokoller: İnternet, bir dizi belirli iletişim protokolünü kullanır. En bilinen protokol, İnternet Protokolü (IP) ve onunla ilişkili olan Transmission Control Protocol (TCP) ve User Datagram Protocol (UDP) gibi protokollerdir.
Özetle, bir ağ, belirli bir bölge veya organizasyon içinde cihazlar arasındaki iletişimi kolaylaştırmak için kullanılırken, İnternet, dünya genelindeki farklı ağları birbirine bağlayan ve küresel çapta bilgi alışverişi sağlayan büyük bir ağdır. İnternet, birçok farklı ağın bir araya gelerek oluşturduğu devasa bir ağdır ve geniş bir kapsama sahiptir.
Temel Kavramlar
Protocol
Dilimize Fransızcadan geçmiş bir kelimedir. TDK’da anlam olarak imzalanan belge, anlaşma tutanağı olarak geçmektedir. Ama daha genel geçer bir tanım yapmak istersek Protokol, belirli bir amaç doğrultusunda kullanılan ve belirli kurallara uygun olarak çalışan bir dizi talimat, yönerge veya anlaşmadır. Protokoller, bilgisayar bilimleri, iletişim, iş dünyası, hükümetler arası ilişkiler ve birçok farklı alanda yaygın olarak kullanılır.
Ağ oluşturmada protokol, verileri biçimlendirmek ve işlemek için kullanılan bir dizi kuraldır. Ağ protokolleri bilgisayarlar için ortak bir dil gibidir. Bir ağ içindeki bilgisayarlar çok farklı yazılım ve donanımlar kullanabilir; ancak protokollerin kullanımı ne olursa olsun birbirleriyle iletişim kurmalarını sağlar.
Standartlaştırılmış protokoller, bilgisayarların kullanabileceği ortak bir dil gibidir; dünyanın farklı yerlerinden iki kişinin birbirlerinin ana dillerini anlamamasına benzer şekilde, ancak ortak bir üçüncü dil kullanarak iletişim kurabilirler. Bir bilgisayar İnternet Protokolünü (IP) kullanıyorsa ve ikinci bir bilgisayar da aynısını kullanıyorsa, bunlar da iletişim kurabilecektir; tıpkı Birleşmiş Milletler’in dünyanın dört bir yanından temsilciler arasında iletişim kurmak için 6 resmi dile güvenmesi gibi. Ancak bilgisayarlardan biri IP kullanıyorsa ve diğeri bu protokolü bilmiyorsa iletişim kuramayacaklardır. İnternette farklı işlem türleri için farklı protokoller vardır. Protokoller sıklıkla hangi OSI model katmanına ait olduklarına göre tartışılır.
IP (Internet Protocol)
IP adresi , interneti ya da TCP/IP protokolünü kullanan diğer ağlara bağlı cihazların, ağ üzerinden birbirleri ile veri alışverişi yapmak için kullandıkları protokoldür.
İnternet’e bağlanan her cihaza, İnternet Servis Sağlayıcısı tarafından bir “public” IP adresi atanır ve internete bağlı cihazlar birbirleriyle bu “public” IP adresleri üzerinden ulaşırlar. IP adresine sahip iki farklı cihaz aynı ağda olmadıkları durumlarda, router ya da routing özelliği olan cihazlar vasıtası ile birbirleri ile iletişim kurarlar.
IP adresleri şu anda yaygın kullanımda olan IPv4 adresleri 32 bit boyutunda olup, noktalarla ayrılmış 4 adet onluk düzendeki sayılarla gösterilirler. Örneğin: 192.168.10.5
Bazı internet sayfalarına, o sayfaların IP adresleri ile de bağlanılabilir. Ancak bu IP adreslerinin hangi sayfalara ait olduklarını bilebilmek pratikte çok mümkün olmadığından IP adreslerine karşılık gelen bir alan adı sistemi kullanılmaktadır. DNS -Domain Name System ile oluşan hiyerarşik bir sistem, hangi alan adının hangi IP adresine karşılık geldiği bilgisini eşler.
Routerlar IP paketleri iletme görevlerini IP paket başlıklarında yer alan IP adreslerine göre gerçekleştirirler. IP’nin ilk büyük versiyonu İnternet Protokolü Sürüm 4'tür. IPv4 internette baskın olan bir protokoldür. Onun devamı ise IPv6 ’ dır. IPv6, internete bağlanan cihaz sayısının artmasından ve bu cihazlara yetecek sayıda IP adresi verilmesini sağlama zorunluluğundan ortaya çıkmıştır.
İnternete bağlanan kullanıcının dış dünyaya bağlantı sağladığı gerçek IP adresi çoğu zaman dinamiktir. Kullanıcının hizmet aldığı internet servis sağlayıcı, kullanıcıya o an boşta bulunan bir IP adresini verir. Bu yüzden internete her bağlantı yapıldığı zaman kullanıcıların dış dünyaya açıldıkları gerçek IP adresi değişebilmektedir.
Statik IP adresleri olan bilgisayarların adresleri değişmez. Sunucu görevi gören bilgisayarlar için tercih edilir.
TCP/IP (Transmission Control Protocol / Internet Protocol)
TCP/IP, Transmission Control Protocol/Internet Protocol’un kısaltmasıdır ve bilgisayar ağlarında veri iletimi için kullanılan temel iletişim protokollerinden biridir. TCP/IP, internetin temelini oluşturan protokol setidir ve modern dünya çapında iletişimi mümkün kılar. İnternet, web siteleri, e-posta, dosya paylaşımı ve daha birçok uygulama TCP/IP üzerine kurulmuştur. Şimdi TCP ve IP’nin her birini daha detaylı bir şekilde açıklayalım:
Transmission Control Protocol (TCP):
- TCP, veri iletimi için güvenilir bir yol sunan bir iletişim protokolüdür. Verilerin kaynak ve hedef arasında güvenli ve sıralı bir şekilde iletilmesini sağlar.
- İşlevleri arasında veri parçalarının paketlenmesi, gönderilmesi, alınması, hedefe sırasıyla iletilmesi ve hedeften onay alınması yer alır.
- Bağlantı tabanlı bir protokoldür, yani veri iletimi öncesinde bir bağlantı kurulur ve veri iletimi tamamlandığında bu bağlantı kapatılır.
DNS (Domain Name System)
Alan Adı Sistemi web siteleri için bir adres defteri gibidir. Tarayıcınıza bir web adresi yazdığınızda, tarayıcı, web sitesini almadan önce web sitesinin IP adresini bulmak için DNS’ye bakar. Tarayıcının, HTTP mesajlarını doğru yere gönderebilmesi için web sitesinin hangi sunucuda bulunduğunu bulması gerekir. Bu, erişebilmek için mağazanın adresini aramaya benzer. Akıllı telefonunuzdan veya dizüstü bilgisayarınızdan, büyük perakende web sitelerine içerik sunan sunuculara kadar internetteki tüm bilgisayarlar, numaraları kullanarak birbirini bulur ve iletişim kurar. Bu numaralara IP adresleri denir. Bir web tarayıcısını açıp bir web sitesine gittiğinizde uzun bir sayıyı hatırlamanıza ve girmenize gerek kalmaz. Bunun yerine example.com gibi bir alan adı girebilir ve yine de doğru yere gidebilirsiniz. Amazon Route 53 gibi bir DNS hizmeti, www.example.com gibi insanlar tarafından okunabilen adları, bilgisayarların birbirine bağlanmak için kullandığı 192.0.2.1 gibi sayısal IP adreslerine çeviren, küresel olarak dağıtılmış bir hizmettir. İnternetin DNS sistemi, isimler ve numaralar arasındaki eşlemeyi yöneterek daha çok bir telefon rehberi gibi çalışır. DNS sunucuları, ad isteklerini IP adreslerine çevirerek, son kullanıcının web tarayıcısına bir alan adı yazdığında hangi sunucuya ulaşacağını kontrol eder.
Client & Server & Web Server
Client (İstemci):
- İstemci, bir bilgisayar veya cihazın, bir sunucuyla iletişim kurmak veya sunucudan hizmet almak amacıyla bağlandığı tarafı temsil eder.
- İstemci, genellikle kullanıcı tarafındaki bir bilgisayar, akıllı telefon, tablet veya başka bir cihazdır. Bu cihazlar, sunucuya veri göndermek için isteklerde bulunur veya sunucudan veri almak için istekte bulunurlar.
- İstemci, web tarayıcıları (örneğin Chrome, Firefox), e-posta istemcileri (örneğin Outlook, Thunderbird), dosya paylaşım istemcileri ve daha birçok uygulama aracılığıyla sunuculara bağlanabilir.
Server (Sunucu):
- Sunucu, ağ üzerinde istemcilere hizmet veren ve istemcilerden gelen istekleri işleyen bir bilgisayar veya cihazdır.
- Sunucular, genellikle daha güçlü ve özel olarak yapılandırılmış makinelerdir. İstemcilere veri veya hizmet sunmak için yoğun işlem gücüne, yüksek depolama kapasitesine ve yüksek erişilebilirliğe sahip olabilirler.
- Sunucular, web sunucuları, e-posta sunucuları, veri tabanı sunucuları, dosya sunucuları, oyun sunucuları ve daha birçok farklı türde sunucu olarak kullanılabilirler.
Web Server (Web Sunucusu):
- Web sunucusu, internet üzerinden web sitelerine erişim sağlayan sunucu türüdür. İstemciler, web tarayıcıları aracılığıyla web sunucularına bağlanır ve web sunucusundan web sayfalarını veya içerikleri alır.
- Web sunucuları, HTTP (Hypertext Transfer Protocol) adı verilen bir iletişim protokolünü kullanarak istemcilere web sayfalarını gönderirler.
- Web sunucuları, istemcilerin taleplerine yanıt verir ve HTML, CSS, JavaScript gibi web sayfası içeriğini sunar. Ayrıca, veritabanlarına erişim, kullanıcı kimlik doğrulama ve dinamik web içeriği oluşturma gibi görevleri de yerine getirebilirler.
- Örnek olarak, popüler web sunucuları Apache, Nginx, Microsoft IIS (Internet Information Services) ve LiteSpeed’dir.
Web sunucuları, web sayfalarının dünya çapında erişilebilir olmasını sağlar ve internetin temel taşlarından biridir. Web tarayıcıları, kullanıcıların bu web sunucularına bağlanmasını ve internet üzerindeki içeriklere erişimini mümkün kılar.
OSI Model (Open System Interconnection)
Tam burada bir reklam verip, bir önceki Temel Kavramlar konusunda da bahsi geçen OSI modelden bahsetmemiz gerekir. Çok önemli bir kavramdır.
OSI modeli, Uluslararası Standardizasyon Örgütü tarafından oluşturulan ve çeşitli iletişim sistemlerinin standart protokoller kullanarak iletişim kurmasını sağlayan kavramsal bir modeldir.
OSI modeli, bilgisayar ağları için evrensel bir dil olarak görülebilir. Bir iletişim sistemini her biri bir öncekinin üzerine yığılmış yedi soyut katmana bölme kavramına dayanmaktadır.
7) Application Layer
Bu katman, kullanıcıdan gelen verilerle doğrudan etkileşime giren tek katmandır. Web tarayıcıları ve e-posta istemcileri gibi yazılım uygulamaları, iletişimi başlatmak için uygulama katmanına güvenir.
Application Layer protokolleri HTTP’nin (Hyper Text Transfer Protocol) yanı sıra SMTP’ (Simple Mail Transfer Protocol)yi de içerir.
6) Presentation Layer
Bu katman öncelikle Application LAyertarafından kullanılabilmesi için verilerin hazırlanmasından sorumludur. Başka bir deyişle, Presentation Layer, uygulamaların tüketmesi için verileri sunulabilir hale getirir. Presentation Layer, verilerin çeviri, şifreleme ve sıkıştırılmasından sorumludur.
İletişim kuran iki iletişim cihazı farklı kodlama yöntemleri kullanıyor olabilir, dolayısıyla Presentation Layer, gelen verileri, alıcı cihazın uygulama katmanının anlayabileceği bir sözdizimine dönüştürmekten sorumludur.
Cihazlar şifreli bir bağlantı üzerinden iletişim kuruyorsa, Presentation Layer, Application Layer’a şifrelenmemiş, okunabilir veriler sunabilmek için gönderenin ucuna şifreleme eklemekten ve alıcının ucundaki şifrelemenin kodunu çözmekten sorumludur.
Son olarak Presentation Layer, Application Layer’dan aldığı verileri Session Layer’a iletmeden önce sıkıştırmaktan da sorumludur. Bu, aktarılacak veri miktarını en aza indirerek iletişimin hızını ve verimliliğini artırmaya yardımcı olur.
5) Session Layer
İki cihaz arasındaki iletişimi açıp kapatmaktan sorumlu katmandır. İletişimin açılıp kapanması arasındaki süreye session (oturum) denir. Session Layer, oturumun, alınıp verilen tüm verileri aktaracak kadar uzun süre açık kalmasını sağlar ve ardından kaynak israfını önlemek için oturumu hemen kapatır.
Session Layer ayrıca veri aktarımını kontrol noktalarıyla senkronize eder. Örneğin, 100 megabaytlık bir dosya aktarılıyorsa, oturum katmanı her 5 megabaytta bir kontrol noktası ayarlayabilir. 52 megabayt aktarıldıktan sonra bağlantının kesilmesi veya çökme durumunda oturum son kontrol noktasından devam ettirilebilir; bu da yalnızca 50 megabaytlık verinin daha aktarılması gerektiği anlamına gelir. Kontrol noktaları olmasaydı tüm transferin sıfırdan başlaması gerekecekti.
4) Transport Layer
Transport Layer, iki cihaz arasındaki uçtan uca iletişimden sorumludur. Bu, Session Layer’dan veri almayı ve bunu Network Layer’a göndermeden önce segment adı verilen parçalara ayırmayı içerir. Alıcı cihazdaki Transport Layer, segmentleri; Session Layer’ın tüketebileceği veriler halinde yeniden birleştirmekten sorumludur. Transport Layer aynı zamanda akış kontrolü ve hata kontrolünden de sorumludur. Akış kontrolü, hızlı bağlantısı olan bir göndericinin, yavaş bağlantısı olan bir alıcıyı bunaltmamasını sağlamak için en uygun iletim hızını belirler. Transport Layer, alınan verinin eksiksiz olmasını sağlayarak ve eksikse yeniden iletim talebinde bulunarak alıcı uçta hata kontrolü gerçekleştirir. TCP ve UDP protokollerini içerir.
3) Network Layer
Network Layer, iki farklı ağ arasında veri aktarımını kolaylaştırmaktan sorumludur. İletişim kuran iki cihaz aynı ağ üzerindeyse Network Layer’a gerek yoktur. Network Layer, Transport Layer’daki segmentleri gönderenin cihazında paket adı verilen daha küçük birimlere ayırır ve bu paketleri alıcı cihazda yeniden birleştirir. Network Layeraynı zamanda verinin hedefine ulaşması için en iyi fiziksel yolu da bulur; buna routing denir.
2) Data Link Layer
Data Link Layer, aynı ağdaki iki cihaz arasında veri aktarımını kolaylaştırması dışında, Network Layer’a çok benzer. Data Link Layer, paketleri Network Layer’dan alır ve bunları frame adı verilen daha küçük parçalara ayırır. Network Layer gibi Data Link Layer’da ağ içi iletişimde akış kontrolü ve hata kontrolünden sorumludur.
1) Physical Layer
Bu katman, kablolar ve anahtarlar gibi veri aktarımında yer alan fiziksel ekipmanı içerir. Bu aynı zamanda verilerin 1'ler ve 0'lardan oluşan bir dizi olan bir bit akışına dönüştürüldüğü katmandır. Her iki cihazın fiziksel katmanının da bir sinyal kuralı üzerinde anlaşması gerekir, böylece her iki cihazda da 1'ler 0'lardan ayırt edilebilir.
HTTP (Hyper Text Transfer Protocol)
Bana göre internet tarihinin en önemli buluşlarından bir tanesi.
Detaylı bir şekilde HTTP inceleyelim.
HTTP, HTML belgeleri gibi kaynakları getirmeye yönelik bir protokoldür. Web üzerindeki herhangi bir veri alışverişinin temelidir ve bir client-server protokolüdür. Bu ise, isteklerin genellikle Web tarayıcısı olan alıcı tarafından başlatıldığı anlamına gelir. Metin, düzen açıklaması, resimler, videolar, komut dosyaları ve daha fazlası gibi alınan farklı alt belgelerden eksiksiz bir belge yeniden oluşturulur.
HTTP genişletilebilirliği nedeniyle, yalnızca hyper text belgelerini getirmek için değil, aynı zamanda görüntüleri ve videoları getirmek veya HTML form sonuçlarında olduğu gibi sunuculara içerik göndermek için de kullanılır. HTTP ayrıca istek üzerine Web sayfalarını güncellemek amacıyla belgelerin bazı kısımlarını getirmek için de kullanılabilir.
Proxy
Web tarayıcısı ile sunucu arasında çok sayıda bilgisayar ve makine HTTP mesajlarını aktarır. Web stackinin katmanlı yapısı nedeniyle bunların çoğu transport, network veya fiziksel düzeylerde çalışır.
HTTP katmanında şeffaf hale gelir ve potansiyel olarak performans üzerinde önemli bir etkiye sahiptir. Application Layer’da görev yapanlara genel olarak proxy adı verilir. Bunlar şeffaf olabilir, aldıkları istekleri hiçbir şekilde değiştirmeden iletebilir veya şeffaf olmayabilir, bu durumda isteği sunucuya iletmeden önce bir şekilde değiştirirler. Proxy’ler çok sayıda işlevi yerine getirebilir:
önbelleğe alma (önbellek, tarayıcı önbelleği gibi genel veya özel olabilir) filtreleme (antivirüs taraması veya ebeveyn denetimleri gibi)
yük dengeleme (birden fazla sunucunun farklı isteklere hizmet etmesine izin vermek için)
kimlik doğrulama (farklı kaynaklara erişimi kontrol etmek için)
log (geçmişsel bilgilerin depolanmasına izin verir)
HTTP’nin özellikleri
- Http Basittir: HTTP yapısı itibariyle geliştiricilerin okuduğu zaman anlayabilecekleri bir yapıya sahiptir. Bu da rahat anlaşılmasını sağlar. Ayrıca yeni eklenen özelliklere adaptasyon sürecini hızlandırır.
- Http Stateless’tır. Ama Sessionless değildir: Aynı bağlantı üzerinde art arda gerçekleştirilen iki istek arasında bağlantı yoktur. Yani, bir istek atıldıktan sonra bu isteğin durum bilgileri diğer isteğe iletilmez. Daha temiz bir ifadeyle, istekler birbirlerinden habersizdirler. Bu, örneğin e-ticaret alışveriş sepetlerini kullanarak belirli sayfalarla tutarlı bir şekilde etkileşim kurmaya çalışan kullanıcılar için sorun yaratma ihtimaline sahiptir. Ancak HTTP’nin özü stateless olmasına rağmen, HTTP cookie’leri statefull sessionların kullanılmasına izin verir. İş akışına HTTP cookieler eklenir ve aynı bağlamı veya aynı durumu paylaşmak için her HTTP isteğinde session oluşturulmasına olanak sağlanır.
Cookieler
HTTP cookie (web cookie, tarayıcı cookie), bir sunucunun kullanıcının web tarayıcısına gönderdiği küçük bir veri parçasıdır. Tarayıcı, cookie’yi saklayabilir ve daha sonraki isteklerle aynı sunucuya geri gönderebilir. Tipik olarak bir HTTP cookie’si, iki isteğin aynı tarayıcıdan gelip gelmediğini anlamak için kullanılır; örneğin bir kullanıcının oturum açmasını sağlar. Durum bilgisi olmayan HTTP protokolü için durum bilgisi olan bilgileri hatırlar.
HTTP Akışı
Bir client, ister son sunucu ister ara proxy olsun, bir sunucuyla iletişim kurmak istediğinde aşağıdaki adımları gerçekleştirir:
- TCP bağlantısı açar: TCP bağlantısı bir veya daha fazla istek göndermek ve yanıt almak için kullanılır. İstemci yeni bir bağlantı açabilir, mevcut bir bağlantıyı yeniden kullanabilir veya sunuculara birkaç TCP bağlantısı açabilir.
- Bir HTTP mesajı gönderir
- Sunucu tarafından gönderilen yanıtı okur.
- Connection kapatılır ya da yeniden kullanılır.
Buraya kadar okuduğun için teşekkürler. (: