Ağ Teknolojileri

Ertuğrul Özcan
10 min readAug 27, 2019

--

Paket Anahtarlama

1960'lı yıllarda veri iletişiminde yeni bir kavram ortaya çıkmıştır : “Paket Anahtarlama”. Önceki iletişim ağları bir iletişim devresi oluşturabilmek için iki taraf arasında kablolardan oluşan fiziksel, kapalı bir devre kullanmaktaydı. Bu yapı, eskiden kullanılmakta olan klasik telefon-telgraf sistemlerinden evrimleşmiştir. Kablolardan oluşan analog devrenin yerini elektronik anahtarların alması dışında aslında temelde konunun özü aynı kalmıştır. Kapalı bir devre oluştur ve iki uç arasında devre boyunca bilgi gönder. Ancak paket anahtarlama, veri iletişimine kazandırdığı yeni bakış açısıyla devrimsel bir nitelik taşır ve böylece modern internetin temelleri atılmıştır denilebilir. Paket anahtarlama veriyi paket adı verilen bloklara ayırır ve veri ile birlikte veriyi hedefine ulaştıracak bazı bilgiler de pakete eklenir. Paketlerin yol boyunca hedefe ulaşmalarını sağlayacak bilgiler, ağ boyunca paketlere yol gösterecek cihazlara yüklenmiştir. Paket, ağ üzerinde hedefe ilerlerken cihazlar tarafından yönlendirilerek doğru rotayı tayin eder ve alıcıya ulaşır.

İnternet İletişim Kuralları Dizisi

İnternet İletişim Kuralları Dizisi (Internet Protocol Suite) bilgisayarlar ve ağ cihazları arasındaki iletişimi sağlamak amacıyla kullanılan tüm teknolojileri, kural ve yöntemleri tanımlayan bir iletişim protokolleri bütünüdür. TCP/IP Protokol Takımı olarak da anılır. Ağ bağlantısı için ihtiyaç duyulan donanımlar, verinin nasıl işleneceği, nasıl paketleneceği ve ağ üzerinde nasıl iletileceği vb. tüm özellik ve kuralların tespiti, bu protokoller ile sağlanır ve standardize edilir. IETF (Internet Engineering Task Force) tarafından yönetilmektedir.

Tarihsel Gelişim

1970'li yıllara gelindiğinde pek çok araştırma enstitüsünde ve askeri kurumlarda, ağ teknolojileri üzerine yapılan araştırmalar yüksek bir ivme yakalamış ve belli bir olgunluğa ulaşmıştı. Paket anahtarlama yönteminin çeşitli uygulamaları ABD, İngiltere ve Fransa’da farklı araştırmacı grupları tarafından geliştirilmekteydi. Sıradaki adım ise yerel ağları birbirine bağlayarak ağlar arası iletişim kurabilmekti. İnternet tarihine göz atıldığında bu alanda Amerika Savunma Bakanlığı’na bağlı İleri Savunma Araştırma Projeleri Ajansı’nın - DARPA (Defense Advanced Research Project Agency) önderlik ettiği ARPANET projesi göze çarpmaktadır. ARPANET çerçevesinde UCLA, Stanford, Utah ve California at Santa Barbara üniversiteleri ile başlayan proje, kısa süre içerisinde bir çok merkezdeki bilgisayarın da ARPANET ağına bağlanmasıyla büyümüş ve böylece ilk geniş alan ağı kurulmuştur. Araştırmacılar tüm ihtiyaçları karşılayan tek bir paket anahtarlama yöntemi üzerinde çalışmışlar ancak 1973'te ARPANET’te kullanılan NCP protokolünün geliştiricisi Vinton Cerf ve uydu ve karasal radyo ağları üzerine çalışmalar yürüten Robert E. Kahn, özellikle evlerde ve ofislerde düşük maliyetli ve düşük kapasiteli teknolojilerin oluşturulmasına ihtiyaç duyulacağı için tek bir paket anahtarlama yönteminin tüm ihtiyaçlara cevap veremeyeceğini gösterdiler. Çözüm, en iyi paket anahtarlama yöntemini bulmak yerine farklı yöntemleri birbiri ile konuşturabilecek, katı kuralları olmayan bir standartlar kümesi önermekti. 1974 yılı Mayıs ayında Elektrik ve Elektronik Mühendisleri Enstitüsü (IEEE) tarafından “A Protocol for Packet Network Intercommunication” başlıklı makale ile TCP protokolü dünyaya tanıtıldı.

