logo
ip etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ip etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

11 Ocak 2014 Cumartesi

IP YÖNLENDİRME:

IP YÖNLENDİRME:





Bu bölümde farklı coğrafi noktalarda yer alan TCP/IP ağlarının birbirleri ile olan iletişiminin sağlanması için en önemli anahtar olan, yol bulma yani yönlendirme konusu açıklanacaktır.
Daha önceki açıklamalarımızda IP (Internet Protokol) katmanının datagram'ların (TCP/IP’de iletişim için kullanılan bilgi birim miktarı) varış noktasına ulaşmasını sağlamakla yükümlü olduğundan bahsettik. Fakat bu işlemin nasıl yapılacağının detaylarını incelemedik. Bir datagram'ın varış noktasına ulaştırılmasına 'yönlendirme' (routing) adı verilmektedir. Yönlendirmenin nasıl yapıldığını kavrayabilmek için IP'nin dayandığı modeli anlamak gereklidir. IP katmanı daima, bir sistemin bir ağa bağlı olduğunu varsayar. Ethernet tabanlı bir ağ üzerinde sadece karşı istasyonun Ethernet adresini bilmek yeterli olduğu için herşey çok kolaydır. Fakat datagram'lar farklı ağlar üzerindeki noktalara gönderilmek istendiğinde sorunlar başlar.
Bir ağ üzerinden diğer ağ üzerine geçecek bilgi trafiğini kontrol etmek, onu yönlendirmek görevi genel olarak 'geçiş noktası aygıtlarına' (gateway) aittir. Internet üzerinde IP protokolü kullanan ağlarda bu işleri yerine getiren aygıtlara yönlendirici (router) adı verilir. Böyle bir görev üstlenen makine üzerinde birden fazla bilgisayar ağı bağlantısı yer alıp, farklı ağların bilgi trafikleri bu yolla birbirlerine iletilir. IP ağlarındaki yönlendirme tamamen varış noktası adresi temeline oturmaktadır. Örneğin ODTÜ'nün uluslararası Internet bağlantısını yapan yönlendirici 144.122.1.2 adresinde bulunmaktadır. Dolayısıyla 144.122.1 ağı üzerinde yer alan diğer sistemler 144.122.1.2 adresini yurt dışı adreslere ulaşmak için geçiş noktası olarak tanımak zorundadırlar. Benzer bir şekilde Bilgisayar Mühendisliği bölümünün kampus omurga ağına geçiş noktası olarak kullandığı bilgisayarın adresi de 144.122.71.1'dir. 144.122.71 ağı üzerinde bulunan bir bilgisayar, kampus içindeki başka bir bilgisayara ulaşmak için bu geçiş noktasından geçmek zorundadır. Bu ağ üzerinde bulunan bir bilgisayar datagram yollamak istediğinde öncelikle ulaşmak istediği adresin aynı ağ üzerinde olup olmadığına bakar, eğer varış noktası aynı ağ üzerinde ise bilgi doğrudan varış adresine yollanır. Eğer değilse, sistem varış noktasına ulaşmak için gerekli bilgileri araştırmaya başlar.
Burada 195.194.34.2 nolu bilgisayar ile 200.123.89.3 nolu bilgisayarın haberleşebilmesi için önce aynı ağda olup olmadıklarını subnet maskesi ile kontrol etmeleri gerekir. Bu bilgisayarlar aynı ağda olmadıkları için yönlendirici kullanmalıyız.
Yönlendiricinin iki bacağı vardır. TCP/IP protokol kümesi ağdaki her ucun ayrı bir IP adresinin olmasını şart koşuyor bu yüzden yönlendiricinin bacaklarına da IP adresi koyuyoruz. Yönlendiricinin bacaklarından adres verirken o bacak hangi ağa bağlıysa o ağa uygun bir adres veririz. Burada da ağdaki ilk adresi veriyoruz. İki ağında yönlendiriciden haberdar olması için TCP/IP konfigürasyonu kısmında “default gateway” parametresi yani kendi ağımızda olmayan adrese ulaşmamız gerekirse ilişki kuracağımız yönlendirici gösteriyor.
195.194.34.0 ağında bulunuyorsak bilgisayarların hepsinde default gateway olarak 195.194.34.1 adresini veriyoruz. Bu adres yönlendiricinin bize bakan bacağını gösteriyor.
Yönlendirici olarak router adı atılda satılan cihazlar ya da WinNT bilgisayarı (server ya da workstation) yönlendirici olarak kullanılır.
Yönlendirme Protokolleri
Yukarıda da açıklandığı gibi yönlendirme, bir bilgisayar ağı üzerinde yer alan bir bilgisayarın aynı ya da farklı bir ağ üzerinde yer alan başka bir bilgisayara nasıl ulaşacağına karar verirken kullanılan yöntemdir. Bu sayede herhangi iki farklı noktada yer alan kullanıcılar birbirleri ile bilgisayar kullanarak haberleşebilmektedir. Dolayısıyla yönlendirmeyi bir nevi yapıştırıcı gibi düşünebiliriz.
  İletişimin en önemli noktası olmasından dolayı yeni bilgisayar ağı kuruluşlarında en önemli sorunlardan birisi yanlış yapılan yönlendirme olmaktadır. Bu noktada yönlendirme ve yönlendirme protokolü arasındaki farkı açıklamak ileride oluşabilecek yanlış anlamaları önlemek açısından yararlı olacaktır. Bir bilgisayar ağına bağlı her sistem bilgiyi bir noktadan bir diğerine yönlendirebilir ama her sistem üzerinde yönlendirme protokolü çalışmaz. Yönlendirme, bir yönlendirme tablosundaki bilgiye göre bilgi paketlerinin geçirilmesidir. Yönlendirme protokolü ise bu tabloların oluşturulmasında bilgi değişimini sağlayan programlardır. Basit bir bilgisayar ağında bir yönlendirme protokolü çalışmadan, sabit tablolar kullanarak iletişim sağlanabilir.
Temel olarak 3 yönlendirme yöntemi vardır (Aşağıda verilecek olan komutlar UNIX işletim sistemlerinde bulunmakta olup diğer sistemlerde farklı komutlar kullanılabilir):
Minimum Yönlendirme: Bir bilgisayar ağı başka bir bilgisayar ağına bağlı olmaksızın tek başına çalışıyorsa minimum yönlendirme ile ağ üzerindeki iletişimi sağlayabiliriz. (Bu yönlendirme genelde sadece <<if config>> komutu ile yapılır)
Sabit Yönlendirme: Kurulu bir bilgisayar ağının dış dünyaya bir ya da birkaç çıkışı varsa sabit yönlendirmeyi kullanabilir. (Bu yönlendirme genelde route komutu ile yapılır). Gerekli komut kullanılarak ağın dış dünyaya çıkan trafiği çıkış noktasına yönlendirilmiş olur.
Dinamik Yönlendirme: Ağın dış dünya ile olan iletişimi birden fazla noktadan yapılıyorsa, yönlendirme protokolü ile dinamik olarak bir yönlendirme tablosu tutulur ve yönlendirme protokolleri birbirleri ile gerekli bilgi alışverişini yaparak en uygun çıkışı kullanırlar. Böylece ağ yöneticisinin elle müdahalesi gerekmeksizin en uygun yolu bu protokoller bulurlar. Dolayısıyla bir çıkış noktasında meydana gelen bir sorunda tüm trafik otomatik olarak diğerine yönlendirilebilir.
Bu yönlendirme yöntemlerini biraz daha detayları ile örnekler vererek inceleyelim.
  (Şekil 3.1) Minimum yönlendirme


