Neler yeni

Yeni mesajlar Yeni konular En çok mesaj En çok tepki En çok görüntülenen

TCP/IP Protokolü

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Ali KASAPOĞLU

🌟Usta Tasarımcı🌟
Katılım
30 Eki 2007
Mesajlar
476
Tepkime puanı
43
Web sitesi
www.alikasapoglu.com
TCP/IP Protokolü
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.
Örneğimizden yola çıkarsak 212.45.64.20 için gerçek adres 212 * 224 + 45 * 216 + 64 * 28 + 20 = 3,559,735,316 ‘dı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).
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 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.
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 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.
Subnet mask (binary) : 11111111 11111111 11111111 0000000
Subnet mask (desimal) : 255 255 255 0
Subnet mask : 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.
Daha çok kullanılan subnetler için konulmuş bir takım isimler vardır, burada bunlardan da bahset gerekir. İlgili isimler, kısa bir tanımlama ile Tablo 1’de verilmiştir.
Tablo1:
NetMask /“ lü gösterim Ip Adedi Isim
255.0.0.0 /8 16,777,216 &n bsp; A Sınıfı (A Class)
255.255.0.0 /16 65,536 &nb sp; B Sınıfı (B Class)
255.255.255.0 /24 256 &nbs p; C Sınıfı (C Class)
* Kullanılabilen IP adedi burada verilenden iki eksik olacaktır (bir broadcast ve bir network numarası için)
Kullanıcılar arasında sıkça karşılaşılan 32’lik bir C class veya 128’lik bir C class gibi kullanımlar tamamen yanlıştır. Çünkü bir “C class” tanımı gereği 256’lık bir bloktur.
Subnetlerin buraya kadar olan kısmı hemen herkesçe bilinmesine rağmen genellikle /24’den küçük bölümlemeler sorun yaratmaktadır. Bilgisayar ağları ile uğraşırken çoğu zaman 32’lik, 64’lik veya 128’lik subnetlere ihtiyaç duyulmaktadır. Bunların nasıl yapılacağını doğrudan örneklerle açıklamanın daha faydalı olacağını düşünüyorum.
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,
Subnet mask (binary) : 11111111 11111111 11111111 11100000
Subnet mask (desimal) : 255 255 255 224
Subnet mask : 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,
Subnet mask (binary) : 11111111 11111111 11111111 11000000
Subnet mask (desimal) : 255 255 255 192
Subnet mask : 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
Subnet mask (binary) : 11111111 11111111 11111111 10000000
Subnet mask (desimal) : 255 255 255 128
Subnet mask : 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.
Genel kullanımda bir blok her zaman eşit büyüklükteki bloklara bölünmez. Elinizdeki bir C sınıfı bloğu 1 128’lik, 1 64’lük ve 2 32’lik bloğa bölmek isteyebilirsiniz. Detaylara girmeden incelersek böyle bir bölümleme 212.45.64.0/25, 212.45.64.128/26,212.45.64.192/27, 212.45.64.224/27 şeklinde yapılabilir.
Burada en çok 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
Netmask : 11111111 11111111 11111111 10000000
IP numarasını binary 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 &nbs p; 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.
 

N/A8

♾️Grafik Gurusu♾️
Katılım
31 May 2007
Mesajlar
1,155
Tepkime puanı
73
Çok güzel bilgiler bunlar Karikatürist. Bilmeyen arkadaşlar için çok faydalı olacak eminim.

Teşekkür ederiz. :)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst