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.
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.
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:
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.
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ı.
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. Adım adım verinin aktarımı
Temel kavramları öğrendikten sonra isterseniz basit bir ağ iletişimi nasıl
oluyor onu inceleyelim. Bir bilgisayar diğerine ulaşmak istediğinde elbette
önce karşı tarafın kim olduğunu bilmesi gerekir. Biz bilgisayar kullanıcıları
olarak karşı bilgisayarın ya ismini, ya da (eğer TCP/IP kullanılıyorsa) IP
adresini biliyoruz demektir. Veya ağ komşularım'a girdiğimiz anda, "ağ
üzerindeki tüm bilgisayarları bana göster" komutunu vererek "ağ
komşularımızı" görürüz. Kullanıcı isterse belli bir IP adresiyle, isterse de bilgisayar ismi ile
iletişime geçmek istesin, ağ kartları sadece MAC adresleriyle haberleşebilirler. Siz 192.168.0.56 IP'li bilgisayara bir dosya kopyalamak istediğinizde ne
olur? Ağ kartı eğer daha önceden bu IP'ye sahip bilgisayar ile iletişim
kurmuşsa zaten MAC de adresini biliyor demektir ve bunu kullanır. Bilmiyorsa
(örneğin bilgisayarınız ilk açıldığı anda) ağa bir Broadcast(Genel
yayın) mesajı yollar. Broadcast mesajı şu şekildedir "Eğer IP
adresin 192.168.0.56 ise bana MAC adresini bildir.". Bu mesaj
ağdaki tüm sistemlere ulaşır. Her bir sistem Broadcast mesajını alır ve
inceler, eğer kendi IP adresi sorulan IP ise, MAC adresini Broadcast'i
yollayan ağ kartına bildirir. Artık veri aktarımına geçilebilir.
Veri ve CRC pakete ekleniyor. Pakete gönderen ve alıcı MAC adresleri
yazılıyor.
Ağ'ı kullanan başka birisi var mı diye kontrol edildikten sonra paket
yollanıyor.
Alıcı ağ kartı MAC gelen paketin MAC adresini kontrol ediyor, kendisine
gelmişse işliyor, değilse siliyor.
Alıcı ağ kartı paketin kendisine geldiğini anlayınca önce CRC kodunu
kullanarak veri yolda bozulmuş mu kontrol eder. Eğer problem yoksa,
frame/paket bilgisini (MAC adresleri, CRC vs.) temizleyerek, saf veriyi
işletim sistemine iletir. Protokol
Aynı hub'a bağlı, aynı frame/paket tipini kullanan bilgisayarlar arasında
veri aktarımını gördük. Peki Selin Hn. (tamam söylüyorum zayıf olanı)
internete bağlanmak istediğinde ne olacak? İnternete telefon hattını
kullanarak bağlanacak, oysa ne modem ne de telefon sistemi MAC adresi
kullanmaz. Demek oluyor ki; MAC adresinin ötesinde her sisteme farklı bir kimlik
sağlayan, her tip ağ kartı, frame yapısı ve donanım ile çalışabilecek bir
yazılıma/tanımlamaya veya kimlik bilgisine ihtiyacımız var. Bu özel yazılıma ağ protokolü diyoruz. Ağ protokolü her
sisteme tekil bir kimlik sağlamanın ötesinde, işlerin nasıl yürütüleceğini
belirleyen bir kurallar dizesini de içerir. Bundan önce eğer yollanacak veri
ağ paketinin boyutundan büyükse, işletim sisteminin veriyi parçalara ayrılmış
halde ağ kartına yolladığını, ağ kartının verinin içeriği ve bütünlüğüyle hiç
ilgilenmeden ne geliyorsa yolladığını söylemiştik. İşte verinin paketlere
bölünmesi ve alıcı tarafa da birleştirilmesi gibi bir çok iş de ağ
protokolünün görevidir. Değişik ağ sistemlerinin kullandığı değişik protokol tipleri vardır.
Ancak ağ üzerindeki bilgisayarlarda aynı tip protokolün yüklü olması
gerektiği sanırım gayet açık. Bu protokoller içinde öne çıkan ve en yaygın
kullanıma sahip olanı şüphesiz TCP/IP(Transmit Control Protocol/Internet
Protocol)'dir. TCP/IP için "protokol" kelimesi yerine "bir
protokoller grubudur" demek daha doğrudur. TCP/IP'nin IP bölümü şu an
bizim ilgilendiğimiz ağ protolü görevini gören kısmıdır. TCP'ye sonra bakacağız. IP'nin görevi basitçe veri paketinin gitmesi gereken sisteme ulaşmasını
sağlamaktır(ee MAC'de aynı işe yaramıyor mu?.... dur hele anlatıyo işte.) .
IP bunu ağa dahil her sisteme tekil bir adres vererek yapar. İşte bir IP
adresi: 192.168.0.1 IP adresleri 0-255 arası değerler alabilecek 4 bölümden oluşur. Bölümler
arasında nokta işareti bulunur. Aslında bu dört bölümün her biri 8 bitlik bir
sayıdır. Bilgisayarların ikili sayı sistemi ile, yani 1 ve 0'lar ile
çalıştığını tekrar hatırlayın. Ağ üzerinde her cihaz farklı bir IP adresine sahip olmak zorundadır. IP
sistemi ile, donanım ve frame tipi ne olursa olsun sistemler arasında veri
aktarımı yapılabilir. Bu durumda karşımıza gönderen ve alıcının IP
adreslerini içeren ikinci bir frame/paket çıkıyor. Yani paket içinde paket
olayı... Paket paket içinde...
Ağ protokolü daha üst katmanlardan gelen veriyi ağ kartına yollamadan önce
veriyi kendi paketinin içine yerleştirir ve ağ kartına yollar. Ağ kartı
açısından ağ protokolünden gelen bu IP paketi sıradan bir veriden
farksızdır(hatırlayın: ağ kartları verinin içeriği ile ilgilenmezler). Ağ
kartıda veriyi önceden anlatıldığı gibi kendi paketi içine yerleştirip
yollar. Aşağıda çok basit indirgenmiş bir IP paketi görüyorsunuz.
İsterseniz IP paketini bir zarf ile temsil edelim, ağ kartının paketi
eskisi gibi kalsın..
Ağ üzerinde her sistemin MAC ve IP adresi:
Şöyle bir soru akla gelebilir: paket içinde paket olayına veya IP
adreslerine ne gerek var, bilgisayarları birbirinden ayırmak için MAC adresi
yok mu zaten? Var olmasına var ama bakın neler oluyor... Hatırlarsanız Selin Hn. internete bağlanacaktı, bunu yapabilmek için AK
Tic.'in bilgisayar ağını internete bağlamamız gerekiyor. Bu bağlantıyı
sağlayacak cihazın adı Router(Yönlendirici)'dır. Yönlendiriciler faklı "ağ paketi yapısı" kullanan iki ağı
birbirine bağlamaya yararlar. Tipik bir yönlendiricinin iki bağlantı noktası
bulunur. Bu bağlantılardan birisi yerel ağa yapılacak bağlantıdır. Bu
bağlantı noktası aslında yönlendirici içine yerleştirilmiş bildiğimiz bir ağ
kartıdır. Diğer bağlantı noktası ise yönlendiriciyi telefon hattına bağlamaya
yarar. Yani bu bağlantı noktası da aslında yönlendirici içine gömülü bir
modem'dir.
Yönlendiriciler faklı "ağ paketi yapısı" kullanan iki ağı
birbirine bağlamaya yararlar demiştik. Şimdi Selin Hn.'ın yerel ağı ethernet
sistemini kullanıyor. Oysa Selin Hn.'ın bilgisayarından çıkan veri paketi bu
yerel ağın ötesine geçip, telefon hatlarından internete ulaşmak zorunda. Oysa
telefon hatları ve ötesindeki internet yapısında MAC adresi veya ethernetin
frame yapısı geçerli değil. İşte bu noktada IP adresi devreye giriyor. Yönlendirici "ağ paketi" içinde bir "IP paketi"
aldığında, "ağ paketini" kırpar(MAC adresleri CRC vs.). Geriye
kalan IP paketini ise telefon şebekesinin kullandığı paket yapısı içine
yerleştirir ve yollar. İşte bu noktada IP paketinin ve IP adresinin ne işe yaradığını görüyoruz.
Yönlendirici ağ paketi bilgilerini yok edince, veriyi yollayan ve alacak olan
sistemleri tanımlayacak ayrı bir bilgiye ihtiyaç duyulur. Evet, evet, IP
bilgisine...
Eğer internetle işimiz yoksa, basit bir yerel ağ kuracaksak TCP/IP
kullanmak zorunda mıyız? Hayır. Kullanabileceğiniz farklı protokoller var.
Hatta bazı protokoller hiç bir ayar yapmadan her bilgisayara yüklediğiniz
anda çalışır (NETBeui protokolü mesela). Oysa TCP/IP kullandığımızda en başta
IP adreslerinin girilmesi gibi daha bir çok ayar yapmamız gerekecektir. Diğer
protokollerin tek problemleri internet üzerinde çalışmamalarıdır. Yani
internet kullanacaksanız (veya sadece yerel ağ üzerinde olsa bile IP ile
çalışan programlar kullanacaksanız) TCP/IP'ye ihtiyacınız var demektir. Günümüzde hemen hemen her ağ'da internet bağlantısı gerekiyor. Bu durumda
ister istemez TCP/IP yükleniyor. Onu bir kere yükledikten sonra ikinci bir
protokolü yüklemenin ise anlamı kalmıyor. Böl parçala yolla-TCP
Ağ üzerinde yollanacak veri çoğu zaman bir ağ paketinin taşıyabileceğinden
fazladır. Bu nedenle verinin yollanmadan önce parçalanması gerekir. Ağ
protokolü daha üst katmanlardan kendisine gelen veriyi(bir dosya, web
sayfası, yazdırma işi....) ağ paketi boyutunda parçalara böler, alıcının
tekrar birleştirebilmesi için parçaları organize eder, yollar ve her bir
paketin karşıya hatasız ulaşıp ulaşmadığını kontrol eder. Alıcı sistemin protokolü gelen paket serisini algılar, paketleri
birleştirerek esas veriyi tekrar elde eder. TCP/IP'nin TCP(Transmit control protocol-gönderim kontrol protokülü) bu
işi yapar. Nasıl mı yapar, tabii ki IP paketinin içine başka bir paket
koyarak.. Bir TCP paketi aşağıdaki bölümlerden oluşur.
Alıcı sistem sıra numarasını kullanarak paketleri doğru sırada
birleştirebilir(paketler yolda bozulma ve tekrar yollama sonucu farklı sırada
gelmiş olsa bile). Aynı anda birçok iş yapmak:Oturumlar
Veri paketlerini bölme ve birleştirme işini yapan bir yazılım olduğunu
öğrendikten sonra sıra geldi ağların başka bir yönünü incelemeye.
Gördüğünüz gibi Ayşe'nin bilgisayarına bir yazıcı bağlı ve tüm kullanılar
tarafından kullanılabiliyor. Selin Ayşe'nin Excel dosyasına bakarken, Ali'de
aynı anda Ayşe'nin yazıcısını kullanıyor olabilir. Ayşe'nin sistemi gelen bu istekleri gerekli programlara veya donanımlara
ulaştırmak zorunda. Diğer taraftan istekte bulunan bilgisayarda önce karşı
tarafa bağlanıp, isteğin yerine getirilip getirilemeyeceğini kontrol etmek
zorunda. Bunları yapan katmana oturum(session) katmanı diyoruz. Bu katmanın görevi bir
bilgisayarın aynı anda birden fazla bilgisayarla iletişim içinde olmasını
sağlamaktır. Ortak veri biçimleri kullanalım, dost kalalım!
Eskiden her program sadece ve ancak kendi oluşturduğu dosyayı
kullanabiliyordu. Örneğin A firmasında X kelime işlemcisi kullanılıyorsa,
burada oluşturulmuş bir dosyayı B firmasının kullandığı Y kelime işlemcisinde
açmak mümkün değildi. Yani MS Word'ün 4. versiyonu ile yazılmış bir yazı,
Corel'in kelime işlemcisi ile uyumlu değildi. Oysa bugün ister Microsoft Word kullanalım, istersek Linux altında çalışan
Open Office kullanalım, eğer yazımızı DOC formatında kaydedersek karşı taraf
kullandığı kelime işlemci ve işletim sisteminden bağımsız olarak bu dosyayı
kullanabilir. Ayrıca işletim sistemleri verileri kaydederken ve işlerken farklı
teknikler kullanabilirler. Örneğin DOS ve Windows 95,98,ME metinleri 8 bit
olarak (ASCII) kaydeder. Ancak Windows 2000, NT ve XP 16 bit Unicode
sistemini kullanır. Buna göre bir Win9x makinası A harfini 01000001
olarak kayıt edecektir. Windows 2000, NT veya XP ise 0000000010000001 olarak
kaydedecektir. Tabii ki bilgisayarı kullanan vatandaş sadece A harfiyle
ilgilenir. İşte ağ'ı oluşturan katmanlardan birisi olan sunum(presentation) katmanı
bu noktada devreye girer. Sunum katmanının görevi değişik sistemler arasında
olabilecek bu gibi farklılıkları ortadan kaldırmaktır. Ağ üzerinde
eriştiğiniz bilgisayarın işletim sistemi, kullandığı dosya yapısı önemli
değildir. Örneğin W9x ailesi NTFS dosya formatını okuyamaz. W9x çalışan bir
makinaya NTFS formatlı ek bir disk taksanız, windows içinden bu diske
ulaşamazsınız. Oysa, bir W9x makinası ağ üzerinden NTFS disk kullanan bir
Windows 2000, NT veya XP makinasının diskine ulaşabilir. Ağ programları
Bir kullanıcı ağ üzerinde çalışırken şimdiye kadar anlatılanların
hiçbirisini görmez. Ağların güzel yanıda budur zaten, bu kadar karmaşık bir
işlemi, bu kadar sessizce halledebilmek... Ancak bilgisayar kullanıcısı ağın son parçasını kesinlikle görür. Kullandığı
ağ programını. Ağ programı deyince "Allah Allah ben niye görmedim bunu
şimdiye kadar" diye korkmayın. Ağ programına en basit örnek Windows
Explorer'dir. Ya da namı diğer "Bilgisayarım". Bilgisarım'ı açıp,
bir ağ sürücüsüne çift tıkladığınızda ağı kullanmış olmuyor musunuz? Aynı
şekilde Web'de sörf yaparken de IE veya Netscape kullanıyoruz. E-mail için
farklı bir programımız var. Sonuç olarak kullanıcılar ağ'ı bir program
vasıtasıyla kullanılar. Ağı oluşturan en son bileşen bu programdır. Ağ programları kendi içinde veri şifreleme, kullanıcı isminin kontrolü
gibi özellikler barındırabilirler. Bir önceki başlık altında incelediğimiz
sunum katmanının bir çok görevi bu programlar tarafından da yapılabilir. Selin Ayşe'nin Excel dosyasını nasıl kendi bilgisayarına kopyaladı?
Bu noktaya kadar adım adım bir ağı oluşturan değişik bileşenleri
inceledik. İsterseniz şimdi Selin'in Ayşe'nin bilgisayarından Excel
dosyasını nasıl kendi bilgisayarına kopyaladığını adım adım görelim. Selin
önce "Computers Near Me" ile ağ üzerindeki diğer bilgisayarları
gördü.
Selin ve Ayşe aynı Excel versiyonunu kullandıkları için uyumsuz dosya
formatı söz konusu değil. Bu ağda veri şifreleme yok ancak kullanıcı adları
kontrol ediliyor. Selin Ayşe'nin bilgisayarına çift tıkladığı anda iki sistem
haberleşmeye başlıyorlar. Ayşe'nin bilgisayarı kendi kullanıcı
veritabanını kontrol ederek Selin kullanıcısının bu bilgisayar üzerinde ne
gibi haklara sahip olduğunu kontrol ediyor. Bu esnada iki bilgisayar arasında
ilk oturum açılmış oluyor. Selin dosyayı Ayşe'nin diski içinde buluyor ve
sürükleyip kendi masaüstüne bırakarak kopyalama işlemini başlatıyor.
Bu basit hareket arka planda bir çok işlemi tetikliyor. Önce Ayşe'nin ağ
protokolü üst katmandan kendisine gelen bu dosyayı küçük parçalara ayırıyor.
Her parçaya da bir numara veriyor ki, Selin'in bilgisayarı bu parçaları
tekrar birleştirebilsin.
Daha sonra her bir parçaya Selin'in ve Ayşe'nin IP adresi ekleniyor.
Paketler artık Ayşe'nin ağ kartına gitmeye hazır. Ağ kartı bu IP
paketlerini bu sefer kendi ağ paketinin içine koyuyor ve ağ paketinin üstüne
de hem kendi MAC adresini, hem de Selin'in ağ kartının MAC adresini ekliyor.
Tabii CRC kodunu her paket için oluşturup pakete dahil etmeyi de unutmuyor.
Ayşe'nin ağ kartı her bir paketi hazır hale getirdiğinde o anda kabloyu
bir kullanan var mı(ağın genelinde bir trafik var mı) diye kontrol ettikten
sonra kablo boşta ise paketi hub'a yolluyor. Paket hub'a ordan da diğer tüm bilgisayarlara ulaşıyor. Ancak sadece
Selin'in makinası gelen paketi işleme alıyor. CRC kodunu kullanarak
"paket sağlıklı ulaştı mı" diye kontrol ettikten sonra ağ paketini
açıp(yani MAC adresi ve CRC kodu gibi bilgileri temizleyip) içindeki veriyi
(IP paketi) bir üst katmana yani ağ protokolüne yolluyor.
Artık Selin'in sistemi(TCP) gelen paketleri birleştirip Excel dosyasını
bütün hale getirmeye başlıyor. Eğer paketlerden birisi ulaşmamışsa, Ayşe'nin
bilgisayarından o paketi tekrar göndermesini istiyor.
Bu bölümde TCP'nin çalıştığını sanırım anladınız. Excel dökümanı bir bütün
halinde alındıktan sonra dosya gerekli yazılıma aktarılıyor. Burada da dosya
kopyalarken Selin'in kullandığı Windows Explorer'den
bahsediyoruz("Computers Near Me" Windows Explorer'in bir
bölümüdür). Dosya Selin'in masaüstünde belirdiği anda ağ bileşenleri bu işlem için
açılan oturumu kapatarak bir sonraki işleme hazırlanıyorlar. Tüm bu işlemler arka planda olurken, Selin'in dosyayı kopyalanırken
gördüğü tek şey havada uçan dosya animasyonu oluyor... Son söz
Dikkat ettiyseniz yazının başında beri bu sayfada anlatılanlar genel
olarak tüm ağ sistemlerinde geçerlidir demiştik. Yazı boyunca da
katmanlardan, adım adım gelişen bir yapıdan bahsettik. Aslında tüm bu
anlatılanlar OSI Seven Layer Model(7 katmanlı OSI modeli)'den ibaret. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||