Minimum Yönlendirme Tablosu
Aşağıdaki şekilde görülen ağ üzerinde
# ifconfig le0 144.122.99.2 netmask 255.255.255.0 broadcast 144.122.99.255
komutu kullanılarak arayüzünün ağ bağlantısı yapılmış olan bir bilgisayarın yönlendirme tablosunun içeriğine bakarsak
% netstat -rn
Routing Tables
Destination Gateway Flags Refcnt Use Interface
127.0.0.1 127.0.0.1 UH 1 132 lo0
144.122.99.0 144.122.99.2 U 26 49041 le0
İlk satırdaki 127.0.0.1 loopback adres olarak bilinen lokal bilgisayarın kendisini tanımlayan ve Internet protokolünü çalıştıran her bilgisayarda bulunan standart bir adrestir. İkinci satırda ise 144.122.99.0 ağına, ethernet le 0 arayüzü üzerinden gidileceğini belirtiyor. 144.122.99.2 ise uzaktaki (remote) bir geçiş noktası (gateway) adresi değil le 0 arayüzünün kendi adresidir. Flags alanlarına bakacak olursak her iki satırda da bulunan U (up), her ikisinin de kullanıma hazır olduğunu gösterir. Her iki satırda da Flags alanında G (Gateway) işareti yoktur zira her iki arayüze aradaki bir geçiş kapısı (gateway) üzerinden ulaşılmamaktadır. Loopback yönlendirme tanımının bulunduğu satırdaki H (Host) işareti bu yönlendirme ile sadece bir bilgisayara (yani kendisine) ulaşılabileceğini tanımlamaktadır. Bu satır bilindiği gibi her yönlendirme tablosunda bulunmaktadır. Bu yönlendirme tablosu görüldüğü gibi sadece 144.122.99.0 ağı ile ilgili yönlendirme bilgisine sahiptir. Dolayısıyla sadece bu ağ üzerinde yer alan bilgisayarlar birbirleri ile iletişime geçebilmektedirler. Bu yönlendirme tablosu oluştuktan sonra herhangi bir problem olup olmadığının testi ping komutu ile kolayca yapılabilir. Önce bu ağ üzerinde yer alan bir bilgisayarı ping komutu ile kontrol edelim:
% ping 144.122.99.3
PING 144.122.99.3: 56 data bytes
64 bytes from 144.122.99.3: icmp_seq=0, time=11, ms
64 bytes from 144.122.99.3: icmp_seq=1, time=11, ms
^C
----144.122.99.3 PING statistics----
2 packets transmitted, 2 packets received, 0% packet loss
round-trip (ms) min/avg/max =10/10/11
Görüldüğü gibi 144.122.99.3 ile olan iletişimin başarılı olduğu test edilmiş oldu. Bunun yanında aynı ağ üzerinde bulunmayan bir adrese ulaşmak istediğimizde nasıl bir sonuçla karşılaşacağımızı test etmek istersek :
% ping 26.40.0.17
sendto: Network is unreachable
Gelen cevaptan da anlaşılacağı gibi, ulaşmak istediğimiz bilgisayara ait yönlendirme bilgisine sahip olmadığı için, bilgisayarımız datagram ları varış noktasına iletemediğini ve o noktaya ulaşılamaz olduğu mesajını veriyor. Eğer bilgisayar ağınızın dış dünya ile irtibatı yoksa ifconfig ile yaratılan tablo tüm ihtiyaçlarınızı karşılamaya yeterlidir. Ancak bir dış bağlantı varsa o zaman yönlendirme tablosunun daha fazla bilgiye ihtiyacı vardır.
Sabit Yönlendirme Tablosu
Yukarıda da gördüğümüz gibi minimum yönlendirme tablosu ile aynı ağ içindeki bilgisayarlara ulaşmak mümkündür. Başka ağlar üzerindeki bilgisayarlara ulaşmak için bunlarla ilgili bilgiler yönlendirme tablolarına girilmelidir. Yönlendirme tablosunu yaratmak için kullanılan yolların en popüleri route komutudur. route komutu ile yönlendirme tablosuna elle yeni yönlendirme bilgileri eklenip çıkartılabilir.
(Şekil 3.2) Sabit yönlendirme
Örnek verecek olursak, yukarıdaki şekilde görülen 144.122.99.0 ağındaki bir bilgisayardan 144.122.71.0 ağına ulaşmak için şöyle bir tanım yeterlidir:
# route add 144.122.71.0 144.122.99.1 1
add net 144.122.71.0: gateway 144.122.99.1
route komutundan sonraki 'add' argümanı yönlendirme tablosuna bir ek yapılacağını söylemektedir. Tablodan bir bilgi silineceği zaman 'add' yerine 'delete' kullanılarak bu silme işlemi yapılır. Aynı satırdaki üçüncü bilgi bu yönlendirme bilgisi ile ulaşılmak istenen adresi belirtmektedir. Ulaşılacak adres 4 farklı şekilde tanımlanabilir:
a- bir IP adresi ,
b- /etc/networks dosyasındaki bir ağ ismi,
c- /etc/hosts dosyasındaki bir bilgisayar ismi,
d- default.
  Eğer ulaşılmak istenen adres olarak default kullanılırsa aynı ağ üzerinde yer almayan her adrese burada tanımlanan geçiş yolu üzerinden ulaşılmaya çalışılır. Eğer bir ağın dış dünyaya çıkışı tek bir noktadan ise default olarak bu çıkış adresi tanımlanmalıdır.