Ağ kavramının ortaya çıktığı ilk günden bu yana farklı yada benzer amaçlar için bir çok protokol geliştirildi. Ancak ortada üzerinde anlaşılmış belirli bir standardın olmadığı, yönetici bir konsorsiyumun bulunmadığı dönemlerde, ağ tasarımları donanım üreticilerinin insiyatifinde, belli bir standarda uygun olmayan bir şekilde geliştirilmekteydi. 1974 yılında IBM tarafından tanıtılan “SMA” (Systems Network Architecture) mimarisi ve yine aynı yıl Digital Equipment Corporation tarafından tanıtılan “DecNET Suite” ya da Xerox tarafından geliştirilen “PARC Universal Suite” alternatif mimarilere örnek verilebilir. Bu ağ mimarilerinin temel problemi, çoğunlukla yalnızca ilgili üreticinin donanımlarına destek vermesi, farklı ağları birbirine bağlamak için bir çözüm üretmemeleri ve hatta farklı üreticilere ait ürünlerin bağlanmalarını zorlaştıracak şekilde tasarlanmalarıydı.

TCP’nin başarılı olmasının altında yatan temel neden getirdiği kuralların heterojenlik konusundaki toleransıdır. Temel fikir; ağ, yalnızca uçlar arasındaki iletişim trafiğinin verimli bir şekilde yürütülmesinden sorumlu olmalıydı. Geriye kalan tüm sorumluluklar uçlar tarafından üstlenilmekteydi. Örneğin, ağdaki iletişimin güvenilirliğini sağlamak ağın sorumluluğunda değildi. Bu uçtan uca ağ tasarımı sayesinde spesifik özelliklere sahip herhangi bir ağ da TCP ağına katılabilecekti. Bu durum hem ortaya çıktığı tarihte mevcut olan paket anahtarlama yöntemleri için hem de sürekli devam eden gelişim sürecinde entegrasyonu kolaylaştırdığı için büyük bir motivasyon kaynağı olmuştur.

DARPA, TCP’nin farklı donanımlar üzerinde çalışabilecek sürümlerinin geliştirilmesi amacıyla; BBN, Stanford Üniversitesi ve University College London ile anlaştı. Bu çalışmalar sonrasında dört adet TCP versiyonu üretilmiştir: TCP V1, TCP V2, TCP V3 ve IP V3 ve TCP/IP V4. Son versiyon bugün halen kullanılmakta olan versiyondur.

1975 yılında, Stanford Üniversitesi ve University College London tarafından iki ağdan oluşan bir TCP/IP haberleşme testi gerçekleştirilmiştir. 1977 yılının Kasım ayında ise; ABD, Birleşik Krallık ve Norveç’teki birimler arasında üç ağdan oluşan bir TCP/IP haberleşme testi yapılmıştır.

1978 ve 1983 yılları arasında birçok araştırma merkezinde bazı farklı TCP/IP benzeri prototipler de geliştirilmiştir. SNA, XNS ve DECNET gibi özel iletişim protokolleri bunlara örnek verilebilir.

ARPANET ise 1 Ocak 1983 tarihinde TCP/IP protokolüne tamamen geçiş yaptığını ve tüm askeri bilgisayar ağları için standart kabul ettiğini duyurmuştur.

İlk Elektronik PostaTarihteki ilk elektronik posta, 1971 yılında Ray Tomlinson'un kendisine test amaçlı gönderdiği e-postadır. Tomlinson, ARPANET projesinde görev alan informatik uzmanlarından biriydi. Cambridge Üniversitesi'nde elektronik haberleşme yöntemleri ile uğraşan Tomlinson, iletişim kurulurken göndericilerin birbirinden ayırt edilebilmesi ve müstakil olarak adreslendirilebilmesi için günlük konuşma ve yazı dilinde kullanılmayan @ sembolünü kullandı. Bu tarihin ilk e-postasının içeriği ise tam olarak bilinmemektedir. Çünkü Tomlinson, çalışmaları esnasında test amacıyla yazdığı bir metni diğer uçtan almayı başarmış ancak ne yazdığını kendisi de hatırlamamaktadır. En yakın tahmini ise klavyedeki sıralı harflere basarak "QWERTYUIOP" yazdığı yönündedir.

Bu noktadan sonra TCP/IP protokolü hızla yaygınlaştı. Düzenlenen konferans ve atölye çalışmaları ile özel sektörü teşvik edici etkinlikler, işletim sistemi üreticilerinin altyapılarında protokol desteği sunmaya başlamaları ve gittikçe genişleyen ağın akademik ve askeri çalışmalar dışında ticari uygulamalara da sıçraması ve kamusal alanda yer edinmesi ile internet evrimindeki ilk basamak tamamlanmış oldu.

