Prof. Dr. Sinsi
|
Bilgisayar Ağları Nasıl Çalışır
Bilgisayar Ağları Nasıl Çalışır
İsterseniz günümüzde hemen hemen her ofiste görebileceğiniz bir bilgisayar ağını ele alarak, bilgisayar ağlarının temel çalışma prensiplerini inceleyelim
Firmanın ismi Ak Tic olsun Ofiste Windows 2000 yüklü bilgisayarlar var Windows 2000 ağ özelliklerini sağlayan bir işletim sistemi, bu da onu OS(Operating System-İşletim Sistemi) olmanın yanısıra bir de NOS(Network Operating System-Ağ İşletim Sistemi) yapıyor Ak Tic 'in bilgisayar ağı en popüler kablolama şekli olan Unshielded Twisted Pair(UTP) kullanıyor
Ancak bu bölümde anlatılacaklar ne işletim sistemiyle ne de kablo tipiyle alakalı değil Dünyada farklı ağ işletim sistemleri ve kablolamalar mevcut Bu yazıda sadece bir bilgisayar ağını meydana getiren değişik yazılım ve donanım bileşenleri ve herbirinin işlevleri üzerinde genel bir görüş edinmenizi sağlamak istiyorum Bu nedenle değişik ağlar değişik kablo tipleri veya işletim sistemleri kullansalar da, burada anlatılacaklar prensip olarak tüm ağ sistemlerini kapsayacaktır
Yanda Selin Hn ve Ayşe Hn 'ı görüyorsunuz Tahmin edebileceğiniz gibi onlar AK Tic çalışanları Ayşe ve Selin'in işleri gereği sık sık birbirlerinin bilgisayarındaki dosyaları kullanmaları gerekiyor Örneğin Ayşe Excel'de aylık satış raporunu henüz bitirdi ve Selin'in de kontrol etmesini istiyor
Ayşe'nin yapabileceği ilk şey, klasik yöntemi kullanmak: Dosyayı diskete kopyala, ayağa kalk, disketi Selin'e ver Ancak bilgisayar ağı Selin'in yerinden kalkmadan Ayşe'nin bilgisayarına erişmesini ve bu dosyayı kendi bilgisayarına kopyalamasını sağlıyor Şimdi nasıl oluyor bu işler ona bakalım  
Kablo
Ağ ilk başta bilgisayarlar arasında fiziksel bir bağlantıya ihtiyaç duyar Böylece veri bitleri bilgisayarlar arasında aktarılabilir Günümüzde bir çok ağ altta gördüğünüze benzer unshielded twisted pair-kaplamasız dolanmış çift (UTP) kabloyu kullanıyor Bu tip kablo 4 veya 8 telden oluşuyor ve bu teller birbirine dolanmış çiftler halinde Unutmayın farklı kablo tipleri, hatta kablosuz teknolojiler de kullanılabilir, burada amacımız, ağ'ın çalışabilmesi için veriyi aktaracak bir ortama ihtiyacı olduğunu kavramanız
Hub
Bir diğer ağ bileşeni ise hub Ağa bağlı her bilgisayardan hub'a bir kablo gidiyor Hub bir uçtan gelen bilgiyi, gitmesi gereken uca yollamıyor, ancak tüm uçlara birden yolluyor(bu önemli bir bilgi, ilerde çok karşımıza çıkacak) Bu durumda her bilgisayar hub'dan gelen verinin kendine ait olup olmadığını tespit etmek zorunda
Yanda bir hub görüyorsunuz İki sarı ve bir gri kablo bilgisayarlardan geliyor Renklerin hiçbir önemi yok Kablolar değişik renklerde olabilir En sağdaki siyah kablo dikkatinizi çektiyse, çekmediyse de ben çektim işte şimdi, bu kablo da hub'ın çalışmasını sağlayan elektik bağlantısı, yani adaptörden geliyor
Hub'lar aktif cihazlardır, yani çalışmak için elektriğe ihtiyaç duyarlar
Tekrar belirtiyorum, biz burada hub kullanan bir ağ sistemini örnek aldık, farklı ağ sistemleri de mevcut Ancak birazdan okuyacaklarınız hepsi için geçerli
Ağ kartı
Ağın çalışmasını sağlayan diğer bir bileşen ise Network Interface Card(NIC) - Ağ Kartı'dır Sık sık ethernet kartı deriz, aslında ağ kartı demek daha doğru Bu bir "generic name" haline gelmiş Nasıl margarin yerine "sana yağ" diyorsak, ağ kartları içinde "ethernet" türü tartışmasız en yaygın tür olduğu için, ağ kartı ethernet kartına dönüşmüş Ancak başka ağ teknolojilerinde çalışmak üzere üretilmiş ağ kartları da mevcut Sonuç olarak ağ kartı genel bir tanım, ethernet ise bir alt tür, ama en yaygın olanı Ağ kartları çok değişik tipte olabilirler ama Ak Tic 'in kullandıkları ve sizinde kullanacaklarınız mutemelen aşağıdakine benzeyecektir
Peki ağ kartının görevi ne? Bilgisayarlar verileri ikilik sayı sisteminde yani 1 ve 0'lar olarak işler ve saklarlar Ağ kartları da sayısal(dijital) veriyi elektrik, ışık veya radyo sinyalleri olarak diğer sistemlere iletme görevini yerine getirir Elektrik sinyallerini kullanan ağ kartları en yaygın tip olduğu için isterseniz onlarla devam edelim
Bilgisayarın devre kartları üzerinde saniyede milyonlarca küçük elektrik akımı oluşur Örneğin sabit diskten okuma yapılırken, sabit disk'ten çıkan elektrik sinyalleri disk kablosundan ana karta girer Oradan da CPU ve bellek modüllerine ulaşır
Sinyaller bilgisayarın kasası içindeki devreler üzerinde nispeten problemsizce seyahat eder Ancak bu sinyaller bilgisayarın dışına çıktıklarında ister istemez daha uzun mesafelerde yol almak zorundadır Bu aslında oldukça zor bir iştir Çünkü yüksek frekanstaki zayıf elektrik sinyallari dış etkenlere karşı çok hassastır Ağ kartları işte bu verinin iletiminde oldukça iyi bir iş çıkarırlar ve sinyallerin bilgisayarın veri yollarından ağ kablosuna aktarılması(veri gönderirken) ve kablodan tekrar bilgisayarın veri yoluna aktarılması(veri alırken) işini görürler Dolayısı ile ağ kartının ilk göze çarpan görevi bilgisayarın veri yollarındaki veriyi dış dünyaya aktarmaktır
Ancak ağ kartlarının görevi bununla bitmez Ağ kartları bilgisayarın ağ üzerindeki kimliğini de temsil ederler Kimlikten ne mi kastediyorum, şu örneği düşünelim isterseniz İki bilgisayarı üzerlerindeki seri veya paralel port'lardan bağladığımızı düşünelim İki bilgisayarı haberleştirmenin en basit yolu budur Böyle bir bağlantıda sadece iki bilgisayar söz konusudur Bir bilgisayarın veri gönderim portu diğerinin alım portuna bağlıdır Diğerinin gönderimi de ötekinin alım portuna Ve en basit yöntemlerle bir taraf gönderilecek veriyi gönderim portuna koyar, karşı tarafta alım portundan bunu okur
Ancak ikiden fazla bilgisayarın bağlı olduğu bir sistemde ister istemez şu soru akla gelir, bir taraf veriyi istediği bilgisayara nasıl ulaştıracak?
Değişik ağ sistemleri (ethernet, token-ring) bu soruya değişik cevap vermiştir Örneğin Token-Ring ağlarında aradaki fiziksel bağlantı star olsa da, yani tüm makinalardan çıkan birer kablo ortadaki bir hub'a girse de, sistem çalışırken ağ üzerinde Token/Jeton adı verilen bir sinyal dolaşır Bu sinyal sırayla tüm terminalleri dolaşır İşte "Ring" buradan gelmektedir Bir terminal veri göndermek istediğinde boş token sinyalinin kendine gelmesini bekler Token gelince yollayacağı veriyi token mesajına iliştirir Mesaj üzerinde alıcı ve gönderen makinanın ağ kartı adresi de bulunmaktadır Dolu token sırayla terminalleri dolaşmaya devam eder Her makina gelen dolu token'e bakar ancak sadece "alıcı" adresi kendi adresi ise veriyi alır ve geriye onay mesajını yollar Token onay mesajını gönderen makinaya ulaştırdığında artık veri gönderilmiştir Token boşalmıştır ve ring yapmaya devam eder Tabii bu işlem saniyede milyonlarca kez gerçekleşir Bu sistemde diğer makinaların nasıl kendi sıralarını beklediklerine dikkat ediniz
Ethernet ise farklı bir çözüm sunar Ethernet ağında ağ kartı veri göndermeden önce kabloyu kontrol eder, kimse kullanmıyorsa, alıcı ve gönderen makinanın ağ kartı adresinin yazılı olduğu veriyi kabloya salar Bu veri tüm terminaller tarafından alınır Ancak sadece "alıcı" adresi kendi adresi olan makina bu veriyi işler diğerleri göz ardı eder
Token-Ring ve Ethernetin kabloyu kullanma sırası ve verinin aktarım yönteminde farklılaştığını gördük Ancak her iki sistemde de ağ kartlarının, ağ üzerinde eşi benzeri olmayan, bir adrese sahip olduklarına dikkat ediniz Sistemler birbirini işte bu benzersiz kimlik ile birbirinden ayırıyorlar Ve bu adrese MAC adresi diyoruz
MAC adresi
Her ağ kartı içinde üretilirken kaydedilmiş ve dündaya bir eşi olmayan bir numara mevcuttur Media access control address (MAC) olarak adlandırılan bu adres 48 bit'tir
Ağ kartları bir diğer ağ kartına veri yollarken alıcıyı diğerlerinden ayırmak için bu MAC adresini kullanır
Ağ kartı üreten firmalar, önce IEEE (Institue of Electrical and Electronics Engineers) isimli kuruma başvurur ve 24 bit'lik bir üretici kodu(her üreticiye farklı kod veriliyor) alırlar Sonra ürettikleri her karta ilk 24 biti üretici kodu, son 24 biti ise her kartta farklı olacak şekilde MAC adresini koyarlar
Bir ağ kartı MAC adresi şu şekilde olabilir:
MAC Adresi
110011110110111011101111 011101111011011101110001
Üretici kodu Kart seri numarası
Tabii bu şekilde ikili sistemdeki sayıların okunması insanlar için zor olduğundan MAC adresleri onaltılı sayı sistemine çevrilerek ifade edilir Tipik bir MAC adresi 00-50-05-1A-00-AF şeklindedir Hexadecimal(yani 16'lı sayı sisteminde) olan bu adreste her bir rakam (mesela B) 4 bite karşılık gelir
Böylece 12x4=48'dir Buna göre ilk 6 rakam yani 00-50-05 üretici kodu, son 6 rakam ise bu kartın seri numarasıdır MAC adresi bütün olarak değerlendirildiğinde dünyada üretilen her ağ kartı farklı bir MAC adresine sahip demektir
Ağ kartları istekte bulunan her yazılıma MAC adreslerini bildirirler Eğer Win9x kullanıyorsanız Winipcfg programı ile ağ kartınızın MAC adresini görebilirsiniz
Adapter Address MAC adresini gösteriyor
MAC adresi ağ kartını satın aldığınıza zaten kartın üstündeki bir elektronik çipe kodlanmış haldedir Bu adres normalde değiştirilemez(ancak son dönemde bu işi yapan programlar ortaya çıktı) Ancak MAC adresini değiştirmeniz, hatta ne olduğunu bilmeniz bile çoğu zaman gereksizdir
Veri paketleri(Frame)
Ağ kartları veriyi kablo üzerinde sinyaller halinde iletiyor dedik, peki sinyaller dolayısıyla veri, karşı tarafa nasıl ulaşıyor?
Karşıya yollanacak veri, örneğin ağ üzerinden karşı makinaya kopyalanan bir World dosyası, tek parça halinde gönderilmez Sabit boyutta küçük parçalara bölünür ve bu parçaralara da bazı ek bilgiler eklenerek gönderilir Bu veri blokları da veri paketi(frame veya ethernet frame) olarak adlandırılır
Veriler ağ üzerinden sabit yapıda paketler(frame) halinde iletilirler dedik, aslında bu paket aktarılacak veriyi ve diğer gerekli bilgileri içeren bir sinyal bloğudur Ağ kartı bu veri paketlerini oluşturur, yollar ve gelen paketleri alıp işler
İsterseniz ağ kartını aşağıdaki gibi bir karikatürle temsil edelim Veri paketleri burada hazırlanıp yollanıyor ve gelen paketler işleniyor Ağ kartı içinde bu işleri yapan bir elemanımız da olsun(ismi Ethem-doğal olarak   )
İşte MAC adresi bu paketler oluşturulurken önem kazanır Altta diğer yazılı kaynaklarda karşınıza çıkabilecek klasik bir paket tasviri görüyorsunuz Her bir bölüm bir ve sıfırlardan oluşuyor ve paketin(frame'in) bir parçası
Ağ kartı veri paketi (Frame) yapısı
1110001011011 11011011101100 110101101110110111101110001110 111011 1101
Alıcının MAC adresi Göndrenin MAC adresi Veri CRC
Frame'in tamamı aslında bir ve sıfırlardan, yani elektrik sinyallerinden oluşuyor Bu sinyaller dizesinin ilk bölümü frame'i alması gereken bilgisayarın MAC adresi, sonraki bölüm ise gönderen ağ kartının kendi MAC adresidir Daha sonra gönderilmeye çalışılan esas veri bölümü geliyor En sonda da CRC(Cyclic Redundancy Check) kodu bulunuyor
Peki CRC de ne oluyor derseniz, CRC alıcının paketin yolda bozulup bozulmadığını anlaması için kullandığı bir kod Sistem kabaca şöyle çalışıyor; yollanacak veri yollanmadan önce gönderen ağ kartı tarafından matematiksel bir işlemden geçiriliyor İşlemin sonucu CRC kodu olarak veri ile beraber yollanıyor Alıcı, aldığı veriyi aynı matematiksel işlemden geçiriyor, elde ettiği sonuç CRC ile aynı ise, paket yolda bir tek bit'i bile değişmeden alıcıya ulaşmış demektir
Veri ağ kablosu üzerinden giderken çevredeki elektromanyetik alanlardan (motorlar, lambalar, mıknatıslar, elektrik kabloları vs ) etkilenip, yola 1 olarak çıkan bazı bitler 0, 0 olarak çıkan bazı bit'lerde 1 olarak karşı tarafa ulaşabilir Sonuçta bir bit'in bile yolda bozulması sizin "mekiğin iniş hızı=250 km/s" olarak yolladğınız verinin karşı tarafta "canım yoğurtlu ıspanak çekti" şeklinde anlaşılmasına neden olabilir
Eğer bir veri paketi bozuk olarak gelmişse, alıcı aynı paketin tekrar yollanmasını isteyecektir Ancak bu işlem ağ kartında değil, daha üst bir yazılım katmanında gerçekleşir(protokoller ile ilgili ilerleyen sayfalarda buna değineceğiz)
Peki yolladığımız veri nasıl bir şey? Doğrusu bu ne bizi ne de ağ kartını hiç ilgilendirmiyor Yollanan veri bir word dökümanının karşıda yazdırılacak yazıcı çıktısı olabileceği gibi, Britney Spears'ın fotografı da olabilir Ağ kartı bununla ilgilenmez, ağ kartı, işletim sisteminde çalışan kendine ait sürücüsünün(driver) kendisine ilettiği veriyi gitmesi gereken sisteme yolar Veri'nin ne olduğu veya karşı tarafa ulaşınca ne yapılacağı, diğer programların işidir
Her bir veri paketi belli boyutta veriyi aktarabilir Değişik ağ sistemlerinin kullandığı paket yapıları farklı olabilir Ancak ortalama olarak her bir paket 1500 Byte veri taşır O zaman hemen şu soru akla gelebilir: Peki yollanan veri (dosya, yazıcı çıktısı, e-mail her neyse  ) 1500 Byte'tan büyükse ne olur? Bu durumda yollayıcı sistemin yazılımı yollanacak veriyi paket boyutunda parçalara böler Alıcı taraftaki yazılım ise bu paketleri birleştirerek yollanan veriyi bütün olarak elde eder Bu parçalama ve birleştirme işi ağ kartına ait değildir Gönderilecek veri ağ kartına üst yazılımlar tarafından parçalanmış olarak gelir Ağ kartına gelen paket boyutundaki veri blokları birleştirirken kullanılacak sıralama bilgisini de içerdiğinden, alıcı taraftaki yazılım kendi ağ kartından gelen paketleri birleştirebilir
Ağ üzerine yollanan her paket tüm bilgisayarlara ulaşır Her bir ağ kartı kendisine gelen bu paketi kontrol eder Alıcı MAC adresi eğer kendisinin MAC adresi ise "demek ki bu paket bana gelmiş" der ve işleme koyar Ancak tersi söz konusu ise, bu paketi siler Bu nokta çok önemli olduğu için tekrar etmek istiyorum(bu ilerde çok karşımıza çıkacak çünkü) ağ üzerinden yollanan (aslında ağ üzerine bırakılan demek daha doğru) her paket(frame) tüm bilgisayarların ağ kartına ulaşır ama sadece gerçek alıcısı tarafından işlenir, diğerleri ise bu paketi kontrol edip kendilerine gelmediğini anlayınca göz ardı ederler Bu da demek oluyor ki ethernet ağlarında aynı anda sadece bir makina veri gönderebilir İleride bunu daha derin inceleyeceğiz
|