Komut satırındaki dördüncü bilgi geçiş yolu adresidir. Bu adres ağın dış dünya ile iletişimini sağlayan geçiş kapısıdır. Son argüman ise yönlendirme metrik bilgisidir. Bu bilgi, sadece ROUTE bilgisinin eklenmesi durumunda kullanılır. Metrik bilgisi değerinin 0 olması durumunda yönlendirme bilgisinin lokal ağa ait olduğu şeklinde yorumlanır ve daha önce netstat komutunda gördüğümüz Flags alanındaki G (Gateway) işareti gözükmez. Ama eğer Metrik 0 değerinden büyükse bu o zaman bu yönlendirme bilgisinin dış dünyaya açılan geçiş yolunu tarif ettiği anlaşılır ve Flags alanına G işareti konulur. Sabit yönlendirme 0 ve 1 dışında bir Metrik değeri kullanmaz.
Diğer Yönlendirme Protokolleri
Bütün yönlendirme protokolleri temelde en iyi yönü ve yolu bulma işlevini yerine getirirler ve bu yönlendirme bilgisini ağ üzerinde dağıtırlar. Yönlendirme protokolleri iki temel gruba bölünebilirler: İnterior (ic) ve Exterior (dis).
i-Interior (ic) Protokoller: Bu protokoller bağımsız bir bilgisayar ağı içinde kullanılırlar. TCP/IP terminolojisinde böyle bilgisayar ağı sistemlerine Otonom sistemler (AS) adı verilir. Otonom sistem içinde yönlendirme bilgisi, o ağın yöneticisi tarafından belirlenen bir iç yönlendirme protokolü ile dağıtılır. Bu amaçla kullanılabilecek değişik Interior (ic) protokoller mevcuttur.
HELLO en iyi yönü seçerken gecikme faktörünü kullanan bir protokoldür. Gecikme olarak çıkış noktasından varış noktasına gönderilen bir paketin çıkış noktasına ulaşana kadar geçen zaman süresi kabul edilir. Bu protokol çok yaygın olarak kullanılmamaktadır. NSFNET omurgası 56 Kbps hızında iken kullanılmış ve zaman içinde başka protokoller ile değiştirilmiştir.
Son zamanlarda yaygınlaşmaya başlayan bir diğer iç protokol de OSPF'dir (Open Shortest Path First). OSPF 'equal cost multipath routing' (eşit maliyetli çok yollu yönlendirme) mantığı ile çalışmakta ve çok büyük ağlarda kullanılmaktadır. OSPF aynı varış noktasına birden fazla yönlendirme bilgisini tutmaktadır. Ancak OSPF'in bugün için sadece özel yönlendirme cihazları üzerinde var olması ve henüz UNIX sistemlerin bir parçası haline gelmemesinden dolayı yaygın kullanıma geçilememektedir.
RIP (Routing Information Protocol) bu protokoller içinde en çok kullanılanıdır. RIP'i popüler yapan sebeplerin başında bu protokolün UNIX sistemlerin bir parçası olması gelmektedir. RIP protokolü yönünü en düşük sıçrama sayısı-hop count (metrik) ile seçer. RIP 'hop count', bilginin varış noktasına ulaşana kadar geçeceği geçiş yolları sayısını gösterir. Dolayısıyla RIP en az geçiş yoluyla ulaşılabilecek yolu en iyi yol olarak seçer. Bu yaklaşımla yol seçme işlemine 'distance- vector algoritması' adı verilir. RIP protokolünün kabul edebileceği maksimum geçiş yolu (gateway) sayısı 15 ile sınırlıdır. Ulaşılmak istenen yön ile ilgili metrik 15'den büyükse, RIP o noktaya ulaşılamaz olduğunu varsayar ve ilgili yönlendirme bilgisini atar. Dolayısıyla RIP çok büyük Otonom Sistemler için uygun bir protokol değildir. Bunun yanında en kısa yol en iyi yoldur yöntemi de yavaş ve yüklü hatlar kullanılması durumunda doğru olmamaktadır.
Çok kullanılan bir yönlendirme protokolü olmasından dolayı RIP protokolünün biraz daha detaylarına girelim. Daha önce de belirttiğimiz gibi RIP pek çok UNIX sisteminin bir parçası olarak gelmektedir. RIP bu işletim sisteminde bir yönlendirme deamon'u olarak çalışır. UNIX'deki bu deamon routed'dir. routed çalıştırıldığında yönlendirme tablosunu güncellemek (update) için hemen bir istek paketi yollar ve ardından gelecek olan cevapları dinlemeye başlar. RIP çalıştıran başka bir sistem bu isteği aldığında kendi yönlendirme tablosu ile ilgili güncel bilgileri cevap olarak yollar. Bu paket adresler ve bu adreslerle ilgili metrik bilgilerini içerir. Bunun yanında güncelleme paketleri sadece istek üzerine değil periyodik olarak yollanmaya başlanır.
Routed bir güncelleme bilgisini aldığında gelen paket içindeki bilgiyi alır ve kendi tablolarını günceller. Gelen bilginin içinde yeni bir yönlendirme bilgisi varsa bunu da hemen tablolarına ekler. Gelen paket içindeki yönlendirme bilgileri arasında lokal tabloda bulunan bir adres için ikinci bir yol belirtiliyorsa bu durumda lokal tablodaki ve gelen güncelleme tablosundaki metrik bilgileri karşılaştırılır. RIP protokolü Metrik bilgisi düşük olan noktaya daha kolay ulaşılacağı varsayımı ile çalıştığı için tabloya bu değere sahip yöne ilişkin adres yerleştirilir.
RIP tabloları tabii ki belli bir yerden sonra çok fazla büyüyeceği için bir şekilde kontrol altında tutulmalıdır. Bunun için iki yol mevcuttur. Birincisi, bir noktaya ulaşmak için gereken metrik 15'in üzerindeyse bu nokta ulaşılamaz kabul edilir ve tablodan çıkarılır. İkincisi, eğer bir geçiş noktası belli bir süre güncelleme bilgisi yollamazsa RIP o noktanın ölü olduğunu ve ulaşılamadığını varsayar. Genel olarak güncelleme cevabı bekleme suresi 30 saniye civarındadır. Bir UNIX sisteminde RIP protokolünü çalıştırmak için
# routed
komutunun girilmesi yeterlidir. Genellikle komut hiç bir argüman verilmeden çalıştırılır. Fakat kullanılan sistem bir geçiş noktası değilse ve elindeki yönlendirme bilgisini sürekli yayınlaması gerekmiyorsa bu durumda komut -q opsiyonu ile çalıştırılabilir. Böylece sistem sadece yeni duyurulan yönlendirme bilgilerini dinleyip tablolarını güncelleyecek ancak kendisi bir duyuru yapmayacak dolayısıyla gereksiz trafik yaratılmayacaktır.
ii-Exterior (dis) Protokoller: Otonom Sistemler arasında yönlendirme bilgisinin birbirleri arasında değiştirilmesi amacı ile kullanılır. Bu belli bir Otonom Sistem üzerinden hangi ağlara ulaşılabileceği bilgisini içerir. Bu protokoller içinde en popüler olanları EGP (Exterior Gateway Protocol) ve BGP'dir (Border Gateway Protocol). Bu dokuman içinde EGP ve BGP protokollerin detaylarına girilmeyecektir.

IP Adresleme


