İnternete ilk defa girenlerin bile aşina olduğu TCP/IP kelimelerinin ne olduğuna dair açıklayıcı ve anlaşılır bir makaleyi beğeninize sunuyoruz

TARİHSEL GELİŞİM
TCP/IP, ciddi anlamda ilk olarak DARPA(Defensive Advanced Research Projects Agency/Amerikan Savunma Bakanlığı'na bağlı bir Ar-Ge kuruluşu) tarafından geliştirilen ARPANet 'te kullanıldı. ARPANet, bir savaş sırasında askeri bilgisayar ağının sunucusu vurulduğu zaman ne olur düşüncesinden yola çıkılarak geliştirilmiştir. Ağın tek bir sunucuya bağımlı olmamasını isteyen araştırmacılar, sonuçta sunucusuz (ya da ağdaki her bilgisayarın sunucu olduğu) bir ağ modeli geliştirdiler. Bu ağda kullanılan haberleşme protokolü TCP/IP idi. Zamanla ARPANet fikrinden etkilenen üniversiteler, (ki bunların başında UNIX'i geliştiren Berkeley Üniversitesi gelir) kendi ağlarını oluşturmaya başladılar. Günün birinde ABD hükümeti bu ağları tek çatı altında toplamaya karar verdi ve NSFNet ortaya çıktı. NsfNet'i ise BitNet ve İnternet takip etti.

NEDİR TCP/IP
TCP/IP aslında bir tek kavram değil. TCP (Transfer Control Protocol) ve IP(Internet Protocol) isimli iki haberleşme protokolünün birlikte kullanılmasıyla ortaya çıkmış bir kavram. TCP/IP protokolünün temel görevi, iki bilgisayar arasındaki veri iletimini sağlamaktır. Bunun yanında bu protokol iletim sırasında oluşabilecek hataları da telafi etmek zorundadır. Ayrıca bu protokoller işletim sistemine veya kullandığınız donanıma bağımlı olmamalıdır.

IP- İNTERNET ADRESLERİ
Her ağda olduğu gibi, İnternette de ağa bağlı tüm makinelerin kendilerina has bir tanımlaması olmalıdır. Böylece bir bilgisayardan diğerine ulaşmak mümkün olacaktır. İnternet adresleri (IP numaraları) "noktalı ondalık (Dotted Decimal)" diye adlandırılan bir yapıya sahiptir. Her adres 4 bayttan oluşur. Her baytın arasına bir nokta konur. Örneğin 193.140.1.1 gibi. Her bir ondalık değer 0 ile 255 arasında değişir. Tek bir makinedeki farklı arabirimler için aynı IP adresi kullanılabilir ama genelde her arabirim kendi IP numarasına sahiptir.
İnternet üzerinde üç adres türü tanımlıdır.


Avrupa'da bu adreslerin dağıtımı RIPE (Réseaux IP Européens) tarafından yapılır. RIPE'den alınan bu adresler, daha sonra o bölgenin ağ yöneticisi tarafından bölünür ve dağıtılır. Bu işleme "subnetting" adı verilir. Böylece sınırlı sayıdaki IP adreslerinin etkin bir şekilde kullanımı ve dağıtımı sağlanmıştır.
Adres türleri ise şunlardır:

A SINIFI ADRESLER:
Adresin ilk baytı 1 ile 126 arasındadır. Bu tür bir adresle 2^24 adet bilgisayar subnet edilebilir. Toplam 126 adet A sınıfı adres vardır.
B SINIFI ADRESLER:
Adresin ilk baytı 128 ile191 arasındadır. Bu tür bir adresle subnet edilebilecek bilgisayar sayısı 65534 adettir.
C SINIFI ADRESLER:
Adresin ilk baytı 192 ile 223 arasındadır. Bu tür bir adresle de 254 bilgisayar subnet edilebilir.

Dikkat ettiyseniz 127 ile başlayan IP adreslerinden bahsetmedik. Bu IP bloğu, yerel tanımlamalar için ayırılmıştır. Örneğin benim kullandığım bilgisayar, kendi kendisiyle haberleşirken 127.0.0.1 adresini kullanır. Bunun dışında bazı adresler de yerel ağlar için rezerve edilmiştir. Linux-Net3-Howto dökümanından bu adresleri öğrenmeniz mümkündür. Bu dökümanları da http://linux.org.tr adresinde bulabilirsiniz.
A ve B sınıfı adreslerin tamamı şu anda dağıtılmıştır. C sınıfı adreslerde de alarmlar çalmak üzere. Bu yüzden IPv6 ya da IPNG gibi yeni protokoller geliştiriliyor.
Bir IP numarası iki kısımdan meydana gelir. İlk kısım ağ adresidir. Adresin sınıfına göre 1, 2 veya 3 bayt uzunluğundadır. Bir örnekle açıklamak gerekirse, A sınıfı 110.23.44.234 numaralı bilgisayarın ağ adresi 110 dur. Geriye kalan 23.44.234 ise düğüm adresi olarak adlandırılır. B sınıfı 130.140.23.5 numaralı bilgisayarın ağ adresi 130.140, C sınıfı 194.27.94.111 numaralı bilgisayarın ağ adresi ise 194.27.94 tür.

IP- DOMAIN NAME
Farkettiğiniz gibi bu 4 baytlık adresleri akılda tutmak oldukça zor. Bu zorluğun üstesinden gelebilmek için Alan Adı (Domain Name) denen bir adresleme yöntemi kullanılır. Bu yöntemde her bir IP için bir alan adı atanır. Alan adları da IP numaraları gibi hiyerarşik bir yapıdadır. Örneğin yildiz.edu.tr alan adını ele alalım. Bu adres .tr alanındaki .edu alt ağının yildiz isimli bilgisayarını gösterir. benzer şekilde ece.yildiz.edu.tr de .tr alanındaki .edu alt ağının .yildiz alt ağındaki ece isimli bilgisayarı gösterir. Burada ece host adı, yildiz.edu.tr de domain adı olarak nitelendirilir. Peki, browserimiz bu alan adlarını IP numaralarına nasıl çeviriyor? Sırf bu işle görevli Alan Adı Sunucuları (Domain Name Server) kurulmuştur. Teorik olarak İnternete bağlı her bilgisayar Alan Adı Sunucusu olarak çalışabilir. Örneğin ben sık kullandığım adreslerin IP numaralarını kendi makinemde tanımlayarak bağlantı hızımı biraz olsun arttırabiliyorum. Windows için de benzer çözümler mevcut.

PEKİ TCP?
Gördük ki, IP ile iki bilgisayar ağ üzerinde birbirlerini bulup haberleşebiliyorlar. O zaman TCP neden kullanılır? IP, yalnızca temel ağ işlemlerini gerçekleyebilir. IP katmanı sadece bir paketin nereden çıkıp nereye gideceği ile ilgilenir. TCP ise kullanıcı arabirimi-ağ arasındaki iletişimi sağlar. Ayrıca TCP ile hata düzeltme işlemleri de yapılabilir. TCP nin bir özelliği de paketleri sıraya koymaktır. İki bilgisayar arasındaki veri iletimi sırasında bazı sebeplerden dolayı yola daha önce çıkan bir paket, hedefe diğer paketten daha geç ulaşabilir. Bir örnek verecek olursak, A bilgisayarının B bilgisayarına "merhaba" mesajını iki paket olarak ilettiğini düşünelim. İlk paket şuna benzeyecektir: (IP başlığı, "mer"). İkinci Paket ise (IP başlığı, "haba") olsun. Şimdi, önümüzde 3 farklı durum mevcut, a) paketler veri kaybı olmadan sıralı olarak karşıya ulaşır. Burada sorun yok. b)paketler veri kaybı olmadan ama sırasız olarak ulaşır. İşte ilk sorun. Karşıdaki makine mesajı "habamer" olarak algıladı.c)paketlerde veri kaybı var. Bilginin ne kadarının elimizde olduğu belli değil. Hatta tüm paketler kayıpsa böyle bir transferin olup olmadığını bile bilmiyoruz. İşte TCP bu tür kontrolleri sağlıyor. TCP, paketleri sıraya sokuyor, eksik veri geldiğinde gönderen bilgisayarı uyararak veriyi tamamlıyor.

DİĞER PROTOKOLLER
İnternet üzerinden iletişim için tek başına TCP/IP yeterli değil. Bazı özel iletişim yöntemlerinin de kendilerine has protokolleri var. Bunlar arasında en yaygın olanlar TELNET, HTTP, FTP ve SMTP. Tüm bu protokollerde hedef makineye ulaşan paketlere ulaşabilmek için port adı verilen sanal kanallar kullanılır. Ancak portlar başlı başına bir makale konusu olduğu için burada yer veremeyeceğim.

SON SÖZ
İnternet ve ağlarla ile ilgili başka makaleler daha görmek istiyorsanız, lütfen bana yazınız. Fazla teknik olmamak koşuluyla bilgilendirmeye devam edeceğim.