|
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 |
110101101110110111101110001110111011 |
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.
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.
- Ağ kartı yollanacak veriyi işletim sisteminden alır. Karşıya yollanacak
paketi oluşturur. CRC kodunu oluşturur. CRC kodunu ve veriyi pakete
koyar. Kendi MAC adresi ve alıcının MAC adresini pakete ekler. Paket
yola çıkmaya hazırdır.
- Kabloda o anda başka bir veri aktarımı olup olmadığını kontrol eder,
kablo boşsa paketi hub'a yollar.
- Hub bu paketin kopyalarını oluşturur ve her bir portuna bağlı bilgisayarlara(yani
ağ kartlarına) yollar.
- Tüm ağ kartları paketi alır ve "alıcı MAC adresi" kendi
MAC adresleri mi diye kontrol eder. Eğer paket kendisine gelmişse paketi
işler, aksi halde paketi siler.
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.
VERİ TİPİ |
PAKET SAYISI |
ALICININ IP ADRESİ |
GÖNDERENİN IP ADRESİ |
VERİ |
İ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.
Kaynak Port |
Hedef Port |
Sıra Numarası |
Onay Numarası |
VERİ |
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.


|