IP ADRESLEME
Bir kablo veriyi bir yerden başka bir yere taşıyabilir. Bununla beraber biliyoruz ki internet dünyanın çoğu yerine dağılmış ve farklı yerlerdeki veriyi alabilir. Bunu nasıl yapar?
İnternetin farklı parçaları ağları birbirine bağlayan yönlendirici(router) adı verilen bilgisayar seti tarafından birleştirilmiştir. Bu ağlar bazen ethernet, bazen token rings ve bazen de telefon hatlarıdır.
Telefon hatları ve ethernetler karşılıklı değiş tokuşu sağlarlar ve posta servislerini planlarlar. Bu onların maili bir yerden başka bir yere taşımaları anlamına gelir. Yönlendiriciler gönderimin alt istasyonlarıdır, onlar verinin(paketlerin) nasıl yönleneceği hakkında bir posta istasyonunun mektup içeren zarflarını yönlendirdiği gibi karar verilmesini sağlarlar. Her alt istasyon veya yönlendiricinin diğerlerinin her biriyle bağlantısı yoktur. Eğer bir mektubu Dixilville Notch, New Hampshire’da zarflayıp Bonville, California’ya göndermek istersen, posta ofisi New Hampshire’dan California’ya götürmek için bir uçak ayarlamaz. Yerel posta ofisi mektubu bir alt istasyona, alt istasyon başka bir alt istasyona gönderir ve hedefe ulaşana kadar bu böyle devam eder. Yani her istasyon sadece hangi bağlantıya ulaşabileceğine ve hangisinin hedefine yaklaşmak için en iyi yol olduğunu bilme ihtiyacı duyar. Benzer şekilde internette bir yönlendirici verinizin nereye gideceğine bakar ve onu nereye göndereceğine karar verir. Hangi kanalın en iyi olacağına karar verir ve onu kullanır.
Ağ verinizin nereye gittiğini nasıl bilir? Bir mektup göndermek isterseniz mektubu yazıp direk posta kutusuna atamazsınız. Kağıdı bir zarfa koyma, zarfın üstüne adres yazma ve onu pullamaya gereksiniminiz vardır.
Posta ofisinde olduğu gibi ağ da nasıl çalıştığıyla ilgili tanımları içeren kurallara sahiptir. İnternet işlemlerinin nasıl yönetildiğiyle ilgili kurallardan biri de IP(Internet Protocol)’dir. IP adreslemeye veya veri ulaştığında yönlendiricinin ne yapmasını bilmesinden emin olmaya dikkat eder. Posta ofisinin analojisiyle internet protokolünün çalışmasını saptamak bir zarfın işleyişine benzer.
IP adresi 32 bitlik bir numaradır. TCP/IP protokolünü kullanan her bilgisayarın IP adresi olmalıdır. IP adresi hem bilgisayarın dahil olduğu ağı hem de o bilgisayarın ağ içerisindeki adresini belirler.
Elimizde adresleme için kullanabileceğimiz 32 bit varsa toplam 2 üzeri 32 den 4 milyon bilgisayarı adresleyebiliriz.
IP adresini oluşturan 32bit, kolayca okunabilmesini sağlamak için 8 bitlik dört gruba ayrılmıştır bu grupların her birine “octet” denir.Örnek bir IP adresi şu şekilde olabilir:
10000011 01101011 00000001 00001100
Yukarıdaki adres her ne kadar 4 oktede ayrılmışsa da okunması zordur; çünkü bizler rakamları 10’luk düzende okuruz. Bunun için her bir okteti 10’luk düzene çevirip oktetlerin arasına nokta koyuyoruz. Örneğin yukarıdaki adres 131.107.1.12 şeklinde yazılır.
IP numarası yetkili kuruluşlar tarafından verilir. Bunların en üst düzeyi NIC(Network Information Center)’tir. Türkiye’de bu işle ilgili olarak ODTÜ ve TÜBİTAK’ın ortaklaşa yürüttükleri TR-NET grubu çalışmaktadır.
İnternetin yapısı gereği Türkiye’deki internete bağlanacak tüm bilgisayarların hepsinin TÜBİTAK’a bağlanması gerekmemektedir. Örneğin Ankara’da ODTÜ, TÜBİTAK’a zaten bağlı olduğundan ODTÜ’ye bağlanacak kuruluşlar da doğrudan internete erişim olanağı bulurlar.

9 Ocak 2014 Perşembe

TCP/IP Protokolü


