25 Şubat 2009 Çarşamba

Ethernet protokolü, yapısı ve uygulamaları



TCP/IP

Internet üzerinde bilgisayarlar nasıl adreslenirler ve paketler yollarını nasıl bulurlar. Bu soru bilgisayar ağları ile uğraşan herkesin bir süre kafasını kurcalamış bir sorudur. Bu soruya yanıt bulabilmek için internet'in temel protokolü olan TCP/IP'nin yapısını bir miktar bilmek gerekmektedir.

TCP/IP protokolünde tüm bilgisayarlar 32 bitlik 'özgün' bir IP numarasına sahip olacak şekide adreslenirler (buradan çıkarılabilecek teorik bir sonuç ise internete aynı anda bağlı olabilecek bilgisayar sayısının en fazla 232 = 4,294,967,296 olabileceğidir) Bunu bir örnekle ele alırsak, internet üzerinde 3,559,735,316 sayısı ile adreslenmiş bir bilgisayar düşünelim. Bu sayının heksadesimal karşılığının D42D4014 olduğunu kolaylıkla hesaplayabiliriz. Bu şekilde bir gösterimin hemen hiç kimseye birşey ifade etmeyeceği sanırım oldukça açık bir şekilde görülmektedir. Bu yüzden şu şekilde bir yol izlenir, bu 32 bitlik adres 8 bitlik adresler halinde 4'e ayrılıp (D4 2D 40 14 şeklinde), daha alışıldık bir sayı sistemiyle çalışabilmek için desimale çevrilirler (0xD4 = 212, 0x2D = 45, 0x40 = 64 ve 0x14=20). Bu gösterim son olarak aralara konan bir nokta ile birleştirilir ve sonuç olarak IP numarası olarak tanımlanan notasyona ulaşılır, yani internet üzerinde 3,559,735,316 sayısı ile adreslenmiş bilgisayar 212.45.64.20 IP nolu bilgisayardır. Benzer bir yaklaşımı tersten izleyecek olursak A.B.C.D IP nosuna sahip olduğu bilinen bir bigisayarın gerçek adresi, A * 224 + B * 216 + C * 28 + D şekline hesaplanır.

IP numarasının bu şekildeki gösterilimi aslında internet trafiğinin yönünün nasıl bulunduğu konusunda hiçbirşey ifade etmez elbette, bir yığın halinde bulunan 4 milyarın üzerindeki adresin bir kısım gruplara ayrılması zorunludur. Trafiğin yönünün belirlenmesi ancak paketlerin belli IP gruplarından gelmesi ve belli gruplara yönelmesi ile mümkün olabilecektir. Bu durumda her IP paketi, kendi numarasının bağlı olduğu gruplar için tanımlanmış kurallara göre hareket eder. Yapılan gruplama işlemine ise subnetting adı verilir. Bu işlem sırasında IP adresi ait olduğu grubu ve bu grubun üyeleri arasında kaçıncı sırada olduğunu belirtmek üzere iki kısma ayrılır. İlk kısma network numarası, ikinci kısma ise uç adresi adı verilir ve işlem şu şekilde gerçekleşir.

Tüm internet IP bloğunu 255 kısma ayırmayı istediğimizi düşünelim, bu gruplama sonucunda ortaya çıkacak IP numaralarının 1.x.y.z, 2.x.y.z, ......,255.x.y.z şeklinde olacağı kolay bir akıl yürütme ile görülebilmektedir. Bu tanımlamada elde edilen IP numaralarının oluşturduğu blokların her birine subnet veya network adı verilmektedir ve 1.0.0.0 networkü, 2.0.0.0 networkü vs şeklinde telaffuz edilmektedir. Bu durumda örneğin 2 ile başlayan bütün IP numaralarının (2.x.y.z) 2.0.0.0 networkünün parçası olduğu kolayca anlaşılabilir. Dikkati çekmesi gereken bir nokta elde edilen blokların hala devasa boyularda olduklarıdır (224 = 16,777,216) ve bu bloklar kendi içlerinde daha fazla bölünmeye tabi tutulabilirler, örneğin 1.0.0.0 networkünü 1.0.0.0, 1.1.0.0, .... 1.254.0.0, 1.255.0.0 şeklinde 255 ayrı networke ayırmak da mümkündür, aynı şekilde 1.1.0.0 networkünü de 1.1.1.0, 1.1.2.0,....1.1.255.0 vs şeklinde daha da küçültmek mümkündür, bu işleme her blokta 2 hatta 1 IP kalıncaya kadar devam edilebilir. Burada önemli nokta bu blok büyüklerinin ihtiyaca göre belirlenmesi gereği ve her bloğun bir üst bloğun alt kümesi olmasıdır. Daha detaylı açıklarsak, 1.0.0.0 networkünden bahsediyor iseniz otomatik olarak 1.1.0.0 networkünden ve 1.10.5.0 networkünden de bahsediyorsunuz demektir.