Osi Mimarisi

Ağ iletişimi teknolojilerinde standardizasyon çok önemli bir yer teşkil eder. İletişim; alıcı-verici arasında iki yönlü bir münasebet olduğuna göre, iletişimin sağlanabilmesi için taraflar arasında mutlak bir müzakere sağlanmak zorundadır. Bu anlaşma, kullanılan teknolojilerin ve yöntemlerin tamamında iki taraf için de tam bir uyum ve birliktelik gerektirir. Protokoller, bu uyumu sağlamak adına alt teknolojileri açıklayan, kuralları tanımlayan, tarafların ortak bir dilde konuşmalarını sağlayan anlaşmalardır. Ancak daha geniş bir çerçeveden bakıldığında modern iletişim, verinin ifade edilme biçimini, iletiminin sağlandığı donanımları, donanımların işleyişindeki fiziki temelleri ve kimyayı, verinin işlenmesi için kullanılan yöntemleri, yazılımsal araç ve uygulamaları ve son kullanıcı ile etkileşimini sağlayan sunumu dahil, baştan sona bir çok alt disiplini içine alan kapsamlı bir sistematiktir. Bu noktada tüm yapıyı açıklayabilmek için protokollerin üzerinde bazı referans modeller geliştirilmiştir. Uluslararası Standardizasyon Örgütü (ISO — International Organization for Standardization) tarafından geliştirilen mimari model ise OSI (Open Systems Interconnection) modelidir.

OSI mimarisinde katmanlara karşılık gelen bazı protokoller

Modern İnternet’e Doğru

İletişim, hangi teknik veya yolla uygulanıyor olursa olsun, amaçtan ziyade bir araçtır. İletişim, insanları yada sistemleri birbirine bağlar, mesafeleri kısaltır, bilgi paylaşımını sağlar. İnternet, her ne kadar özünde hala bir iletişim aracı olsa da temel sağladığı yeni teknolojiler, konunun özü olan iletişim kavramını gölgede bırakacak ölçüde etki sağlamış ve iletişime yeni anlamlar kazandırmıştır. Ağ teknolojilerinin insanlığa kazandırdığı bu yeni iletişim biçiminin tartışmasız en önemli ürünü ise World Wide Web olmuştur. İnternet kavramı www ile, bir iletişim aracından ziyade, bir bilgi paylaşım ortamı olarak anlam değişikliğine uğramıştır.

World Wide Web’in doğuşundaki motivasyon, araştırmacıların birbirleri ile çalışmalarını kolayca paylaşabilecekleri bir ortam sağlamaktı. İşte bu amaçla 1989 yılında, Avrupa Nükleer Araştırma Merkezi (CERN)’nde bilgisayar bilimcisi olarak çalışan Tim Berners Lee tarafından ilk metin tabanlı içerik işaretleme sistemi geliştirildi. Bu çalışma hem içeriği kodlamak ve ifade etmekte kullanılacak HTML (Hyper Text Markup Language) dilinin hem de html formatlı içeriğin TCP ağında aktarımını sağlayacak HTTP (Hyper Text Transfer Protocol) protokolünün geliştirilmesini içermektedir. Ayrıca dokümanların ağ üzerinde adreslenebilmelerini sağlayan URI (Universal resource Identifier) protokolünü de geliştirmiştir. (Şimdilerde bu adresler URL(Uniform Resource Locator) olarak adlandırılıyor. URL, URI’nin bir alt kümesi olan adres tanımlayıcılarıdır.) Lee’nin bu çalışmaları 1984 yılında geliştirmeye başladığı “Enquire” projesine dayanmaktadır. Tim Berners Lee, devam eden yıllarda dokümanların ağ üzerinde servis edilmelerini sağlayacak ilk web sunucuyu ve görüntülenebilmeleri için ilk web tarayıcıyı da geliştirdi. Ve böylece World Wide Web doğmuş oldu. İlk web sayfası ise 6 Ağustos 1991 günü açılan ve info.cern.ch adresinden hizmet veren “theproject.html” isimli html sayfasıdır. Sitenin ilk online ziyaretçisi ise bundan 17 gün sonra 23 Ağustos 1991'de siteyi ziyaret etti. Sitenin sunucusunu çalıştıran NeXT marka bilgisayar halen CERN’de sergilenmektedir. Bilgisayar üzerindeki “This machine is a server. Do not power it down!” uyarısı ise halen görülebiliyor :)

İlk web sunucusu