TCP PROTOKOLÜ
TCP(Transmission Control Protocol), IP gibi şu problemleri çözmek için çok bahsedilen bir protokoldür. Birine bir kitap göndermek isteyip de posta ofisinin sadece mektup kabul ettiği bir ortamda ne olurdu?Neler yapılabilirdi?Kitabın her sayfasını ayırıp zarflara bölerdin ve bir posta kutusuna atardın. Alıcı tüm sayfaların ulaştığından emin olmalıdır ve onları doğru sırada yapıştırır. Bu, TCP’nin ne yaptığıdır.
TCP, göndermek istediğiniz bilgiyi alır ve onu parçalara böler. Her parçayı numaralandırır ve böylece alış işlemleri kontrol edilebilir, veri düzgün bir sırada geri dönebilir. Geliş sırasına göre bu numaralar ağı geçerler. Verinizin bir parçası bir TCP zarfına yerleştirilir, TCP zarfının içerisine bir IP yerleştirilir ve ağa verilir. Öncelikle içinde bir IP zarfı olan bir şeye sahip olun ki network onu taşısın.
Alış kısmında bir TCP yazılım paketi zarfları biriktirir, verileri çıkarır ve onu düzgünce sıralar. Eğer bazı zarflar eksikse göndericiye bunu sorar ve onları tekrar transfer eder. Öncelikle alıcı bütün bilgilerin doğru sıralanışına sahip olmalıdır. O veriyi hangi uygulama programı kullanıyorsa onun seviyesine geçirir.
Bu, gerçekte TCP’ nin oldukça ütopik yanıdır. Gerçek hayatta paketler kaybolmakla kalmaz aynı zamanda ulaşma esnasında telefon hatlarındaki sorunlar yüzünden değişebilir de. TCP aynı zamanda bu problemlere sahiptir. Veriyi zarfa koyduğu gibi bir toplama(checksum) de yapar. Kontrol, pakette hata olup olmadığını kontrol eden bir numaradır. Paket ulaştığı zaman bir karşılaştırma işlemi yapılır eğer gönderilen ile alınan eşleşmezse transfer işleminde bir hata oluşur. Hatalı paketleri TCP atar ve bir daha gönderilmesini ister.
IP’nin görevi ham verileri-yani paketleri- bir yerden bir yere göndermektir. TCP’ nin görevi ise akışı denetlemek ve verilerin doğruluğunu kontrol etmektir.
Bağlantılı ve güvenilir iletişim sağlar . Bağlantılı olması bilgisayarların iletişime geçmeden önce aralarında oturum açılması sırasında kendi iletişim parametrelerini birbirlerine göndermeleridir. İletişim sırasında bu parametrelere göre hareket ediliyor.
Güvenilir olması da bilginin karşı tarafa ulaştığından emin olmaktır. Bunun için ACK ,acknowledge onay mesajının bize gelmesini sağlıyor. Eğer belli bir sürede mesajı alabilirsek bizden çıkan bilgi karşı tarafın eline geçmiş oluyor alamazsak gönderilen bilginin başına birşey geldi demektir bilgi tekrar gönderiliyor.
Bu veri iletişim performansını düşürüyor ama güvenli bir şekilde hedefe ulaşmasını sağlıyor.
TCP/IP protokolünde kritik işler yapan protokoller ve servisler verilerini TCP ile iletirler. Örneğin 21 nolu portu kullanan FTP , 23 nolu portu kullanan telnet ve 53 nolu portu kullanan DNS.
TCP iletişimini Network Monitör programı ile gözlediğimizde ilkin 3 veri çerçevesinin ( frame) gidip geldiğini görüyoruz. Bu 3 verinin amacı veri paketinin ( bu paketlere TCP de segment deniyor)geliş ve gidişi senkronize etmek , karşı tarafa tampon bellek miktarı hakkında bilgi vermek ve TCP bağlantısını kurmaktır.
Bu 3 çerçeve ile TCP bağlantısı açıldıktan sonra dosya listesinin aktarımı, dosyanın listeden seçilip aktarımı için Netbios oturumu açılıyor hemen ardından da SMB oturumu açılıyor(server message block). SMB microsoft ağlarında bilgisayarlar arası kaynak paylaşımı için kullanılıyor.
TCP iletişiminde iletilmek istenen veriler segmentlere ayrılır , her segmente sıra numarası verilir . Gönderici bilgisayar , segmentleri yani çerçeveleri teker teker gönderip bunların herbirisi için onay bekler . Bunun yerine belli sayıda topluca göndeririz. Örneğin 10 ar 10 ar.Bu belli sayıya pencere denir.
Alıcı bilgisayar da çerçeveler kendisine ulaştıkça bunları kendi tampon belleğine yerleştirir.İki ardışık çerçeve tampon belleğe yerleşince alıcı bilgisayar aldığı en son çerçeve için mesaj gönderir.
Örneğin gönderici 45 adet segment tutuyor pencere büyüklüğü 10 olsun. Bu çerçevelerin 10 ar 10 ar gönderileceği anlamına geliyor. İlk 10 çerçeve gönderildi onay geldi. 17. çerçevenin başına birşey geldi. Bu durumda en son 16. çerçeve için mesaj gider.Veri iletimi tekrarlanacaktır. Ama çerçeveler teker teker gönderilmediği için 17. çerçeveden başlamak üzere 10 çerçeve gönderir. Bu sefer 1-10-20... den oluşan pencere 17-27-37... şekline dönüşür.Bu yönteme kayan pencereler denir.
TCP iki kısımdan oluşur. Başlık (header) ve veri (data) kısmı. Başlık kısmı şu alanlardan oluşur.
Kaynak Portu (source port): Gönderilen bilgisayarın TCP portu
Hedef Portu( destination port ) : Alıcı bilgisayarın TCP portu
Sıra Numarası ( sequence number ) :Segmentlere verilen numara
Onay Numarası( Acknowledgement number)
Veri Uzunluğu ( Data lenght ): TCP segmentinin uzunluğu
Rezerve ( reserved) :Gelecekte kullanılmak üzere rezerve edilmiş
Bayraklar ( Flags) : Segmentin içeriğine dair bilgi
Pencere (window): TCP penceresinde ne kadar yer kalmış olduğunu gösterir.
Kontrol Toplamı (checksum): Başlık kısmının bozulup bozulmadığını gösteren kontrol kısmı
Acil Veri Göstergesi (Urgient pointer) : Bayrak kısmında gösterilen acil bir verinin iletilmek istediğini gösterir.

8 Ocak 2014 Çarşamba

TCP/IP Ağ Çalışma Temelleri

 

TCP/IP Ağ Çalışma Temelleri:
TCP/IP’nin öncelikli fonksiyonu bir noktadan-noktaya iletişim mekanizması sağlamaktır. Bir makine üzerindeki bir süreç diğer bir makine üzerindeki başka bir süreçle ile haberleşir. Bu İletişim iki veri akımı olarak görünür. Akımdan biri bir işlemden diğerine veri taşırken, diğeri ters yönde veri taşır. Süreçlerin her biri normal koşullarda diğeri tarafından yazılan veriyi okuyabilir, alınan veri gönderilen veri ile aynı sıradadır.
Bir noktadan noktaya iletişim sistemi desteklemek için, her bir düğüm bir telefon numarasına benzeyen tek bir adrese ihtiyaç duyar. Bu adres bir 32 bit ikili sayı biçimindedir. Genel olarak, insanlar uzun ikili sayılarla başa çıkamadıklarından bu adresler her biri 0 ile 255 arasında olan dört onluk sayı ile gösterilir. Bu geliştirmede daha doğal adların kullanıldığı mekanizmalara uyarlanmıştır.
IP Adresi
0111 10111
0010 1101
0100 0011
0101 1001
Dört ayrı onlu sayı halinde gösterimi
123
45

67

89
“helpful.com” bölgesi için ad sunucu veri tabanındaki kayıt


Barney= 123.45.67.89
Adrese karşılık uygun bir ad sağlama


