Logic
New member
- Katılım
- 19 Haz 2005
- Mesajlar
- 137
- Reaction score
- 0
- Puanları
- 0
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.
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.