Tim Berners Lee, 2004 yılında, insanlık tarihine yaptığı önemli katkılardan dolayı Birleşik Krallık kraliçesi tarafından “Sir” unvanına layık görülmüştür. Sir Timothy John Berners-Lee, halen 1994 yılında kurduğu W3 Konsorsiyum’un başkanlığını yürütmekte ve MIT’de kıdemli araştırmacı ve Southampton Üniversitesi’nde de bilgisayar bilimleri profesörü olarak görev yapmaktadır.

Tarihteki ilk internet sitesi info.cern.ch, tarihteki ilk ticari alan adı ise symbolics.com ’dur.

Tarihte internete yüklenen ilk fotoğraf. CERN’deki dört kadın çalışan (Angela Higney, Michele de Gennaro, Colette Marx-Neilsen, Lynn Veronneau) tarafından kurulmuş Les Horribles Cernettes isimli müzik grubuna ait yukarıdaki fotoğraftır. (1992)

Http ve World Wide Web

World Wide Web başlangıçta CERN çalışanları için akademik dokümanların paylaşımı amacıyla kuruldu ve ilk yıllarda telife tabi bir sistemdi. 30 Nisan 1993'te yazılım üzerindeki telif hakları kaldırıldı ve açık kaynak olarak geliştirilmeye devam etti. 1994 yılında Tim Berners Lee başkanlığında kurulan W3 Consortium ile, standartları ve protokolleri düzenleyen bir üst kurula kavuştu. Mayıs 1996'da ise RFC dokümanı yayınlanarak HTTP 1.0 standardı duyuruldu. Günümüzde gelişimi, Internet Engineering Task Force (IETF) ve W3 Consortium’un ortak çalışmalarıyla ilerlemektedir.

İnternet teknolojilerinin doğduğu ilk yıllarda, ulaşılmak istenen hedef ürün ile günümüzde kullandığımız internet arasında çok büyük farklar vardır. İnternet, bir bilgi paylaşım ortamı olarak düşünülmüş ve yalnızca basit medya içeriğinin (entertainment) sunumu (presentation) üzerine yoğunlaşılmıştır. Sunulan bilgi, durağan (static) ve etkileşimsizdir. Ancak günümüz dünyasında internet artık yalnızca bilgiyi sunan değil, işleyen ve üreten, daha akıllı ve dinamik bir yapıya kavuşmuştur. İnternet bankacılığı, elektronik ticaret, elektronik bürokrasi vb. birçok uygulama alanı ile yeni bir yön kazanmış ve dünyayı birbirine bağlayan sanal bir bilinç durumuna evrilmiştir. Bu nedenle de başlangıçta öngörü eksiği ile yapılan hataları gidermek ve yeni ihtiyaçlara cevap verebilecek değişiklikler için yapılan geliştirmeler neticesinde iletişim katmanında çeşitli güncellemeler yapılmıştır.

HTTP protokolü, duyurulduğu ilk günden bu yana 4 sürüm olarak geliştirilmiştir : HTTP/0.9, HTTP/1.0, HTTP/1.1, ve HTTP/2.0

Günümüzde büyük oranda 1.1 sürümü kullanımda iken 2.0 sürümü de hızla yaygınlaşmaya devam etmektedir.

HTTP/0.9 (1991)

HTTP’nin ilk sürümüdür. İstemci-sunucu arasında request-response akışı ile devam eden basit bir iletişim yöntemi tanımlar.

İletişim tek yönlüdür. (Uni-directional)

Yalnızca GET metodu desteklenmektedir. Sorgu içerisinde sunucuya istemciden bilgi aktarmak için bir çözümü yoktur. Request, path ile belirtilen dokümanı talepten ibarettir.

Request ile birlikte herhangi bir header bilgisi gönderilemez. Status/error code desteği sunmaz.

Response biçimi yalnızca ASCII tabanlı HTML’dir. Diğer doküman tipleri desteklenmez.

Connection kalıcı değildir. Response’un hemen ardından kapatılır.

Default port 80 olarak belirlenmiştir.

Örnek iletişim akışı

HTTP/1.0 (1996)

Bazı meta verilerin ayrıştırılabilmesi için header desteği getirildi. Bu sayede hem request hem de response verisi için daha zengin bir ifade biçimi kazandırıldı.

İletişim tek yönlüdür. (Uni-directional)

Response’lar status code bilgisi ile zenginleştirildi.

GET metodunun yanında HEAD ve POST metodları da eklendi.

Response biçimi plain text olarak genişletilmiştir. Content-type başlık bilgisi ile aktarılan doküman tipi bildirilebilir.

Connection kalıcı değildir. Response’un hemen ardından kapatılır.