Barney.helpful.com
TCP/IP de kullanılan adresleme formatlarının karşılaştırılması
Adres Verilirken Yapılan Düzenlemeler: Adres tekrarı olmaması için ağlara verilen adreslerin sınıflandırılıp verilmesi düşünülmüştür. Ağların hepsinin büyüklükleri aynı değildir. Çok büyük bir ağ adres talep ederken 10-15 bilgisayardan oluşan bir ağ da adres istemektedir. Onun içinde adresler sınıflanmıştır, A,B ve C sınıfı adresler oluşturulmuştur.Bir ağın hangi sınıfta olduğunu anlamak için örnek verdiğimiz numaralardaki ilk üç basamaklı sayıya bakılır.
A sınıfı adresler: İlk üç basamak 0 ile 126 arasındadır.
B sınıfı adresler: İlk üç basamak 128 ile 191 arasındadır.
C sınıfı adresler: İlk üç basamak 192 ile 223 arasındadır.
Ağ Layer’ ı bilgisayarda bulunan ağ kartını, kabloları vb şeyleri gösteriyor. Veri paketlerinin ağa iletilmesinden ve ağdan çekilmesinden bu layer sorumlu.
IP Layerında IP’ye göre düzenlenmiş veri paketlerini görüyoruz. İletim layerından gelen veriler burada internet paketleri haline getiriliyor. Paketlerin yönlendirilmesi ile ilgili işler burada yapılıyor. Burada 4 protokol bulunuyor.
ICMP: Kontrol mesajları gönderip paketlerin gidip , gitmediği bilgisini alır. PING komutu bu protokolü kullanarak karşı bilgisayarın TCP/IP konfügürasyonu bakımından ayakta olup olamadığını anlar.
ICMP Multicast gruplarını belirtmek için kullanılır. Bu ağda mesajlar 3 şekilde gönderilir. Mesaj ya tüm makinalara (Broadcast) ya bir gruba(multicast) ya da bir makinaya (direct) gönderilebilir.
IP: paketleri adresleme ve yönlendirme işleri yapar.
İletim layerında ise iletişim için oturumlar düzenlenir. İki seçenek söz konusudur.
TCP: Bağlantılı ve güvenilir bir iletişim sağlar. Bağlantılı mantıksal bir bağlantıdır. İki bilgisayarın iletişim kurmaları için anlaşmaları demektir.TCP’ ye uygun olarak gönderilen paketler için bir onay mesajı beklenir. Belli bir süre içinde onay mesajı gelmezse paket tekrar gönderilir.Bu da iletimin güvenli olmasını sağlar.
UDP: Bağlantısız ve güvenilir değildir. Neden kullanıyoruz öyleyse ? İletim için karşı tarafla anlaşma gerekmiyorsa ve kontrol gerekmiyorsa kullanılır. Bu protokol ile daha hızlı veri iletişimi sağlanır.
Uygulama layer’i ağ üzerinden iş yapacak uygulamaların bulunduğu layer’dır. FTP,DNS,WINS,HTTP,GOPHER:...
İçinde ağ işlevi olan uygulama geliştirmek için iki API’ miz var. API uygulama geliştirme arabirimi anlamına geliyor. Program yazarken kullanılacak fonksiyonlar uyulacak kurallar demektir. Örneğin program yazmak için win95 ve WinNt ortamlarında çalışabilecek 32 bitlik program oluşturunuz.
İnternet üzerinde ağ uygulamaları için Microsoft ve IBM in birlikte geliştirdiği NETBIOS API ‘ si ya da internet ortamındaki standart API olan Sockets ‘ in windows uyarlaması , Windows Sockets kullanılır. Bir programı NETBIOS API si ile yazarsanız microsoft işletim sistemleri altında çalışır internet ortamında çalışmaz.Uygulama Windows Sockets API ‘ sine uyumlu yazılırsa her iki ortamda da çalışır. Sockets uyumlu uygulamaya örnek PING programı verilebilir. Netbios uyumlu uygulamaya örnek ise NET komutu verilebilir.
WINDOWS SOCKETS
TCP/IP ortamında uygulama geliştirmek için kullanılan API lerden biriside sockets’ dir. Bu uygulama 3 şey ile tanımlanır:
1. IP adresi
2. Servis tipi(UDP,TCP)
3. Kullanılan port
Port numarası birkaç uygulama TCP yi birkaç uygulama UDP yi kullanırken uygulamalara verilen numaradır. 0- 65535 arasında sayı alabilir.1 ile 1024 arasındakiler iyi bilinenlerdir. Bu port numaraları internette standart servislerde kullanılır. Örneğin DNS 53 nolu portu , FTP serviside 21 nolu portu kullanırlar.
Echo,discard,systat , daytime ... servisler aynı port numaralarını kullanıyorlar. Ama bunların servisleri farklı. (TCP,UDP gibi)
TCP/IP protokolünde uygun olarak yazılan diğer protokollerinde birer port numarası kullanması gerekir.
Çalışma şekli şu şekilde oluyor . Bir başka bilgisayarda bulunan program ile iletişime geçmek isteyen program soket yaratır ve iletişim süresince bu soketi kullanır.

TCP/IP


