Bilgisayar Ağlarının Temel İlkeleri Bilgisayar dünyasında yeni teknolojileri daha iyi kavramanın yolu çoğu zaman bu teknolojinin, teknolojiyi geliştiren şirketin tarihine bakmaktan geçiyor. Teknolojiyi geliştirmekteki amaç neydi, nasıl bir ürün ortaya kondu, piyasada ne kadar tutuldu ve devamında ne var soruları netlikle cevaplanırsa teknolojiyi satın alırken ve uygularken yanlış kararlar verilmesinin önüne geçilir.
İsterseniz bizde önce bilgisayar ağlarının tarihsel gelişimine bir göz atalım.
Bilgisayar ağları nasıl doğdu Bilgisayarların gerçek manada kullanılmaya başladığı 60'lı yıllarda, bilgisayar dendiğinde akla gelebilecek tek şey büyük mainframe'lerdi. İsmindeki haşmete rağmen, bu mainframe'ler bugün hepimizin masasında duran kişisel bilgisayarlara göre çok daha yavaş çalışan makinalardı. Sakın aklınıza bugünküne benzer bir bilgisayar getirmeyin, bu cihazlar klavyesi ve monitörü olmayan, dev dosya dolapları gibi aletlerdi.
Yanda Londra Bilim Müzesinde sergilenen bir mainframe'in açıklama kartı var.
İş dünyasında kullanılan ilk bilgisayarlardan birisidir. Sınırlı sayıda üretilen bu makinalardan birisi büyük bir sigorta şirketince kullanıldı ve bu cihaz da 1984 yılında müzeye devredildi.
Günümüz bilgisayarlarından biraz!! farklı.
1950 yılında maden yorgunluğundan bir çok uçağın düşmesi sonucu, bu bilgisayarlardan 40 tanesi çok fazla matematiksel işlem gerektiren stres hesaplamarında kullanıldı, aralarından Sidney Opera binasının da bulunduğu bir çok bina ve köprünün yapımında bu bilgisayarlardan faydalanıldı.
1955 yılında, bilgisayarların üreticisi Ferranti şirketi, bilgisayarlardan birini herkesin (daha çok bilim adamları ve matematikçiler tabii ki) hizmetine sundu. Böylece elle yapılması yıllar sürebilecek hesaplamalar gerektiren bilimsel veya teknik çalışmalar bu firmaya getiriliyor, hesaplamalar bilgisayarda yapıldıktan sonra sonucu kişiye teslim ediliyordu.
Monitör, klavye hak getire...
İlk başlarda klavye ve monitörü olmayan bu cihazlar bir veya daha fazla operatör tarafından programlanıyor ve çalışmaları sağlanıyordu. Bir süre sonra ekran ve klavyeler kullanılmaya başlandı. Bir mainframe'e birden fazla klavye ve monitör bağlanılabiliyor aynı anda birden fazla kişi bu makina üzerinde program yazabiliyordu. Böylece eskiden olduğu gibi bu cihazları kullanmak için bugün git-yarın gel dönemi kapanmıştı. Dikkat ederseniz program yazmaktan bahsettim, öyle hazır programı alıp kullanmak yok, bir programa ihtiyacın varsa oturup yazıyordun.
Ancak bu sistemlere "ağ" diyemeyiz, çünkü bu klavye ve monitörler sadece veri giriş-çıkış aygıtıydılar. Belki aptal terminal terimini duymuşsunuzdur, işte kendi üzerlerinde CPU'su olmayan bu cihazlar Dumb terminal-Aptal terminal olarak adladırılıyordu.
Zaman içinde mainframe'ler geliştiler, hard diskler kullanılmaya başlandı. Kullanıcılar, mainframe üzerindeki veriye erişebiliyorlardı. Ancak ulaşılan veri hala aynı bilgisayar üzerindeydi.
Mainframe'ler arasında veri paylaşımı fikri çok geçmeden ortaya çıktı. Ancak mainframe'ler genellikle birbirinden binlerce kilometre uzaktaydılar. Aynı bina içinde bulunan mainframe'ler ise çoğu zaman farklı üreticilerin cihazlarıydı ki, bu birbirlerinden çok farklı yapıda oldukları anlamına geliyordu.
Gerçek networkler varolmadan çok önce, bilim adamları farklı iki sistemin verilerini nasıl paylaşabileceklerini tasarlamaya başlamışlardı. Bir çok insan pratik manada ilk bilgisayar ağının ARPANET olduğunda birleşir. ARPANET Advanced Research Agency(ARPA) isimli kurum tarafından kuruldu. ARPA 1958 yılında kurulan ve Amerikan devleti için yüksek teknoloji projeleri üreten bir kurumdur . 1972 yılında ismi DARPA(Defence Advanced Research Agency) olarak değişti, 1993'te tekrar ARPA, 1996'da ise tekrar DARPA oldu. DARPA bilgisayar ağları ile ilgili dağınık haldeki yüzlerce projeyi bir araya toplayan ve bir form kazanmasını sağlayan kuruluştur. Bu kurum sayesinde ilk bilgisayar ağı projesi ve sonradan internet'in temelini oluşturacak TCP/IP ve benzeri teknolojiler geliştirildi.
Peki mainframe'lere ne oldu sorusu akla gelebilir. Aslında hiçbirşey olmadı ancak, 80'li yıllarla ortaya atılan "insanların evlerine ve küçük/orta ölçekli iş yerlerine bilgisayar alması fikri" ilk başta bazılarına "çılgınca" geldiyse de, IBM'in Personal Computer (PC) adıyla piyasaya sürdüğü "cihaz" yeni bir çığır açtı. Kısa zamanda çok değişik üreticiler IBM'in bu cihazının aynısı bilgisayarlar ürettiler. Bu bilgisayarları sıradan insanların da kullanabilmesi hatta üzerinde program yazılabilmesi için işletim sistemleri (DOS, Windows vs.) üretildi. Bu bilgisayarlarda kullanılan işlemci, disk, bellek ve diğer tüm bileşenler inanılmaz hızda gelişti ve yaygınlaştı.
Sonuçta PC veya mini-computer olarak anılan bu bilgisayarlar dünya üzerinde milyonlarcamilyarlarca adede ulaştı. Bu arada mainframeler de teknolojideki bu gelişmelerden nasiplerini aldılar ve ilk başta üretildikleri amaca hizmet etmeye devam ettiler ve hala ediyorlar. Belli bir kapasitenin üzerinde veri işleme ihtiyacı duyan firmalar hala veritabanlarını IBM'in As400 makinalarında veya benzeri mainframe sistemleri üzerinde tutuyorlar. Bunun yanında üniversitelerde ve araştırma kurumlarında kullanılan "süper bilgisayarları" da unutmamak gerekir.
PC'lerin çok yaygınlaşması sonucu, mainframe alamayacak/ihtiyaç duymayacak firmalara ağ imkanlarını sağlamak amacıyla mini-computer/PC ağ işletim sistemleri üretildi. Novell'in Netware işletim sistemi, Microsoft'un NT'si ve devamı olan Windows 2000 buna örnek verilebilir. PC'lerin CPU gücünün tavana vurması ve Windows 2000 gibi güçlü işletim sistemleri günün birinde belki mainframe'lerin sonu olabilir, tabii olmayabilir de :)
Bilgisayar ağlarının amacı nedir Bilgisayar ağlarını anlamanın ilk adımı en basit bir ağın bile çok kompleks bir yapıya sahip oduğunun kavranmasıdır. Bilgisayar ağlarının amacı genellikle söylendiği gibi veri paylaşımı değildir. Ancak paylaşım bilgisayar ağları için anahtar kelimedir.
Binlerce terminali olan bir mainframe düşünün, evet tüm bu terminaller mainframe'e ve üzerindeki dataya erişiyorlar, ancak veri hala tek bir bilgisayarın üstünde tutuluyor. Dolayısı ile buna ağ diyemeyiz.
Çünkü bir bilgisayar ağı en az iki bilgisayardan oluşur.
Neyi paylaşacağız Günümüzdeki normal bir ofis kullanıcısı için cevap hazır, "dosyaları ve yazıcıları, hımm..., bir de internete bağlanıyoruz biz ofiste...".
Oysa 60'lı yıllarda bilgisayar ağlarının tasarımı yapanlarlar için bu o kadar da açık değildi. Elbette veri paylaşımını istiyorlardı ama zaman içinde geliştirilecek yeni teknolojilere de uyum sağlayabilecek bir yapı kurmaları gerektiğini biliyorlardı. O zamanlar kimse WWW'i hayal bile edemezdi, ancak yarattıkları ağ teknolojisi, bugün bizim WWW'yi kullanmamızı sağlıyor.
Bilgisayar ağları, bilgisayarların kaynaklarını(resources) paylaşmalarını sağlar.
Bir kaynak bir cihazın diğerleriyle paylaşmak isteyebileceği herhangi bir şeydir. Kaynaklar'a örnek olarak hemen dosyalar, dizinler ve yazıcılar verilebilir. Ancak örneğin email mesajların iletilmesine yarayan bir kaynaktır. İnternet paylaşımında bir bilgisayarın internet bağlantısını paylaşıyoruz değil mi?
Sonuç olarak bilgisayar ağlarının amacı paylaşımdır. Ancak paylaşım sadece dosya ve yazıcılarla sınırlı değildir.
Sunucu - istemci (Server - client) Paylaşım konusunu biraz açıkladıktan sonra, peki kim paylaşıyor, kim bu paylaşımı kullanıyor sorusu akla gelebilir. En azından benim aklıma geldi, neyse, üzerindeki herhangi bir kaynağı paylaşan bilgisayara sunucu(server), bu kaynağa erişen cihaza da istemci(client) adı veriliyor.
Bir dakika, sunucu dediğin şey şu kapalı kapılar arkasında duran, milyon megabayt diski, zilyon megabayt belleği olan bilgisayarlar değil mi? Evet, bu tip bilgisayarlar sunucu olarak anılıyor ve muhtemelende öyleler. Ancak bir bilgisayarı sunucu yapan şey, üzerindeki donanım miktarı, hatta özel bir donanım olup olmaması değil, üzerindeki bir kaynağı paylaştırmasıdır. Doğal olarak üzerindeki kaynağı paylaştıran ve bir çok kullanıcının hizmetine sunan bir bilgisayar, talebi karşılamak için daha "güçlü" olmalıdır. Ancak akılda tutulması gereken şey şudur; sunucu'yu sunucu yapan üzerindeki donanım değil, kaynaklarını paylaştırmasını sağlayan yazılımdır (çoğunlukla işletim sistemi veya işletim sistemi içindeki bir yazılım modülü).
Eğer bir sunucu yazılımı çalıştıran bilgisayar, sunucu oluyorsa bir ağ üzerinde birden fazla sunucu olabilir mi? Evet. Peki bir bilgisayar üzerinde birden fazla sunucu yazılımı çalıştırabilir mi? Evet, evet, evet...
Örneğin Windows 2000 veya Linux yüklü bir bilgisayar çok rahat 5-10 farklı sunucu programını çalıştırabilir. Dosya sunucusu, e-mail, web, yazıcı...
Bir bilgisayar hem sunucu hem de istemci olabilir. Novell Netware hariç tüm işletim sistemleri (Windows, Unix/Linux ve Machintosh işletim sistemleri) bilgisayarın hem sunucu hem de istemci olarak çalışmasını sağlayabilir. Çoğu ofis ortamında bilgisayarlar hem sunucu hem de istemci olarak çalışırlar. Üzerindeki yazıcıyı paylaştırmış PC2 bilgisayarı, PC1 üzerindeki dosyalara erişirken, PC1'de PC2'nin yazıcısını kullanıyorsa, bu iki bilgisayarda hem sunucu hem de istemci olarak görev yapıyor demektir. Oysa PC3 sadece bu iki bilgisayarın paylaştırdığı kaynaklara erişiyor, kendi üzerinde paylaşılmış bir kaynak yoksa, sadece istemci durumda demektir.
Kaynaklar kolayca kullanılabilir olmalı Sunucu paylaştırıyor, istemci de kullanıyor. Ancak istemci bilgisayar(ve onu kullanan vatandaş) paylaşılan kaynağı gerçekte nasıl kullanacaklar. Yani bu karmaşık yapı nasıl son kullanıcı için problemsizce hizmet edecek?
Çözüm: paylaşılan kaynak, istemci üzerinde sanki istemci bilgisayara ait yerel bir cihaz gibi görülmeli, böylece istemci üzerinde çalışan programların her biri(yazı editörü, dosya yönetisici-Word, Windows Explorer...) ağmış, sunucuymuş vs. uğraşmadan, sanki o bilgisayarın kendi kaynağına erişiyor gibi bu cihazı kullanabilmelidir.
Tabii ki, bu paylaşılan kaynak istemci üzerinde ufak bir farkla gözükmeli ki normal aygıtlardan ayrılabilsin. Mesela azıcık farklı bir ikonla..
Sonuç olarak... Bilgisayar ağlarının amacı paylaşımdır. Bilgisayar ağı en az iki cihazdan oluşur. Kaynaklarını paylaşan cihaz sunucu, paylaşılan kaynağı kullanan cihaz ise istemci olarak adlandırılır.
Bir bilgisayarda aynı anda bir çok sunucu yazılımı çalışabilir. Bir bilgisayar hem sunucu hem de istemci olabilir.