HTTP/1.1 (1999)

İletişim tek yönlüdür. (Uni-directional)

Data sıkıştırma, chunked transfer, önbellek desteği ve daha geniş bandwidth ile kritik performans ve özellik güncellemeleri yapılmıştır.

Virtual hosting desteği getirilmiştir.

Pipelined connection ve “Keep me alive” istemi ile kalıcı (persistent) bağlantı - uzun ömürlü (long-lived) connection desteği sunulmuştur.

GET, HEAD, POST, PUT, DELETE, TRACE ve OPTIONS metodları da desteklenmektedir.

HTTP/2 (2015)

İletişim iki yönlüdür. (Bi-directional)

Multiplexing özelliği ile aynı bağlantıda multiple request ve multiple response desteği getirilmiştir. Bu sayede örneğin bir web sayfası, script ve style dosyaları ile birlikte tek akış altında sunucudan alınabilir.

Veri aktarımı text değil binary olarak yapılır.

Server push desteği sağlar.

Hız konusunda seleflerine nazaran çok daha başarılıdır. (Bkz.)

WebSocket Protokolü

WebSocket, HTTP ağları üzerinde sunucu istemci arasında iki yönlü (bi-directional) iletişim sağlar. Aslında WebSocket protokolü TCP tabanlı bağımsız bir protokoldür ancak HTTP sunucularının ihtiyaçlarına cevap vermek üzere web tarayıcılar ve web sunucuları için tasarlanmış olması nedeniyle sıklıkla HTTP ile birlikte anılır. Bununla birlikte herhangi bir istemci veya sunucu uygulaması tarafından da uygulanabilir. Protokol, TCP üzerinden katmanlı temel bir mesaj çerçevesini takip eden açılış anlaşmasından oluşur. Temel amaç; browser tabanlı uygulamalarda istemci-sunucu arasında birden fazla HTTP bağlantısına gerek kalmadan iki yönlü bir iletişim mekanizması sunmaktır. Son resmi protokol IETF tarafından RFC 6455 koduyla 2011 yılında yayınlanmıştır.

Http protokolü, tasarım amacı gereği istemciden sunucuya yönünde çalışır. “Request-response challenge“ akışı ile istemci sunucuya talebini iletir ve sunucu karşılık verir. İstemcinin yeni bir talebi olduğunda yeni bir bağlantı kurulur ve aynı işlem akışı böylece devam eder. Bağlantılar bazı istisnalar dışında kalıcı değildir ve işlem sonrası kapatılarak sonlandırılır. Sunucu her istemci için ve her istek için yeni bir bağlantı açmaya zorlanır. Bunun dışında wire protokolün yüksek bir ek maliyeti daha vardır. İstek mesajları, mesajın gövde verisinin dışında “header” isimli ek veriler de içerir ve mesaj boyutu yüksektir. Bir diğer handikap ise iletişim her bir request-response çifti için süreç boyunca senkron ilerler. İstemci ilettiği her bir istek için beklenen yanıtlara karşılık bir eşleşmeyi korumak zorundadır.

Web socket teknolojisi HTTP’nin sınırlamalarına takılmadan doğrudan TCP protokolü ile istemci-sunucu arasında iletişim kurulmasına olanak sağlayan bir düzeni tasarlar. Sunduğu low-level mekanizma, long polling gibi mecburi çözümler yerine çok daha başarılı bir alternatif ortaya koyar.

WebSocket soket değildir! Esasında “WebSocket” ile “soket” iki ayrı kavramdır ve birbirine karıştırılmamasında fayda vardır. Soket (yada ağ soketi); TCP/IP iletişiminde iki uç arasındaki bağlantıyı, adres bilgisi, yuva, düğümler ve konektörü içeren giriş-çıkış rotası üzerindeki tüm kanalı karşılayan bir ifadedir. WebSocket ise bir protokoldür.

WebSocket protokolü, TCP üzerine HTTP protokolündekine benzer bir yöntem inşa eder. Bir bağlantı kurabilmek için öncelikle, istemci el sıkışma işlemi sırasında HTTP üzerinden WebSocket sunucusuna bir “upgrade” isteği gönderir. Bu işlem, verilen bir WebSocket uç noktasına standart bir HTTP isteği kullanılarak başlatılır. Sunucu, WebSocket özelliğini destekliyorsa, istemciye bağlantıyı açık tutmasını ve bir akış olarak kullanmasını söyleyen bir cevap ile yanıt verir.

Bir sonraki makalede bi-directional iletişim yöntemleri ve real-time bağlantı teknolojileri ele alınacaktır.

--

--