TCP/IP (Transmıssıon Control Protocol/Internet Protocol)
TCP/IP’ nin Tarihçesi
TCP/IP nin kökenleri 1960 ların sonunda ve 1970 lerin başlarında Amerikan savunma bakanlığına bağlı İleri Araştırma Projeleri Ajansının (Advanced Research Projects Ağency,ARPA) yürüttüğü paket anahtarlı ağ deneylerine kadar uzanır. TCP/IP’nin yaratılmasını sağlayan proje , ABD deki bilgisayarların bir felaket anında da ayakta kalabilmesini , birbirleriyle iletişimin devam etmesini amaçlıyordu. Amacına fazlasıyla ulaştığı gibi interneti de ortaya çıkardı.
TCP/IP (Transmıssıon Control Protocol/Internet Protocol)
TCP/IP, Transmission Control Protocol/Internet Protocol ifadesinin kısaltılmasıdır. Türkçesi “İletim kontrol protokolü/İnternet Protokolü” dür. Protokol belli bir işi düzenleyen kurallar dizisi demektir. Örneğin devlet protokolü devlet erkanının nerede duracağını, nasıl oturup kalkacağını düzenler. Ağ protokolüde bilgisayarlar arası bağlantıyı, iletişimi düzenliyor.
TCP/IP Unix dünyasının standart iletişim kuralıdır. Aynı zamanda internetin de temeli olan Savunma Bakanlığı(ABD) tarafından geliştirilmiştir. İnternet adresleri InterNIC tarafından atanır. Eğer TCP/IP ağınız internete bağlı değilse ve hiçbir zaman bağlanmayacaksa, geçerli herhangi bir adres alanını kullanabilirsiniz. Ancak eğer ilerde bağlanma şansınız varsa adres için başvurmanız gerekir.
Netware’in içinde TCP/IP desteği vardır ve tünelleme olarak bilinen süreç ile bir TCP/IP ağda IPX çalıştırmanıza imkan verir.
Tünelleme; IPX paketi bir TCP/IP önbilgi ve artbilgiyle çevrelenir. Böylece paket IPX ağdan TCP/IP ağa, oradan tekrar IPX ağa geri yöneltilebilir.
Artık çoğu işyerlerinin internete doğrudan bağlantısı yoktur. Doğrudan bağlantı büyük bir güvenlik riski doğurmaktadır.Genellikle “firewall” olarak bilinen iç ağ ile internet arasında sadece izin verilen trafiğin olmasını sağlayan bir sunucu veya yöneltici kullanırlar. Firewall kullanıldığında iç ağ numaraları herhangibir geçerli adres olmayabilir ve firewall yönelticinin ihtiyacı olan tek şey “düzgün” yetkili bir internet numarasıdır.
Değişik tipte bilgisayarların bir arada çalışabilmelerini garantilemek amacıyla programcılar programlarını bazı standart protokolleri kullanarak yazarlar. Bu protokol, teknik bir terim olarak işlerin nasıl yapılması gerektiğini tarif eden kurallar bütünüdür. Örneğin, bir posta mesajı için hangi formatın kullanılacağını tam olarak tarif eden bir protokol bulunmaktadır. Tüm internet posta programları, mesaj gönderecekleri zaman bu protokolü takip ederler.
TCP, gerçekte iki ayrı protokolden oluşur: TCP ve IP. TCP/IP ikisinin beraber kullanıldığı zamanlarda genellikle tercih edilir.
IP- Bu bölümde datagramlara bölünmüş bilgi paketleri diğer bilgisayar ve ağlara yönlendirilir. Bu datagramların herbiri IP’den bağımsız olarak düşünülür.
IP datagramın hedefine ulaşacağını garantilemez veya herhangi iki datagramın aynı yolda alınacağıyla protokol datagramların sıralandığı gibi gönderilmesini sağlamaz.
Bu protokolün basitliği ve her datagramın bağımsız olması sebebiyle IP bir bağlantısız(connectionless protocol) olarak düşünülür.
TCP- TCP, datalardan segmentleri düzenler ve gönderilmesi için IP katmanına geçirir. Bu katmanda IP katmanından alınan datagramlar tekrar sıralanır ve verinin değişmiş olup olmadığı, hatasız geldiğinden emin olunur. TCP veriyi ilettiğinde bir zamanlayıcı(timer) düzenler. Bir paket uzak bir bilgisayara ulaştığında bir onay(acknowledment) göndericiye ulaştırılır. Eğer onay ulaşmadan zamanlayıcının süresi dolarsa paket tekrar transfer edilir.
Tüm pratik amaçlar için bir makinedeki TCP protokolü uzak bilgisayarlara bağlantı kurmak için TCP protokolüyle iletişim kurar.
TCP; bağlantı tabanlı protokoldür(connection-oriented protocol). Bir uzak bilgisayarla sanal bir dolaşım sağlamaya yarayan, port adı verilen başka adresleri formlamayı kullanır. TCP Telnet gibi birden fazla kullanıcı olduğunda aynı porttan çoklu işlemlere(Multiple processes) izin verir.
TCP/IP; katmanlardan oluşan bir protokoller kümesidir. Her katman değişik görevlere sahip olup altındaki ve üstündeki katmanlar ile gerekli bilgi alışverişini sağlamakla yükümlüdür.
TCP/IP katmanlarının tam olarak ne olduğu, nasıl çalıştığı konusunda bir fikir sahibi olabilmek için bir örnek üzerinde inceleme yapalım:
TCP/IP’nin kullanıldığı en önemli servislerden birisi elektronik postadır (e-posta). E- posta servisi için bir uygulama protokolü belirlenmiştir (SMTP). Bu protokol e- posta’nın bir bilgisayardan başka bir bilgisayara nasıl iletileceğini belirler. Yani e- postayı gönderen ve alan kişinin adreslerinin belirlenmesi, mektup içeriğinin hazırlanması vs. gibi. Ancak e-posta servisi bu mektubun bilgisayarlar arasında nasıl iletileceği ile ilgilenmez, iki bilgisayar arasında bir iletişimin olduğunu varsayarak mektubun yollanması görevini TCP ve IP katmanlarına bırakır.
TCP katmanı komutların karşı tarafa ulaştırılmasından sorumludur. Karşı tarafa ne yollandığı ve hatalı yollanan mesajların tekrar yollanmasının kayıtlarını tutarak gerekli kontrolleri yapar. Eğer gönderilecek mesaj bir kerede gönderilemeyecek kadar büyük ise (Örnegin uzunca bir e-posta gönderiliyorsa) TCP onu uygun boydaki segment’lere (TCP katmanlarının iletişim için kullandıkları birim bilgi miktarı) böler ve bu segment’lerin karşı tarafa doğru sırada, hatasız olarak ulaşmalarını sağlar. İnternet üzerindeki tek servis e-posta olmadığı için ve segment’lerin karşı tarafa hatasız ulaştırılmasını sağlayan iletişim yöntemine tüm diğer servisler de ihtiyaç duyduğu için TCP ayrı bir katman olarak çalışmakta ve tüm diğer servisler onun üzerinde yer almaktadır. Böylece yeni bir takım uygulamalar da daha kolay geliştirilebilmektedir. Üst seviye uygulama protokollerinin TCP katmanını çağırmaları gibi benzer şekilde TCP de IP katmanını çağırmaktadır. Ayrıca bazı servisler TCP katmanına ihtiyaç duymamakta ve bunlar direk olarak IP katmanı ile görüşmektedirler. Böyle belirli görevler için belirli hazır yordamlar oluşturulması ve protokol seviyeleri inşa edilmesi stratejisine ‘katmanlaşma’ adı verilir. Yukarda verilen örnekteki e- posta servisi (SMTP), TCP ve IP ayrı katmanlardır ve her katman altındaki diğer katman ile konuşmakta diğer bir deyişle onu çağırmakta ya da onun sunduğu servisleri kullanmaktadır. En genel haliyle TCP/IP uygulamaları 4 ayrı katman kullanır. Bunlar:
...Bir uygulama protokolu, mesela e-posta
....Üst seviye uygulama protokollerinin gereksinim duyduğu TCP gibi bir protokol katmanı
...IP katmanı. Gönderilen bilginin istenilen adrese yollanmasını sağlar.
...Belirli bir fiziksel ortamı sağlayan protokol katmanı. Örneğin Ethernet, seri hat, X.25 vs.
İnternet birbirine geçiş yolları (gateway) ile bağlanmış çok sayıdaki bağımsız bilgisayar ağlarından oluşur ve buna ‘catenet model’ adi verilir. Kullanıcı bu ağlar üzerinde yer alan herhangi bir bilgisayara ulaşmak isteyebilir. Bu işlem esnasında kullanıcı farkına varmadan bilgiler, düzinelerce ağ üzerinden geçiş yapıp varış yerine ulaşırlar. Bu kadar işlem esnasında kullanıcının bilmesi gereken tek şey ulaşmak istediği noktadaki bilgisayarın ‘Internet adresi’ dir. Bu adres toplam 32 bit uzunluğunda bir sayıdır. Fakat bu sayı 8 bitlik 4 ayrı ondalık sayı şeklinde kullanılır (144.122.199.20 gibi). Bu 8 bitlik gruplara ‘octet’ ismi de verilir. Bu adres yapısı genelde karşıdaki sistem hakkında bilgi de verir. Mesela 144.122 ODTU için verilmiş bir numaradır. ODTU üçüncü octet’i kampüs içindeki birimlere dağıtmıştır. Örneğin, 144.122.199 bilgisayar merkezinde bulunan bir Ethernet ağda kullanılan bir adrestir. Son octet ise bu Ethernete 254 tane bilgisayar bağlanmasına izin verir (0 ve 255 bilgisayar adreslemesinde kullanılmayan özel amaçlı adresler olduğu için 254 bilgisayar adreslenebilir).
IP bağlantısız “connectionless” ağ teknolojisini kullanmaktadır ve bilgi “datagramlar” (TCP/IP temel bilgi birim miktarı) dizisi halinde bir noktadan diğerine iletilir. Büyük bir bilgi grubunun (büyük bir dosya veya e-posta gibi) parçaları olan “datagram” ağ üzerinde tek başına yol alır. Mesela 15000 octet’lik bir kütük pek çok ağ tarafından bir kere de iletilemeyecek kadar büyük olduğu için protokoller bunu 30 adet 500 octetlik datagramlara böler. Her datagram ağ üzerinden tek tek yollanır ve bunlar karşı tarafta yine 15000 octetlik bir kütük olarak birleştirilir. Doğal olarak önce yola çıkan bir datagram kendisinden sonra yola çıkan bir datagramdan sonra karşıya varabilir veya ağ üzerinde oluşan bir hatadan dolayı bazı datagramlar yolda kaybolabilir. Kaybolan veya yanlış sırada ulaşan datagramların sıralanması veya hatalı gelenlerin yeniden alınması hep üst seviye protokollerce yapılır. Bu arada “paket” ve “datagram” kavramlarına bir açıklama getirmek yararlı olabilir. TCP/IP ile ilgili kavramlarda “datagram” daha doğru bir terminolojidir. Zira datagram TCP/IP’de iletişim için kullanılan birim bilgi miktarıdır. Paket ise fiziksel ortamdan (Ethernet, X.25 vs.) ortama değişen bir büyüklüktür. Mesela X.25 ortamında datagramlar 128 byte’lık paketlere dönüştürülüp fiziksel ortamda böyle taşınırlar ve bu işlemle IP seviyesi hiç ilgilenmez. Dolayısıyla bir IP datagramı X.25 ortamında birden çok paketler halinde taşınmış olur.
TCP/IP protokoller kümesidir. Her biri değişik işler yapan bir yığın protokolden oluşur.
TCP/ IP kurulan bir bilgisayar ağında bilgisayarı üç parametre ile tanımlarız.
1. Bilgisayar İsmi : Kullanıcı tarafından işletim sistemi kurulurken bilgisayara verilen addır.
2. IP Adresi : 4 bölümden oluşan adrestir xxx.xxx.xxx.xxx her bölüm 0-255 arasında değer alabilir.
3. Mac Adresi: bilgisayar ağ kartlarının ya da ağ cihazlarının içine değiştirilemez bir şekilde yerleştirilmiş bulunan bir adrestir. 0020AFF8E771 örneğinde olduğu gibi 16 lık düzende (hexadecimal) rakamlardan oluşur. Mac adresi yerine donanım adresleri ya da fiziksel adreste kullanılabilir.
Ağ üzerinde iletişimler aslında Mac adresleri ile gerçekleşir. Çünkü IP adresleri TCP/IP protokolüne özeldir. Başka protokolde , örneğin , Novell’in kullandığı IPX/SPX protokolünde IP adresi diye birşey yoktur. Bütün protokollerde değişmeyen tek şey MAC adresidir.
Her protokol kendine göre bir adresleme şeması kullanır ama bu şemalarda yer alan adreslerin dönüp dolaşıp en altta MAC adresine çevrilmesi gerekir.
TCP/IP’ nin Yapısı
TCP/IP Katmanları: TCP/IP protokol kümesinin sahip olduğu mimari uygulama programlarının bulunduğu katman sayılmaz ise 4 katmanlıdır.En üstte uygulama programları vardır, altında ise iletişim işini yapan programlar bulunur.
Uygulama katmanın altında sırasıyla ulaşım, yönlendirme ve fiziksel katmanlar vardır. Ulaşım katmanında TCP ve UDP protocolleri, yönlendirme katmanında IP ve ICMP protokolleri tanımlıdır. Her katmanda birçok protokol vardır; ancak uygulama programları tarafından istenen bir iş yerine getirilirken, her katmandaki protokollerden yalnızca biri kullanılır.
Uygulama Katmanı Programları: Uygulama katmanı için tanımlı olan STMP,TELNET… gibi protokoller bir üstünde bulunan programlara hizmet verir. Bunlar, kullanıcının doğrudan etkileşimde bulunduğu veya bilgisayar kaynaklarını başka kullanıcılara erişme olanağı sağlayan programlardır.
STMP(Simple Mail Transport Protocol): Ağ içindeki kullanıcılar arasındaki elektronik mektup alış verişini düzenler.
SNMP(Simple Network Management Protokol): Ağ içinde bulunan yönlendirici, anahtar ve HUB gibi cihazların yönetimi için kullanılır. SNMP desteği olan ağ cihazları SNMP mesaj alış verişleriyle uzaktan yönetilebilir. Bunun için cihazlarda SNMP (agent) olmalıdır.
TELNET: Bir sistem üzerindeki başka bir sisteme bağlanarak, sanki onun terminalindeymiş gibi bağlandığı sistemi kullanmasını sağlar.
FTP (File Transfer Protocol): Bir Bilgisayardan başka bir bilgisayara dosya aktarımı için kullanılan temel protokoldür.
FSP(File Send Protocol): Bu protokol FTP ‘ye alternatif olarak geliştirilmiş. Tek üstün özelliği, bir dosya transfer edilirken herhangi bir sorun olur da hat kesilirse yeni bağlantıda dosyanın yarım kaldığı yerden alış- verişe devam edilmesine olanak vermesi. Ancak hat hızları arttığından FSP’ye çok fazla rağbet olmamamış. FTP daha çok kullnılmıştır.
NNTP (Netwok News Transpor Protocol): USENET postalama hizmetinin kullanımını sağlar.
Ulaşım Katmanı Protokolü: TCP ve UDP ulaşım katmanı protokolleri, bir üst katmandan gelen veriyi paketleyip bir alt katmana verirler,. Eğer veri bir seferde gönderilemeyecek kadar uzunsa, alt katmana verilmeden önce parçalara ayrılır (segment) ve her birine bir sıra numarası verilir.Genellikle TCP kullanılır, Sorgu amaçlı olarak da UDP kullanılır.
TCP(Transmission Control Protocol): Görevleri şunlardır;
Bir üst katmandan gelen verinin uygun uzunlukta parçalara bölünmesi;
Herbir parçaya, alıcı kısmında aynı biçimde sıraya koyabilmesi amacıyla sıra numarası verilmesi;
Kaybolan veya bozuk gelen parçaları tekrarlaması;
TCP kendisine atanmış olan bu görevleri yapabilmek amacıyla, ulaşım katmanında veri parçalarının önüne başlık bilgisi ekler. Başlık bilgisi ve veri parçası, ikisi birlikte TCP segmenti olarak anılır. Bir alt katmana örneğin, IP katmanına bu TCP segmenti gönderilir; oradan da bu segmente IP başlığı eklenerek alıcıya gönderilir.
UDP (User Datagram Protocol): UDP’nin farkı sorgulama ve sınama amaçlı, küçük boyutlu verinin aktarılması için olmasıdır; veri küçük boyutlu olduğu için parçalara gerek duyulmaz. UDP, TCP’den kısadır. Fakat, bir kaynak ve hedef adrese sahiptir.
Yönlendirme Katmanı Protokolleri: Bir üst katmandan gelen segmentleri alıcıya, uygun yoldan ve hatasız ulaşımla yükümlüdür.
IP(Internet Protokol): Bir datagramın hangi üst katmana katmana ait olduğunu belirler. Alıcı IP bu alana bakarak paketi bir üstte bulunan protokollerden hangisine ileteceğini anlar.
ICMP (Internet Control Message Protokol): ICMP kontrol amaçlı bir protokoldür; genel olarak sistemler arası kontrol mesajları IP yerine ICMP üzerinden aktarılır. ICMP, IP aynı düzeyde olmasına karşın aslında kendiside IP’yi kullanır. ICMP mesajları IP üzerinden gönderilir.