#1
|
|||
|
|||
Tcp /ip genel bakış
TCP/IP’ye Genel Bir Bakis
Internet üzerinde bilgisayarlar nasil adreslenirler ve paketler yollarini nasil bulurlar. Bu soru bilgisayar aglari ile ugrasan herkesin bir süre kafasini kurcalamis bir sorudur. Bu soruya yanit bulabilmek için internet’in temel protokolü olan TCP/IP’nin yapisini bir miktar bilmek gerekmektedir. TCP/IP protokolünde tüm bilgisayarlar 32 bitlik “özgün” bir IP numarasina sahip olacak sekide adreslenirler (buradan çikarilabilecek teorik bir sonuç ise internete ayni anda bagli olabilecek bilgisayar sayisinin en fazla 232 = 4,294,967,296 olabilecegidir) Bunu bir örnekle ele alirsak, internet üzerinde 3,559,735,316 sayisi ile adreslenmis bir bilgisayar düsünelim. Bu sayinin heksadesimal karsiliginin D42D4014 oldugunu kolaylikla hesaplayabiliriz. Bu sekilde bir gösterimin hemen hiç kimseye birsey ifade etmeyecegi sanirim oldukça açik bir sekilde görülmektedir. Bu yüzden su sekilde bir yol izlenir, bu 32 bitlik adres 8 bitlik adresler halinde 4’e ayrilip (D4 2D 40 14 seklinde), daha alisildik bir sayi sistemiyle çalisabilmek için desimale çevrilirler (0xD4 = 212, 0x2D = 45, 0x40 = 64 ve 0x14=20). Bu gösterim son olarak aralara konan bir nokta ile birlestirilir ve sonuç olarak IP numarasi olarak tanimlanan notasyona ulasilir, yani internet üzerinde 3,559,735,316 sayisi ile adreslenmis bilgisayar 212.45.64.20 IP nolu bilgisayardir. Benzer bir yaklasimi tersten izleyecek olursak A.B.C.D IP nosuna sahip oldugu bilinen bir bigisayarin gerçek adresi, A * 224 + B * 216 + C * 28 + D sekline hesaplanir. Örnegimizden yola çikarsak 212.45.64.20 için gerçek adres 212 * 224 + 45 * 216 + 64 * 28 + 20 = 3,559,735,316 ‘dir. IP numarasinin bu sekildeki gösterilimi aslinda internet trafiginin yönünün nasil bulundugu konusunda hiçbirsey ifade etmez elbette, bir yigin halinde bulunan 4 milyarin üzerindeki adresin bir kisim gruplara ayrilmasi zorunludur. Trafigin yönünün belirlenmesi ancak paketlerin belli IP gruplarindan gelmesi ve belli gruplara yönelmesi ile mümkün olabilecektir. Bu durumda her IP paketi, kendi numarasinin bagli oldugu gruplar için tanimlanmis kurallara göre hareket eder. Yapilan gruplama islemine ise subnetting adi verilir. Bu islem sirasinda IP adresi ait oldugu grubu ve bu grubun üyeleri arasinda kaçinci sirada oldugunu belirtmek üzere iki kisma ayrilir. Ilk kisma network numarasi, ikinci kisma ise uç adresi adi verilir ve islem su sekilde gerçeklesir. Tüm internet IP blogunu 255 kisma ayirmayi istedigimizi düsünelim, bu gruplama sonucunda ortaya çikacak IP numaralarinin 1.x.y.z, 2.x.y.z, ……,255.x.y.z seklinde olacagi kolay bir akil yürütme ile görülebilmektedir. Bu tanimlamada elde edilen IP numaralarinin olusturdugu bloklarin her birine subnet veya network adi verilmektedir ve 1.0.0.0 networkü, 2.0.0.0 networkü vs seklinde telaffuz edilmektedir. Bu durumda örnegin 2 ile baslayan bütün IP numaralarinin (2.x.y.z) 2.0.0.0 networkünün parçasi oldugu kolayca anlasilabilir. Dikkati çekmesi gereken bir nokta elde edilen bloklarin hala devasa boyularda olduklaridir (224 = 16,777,216) ve bu bloklar kendi içlerinde daha fazla bölünmeye tabi tutulabilirler, örnegin 1.0.0.0 networkünü 1.0.0.0, 1.1.0.0, ….. 1.254.0.0, 1.255.0.0 seklinde 255 ayri networke ayirmak da mümkündür, ayni sekilde 1.1.0.0 networkünü de 1.1.1.0, 1.1.2.0,…..1.1.255.0 vs seklinde daha da küçültmek mümkündür, bu isleme her blokta 2 hatta 1 IP kalincaya kadar devam edilebilir. Burada önemli nokta bu blok büyüklerinin ihtiyaca göre belirlenmesi geregi ve her blogun bir üst blogun alt kümesi olmasidir. Daha detayli açiklarsak, 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 numarasini network numarasi ve uç adresi olarak ikiye böldügümüzü yukarida söylemistik, bunlari örneklerle açiklaylim, test amaciyla seçtigimiz 212.45.64.20 IP numarasindan yola çikarsak, bu IP’nin hem 212.0.0.0 hem 212.45.0.0 hem de 212.45.64.0 networklerinde yer alan bir IP oldugu söylenebilir. Burada kritik nokta netwok numarasi olarak hangisinin alinacagi (212, 212.45, 212.45.64) daha da önemlisi buna nasil karar verilecegidir. Açikça görülen odur ki bunu bilmek yalnizca IP numarasi ile mümkün olmamaktadir. Bu nedenle IP numarasinin hangi bitlerinin network numarasinini temsil ettigini, hangilerinin ise uç adresini olusturdugunu tanimlayacak baska bir bilgiye ihtiyaç duyulmaktadir. Buna “subnet mask” adi verilmektedir. Çogu zaman kullanicilarin kafasini karistirmakla beraber aslinda anlami ve kullanimi son derece açiktir. Subnet mask’i daha sonra detayli incelemek üzere kabaca tanimlarsak network numarasinin bulundugu bit pozisyonlarinda 1, kalan pozisyonlarda 0 bulunduran bir sayi olarak tarif edebiliriz. Örnegin 212.45.64.20 IP’sini alt bölümlemeye gitmeden 212.0.0.0 blogunun bir parçasi olarak görmek istiyorsak, network adresini yalnizca ilk 8 bitin olusturdugunu söylüyoruz demektir. Bu durumda subnet maskimiz 8 tane 1 ve 24 tane 0 ‘dan olusacaktir (toplam 32’yi verecek sekilde). Subnet mask (binary) : 11111111 00000000 000000000 0000000 Subnet mask (desimal) : 255 0 0 0 Subnet mask : 255.0.0.0 Ya da 212.45.0.0 blogunun bir parçasi olmasini istiyorsak, bu kez network adresini ilk 16 biti ile tanimlamamiz gerekecektir, bu durumda subnet mask 16 tane 1 ve 16 tane 0’dan olusacaktir. Subnet mask (binary) : 11111111 11111111 000000000 0000000 Subnet mask (desimal) : 255 255 0 0 Subnet mask : 255.255.0.0 Son olarak, 212.45.64.0 blogu için ayni hesaplamayi yaparsak, network adresi ilk 24 bitte bulunacaktir. Subnet mask ise 24 tane 1 ve 8 tane 0’dan olusacaktir. Subnet mask (binary) : 11111111 11111111 11111111 0000000 Subnet mask (desimal) : 255 255 255 0 Subnet mask : 255.255.255.0 Burada subnet mask’i belitrmek için kullanilan farkli bir yöntemden bahsetmek gerekir, bu da “/” ayraci ile IP numarasina ya da network numarasina eklenen bir sayidir (212.45.64.20/25 veya 212.45.64.0/19 gibi). Burada verilen sayi subnet maskta ilk kaç bitin 1 oldugunu gösterir. Örnegin /8, 8 tane 1, 24 tane 0 anlatir, bu da 255.0.0.0 netmaskinin esdegeridir, yine benzer sekilde /16, 16 tane 1, 16 tane sifiri tanimladigi için 255.255.0.0’in, /24 de 255.255.255.0’in esdeger gösterimleridir. Daha çok kullanilan subnetler için konulmus bir takim isimler vardir, burada bunlardan da bahset gerekir. Ilgili isimler, kisa bir tanimlama ile Tablo 1’de verilmistir. Tablo1: NetMask “/” lü gösterim Ip Adedi Isim 255.0.0.0 /8 16,777,216 A Sinifi (A Class) 255.255.0.0 /16 65,536 B Sinifi (B Class) 255.255.255.0 /24 256 C Sinifi (C Class) * Kullanilabilen IP adedi burada verilenden iki eksik olacaktir (bir broadcast ve bir network numarasi için) Kullanicilar arasinda sikça karsilasilan 32’lik bir C class veya 128’lik bir C class gibi kullanimlar tamamen yanlistir. Çünkü bir “C class” tanimi geregi 256’lik bir bloktur. Subnetlerin buraya kadar olan kismi hemen herkesçe bilinmesine ragmen genellikle /24’den küçük bölümlemeler sorun yaratmaktadir. Bilgisayar aglari ile ugrasirken çogu zaman 32’lik, 64’lik veya 128’lik subnetlere ihtiyaç duyulmaktadir. Bunlarin nasil yapilacagini dogrudan örneklerle açiklamanin daha faydali olacagini düsünüyorum. Elimizde bulunan 212.45.64.0/24 ‘lük bir blogu 8 tane 32’lik subnete ayimak için neler yapilmasi gerektigine bakalim. Öncelikle 32’lik bir subnet için maskin ne oldugunu hesaplamak gerekmektedir.32, 2’nin besinci kuvvetidir, yani 0-31 arasi sayilar binary sistemde 5 bitle yazilabilirler. Öyleyse subnet maskta sagdan 5 biti uç adresi için ayirmamiz gerekmektedir, geriye kalan 27 bit ise network kismini olusturacaktir. Bu durumda 32’lik subnet için masklar, Subnet mask (binary) : 11111111 11111111 11111111 11100000 Subnet mask (desimal) : 255 255 255 224 Subnet mask : 255.255.255.224 olacaktir. Her subnet için ayrilan 32 IP için sirasiyla network adresleri 212.45.64.0/27, 212.45.64.32/27, …….212.45.224/27 olacaktir. Ancak burada, bir adet /24’te yalnizca 0 ve 255 olarak iki IP kullanilamazken (biri network numarasi digeri broadcast) 32’lik subnetlere ayrildiginda her biri için için 2, toplam 2*8=16 IP numarasinin kullanilamadigina dikkat edilmelidir. Benzer bir sekilde 212.45.64.0/24 ‘lük blogumu 4 tane 64’lük subnete ayiralim. 64, 2’nin altinci kuvvetidir, yani 0..63 arasi sayilar 6 bitle yazilabilirler, öyleyse, 64’lük bloklar için masklar, Subnet mask (binary) : 11111111 11111111 11111111 11000000 Subnet mask (desimal) : 255 255 255 192 Subnet mask : 255.255.255.192 seklinde olacaktir. Sirasiyla subnetler de 212.45.64.0/26, 212.45.64.64/26, …… , 212.45.64.192/26 olacaktir. Burada kaybedilen IP sayisi 4*2=8 olarak hesaplanabilir. |