IP numarasını network numarası ve uç adresi olarak ikiye böldüğümüzü yukarıda söylemiştik, bunları örneklerle açıklaylım, test amacıyla seçtiğimiz 212.45.64.20 IP numarasından yola çıkarsak, bu IP'nin hem 212.0.0.0 hem 212.45.0.0 hem de 212.45.64.0 networklerinde yer alan bir IP olduğu söylenebilir. Burada kritik nokta netwok numarası olarak hangisinin alınacağı (212, 212.45, 212.45.64) daha da önemlisi buna nasıl karar verileceğidir. Açıkça görülen odur ki bunu bilmek yalnızca IP numarası ile mümkün olmamaktadır. Bu nedenle IP numarasının hangi bitlerinin network numarasınını temsil ettiğini, hangilerinin ise uç adresini oluşturduğunu tanımlayacak başka bir bilgiye ihtiyaç duyulmaktadır. Buna 'subnet mask' adı verilmektedir. Çoğu zaman kullanıcıların kafasını karıştırmakla beraber aslında anlamı ve kullanımı son derece açıktır.

Subnet mask'ı daha sonra detaylı incelemek üzere kabaca tanımlarsak network numarasının bulunduğu bit pozisyonlarında 1, kalan pozisyonlarda 0 bulunduran bir sayı olarak tarif edebiliriz.
Örneğin 212.45.64.20 IP'sini alt bölümlemeye gitmeden 212.0.0.0 bloğunun bir parçası olarak görmek istiyorsak, network adresini yalnızca ilk 8 bitin oluşturduğunu söylüyoruz demektir. Bu durumda subnet maskımız 8 tane 1 ve 24 tane 0 'dan oluşacaktır (toplam 32'yı verecek şekilde).

Alt ağ maskesi(ikili sistem) : 11111111 00000000 000000000 0000000
Alt ağ maskesi(ondalık sistem) : 255 0 0 0
Alt ağ maskesi : 255.0.0.0

Ya da 212.45.0.0 bloğunun bir parçası olmasını istiyorsak, bu kez network adresini ilk 16 biti ile tanımlamamız gerekecektir, bu durumda subnet mask 16 tane 1 ve 16 tane 0'dan oluşacaktır.

Alt ağ maskesi(ikili sistem) : 11111111 11111111 000000000 0000000
Alt ağ maskesi(ondalık sistem) : 255 255 0 0
Alt ağ maskesi : 255.255.0.0

Son olarak, 212.45.64.0 bloğu için aynı hesaplamayı yaparsak, network adresi ilk 24 bitte bulunacaktır. Subnet mask ise 24 tane 1 ve 8 tane 0'dan oluşacaktır.

Alt ağ maskesi(ikili sistem) : 11111111 11111111 11111111 0000000
Alt ağ maskesi(ondalık sistem) : 255 255 255 0
Alt ağ maskesi : 255.255.255.0

Burada subnet mask'ı belitrmek için kullanılan farkli bir yöntemden bahsetmek gerekir, bu da '/' ayracı ile IP numarasına ya da network numarasına eklenen bir sayıdır (212.45.64.20/25 veya 212.45.64.0/19 gibi). Burada verilen sayı subnet maskta ilk kaç bitin 1 olduğunu gösterir. Örneğin /8, 8 tane 1, 24 tane 0 anlatır, bu da 255.0.0.0 netmaskının eşdeğeridir, yine benzer şekilde /16, 16 tane 1, 16 tane sıfırı tanımladığı için 255.255.0.0'ın, /24 de 255.255.255.0'ın eşdeğer gösterimleridir.

Elimizde bulunan 212.45.64.0/24 'lük bir bloğu 8 tane 32'lik subnete ayımak için neler yapılması gerektiğine bakalım. Öncelikle 32'lik bir subnet için maskın ne olduğunu hesaplamak gerekmektedir.32, 2'nin beşinci kuvvetidir, yani 0-31 arası sayılar binary sistemde 5 bitle yazılabilirler. Öyleyse subnet maskta sağdan 5 biti uç adresi için ayırmamız gerekmektedir, geriye kalan 27 bit ise network kısmını oluşturacaktır. Bu durumda 32'lik subnet için masklar,

Alt ağ maskesi(ikili sistem) : 11111111 11111111 11111111 11100000
Alt ağ maskesi(ondalık sistem) : 255 255 255 224
Alt ağ maskesi : 255.255.255.224

olacaktır. Her subnet için ayrılan 32 IP için sırasıyla network adresleri 212.45.64.0/27, 212.45.64.32/27, ...., 212.45.224/27 olacaktır. Ancak burada, bir adet /24'te yalnızca 0 ve 255 olarak iki IP kullanılamazken (biri network numarası diğeri broadcast) 32'lik subnetlere ayrıldığında her biri için için 2, toplam 2*8=16 IP numarasının kullanılamadığına dikkat edilmelidir.
Benzer bir şekilde 212.45.64.0/24 'lük bloğumu 4 tane 64'lük subnete ayıralım. 64, 2'nin altıncı kuvvetidir, yani 0..63 arası sayılar 6 bitle yazılabilirler, öyleyse, 64'lük bloklar için masklar,

Alt ağ maskesi(ikili sistem) : 11111111 11111111 11111111 11000000
Alt ağ maskesi(ondalık sistem) : 255 255 255 192
Alt ağ maskesi : 255.255.255.192

şeklinde olacaktır. Sırasıyla subnetler de 212.45.64.0/26, 212.45.64.64/26, ...., 212.45.64.192/26 olacaktır. Burada kaybedilen IP sayısı 4*2=8 olarak hesaplanabilir.
Son olarak aynı bloğu 128'lik iki bölüme ayırırsak, masklar

Alt ağ maskesi(ikili sistem) : 11111111 11111111 11111111 10000000
Alt ağ maskesi(ondalık sistem) : 255 255 255 128
Alt ağ maskesi : 255.255.255.128

Şeklinde olacaktır. Sırasıyla subnetler 212.45.64.0/25 ve 212.45.64.128/25 olacaktır. Kaybedilen IP sayısı ise 2*2=4'tür.

Dikkat edilmesi gereken nokta, istediğiniz bir bloğu oluşturmak için büyük bloğun yerini istediğiniz gibi seçemeyeceğinizdir. Örneğin 128'lik bir bloğu 212.45.64.64'ten başlatıp 212.45.64.192'de bitiremezsiniz, benzer şekilde 212.45.64.32'de başlayıp 212.45.64.96'da biten bir /26 blok da tanımlayamazsınız. Başlangıç adresleri kesinlikle bloktaki_IP_sayısı * n (n tamsayı) formülü ile elde edilebilecek sayılar olmalıdır. Örneğin 64'lük bir blok ancak 0,64,128,192 adreslerinden başlayabilir, benzer şekilde 128'lik bir blok da ancak 0 veya 128 adreslerinden başlayabilir.

Son olarak verilen bir IP numarası / subnet mask çifti ile bu IP'nin ait olduğu bloğun nasıl bulunabileceğini açıklayarak bu bölümü bitiriyorum.
Bir IP'nin ait olduğu network, IP numarasının binary hali ile subnet maskın binary hali arasında yapılacak birebir 'VE' işlemi (bitwise AND) ile bulunur, örneklemek için 212.45.64.20/25 IP numarasının ait olduğu networkü bulalım.

/25, 25 adet 1 ve 7 adet 0'dan oluşan bir netmask anlamına gelmektedir (255.255.255.128), binary ortamda ifade edecek olursak

Ağ Maskesi : 11111111 11111111 11111111 10000000

IP numarasını ikili olarak ifade edersek ise

IP : 11010100 00101101 01000000 00010100

Değelerini elde ederiz.

Birebir 'VE' işlemi ile

11010100 00101101 01000000 00010100

VE

11111111 11111111 11111111 10000000

11010100 00101101 01000000 00000000
212 45 64 0

Bu sonuç 212.45.64.20/25 IP numarasının 212.45.64.0/25 networkünde bulunduğunu göstermektedir.

Aynı işlem 212.45.64.228/27 IP numarası için tekrarlanırsa

11010100 00101101 01000000 11100100

VE

11111111 11111111 11111111 11000000

11010100 00101101 01000000 11000000
212 45 64 224

elde edilir, bu da 212.45.64.228/27 IP numarasının 212.45.64.224/27 networkünde yeraldığını gösterir.

Katmanlar, bahsedilen standarda göre dört veya yedi şekilde açılabilir. TCP/IP'de genel olarak dört katmandan bahsedilir, bunlar:

Uygulama: Bu katmanda veriyi göndermek isteyen uygulama ve kullandığı dosya formatı bulunur. Örneğin "HTTP üzerinden HTML formatında yazılmış Wikipedia ana sayfası"

Taşıma: Bu katmanda verinin ne şekilde gönderildiği gösterilir. TCP veya UDP gibi protokoller bu katmandadır.

Ağ: Bazen IP katmanı olarak da anılan bu katman, IP adreslerinin veriye eklendiği noktadır. Bu katmandaki uygulamalar IP veya IPv6 gibi iletişim protokolleri olabileceği gibi ICMP, IGMP veya ARP gibi durum bildirme ve katmanlar arası bağ protokolleri de olabilir.

Fiziksel: En alt katman olan fiziksel katmanda Ethernet, Wi-fi, modem, token ring, ATM gibi protokoller bulunur.

Örneğin, bilgisayarınız Wikipedia ana sayfasını alırken işlemler şu şekilde gerçekleşir:

Wikipedia web sunucusu, HTML çıktısını yaratır ve üzerinde çalıştığı sisteme "şu veriyi şu adrese şu porttan(80-HTTP) yolla" komutu verir. Bu ilk veri, dördüncü katman olan uygulama katmanından gelen veridir.

Sistem, bu çıktıya öncelikle üçüncü katman olan taşıma katmanının bilgilerini iliştirir, yani paketin başına port bilgisini ve paket boyunu yazar.

Ardından, deminki pakete bu sefer de ağ katmanı bilgileri, başka bir deyişle yollayan bilgisayarın ve sizin bilgisayarınızın IP adresleri ve paketin toplam boyu, eklenir.

Son olarak, paket fiziksel katmanın eline geçer ve o katman da fiziksel adresleri ve paketin yeni boyunu da yazarak paketi gönderir.

Paket, dünya etrafında küçük bir tur attıktan sonra sizin bilgisayarınıza ulaşır. Yol boyunca değişik makineler paketi alır, açar, ihtiyaca ve ağ durumuna göre tekrar paketler. Paket sonunda sizin bilgisayarınıza ulaştığında sizin bilgisayarınız da önce fiziksel paketi, ardından ağ paketini, ardından taşıma paketini ve en son da uygulama paketini açar. Paketten çıkan veriyi web tarayıcınıza verir. Web tarayıcısı da size gösterir.

Katmanlama, her katmana özel donanımlar yapılmasına olanak sağlamıştır: fiziksel katmanda paket yönlendirmesi switch'ler, IP katmanında paket yönlendirmesi router'lar, taşıma katmanında paket yönlendirmesi ise NAT'ler tarafından yapılır. Bu sayede, basit donanımlarla yüksek TCP/IP performansları elde edilebilmektedir.

Katmanlama, uygulamalar arası uyumu kolaylaştırdığı gibi büyük bir dezavantaja da sahiptir: her katman veriye tekrarlanan (dolayısıyla gereksiz) veriler ekler. Örneğin her katman pakete ekstra bir boy bilgisi ekleyecektir. Çoğu katman verinin doğruluğundan emin olmak için muhtelif rakamlar da ekleyebilir. Bunun, dünya internet trafiğinin %15'ini oluşturduğu tahmin edilmekted

Katmanlama sistemindeki ilk üç katman (yani donanım, ağ ve taşıma katmanları) arasından:

Donanım katmanı, bilgisayarın üzerindeki ağ donanımını tanıyabilmek için bir ağ kartı numarası. Bu kart numarası ağ kartına yazılı gelir (yani değiştirilemez aslında bu yöne yönelk programlarla MAC adresinide değiştirmek mümkündür.) ve MAC adresi olarak anılır.

Ağ katmanı, bilgisayara ulaşabilmesi için verilen IP adresini kullanır.

Taşıma katmanı ise, değişik aynı bilgisayarda çalışan yazılımların aynı anda internete ulaşabilmesi için her yazılıma bir port numarası verir.

Dolayısıyla bir bilgisayara ulaşabilmek için teoride IP adresi veya MAC adresi kullanılabilirdi. Ama, MAC adresleri karta yazılı olarak geldiği ve değiştirilemediği (dolayısıyla organize edilemediği) için kullanılmamakta, onun yerine ağın yöneticisi tarafından her kullanıcıya özgürce verilebilen IP adresleri kullanılmaktadır. Bunun avantajları şu şekildedir:

Ağlar, alt ağlara bölünebilir ve hangi makinenin hangi ağda olduğu hızlıca anlaşılabilir

Hangi makinenin hangi ağda olduğu kolayca anlaşılabildiği için paket yönlendirme kolaylaşır

Son olarak, alt ağlara bölünmedeki bazı standartlar sayesinde işletim sistemleri otomatik olarak diğer ağlara erişim için gerekli donanımlara ulaşabilir.

Günümüzde bir IP adresi, 32 bit'lik bir sayıdır (IPv6'de bu sayı 128 bit'lik olacaktır). IP'de iki cihaz aynı ağda olup olmadıklarını birbirlerinin IP adreslerinin ilk birkaç basamağına bakarak anlarlar. Bu basamağa IP maskesi (IP mask) denir. Örneğin IP maskesi 255.255.255.0 ise, ilk üç basamağı (yani ilk 24 bit'i) aynı olan iki makine aynı ağda demektir. Bu durumda, 192.168.0.1 ile 192.168.0.2 aynı ağda, 192.168.1.1 ise başka bir ağdadır.

Bazı IP adresleri ve maskeleri bazı kullanımlar için ayrılmıştır. Bunlar şu şekildedir:

Yerel ağlar için ayrılmış adresler:

10.0.0.0 ile 10.255.255.255 arası adresler (yani maske olarak 255.0.0.0)

172.16.0.0 ile 172.31.255.255 arası adresler (yani maske olarak 255.0.0.0)

192.168.0.0 ile 192.168.255.255 arası adresler (yani maske olarak 255.255.0.0)

169.254.0.0 ile 169.254.255.255 arası adresler (yani maske olarak 255.255.0.0)

Not: Bir Ip adresi yada protokol sınıfından bağımsız olarak bir subnet mask ile çalışıyor veya çalışabiliyorsa "classless" aksi duruma "classfull" denir.

Bir makinenin kendisine konuşması (loopback) için ayrılmış adresler:

127.0.0.0 ile 127.255.255.255 arası adresler (yani maske olarak 255.0.0.0)

Bu sayede, bir ağdaki IP adreslerini mantıksal bir şekilde ve basitçe organize etmek mümkündür. Buna ek olarak, kullanıcılara IP adresi, ağ maskesi ve hatta varsayılan ağ geçidini otomatik atayabilmek için DHCP protokolü kullanılabilir.

TCP/IP ile mektup teknolojilerini karşılaştıracak olursak:

Mektubun gönderildiği kişi, mektubu içeriğine bakacak olan kişidir. Dolayısıyla, TCP/IP'de mektubun alıcısı bir uygulamadır (yani bir program). TCP/IP'de değişik uygulamalar değişik port numaraları ile temsil edilirler. TCP/IP'de 65536 uygulama aynı anda desteklenebilir.

Mektubun gönderildiği adres, mektubun ulaşacağı yerdir. TCP/IP'de bunun karşılığı IP adresidir. IP'nin günümüzdeki sürümünde dört milyara yakın IP adresi destelenmektedir, IP'nin bir sonraki sürümünde bu sayının 2128' (yani dört milyar üzeri dört) çıkartılması planlanmaktadır.

Mektubu göndermek için bir posta idaresi ve bir postahane gerekmektedir. TCP/IP'de postahaneler ağ geçidi (İngilizce gateway) olarak adlandırılır.

Genelde bilgisayarlar tek bir ağ geçidine bağlı oldukları için paket göndermek ve almak için karmaşık işlemler yapmazlar (bir TCP/IP yöneticisi, sadece hangi portu hangi programın dinlediğini aklında tutmak zorundadır). Öte yandan, ağ geçitleri değişik ağlar arasındaki bağlantıyı sağladıkları için paket yönlendirme konusunda dikkatli davranmaları gerekmektedir:

Öncelikle, bir önceki bölümde bahsedildiği gibi bir cihaz başka bir cihazla aynı ağda olup olmadığını kendi IP adresi ve diğer IP adresini kendi ağ maskesini kullanarak karşılaştırarak anlar. Demin değinildiği gibi, ağ maskesi 255.255.255.0 ise 192.168.0.1 ile 192.168.0.2 aynı ağdadır, 192.168.1.1 ise başka bir ağdadır. Bir cihazın başka bir ağda olması, arada bir ağ geçidi (ağ geçidi bir switch, router, NAT veya bridge olabilir) kullanılması gerektiğine işarettir...

Bir ağ geçidi, tüm fiziksel çıkışlarının hangi ağda olduğu bilgisini tutar (buna IP yönlendirme tablosu denir). Ağ geçidine bir paket ulaşınca, geçit hangi ağa hangi çıkıştan ulaşacağına bu tablodan bakarak karar verir. Tablo, elle girilebilir veya RIP / OSPF gibi protokollerle otomatik olarak oluşturulabilir.

Öte yandan, her ağ geçidi dünyadaki tüm ağ geçitlerinin nerede olduğunu tabii ki aklında tutmaz. Dolayısıyla, çoğu ağ geçidinin bir de varsayılan geçit (yani "paket nereye gidiyor bilmediğinde pakedin verileceği yer") girdisi bulunur. Örneğin sizin evinizdeki bir kişisel ağda çok yüksek ihtimalle varsayılan geçit olarak TTnet kullanılıyor olacaktır.

Bir ağ geçidi, bağlı olduğu bir cihaza verdiği bir pakedin yerine ulaşıp ulaşmadığını kontrol etmediği için IP'nin bir sonraki yöne kadar yönlendirme (İngilizce next hop routing) yaptığı söylenir...

Önemli TCP/IP protokolleri

Donanım katmanındaki protokoller

ARP (Address Resolution Protocol, yani Adres Çözümleme Protokolü) bir IP adresinin hangi ağ kartına (yani MAC adresine) ait olduğunu bulmaya yarar. TCP/IP'de veri gönderiminde gönderilecek bilgisayarın hangisi olduğunu bulmak için kullanılır. Ayrıca IP adresini yeni almış olan bir makine, o IP adresinin sadece kendisinde olduğunu ARP kullanarak teyid eder.

RARP (Reverse ARP, yani Ters ARP) protokolü ARP'ın tersi işlemi yapar, yani hangi MAC adresinin hangi IP adresini kullandığını bulur. Bir TCP/IP ağında RARP'ın çalışacağı garanti değildir, zira RARP bir RARP sunucusuna ihtiyaç duyar.

IP katmanındaki protokoller

ICMP (Internet Control Message Protocol, yani Internet Yönetim Mesajlaşması Protokolü), hata ve türlü bilgi mesajlarını ileten protokoldür. Örneğin, ping programı ICMP'yi kullanır.

RIP (Router Information Protocol, yani Router Bilgi Protokolü) router'ların yönlendirme tablolarını otomatik olarak üretebilmesi için yaratılmıştır.

OSPF (Open Shortest Path First, yani İlk Açık Yöne Öncelik) aynı RIP gibi router'ların yönlendirme tablolarını otomatik olarak üretebilmesine yarar. OSPF, RIP'ten daha gelişmiş bir protokoldür.

IGMP, (Internet Group Messaging Protocol, yani Internet Grup Mesajlaşma Protokolü) bir sistemin internet yayınlarına (multicast) abone olmasına ve aboneliği durdurmasına yarar. Bu yayınlar, UDP üzerinden yapılır ve genelde çoklu ortam (radyo veya video) içerikli olurlar.

DHCP (Dynamic Host Configuration Protocol, yani Dinamik Cihaz Ayar Protokolü) bir TCP/IP ağına bağlanan bir cihaza otomatik olarak IP adresi, ağ maskesi, ağ geçidi ve DNS sunucusu atanmasına yarar.

Taşıma katmanındaki protokoller

UDP (User Datagram Protocol, yani Kullanıcı Veri Protokolü), IP üzerinden veri yollamaya yarar. Verilerin ulaşacağını garanti etmez ve UDP paketlerinin maksimum boy sınırları vardır. Öte yandan, UDP son derece basit ve bağlantı gerektirmeyen (connectionless) bir protokoldür.

TCP (Transmission Control Protocol, yani Gönderim Kontrol Protokolü), IP üzerinden ulaşma garantili ve harhangi bir boyda veri gönderilmesine imkân tanıyan bir protokoldür. UDP'den farklı olarak, TCP'de iki cihazın iletişim kurabilmesi için önce birbirlerine bağlanmaları gerekmektedir.

Uygulama katmanındaki protokoller

DNS (Domain Name System, yani Alan Adı Sistemi) alan adı verilen isimler (mesela www.wikipedia.org) ile IP adreslerini birbirine bağlayan sistemdir. Paylaştırılmış bir veritabanı olarak çalışır. UDP veya TCP üzerinden çalışabilir.

HTTP (HyperText Transfer Protocol, yani HiperMetin Yollama Protokolü) ilk başta HTML sayfaları yollamak için yaratılmış olan bir protokol olup günümüzde her türlü verinin gönderimi için kullanılır. TCP üzerinden çalışır.

HTTPS (Secure HTTP yani Güvenli HTTP) HTTP'nin RSA şifrelemesi ile güçlendirilmiş halidir. TCP üzerinden çalışır.

POP3 (Post Office Protocol 3, yani Postahane Protokolü 3) e-posta almak için kullanılan bir protokoldür. TCP üzerinden çalışır.

SMTP (Simple Mail Transfer Protocol, yani Basit Mektup Gönderme Protokolü) e-posta göndermek için kullanılır. TCP üzerinden çalışır.

FTP (File Transfer Protocol, yani Dosya Gönderme Protokolü) dosya göndermek ve almak için kullanılır. HTTP'den değişik olarak kullanıcının illa ki sisteme giriş yapmasını gerektirir. Veri ve komut alış verişi için iki ayrı port kullanır. TCP üzerinden çalışır.

SFTP veya FTPS (Secure FTP, yani Güvenli FTP), FTP'nin RSA ile güçlendirilmiş halidir. TCP üzerinden çalışır.

Tüm bu protokoller (ve dahası) sayesinde TCP/IP her geçen gün daha da popülerleşen bir protokol olmuştur.

OSI modeli ve Katmanların yapısı

OSI modeli verinin bir bilgisayar üzerinde bir program'dan, ağ ortamından geçerek diğer bir bilgisayar üzerindeki diğer bir programa nasıl ulaşacağını tanımlar. bu sürec 7 katman halinde incelenir. katmanlı OSI modeli 2 bölümde incelenebilir: Application Set ve Transport Set. (uygulama seti) uygulamalar yani programlarla ilgili konuları içerir. Genellikle sadece yazılımsaldır

KATMAN 1 : Fiziksel Katman

fiziksel katman verinin kablo üzerinde alacağı fiziksel yapıyı tanımlar. Diğer katmanlar 1 ve sıfır değerleriyle çalışırken, 1. katman 1 ve sıfırların nasıl elektrik, ışık veya radyo sinyallerine çevrileceğini ve aktarılacağını tanımlar. Gönderen tarafta 1. katman bir ve sıfırları elektrik sinyallerine çevirip kabloya yerleştirirken, alıcı tarafta 1. katman kablodan okuduğu bu sinyalleri tekrar bir ve sıfır haline getirir.

Fiziksel katman veri bitlerinin karşı tarafa, kullanılan medya(kablo, fiber optik, radyo sinyalleri) üzerinden nasıl gönderileceğini tanımlar. İki tarafta aynı kurallar üzerinde anlaşmamışsa veri iletimi mümkün değildir.

Üreticiler(örneğin ağ kartı üreticileri) bu problemleri göz önüne alarak aynı değerleri kullanan ağ kartları üretirler.

KATMAN 2: Veri Bağlantısı Katmanı

Veri bağlantısı katmanı fiziksel katmana erişmek ve kullanmak ile ilgili kuralları belirler. Veri bağlantısı katmanı ağ üzerindeki diğer bilgisayarları tanımlama, kablonun o anda kimin tarfından kullanıldığının tespiti ve fiziksel katmandan gelen verinin hatalara karşı kontrolü görevini yerine getirir.Veri bağlantısı katmanı iki alt bölüme ayrılır: Media Access Control(MAC) ve Logical Link Control(LLC).

MAC alt katmanı veriyi hata kontrol kodu(CRC), alıcı ve gönderenin MAC adresleri ile beraber paketler ve fiziksel katmana aktarır. Alıcı tarafta da bu işlemleri tersine yapıp veriyi veri bağlantısı içindeki ikinci alt katman olan LLC'ye aktarmak görevi yine MAC alt katmanına aittir.

LLC alt katmanı bir üst katman olan ağ katmanı(3. katman) için geçiş görevi görür. Protokole özel mantıksal portlar oluşturur

Katman 3: Ağ Katmanı

Ağ katmanı veri paketine farklı bir ağa gönderilmesi gerektiğinde yönlendiricilerin kullanacağı bilginin eklendiği katmandır. Örneğin IP protokolü bu katmanda görev yapar.

Katman 4:Ulaşım Katmanı

Taşıma katmanı üst katmanlardan gelen veriyi ağ paketi boyutunda parçalara böler. Taşıma katmanı alt katmanlar (Transport Set) ve üst katmanlar (Application Set) arasında geçit görevini görür. Alt katmanlar verinin ne olduğuna bakmandan karşı tarafa yollama işini yaparken üst katmanlarda kullanılan donanım ile ilgilenmeden verinin kendisi ile uğraşabilirler.

Katman 5:Oturum Katmanı

Oturum katmanı, değişi makinelerdeki kullanıcıların birbirleri arasında oturumlar açmasını sağlarOturum katmanın sunduğu hizmetlerden biri de sistemlerin karşılıklı iletimlerinin yönetimidir. Oturumlar aynı anda tek yönlü veya aynı anda çift yönlü veri akışına izin verebilirler. Eğer trafik tek yönlü ise oturum katmanı iletim sırasının kimde olduğu konusunda yardımcı olur.
İlgili diğer bir oturum hizmeti token yönetimidir. Bazı protokoller için, her iki tarafın aynı anda aynı işlevi yerine getirmeye çalışmaması çok önemlidir. Bu aktiviteleri yönetmek için oturum katmanı taraflar arasında değiştirilebilecek tokenlar sağlar. Token’ a sahip taraf kiritik uygulamayı çalıştırma hakkına sahip olur.
Diğer bir oturum servisi senkronizasyondur. Ortalama çökme süresinin 1 saat olduğu bir ağda, iki makine arasında iki saatlik bir dosya transferi sırasında ortaya çıkacak problemleri ele alalım. Her çökmeden sonra dosya tranferi yeniden en baştan başlayacak ve bu yüzden dosya tranferi belki de hiç gerçekleştirilemeyecektir. Bu problemi ortadan kaldırmak için, otourum katmanı veri akımının içine kontrol noktaları yerleştirir böylelikle bir çökmeden sonra en son kontrol noktasından sonraki veri gönderilir.

Katman 6: Sunum Katmanı

Sunum katmanının en önemli görevi yollanan verinin karşı bilgisayar tarafından anlaşılabilir halde olmasını sağlamaktır.

Katman 7: Uygulama Katmanı

Uygulama katmanı programların ağı kullanabilmesi için araçlar sunar. Microsoft API'leri uygulama katmanında çalışır.
Örneğin:HTTP çalıştırılan bir program değil bir protokoldür. Yani bir kurallar dizesidir. Bu dizeye gören çalışan bir Browser(IE mesela), aynı protokolü kullanan bir Web sunucuya erişir.

18 Şubat 2009 Çarşamba

Bilgisayar ağı kavramı ve tarihçesi

Bilgisayar ağları birbirlerine bağlı bilgisayarlardan meydana gelen, bilgisayarların haberleşmeleri, bilgi ve kaynaklarını paylaşabilmeleri için oluşturulan yapılardır. En az iki bilgisayarı birbirine bağlayarak bir ağ oluşturulur. 1980'li yıllarla birlikte, Ethernet ve LAN teknolojisinin gelişmesiyle, kişisel bilgisayarlar ve ofisler bilgisayar ağlarına kavuşmuştur.
En bilinen bilgisayar ağı, İnternettir. İlk bilgisayar ağı, İleri Araştırma Projeleri Ajansı'nın Amerikan Savunma Bakanlığı için geliştirdiği İleri Araştırma Projeleri Ajansı Bilgisayar Ağı yani ARPANET (Advanced Research Projects Agency Network)'tir.

Bilgisayar Ağı Türleri

Bilgisayar ağları büyüklüklerine, topolojilerine ve kullanılan protokollere göre çeşitli türlere ayrılırlar.

Coğrafyalarına Göre:

PAN

Günümüzde gelişen kişisel cihazların sayısı ve kullanışlılığı ile literatüre giren bir terimdir. Kişisel ağ ile kast edilen kişisel cihazların bağlanması sonucu elde edilen ağdır. Örneğin bir kişinin, masa üstü bilgisayarı, diz üstü bilgisayarı, cep telefonu, cep bilgisayarı gibi aygıtlarını birbiri ile konuşturmak için kurduğu ağdır.
Genellikle bir iki bilgisayar ve kişisel cihazdan oluşur. Bağlantı ortamı olarak, kablosuz bağlantı teknolojileri veya USB gibi bağlantılar kullanılır.

LAN

Yerel Ağ yüksek hızda veri transferi özelliğine sahip server PC printer gibi birimlerden oluşan bir ağ türüdür. Bu ağda kullanıcı PC ‘ler yazıcılar ve ortak PC ler arasında bilgi alışverişi veri iletimi elektronik posta alımı ve gönderimi gibi çok sayıda fonksiyon gerçekleştirilmiş olur. Yine bu ağlar server adı verilen yönetici bilgisayarlarla yönetilir ve izlenirler.

MAN

LAN ağlarından daha büyük bir ağ yapısıdır, kampüs ağları adıyla da anılan bu ağlar, üniversite kampüslerinde ve büyük işyerlerinde kullanılır.

WAN

Geniş alan ağı, ( Wide Area Network, WAN), birden fazla cihazın birbiri ile iletişim kurmasını sağlayan fiziksel veya mantıksal büyük ağdır. Yerel alan ağlarının birbirine bağlanmasını sağlayan çok geniş ağlardır. En meşhur geniş alan ağı İnternettir.

VPN

VPN, Virtual Private Network'ün (Sanal Özel Ağ) kısaltması olup, ağlara güvenli bir şekilde uzaktan erişimde kullanılan bir teknolojidir.
Sanal bir ağ uzantısı yarattığından uzaktan bağlanan makine konuk gibi değil, ağa fiziksel olarak bağlıymış gibi görünür. Firmalar tarafından yaygın olarak kullanılan VPN, yöneticilerin, uzak ofislerin, bayi, acenta, satış temsilcilerinin güvenli bir şekilde özel ağlara bağlanmalarını sağlar.

CAN

SAN

AĞ TOPOLOJİLERİ

Topology (yerleşim ve bağlantı biçimi), bilgisayarların birbirine nasıl bağlandıklarını tanımlayan genel bir terimdir. Yaygın olarak kullanılan topology türleri şunlardır: -Bus -Ring -Star -Mesh Bus topology, bilgisayarların bir ana kablo ile birbirine bağlandığı şekildir. Ring topology ise bir halka biçiminde bilgisayarların birbirine bağlanmasıdır. Star topology ise bilgisayarların bir merkezi aygıt aracılığıyla birbirine bağlandığı şekildir. Mesh topology ise bütün bilgisayarların birbirine bağlandığı bir bağlantı biçimidir. Mesh topology'nin yaygın olarak kullanılmadığını görüyoruz. Bunun nedeni gereksiz yere çok sayıda bağlantının yapılmasıdır. Günümüzde en yaygın olarak Star topology türünün seçildiğini görüyoruz. Bunun başlıca nedeni merkezi bir aygıttan dağıtılan kablolama şekli, fiyat ve performans gibi özelliklerdir.

A. BUS TOPOLOJİ

Bus yerleşim biçimi doğrusal bir hat olarak bilinir. Bütün makinelerin tek bir kabloya bağlı oldukları bir ağ türüdür. Bus topology için söylenebilecek bütün teknik ayrıntılar Ethernet teknolojisine bağlıdır. B. STAR TOPOLOJİ Star yerleşim biçiminde bilgisayarlar merkezi biçimde konuşlandırılan bir hub'a bağlı olarak çalışırlar. Bilgisayarlar tarafından üretilen sinyaller önce hub'a ulaşırlar ardından diğer bilgisayarlara ulaştırılırlar. Star yerleşim biçimde bütün bilgisayarlar bir hub'a bağlıdır. Diğer bir deyişle bütün bilgisayarlara hub'tan bir kablo çekilir.

Bu merkezi dağıtım sistemi yıldız yerleşim biçimde her bilgisayara özel bir kablo çekilmesini böylece herhangi bir kablo arızasının sadece o bilgisayarı etkilemesi sağlar. Böylece tüm network çökmez. Ancak merkezi dağıtım birim hub'ın bozulması durumunda ise bütün network çöker. Star, en eski yerleşim biçimlerindendir. İlk olarak PBX (private Branch Exchanges) olarak adlandırılan analog ve sayısal anatharlama aygıtları olarak karşımız çıkmışlardır. Star yerleşim biçiminde bütün istasyonlar merkezi bir noktaya bağlıdırlar. Buna "hub" denir. Star topoloji bugün bus'in yerine geçmiş ve UTP (genellikle Twisted-Pair kablo) kablo ile birlikte yaygın olarak kullanılmaktadır.

Fiziksel Star-Wired Ring yerleşim biçiminde ise birden çok hub kullanılır. Hub'a bağlı bilgisayarlar Star yerleşim biçimini oluştururlar. Bu yerleşim biçimin şu üstünlükleri vardır:

-Tek bir kablo sorununun bütün network'ü etkilememesi.
-Daha iyi bir network yönetimi.
-Network'e PC eklemek ve çıkarmak kolay.

Bu yerleşim biçiminin zayıf yönleri ise şunlardır:

-Bütün birimlerin bağlı olduğu hub'ın bir sorunu bütün network'ü etkiler.
-Bütün birimler için tek bir kablo hattının çekilmesi maliyeti

C. RİNG TOPOLOJİ

Ring (halka) yerleşim biçiminde bilgisayarlar bir halka biçiminde birbirine bağlıdır. Herhangi bir sonlandırma işlemi yapılmaz. Sinyaller bir döngü içinde dönerler. Bununla birlikte halka yerleşim biçimi aktif bir network'tür. Diğer bir deyişle halka üzerinde yer alan bilgisayarlar verinin ve sinyallerin iletilmesinden sorumludurlar. Bu nedenle halkada yer alan bir bilgisayarın arızalanması bütün network'ün çökmesi anlamına gelir. Halka yerleşim biçiminde sinyallerin dolaşımını kontrol etmek için token adı verilen bir bilgi kullanılır. Token bilgisayarlar arasında dolaşır. Sinyal gönderecek bilgisayar bulunduğunda token o bilgisayar tarafından değiştirilir ve diğer bilgisayarı bulması için sinyalle birlikte yollanır.

Ring yerleşim biçimi fiziksel olarak bir Star biçimindedir. Ama network mantıksal olarak Ring olarak çalışır. Bu işlem merkezi bir MAU (Multistation Access Unit) aygıt tarafından yapılır.

D. MESH

Her noktanın birbirine bağlandığı çok güvenli bir network sistemi olan mesh yerleşim biçimi tamamen ya da kısmen oluşturulabilir. Mesh yerleşim biçimine pek rastlanmaz

E. KARIŞIK YERLEŞİM BİÇİMLERİ

Birçok durumda yerleşim biçimleri birlikte gerçekleşirler. Örneğin çok sayıda star network bir bus hat üzerinden birbirine bağlanır. Bu tür birleşimler "star bus" ya da "star ring" olarak adlandırılır. Bir network bilgisayarlar, adaptörler, konnektörler ve diğer birimlerden oluşur. Bu birimler fiziksel bağlantılarıyla ve mantıksal görünümüyle kullanıcıların karşısına çıkarlar.