Ağ İletişim Protokolleri

TCP /IP ve ARM işlemci

1 – TCP / IP nedir

İnternet’in çalışmasını sağlayan protokoller bütünüdür.

TCP : Transmission control protocol

IP: Internet protocol

İnternetten veri alış-verişi sırasında TCP ve IP’nin birçok alt protokolü arka arkaya çalışır. Genel olarak TCP verileri böler, etiketler; IP de adreslemeleri,yönlendirmeleri gerçekleştirir.

1.1 – Katmanlar

TCP/IP’de, yollanan veriler katmanlara göre paketlenerek yollanır ve alıcıda bu paketler teker teker açılıp veri ulaştırılır. Bu yöntem, yollanan veri, yollama şekli ve yollama yolunu birbirinden ayırarak birlikte çalışmayı kolaylaştırır: örneğin bir bilgisayarda bağlantı olarak Ethernet yerine Wi-fi kullanılması, üzerinde başka bir web tarayıcı kullanılmasını gerektirmez.

Katmanlar, bahsedilen standarda göre dört veya yedi şekilde açılabilir. TCP/IP’de genel olarak dört katmandan bahsedilir, bunlar:

* Uygulama: Bu katmanda veriyi göndermek isteyen uygulama ve kullandığı dosya formatı bulunur. Örneğin “HTTP üzerinden HTML formatında yazılmış bir web sayfası”

* Taşıma: Bu katmanda verinin ne şekilde gönderildiği gösterilir. TCP veya UDP gibi protokoller bu katmandadır.

* Ağ: Bazen IP katmanı olarak da anılan bu katman, IP adreslerinin veriye eklendiği noktadır. Bu katmandaki uygulamalar IP veya IPv6 gibi iletişim protokolleri olabileceği gibi ICMP, IGMP veya ARP gibi durum bildirme ve katmanlar arası bağ protokolleri de olabilir.

* Fiziksel: En alt katman olan fiziksel katmanda Ethernet, Wi-fi, modem, token ring, ATM gibi protokoller bulunur.

(OSI katmanları daha sonra ayrıntılı olarak anlatılacaktır.)

Katmanlama, her katmana özel donanımlar yapılmasına olanak sağlamıştır: fiziksel katmanda paket yönlendirmesi switch’ler, IP katmanında paket yönlendirmesi router’lar, taşıma katmanında paket yönlendirmesi ise NAT’ler tarafından yapılır. Bu sayede, basit donanımlarla yüksek TCP/IP performansları elde edilebilmektedir.

Katmanlama, uygulamalar arası uyumu kolaylaştırdığı gibi büyük bir dezavantaja da sahiptir: her katman veriye tekrarlanan (dolayısıyla gereksiz) veriler ekler. Örneğin her katman pakete ekstra bir boy bilgisi ekleyecektir. Çoğu katman verinin doğruluğundan emin olmak için muhtelif rakamlar da ekleyebilir. Bu fazlalığın, dünya internet trafiğinin %15 gibi bir kısmını oluşturduğu tahmin edilmektedir.

2 – OSI

Open Systems Interconnection (OSI) modeli ISO (International Organization for Standardization) tarafından geliştirmiştir. Amaç iki bilgisayar arasındaki iletişimin nasıl olacağını tanımlamaktır.

İlk olarak 1978 yılında ortaya çıkarılan bu standart 1984 yılında yeni bir düzenlemeyle OSI (Open System Interconnect) başvuru modeli olarak yayımlanmıştır. Bu model kısa sürede kabul görerek yaygınlaşmış ve ağ işlemleri için bir kılavuz olmuştur.

OSI öncesindeki dönemde, yalnızca bilgisayar donanımı üreten kuruluşlara özgü ağlar vardı. Örneğin IBM’in SNA ile DEC’in DECnet’i gibi. Bu ağların özellikleri, çoğunlukla yalnızca o üreticinin donanımının kullanılmasına izin verecek (ya da en azından başka ürünlerin bağlanmasını zorlaştıracak) biçimde tanımlanmıştı. Onlardan ayrı olarak OSI, çeşitli üreticilerin ürünlerinin bağlanabileceği bir ağ için, bir sektör etkinliği olarak ortaya çıkmıştır.

OSI Modeli herhangi bir donanım ya da bilgisayar ağı tipine göre değişiklik göstermemektedir. OSI’nin amacı ağ mimarilerinin ve protokollerinin bir ağ ürünü bileşeni gibi kullanılmasını sağlamaktır.

ISO standartlarının ağ üzerindeki iletişimi sağlarken karmaşık bir yol izlediği bir gerçektir. ISO standartı yedi katmana (alt göreve) ayrılmıştır. OSI modeli olarak bilinen bu yedi katman şunlardır:

2.1 – OSI katmanları:

7 Uygulama: Kullanıcı uygulamalarına servis sağlar

6 Sunum: Kullanıcı uygulaması için verinin dönüşümünü sağlar. Veriyi yeniden düzenler.

5 Oturum: Sistemler arasındaki iletişimi sağlar

4 Taşıma: Temel ağ bağlantısı sağlayan 1.nci ve 3.ncü katman ile uygulama iletişimini sağlayan 5.nci ve 7.nci üst üç katman arasındaki bu katman bu bölümleri birbirinden ayırır.

3 Ağ: Ağ bağlantısını düzenlemek, devam ettirmek ve sonlandırmaktan sorumludur.

2 Veri Bağlantısı: Fiziksel bağlantıyı sağlar. Veri çerçevelerini (frame) düzenler.

1 Fiziksel: Veri iletimi ortamı düzeyinde verilerin elektrik işaretleri olarak iletimini sağlar.

OSI Modeli değişmez bir kanun değildir. İsteyen kendi başına bir ağ sistemi tasarlayabilir ve belki de çalışır hale getirir. Ancak OSI modeli referans alınmadıysa diğer ağlarla iletişimi zor olacak değişik üreticiler bu ağ sistemi için donanım ve yazılım üretemeyecekler demektir.

Uygulama katmanı veriyi sunum katmanına sunum ise oturum katmanına aktarır. Bu şekilde veri fiziksel katmana kadar ulaşır.

Veri alımında ise bu işlem tam tersi şekilde gerçekleşir.

OSI Modelinde her katman çözülmesi gereken problemleri tanımlar. Bu katmanda çalışan aygıt ve protokoller ise bu problemlere çözüm getirir.

7 katmanlı OSI modeli 2 bölümde incelenebilir: Application Set ve Transport Set. Application Set(uygulama seti) uygulamalar yani programlarla ilgili konuları içerir. Genellikle sadece yazılımsaldır. Modelin en üstündeki uygulama katmanı kullanıcıya en yakın katmandır.

Transport Set(veri aktarım seti) veri iletişimi ile ilgili meseleleri tanımlar. Fiziksel ve veri aktarım katmanları hem yazılımsal hem de donanım olarak görevini yerine getirebilir. Fiziksel katman(en alt katman) fiziksel ağ ortamına en yakın katmandır. Ve esas olarak bilgiyi kablodan aktarmakla görevlidir.

2.1.1 – Katman 1: Fiziksel Katman (Physical Layer)

1. katman veya fiziksel katman verinin kablo üzerinde alacağı fiziksel yapıyı tanımlar. Diğer katmanlar 1 ve sıfır değerleriyle çalışırken, 1. katman 1 ve sıfırların nasıl elektrik, ışık veya radyo sinyallerine çevrileceğini ve aktarılacağını tanımlar. Gönderen tarafta 1. katman bir ve sıfırları elektrik sinyallerine çevirip kabloya yerleştirirken, alıcı tarafta 1. katman kablodan okuduğu bu sinyalleri tekrar bir ve sıfır haline getirir.

Fiziksel katman veri bitlerinin karşı tarafa, kullanılan medya(kablo, fiber optik, radyo sinyalleri) üzerinden nasıl gönderileceğini tanımlar. İki tarafta aynı kurallar üzerinde anlaşmamışsa veri iletimi mümkün değildir. Örneğin bir taraf sayısal 1 manasına gelen elektrik sinyalini +5 volt ve 2 milisaniye süren bir elektrik sinyali olarak yolluyor, ama alıcı +7 volt ve 5 milisaniyelik bir sinyali kabloda gördüğünde bunu 1 olarak anlıyorsa veri iletimi gerçekleşmez.

Fiziksel katman bu tip çözülmesi gereken problemleri tanımlamıştır. Üreticiler (örneğin ağ kartı üreticileri) bu problemleri göz önüne alarak aynı değerleri kullanan ağ kartları üretirler. Böylece farklı üreticilerin ağ kartları birbirleriyle sorunsuz çalışır.

2.1.2 – Katman 2: Veri Bağlantısı Katmanı (Data Link Layer)

Veri bağlantısı katmanı fiziksel katmana erişmek ve kullanmak ile ilgili kuralları belirler. Veri bağlantısı katmanının büyük bir bölümü ağ kartı içinde gerçekleşir. Veri bağlantısı katmanı ağ üzerindeki diğer bilgisayarları tanımlama, kablonun o anda kimin tarafından kullanıldığının tespiti ve fiziksel katmandan gelen verinin hatalara karşı kontrolü görevini yerine getirir.

Veri bağlantısı katmanı iki alt bölüme ayrılır: Media Access Control(MAC) ve Logical Link Control(LLC).

VERİ BAĞLANTISI

  • LLC
  • MAC

MAC alt katmanı veriyi hata kontrol kodu(CRC), alıcı ve gönderenin MAC adresleri ile beraber paketler ve fiziksel katmana aktarır. Alıcı tarafta da bu işlemleri tersine yapıp veriyi veri bağlantısı içindeki ikinci alt katman olan LLC’ye aktarmak görevi yine MAC alt katmanına aittir. MAC konusu Ethernet kısmında ayrıntılı olarak anlatılacaktır.

LLC alt katmanı bir üst katman olan ağ katmanı(3. katman) için geçiş görevi görür. Protokole özel mantıksal portlar oluşturur (Service Access Points, SAPs). Böylece kaynak makinede ve hedef makinede aynı protokoller iletişime geçebilir(örneğin TCP/IP<–>TCP/IP). LLC ayrıca veri paketlerinden bozuk gidenlerin(veya karşı taraf için alınanların) tekrar gönderilmesinden sorumludur. Flow Control yani alıcının işleyebileceğinden fazla veri paketi gönderilerek boğulmasının engellenmesi de LLC’nin görevidir.

2.1.3 – Katman 3: Ağ Katmanı(Network Layer)

Ağ katmanı veri paketine farklı bir ağa gönderilmesi gerektiğinde yönlendiricilerin kullanacağı bilginin eklendiği katmandır. Örneğin IP protokolü bu katmanda görev yapar.

2.1.4 – Katman 4: Taşıma Katmanı (Transport Layer)

Taşıma katmanı üst katmanlardan gelen veriyi ağ paketi boyutunda parçalara böler. NetBEUI, TCP ve SPX gibi protokoller bu katmanda çalışır. Bu protokoller hata kontrolü gibi görevleri de yerine getirir.

Taşıma katmanı alt katmanlar (Transport Set) ve üst katmanlar (Application Set) arasında geçit görevini görür. Alt katmanlar verinin ne olduğuna bakmandan karşı tarafa yollama işini yaparken üst katmanlarda kullanılan donanım ile ilgilenmeden verinin kendisi ile ilgilenirler.

2.1.5 – Katman 5: Oturum Katmanı(Session Layer)

Oturum katmanı bir bilgisayar birden fazla bilgisayarla aynı anda iletişim içinde olduğunda, gerektiğinde doğru bilgisayarla konuşabilmesini sağlar. Örneğin A bilgisayarı B üzerideki yazıcıya yazdırırken, C bilgisayarı B üzerindeki diske erişiyorsa, B hem A ile olan, hem de C ile olan iletişimini aynı anda sürdürmek zorundadır.

Bu katmanda çalışan NetBIOS ve Sockets gibi protokoller farklı bilgisayarlarla aynı anda olan bağlantıları yönetme imkanı sağlarlar.

2.1.6 – Katman 6: Sunum Katmanı(Presentation Layer)

Sunum katmanının en önemli görevi yollanan verinin karşı bilgisayar tarafından anlaşılabilir halde olmasını sağlamaktır. Böylece faklı programların birbirlerinin verisini kullanabilmesi mümkün olur.

Dos ve Windows 9x metin tipli veriyi 8 bit ASCII olarak kaydederken (örneğin A harfini 01000001 olarak), NT tabanlı işletim sistemleri 16 bit Unicode’u kullanır (A harfi için 0000000001000001). Ancak kullanıcı tabii ki sadece A harfiyle ilgilenir. Sunum katmanı bu gibi farklılıkları ortadan kaldırır.

Sunum katmanı günümüzde çoğunlukla ağ ile ilgili değil, programlarla ilgili hale gelmiştir. Örneğin iki tarafta da gif formatını açabilen bir resim gösterici kullanıyorsa, bir makinenin diğeri üzerindeki bir GIF dosyayı açması esnasında sunum katmanına bir iş düşmez, daha doğrusu sunum katmanı olarak kastedilen şey, aynı dosyayı okuyabilen programları kullanmaktır.

2.1.7 – Katman 7: Uygulama Katmanı(Application Layer)

Uygulama katmanı programların ağı kullanabilmesi için araçlar sunar. Microsoft API’leri uygulama katmanında çalışır. Bu API’leri kullanarak program yazan bir programcı, örneğin bir ağ sürücüsüne erişmek gerektiğinde API içindeki hazır aracı alıp kendi programında kullanır. Alt katmanlarda gerçekleşen onlarca farklı işlemin hiçbirisiyle uğraşmak zorunda kalmaz.

Uygulama katmanı için bir diğer örnek HTTP’dir. HTTP çalıştırılan bir program değil bir protokoldür. Yani bir kurallar dizesidir. Bu dizeye gören çalışan bir Browser(IE mesela), aynı protokolü kullanan bir Web sunucuya erişir.

OSI kavramsal bir modeldir. Yani OSI programı veya OSI donanımı diye bir şey bulunmamaktadır. Ancak yazılım ve donanım üreticileri bu modelin tanımladığı kurallar çerçevesinde üretim yaparlar ve ürünleri birbiri ile uyumlu olur.

OSI Modeli aygıtların işlevlerini anlamak ve açıklamakta kullanılır. Örneğin HUB dediğimiz cihazlar gelen veriyi sadece bir takım elektrik sinyalleri olarak gören ve bu sinyalleri çoklayıp, diğer portlarına gönderen bir cihazdır. Bu da HUB’ların fiziksel(1. katman) katmanda çalışan cihazlar olduğunu gösterir.

Oysa switch denen cihazlar 2. katmanda çalışırlar. Çünkü 2. katmanda tanımlı MAC adreslerini algılayabilirler ve bir porttan gelen veri paketini(yine elektrik sinyalleri halinde) sadece gerekli olan porta(o porttaki makinenin MAC adresini bildiği için) yollayabilirler.

OSI Modelinde en üst katmandan yola çıkan ham veri (örneğin A harfi, bir resim, bir ses dosyası vb.), her katmanda o katmanla ilgili bazı ek bilgiler eklenerek bir alt katmana aktarılır.

Alıcı bilgisayarda ise, alttan üste doğru her katman karşı taraftaki eş katmanın bilgisini kullanır, gerekeni yapar, bu bilgiyi temizleyip paketi bir üst katmana geçirir.

Modele göre her bir katman genellikle üç katmanla ilişki içindedir. Bu üç katman; alt ve üst katmanlar ve karşı taraftaki eş katmandır. Örneğin Transport katmanındaki TCP protokolü, doğal olarak bir üst katmandan aldığı veriyi bir alt katmana iletir (veri gönderimi) veya alttan geleni üste iletir (veri alımı). Ancak gelen veri paketleri eksik ise, tekrar gönderilmesi gereken veri paketini karşı taraftaki eş katmana bildirme görevini de yürütür.

3 – AĞ

Bir yerel alan ağı, küçük bir coğrafyaya dağılmış bilgisayarları birbirine bağlayan bir ağdır. Günümüzdeki örnekleri:

  • Bir ev ağı
  • Bir ofis ağı
  • Bir kampüs ağı
  • İnternet kafeler

şeklinde sayılabilir. Bir yerel alan ağı ile daha büyük ağlar arasındaki en önemli farklar şunlardır:

  • Çok daha yüksek veri hızları
  • Küçük coğrafyadan dolayı daha kısa beklemeler
  • Basit yönlendirme kuralları

3.1 – TOPOLOJİLER

Her bilgisayar ağı verinin sistemler arasında gelip gitmesini sağlayacak bir yola ihtiyaç duyar. Aradaki bu yol çoğu zaman bir çeşit kablodur. Bununla beraber kablosuz çözümler gittikçe yaygınlaşmaya başlamıştır. Ancak kablosuz çözümler henüz kabloya her noktada rakip olmaktan uzaktır. Belli bir sayının üstünde sistem barındıran ağlarda alt yapı hala kablo şeklindedir.

Topoloji değişik ağ teknolojilerinin yapısını ve çalışma şekillerini anlamada başlangıç noktasıdır.

Topoloji

Topoloji bilgisayarların birbirine nasıl bağlandığını ve nasıl iletişim kurduklarını tanımlar.

Topolojiyi anlamanın en kolay yolu iki farklı ve bağımsız bölüme ayırarak incelemektir:

  1. Fiziksel Topoloji
  2. Mantıksal Topoloji

Fiziksel topoloji, aralarında ağ kurulu bir grup bilgisayara baktığımızda gördüğümüz şeydir. Yani kablo bilgisayarlar arasında nasıl dolaşıyor, bilgisayarlar birbirlerine nasıl bağlanmışlar gibi gözle görülen kısmı fiziksel topolojiyi belirler.

Mantıksal topoloji ise kabloların bağlantı şeklinden bağımsız olarak bilgisayar ağlarının veriyi nasıl ilettiklerini açıklar.

Topoloji aslında tek başına ağ ile ilgili bir çok konuyu açıklık getirmez. Örneğin kullanılan kablonun tipi, maksimum uzunluğu, bilgisayarların kablonun kullanımda olup olmadığını nasıl tespit edecekleri gibi konular sadece topoloji ile açıklanmaz.

Değişik topolojileri kullanan değişik ağ sistemleri vardır. Bu teknolojiler Ethernet, Token Ring veya FDDI gibi isimlere sahiptir.

Her ağ teknolojisi kullandığı topolojiyle beraber, kullanılacak kablo tipi, maksimum uzunluk, bant genişliği gibi konulara da açıklık getirir.

3.1.1 – Topoloji tipleri

3.1.1.1 – Bus topoloji

Fiziksel bus tüm bilgisayarların aynı kabloya bağlı oldukları sistemdir. Kablonun her iki ucuna sonlandırıcı adı verilen dirençler takılır. Bu topoloji hem mantıksal hem de fiziksel olarak varlığını sürdürmektedir. Kurulumu kolaydır. En büyük dezavantajı kablonun bir noktasında oluşan kopukluğun tüm sistemi çökertmesidir.

Mantıksal bus ise, gönderilen bir verinin tüm sistemlere de ulaşması demektir.

3.1.1.2 – Halka(Ring) topoloji

Mantıksal Ring topoloji ise Token-Ring adı verilen ilk başta IBM’in geliştirdiği, sonraları IEEE ve ISO tarafından geliştirilmeye devam eden ağ sisteminin kullandığı sistemdir. Token-Ring’de bilgisayarlar kablolarla ortadaki merkez bir kutuya bağlıdır (fiziksel yıldız). Ancak sistemde veri aktarımını sağlayan bir sinyal sürekli olarak sırayla tüm sistemleri dolaşmaktadır. Token adı verilen bu sinyal tek tek tüm sistemlere uğradığı için Ring/Halka terimi buradan gelmektedir.

3.1.1.3 – Yıldız(Star) topoloji

En yaygın kullanılan fiziksel topolojidir. Her bilgisayardan çıkan bir kablo merkezdeki bir kutuya (hub) girer. En büyük avantajı bir kabloda oluşan problemin sadece o kabloya bağlı bilgisayarı etkilemesidir.

Mantıksal yıldız topoloji söz konusu değildir.

3.1.1.4 – Mesh(ağ) topoloji

Bu topolojide tüm bilgisayarlar diğer bilgisayarlara ayrı bir kablo ile bağlıdır. Teorik olarak ideal bağlantı tipidir. Ancak aradaki kablo sayısı terminal sayısı arttıkça katlanarak arttığı için gerçek hayatta sadece çok özel durumlarda ve az sayıda bilgisayar arasında kullanılır.

3.1.1.5 – Melez(Hybrid) topolojiler

Token Ring ve Ethernet bu teknolojilerden sözünü etmeye değer ikisidir. Token Ring pek fazla kullanılmayan bir topolojidir. En yaygın ağ Ethernet ağıdır.

Ethernet ilk başta bus topoloji olarak tasarlandı. Koaksiyel bir kablo sırayla tüm bilgisayarları dolaşıyordu. Ethernet ağında bilgisayarlar bu tek kabloya bağlı olduklarını düşünürler. Bir diğer sisteme veri yolladıklarında, veri aslında aynı kabloya bağlı tüm sistemlere ulaşır. Tüm bilgisayarlardan sadece “doğru” olanı bu veriyi alır ve işler.

Ethernet ağında her bilgisayar, daha doğrusu her ağ kartı (bu noktada ethernet kartı denebilir) farklı bir adrese sahiptir (MAC adresi – MAC adresiyle ilgili ayrıntılı bilgi ilerleyen bölümlerde mevcuttur.). Veri kablo üzerine yerleştirilirken veri üzerine alıcı ve gönderenin MAC adresleri yazılır. Böylece veriyi alan tüm sistemlerden sadece “doğru” olanı veriyi alır ve işleme koyar, diğerleri kendilerine gelmeyen (gelen ama ait olmayan) veriyi göz ardı eder.

Bu noktada ilk ethernetin hem mantıksal, hem de fiziksel olarak bus yapıda çalıştığı anlaşılıyor. Elbette ethernet kullanılacak kablo tipi, maksimum uzunluk ve diğer değerleri de tanımlamıştır.

Zaman içinde fiziksel bus yapı ihtiyaçlara cevap veremez hale gelmiştir. Fiziksel bus yapıda, yani tüm bilgisayarların aynı kabloya bağlandıkları sistemde kablonun bir noktasında oluşan kopukluk veya kısa devre tüm ağı çökertir. Ağa yeni bir makine eklemek, kablonun bir bölümüne ek yapmak demektir bu işlem sırasında ağ çalışamaz vaziyettedir. Ağ’da arıza olduğu zaman tüm sistemleri dolaşan tek bir kablonun herhangi bir yerindeki arızayı bulmak çok zahmetlidir.

Yapısal kablolama dediğimiz, çok fazla sayıda bilgisayarın kullanıldığı binalarda veya kampüslerde gerçekleştirilen kablolama ve kurulumlarda fiziksel bus yapı kullanmak mümkün değildir. Çünkü bus yapı ağacın dalları gibi merkezden binanın katlarına oradan da odalara dallanan bir yapıya izin vermez.

Sonuç itibariyle fiziksel bus topolojinin ihtiyaçları karşılamaktan uzak olduğu anlaşılınca yeni bir sistem arayışına gidildi. Çözüm ethernetin mantıksal topolojisini muhafaza edip, fiziksel topolojiyi, yani kablolama yapısını yıldız topoloji ile değiştirmekti.

Yıldız topolojide her bilgisayardan ayrı bir kablo merkezi bir kutuya (hub) gider. Kablolardan birinde oluşan arıza sadece o bilgisayarı etkiler.

Ethernet için yeni fiziksel topoloji yıldız topolojidir. Kullanılan kablo da koaksiyelden UTP’ye dönüşmüştür. Ancak mantıksal olarak ethernet hala bus topoloji kullanır. Böylece yıldız’a geçmeden önce kurulmuş binlerce ethernet ağı devre dışı kalmamış olur. Fiziksel yıldız topolojide kullanılan hub içinde mantıksal bir bus yapı vardır. Bilgisayarlardan birisinin yolladığı veri paketi hub’a ulaşınca, hub bu paketin kopyalarını oluşturup tüm portlarına yollar. Yani bus yapıda olduğu gibi veri paketi diğer tüm bilgisayarlara erişir ve sadece alması gereken bu paketi alır ve işler diğerleri ise siler.

3.2 – MAC ADRESİ

Bir bilgisayar ağında, bir MAC adresi (Media Access Control) bir cihazın ağ donanımını tanımaya yarar. Her bilgisayarın ve modemin kendine özel birer MAC adresleri vardır. MAC, 48 bit’lik bir adres olduğundan dolayı = 281.474.976.710.656 değişik ağ kartını tanımlamak için kullanılabilir.

MAC adresinin kullanıldığı protokollerden bazıları şunlardır:

* Ethernet

* Token ring

* Wi-fi

* Bluetooth

* FDDI

* SCSI

Bir MAC adresinde ilk üç bit adres havuzunu dağıtan organizasyonu, sonraki beş bit ise üreticiyi temsil eder. Dolayısıyla, bir MAC adresinin ilk bitlerine bakılarak kartın hangi şirket tarafından üretildiği görülebilir.

MAC adresleri, aralarına “:” işareti konarak 16′lı tabanda yazılır: 01-23-45-67-89-ab. Bazı MAC adresleri özel adreslerdir:

* FF:FF:FF:FF:FF:FF adresi tüm cihazlara yayın yapmak (broadcast) için kullanılır.

* İlk bitleri 01 olan adresler, Ethernet ve FDDI’de birçok cihaza yayın (multicast) için kullanılır.

* Yerel olarak atanmış MAC adresleri 02 ile başlarlar.

MAC adresleri ile IP adresleri arasındaki bağ ARP ve RARP protokolleri tarafından yapılır.

3.3 – VERİ PAKETLERİ

Karşıya yollanacak veri tek parça halinde gönderilmez. Sabit boyutta küçük parçalara bölünür ve bu parçalara da bazı ek bilgiler eklenerek gönderilir. Bu veri blokları da veri paketi(frame veya ethernet frame) olarak adlandırılır. Veriler ağ üzerinden sabit yapıda paketler halinde iletilirler dedik, aslında bu paket aktarılacak veriyi ve diğer gerekli bilgileri içeren bir sinyal bloğudur. Ağ kartı bu veri paketlerini oluşturur, yollar ve gelen paketleri alıp işler.

MAC adresi bu paketler oluşturulurken önem kazanır. Altta diğer yazılı kaynaklarda karşınıza çıkabilecek klasik bir paket tasviri görüyorsunuz. Her bir bölüm bir ve sıfırlardan oluşuyor ve paketin bir parçası.

Ağ kartı veri paketi yapısı
1110001011011 11011011101100 110101101110110111101110001110111011 1101
Alıcının MAC adresi Göndrenin MAC adresi Veri CRC

Frame’in tamamı aslında bir ve sıfırlardan, yani elektrik sinyallerinden oluşuyor. Bu sinyaller dizesinin ilk bölümü frame’i alması gereken bilgisayarın MAC adresi, sonraki bölüm ise gönderen ağ kartının kendi MAC adresidir. Daha sonra gönderilmeye çalışılan esas veri bölümü geliyor. En sonda da CRC(Cyclic Redundancy Check) kodu bulunuyor.

CRC, alıcının paketin yolda bozulup bozulmadığını anlaması için kullandığı bir koddur. Sistem kabaca şöyle çalışıyor; yollanacak veri yollanmadan önce gönderen ağ kartı tarafından matematiksel bir işlemden geçiriliyor. İşlemin sonucu CRC kodu olarak veri ile beraber yollanıyor. Alıcı, aldığı veriyi aynı matematiksel işlemden geçiriyor, elde ettiği sonuç CRC ile aynı ise, paket yolda bir tek bit’i bile değişmeden alıcıya ulaşmış demektir.

Veri ağ kablosu üzerinden giderken çevredeki elektromanyetik alanlardan (motorlar, lambalar, mıknatıslar, elektrik kabloları vs.) etkilenip, yola 1 olarak çıkan bazı bitler 0, 0 olarak çıkan bazı bit’lerde 1 olarak karşı tarafa ulaşabilir.

Eğer bir veri paketi bozuk olarak gelmişse, alıcı aynı paketin tekrar yollanmasını isteyecektir. Ancak bu işlem ağ kartında değil, daha üst bir yazılım katmanında gerçekleşir.

Ağ kartı verinin içeriğiyle ilgilenmez, ağ kartı, işletim sisteminde çalışan kendine ait sürücüsünün kendisine ilettiği veriyi gitmesi gereken sisteme yolar. Verinin ne olduğu veya karşı tarafa ulaşınca ne yapılacağı, diğer programların işidir.

Her bir veri paketi belli boyutta veriyi aktarabilir. Değişik ağ sistemlerinin kullandığı paket yapıları farklı olabilir. Ancak ortalama olarak her bir paket 1500 Byte veri taşır. Eğer gönderilecek veri 1500 byte’tan büyükse yollayıcı sistemin yazılımı yollanacak veriyi paket boyutunda parçalara böler. Alıcı taraftaki yazılım ise bu paketleri birleştirerek yollanan veriyi bütün olarak elde eder. Bu parçalama ve birleştirme işi ağ kartına ait değildir. Gönderilecek veri ağ kartına üst yazılımlar tarafından parçalanmış olarak gelir. Ağ kartına gelen paket boyutundaki veri blokları birleştirirken kullanılacak sıralama bilgisini de içerdiğinden, alıcı taraftaki yazılım kendi ağ kartından gelen paketleri birleştirebilir.

Ağ üzerine yollanan her paket tüm bilgisayarlara ulaşır. Her bir ağ kartı kendisine gelen bu paketi kontrol eder. Alıcı MAC adresi eğer kendisinin MAC adresi ise işleme koyar. Ancak tersi söz konusu ise, bu paketi siler.

4 – TCP (Transmission control protocol)

TCP, TCP/IP protokol takımının iki aktarım katmanı protokolünden birisidir.

Gelişmiş bilgisayar ağlarında paket anahtarlamalı bilgisayar iletişiminde kayıpsız veri gönderimi sağlayabilmek için TCP protokolü yazılmıştır. HTTP, HTTPS, POP3, SMTP ve FTP gibi internet’in kullanıcı açısından en popüler protokollerinin veri iletimi TCP vasıtasıyla yapılır.

TCP, gönderilen veriler için özel bir TCP kabul (Ethereal gibi araçlarda ve birçok kaynakta kısaca TCP ACK da denir) pakedi gönderir. Bu paket, gelmiş olan paketlerden hangi byte’a kadar olan kısmının doğru olarak alındığını gösterir. Gönderen taraf, kabul gelmediği sürece pakedi arka arkaya birkaç kez yollar (belli bir süre sonra da pek eder)

İnternet protokol takımı
Katman Protokoller
7. Uygulama tabakası HTTP, HTTPS, SMTP, FTP, TFTP, UUCP, NNTP, SSL, SSH, IRC, SNMP, SIP, RTP, Telnet, …
6. Sunum tabakası ISO 8822, ISO 8823, ISO 8824, ITU-T T.73, ITU-T X.409, …
5. Oturum tabakası NFS, SMB, ISO 8326, ISO 8327, ITU-T T.6299, …
4. Taşıma tabakası TCP, UDP, SCTP, DCCP, …
3. Ağ tabakası IP, IPv4, IPv6, ICMP, ARP, IGMP, …
2. Veri bağ tabakası Ethernet, HDLC, Wi-Fi, Token ring, FDDI, PPP, …
1. Fiziksel tabaka ISDN, RS-232, EIA-422, RS-449, EIA-485, …

TCP, yedi katmanlı OSI referans modelinin, aktarım katmanında yer alır. TCP iki hostun birbirleriyle güvenilir ve bağlantılı haberleşmesini sağlar.

4.1 – Bağlantılı haberleşme

Bilgisayarlar iletişime geçmeden önce aralarında bir oturum açarlar. Oturumun açılması sırasında bilgisayarlar kendi iletişim parametrelerini birbirlerine iletirler ve bu parametreleri dikkate alarak iletişimde bulunurlar.

4.2 – Güvenilirlikli Haberleşme

Bilginin karşı tarafa gittiğinden emin olma durumudur. Bu güvenilirlik, bilginin alındığına dair karşı taraftan gelen bir onay mesajı ile sağlanır. Eğer bilgi gönderildikten belli süre sonra bu mesaj gelmezse paket yeniden gönderilir.

Telnet, FTP, SMTP gibi protokoller TCP’ yi kullanır.

TCP de tanımlı temel görevleri aşağıdaki gibi sıralayabiliriz:

  • Bir üst katmandan gelen verinin uygun uzunlukta parçalara bölünmesi,
  • Her bir parçaya alıcı kısımda aynı biçimde sıraya koyulabilmesi amacıyla sıra numarası verilmesi,
  • Kaybolan veya bozuk gelen parçaların tekrarlanması,
  • Uygulamalar arasında yönlendirme yapılması,
  • Güvenilir paket dağıtımın sağlanması,
  • Hostlarda veri taşmasının önlenmesi.

TCP kendisine atanmış olan bu görevleri yapabilmek amacıyla aktarım katmanında veri parçalarının önüne başlık bilgisi ekler. Başlık bilgisi ve veri parçası birlikte TCP segmenti olarak anılır. Her segmente sıra numarası verilir. Bu segmentler belli sayılarda gönderilir. Alıcı bilgisayar da frameler yani segmentler kendine ulaştıkça bunları tampon belleğine yerleştirir. İki ardışık çerçeve tampon belleğe yerleşince alıcı bilgisayar gönderilen en son çerçeve için bir onay mesajını gönderici bilgisayara yollar. TCP segmentinde başlık içindeki alanların kullanımı amaçları aşağıdaki gibidir.

Gönderici Port No (Source Port): Gönderen bilgisayarın kullandığı TCP portu. Bir üst katmanda TCP isteyen protokol sürecinin kimliği durumundadır. Karşı mesaj geldiğinde bir üst katmana iletmek için, o protokolün adı değil de port numarası kullanılır. 16 bitlik kaynak port alanı bulunur.

Alıcı Port No (Destination Port): Alıcı bilgisayarın kullandığı TCP portu. Gönderilen veri paketinin alıcı tarafta hangi uygulama sürecine ait olduğunu belirtir. Varış noktasındaki üst katman protokolünün portunu gösterir 16 bitliktir.

Sıra Numarası (Sequence Number): Gönderilen paketin sıra numarasını gösterir. Gönderilmeden önce daha küçük parçalara ayrılan verinin, alıcı kısımda yeniden aynı sırada elde edilmesinde kullanılır. 32 bitliktir.

Onay Numarası (Acknowledgement Number): Gönderilen verinin en son hangi sekizlisinin alındığını göndericiye iletmek için kullanılır.

Başlık Uzunluğu (Header Length): TCP segmentinin uzunluğu. TCP başlığında var olan 32 bit uzunluğundaki sözcüklerin sayısını gösterir.

Saklı Tutulmuş (Reserved): 8 bitliktir. İlerde olabilecek genişleme için saklı tutulmuştur. Gelecekte kullanılmak üzere saklı tutulmuş anlamına gelir.

Kod Bitleri (Bayraklar, flags):Kontrol bilgilerini taşımak için kullanılırlar. Segmentin içeriğine dair bilgi taşırlar.

Pencere (Window): TCP penceresinde ne kadar alan olduğunu gösterir. Alış denetimi için kullanılır. 16 bitliktir.

Hata Sınama Bitleri (Cheksum):Verinin ve başlığın hatasız aktarılıp aktarılmadığını sınamak için kullanılır. 16 bitliktir.

Acil İşaretçisi (Urgent Pointer): Acil olarak aktarımı sonlandırma, bayraklar kısmında acil olan bir verinin iletilmesi gibi durumlarda kullanılır. Acil veri, alıcının uygulama katmanında öncelikle değerlendirmesi gereken veridir.

Bayraklar: Denetim fonksiyonlarını sağlarlar

URGENT Bayrağı: Urgent pointer alanının geçerli olduğunu gösterir.

ACKNOWLEDGEMENT Bayrağı: Onay alanının geçerli olduğunu gösterir.

PUSH Bayrağı : Gönderen TCPye gönderilecek veriyi hemen gönderilmesi için emir verir

RESET Bayrağı: Bağlantıyı özellikle anormal durumlarda başlangıç durumuna getirir.

SYNCHRONIZE Bayrağı: Gönderen ve alanın sanal bağlantı isteğinde bulundukları anlamını taşır.

FINISH Bayrağı: Gönderenin daha fazla verisinin olmadığını belirler ve bağlantı koparılabilir.

Port

TCP ve UDP (User Datagram Protocol, TCP den farklı olarak hem bağlantısız, hem de güvensiz bağlantı sağlar. Fakat TCP ye göre daha hızlıdır.) üst protokollerle bağlantıda portları kullanır. TCP kendine gelen paket içerisindeki TCP başlığında yer alan hedef port numarasına bakarak ilgili veriyi bu port ile temsil edilen uygulamaya gönderir. Bu port numaraları hedef port numaraları olarak kullanılır. Hizmet alan uygulamaya port numarası hostun IP adresi ve hedef TCP port numarası göz önünde bulundurularak otomatik olarak o anda atanır.

Pencere Yönetimi

Pencere mekanizması karşı hosttan onay alınmadan önce TCP’nin birçok segmenti en uygun şekilde iletmesini sağlar. Pencere kullanımı ile akış kontrolü de sağlanmış olur.

Akış Kontrolü

Son uçtan son uca akış kontrolü ile değişken boyutlu pencere uygulamaları geliştirilebilmektedir. TCP’nin güvenlik servislerinden biridir.

4.3 – TCP’nin Ana özellikleri

TCP üst katmanlara aşağıdaki servisleri sağlar:

  • Bağlantı-yönlendirmeli veri yönetimi
  • Güvenilir veri transferi
  • Nehir-yönlendirmeli veri transferi
  • Push fonksiyonları
  • Yeniden-sıralama (resequencing)
  • Akış kontrolü (kayan pencereler)
  • Çoğullama
  • Tam-duplex iletim
  • Öncelik ve güvenlik

TCP bağlantı – yönlendirmeli bir protokoldür. Bundan şunu anlarız ki TCP, modülüne giren veya çıkan her bir ‘kullanıcı verisi nehir-akışı’ ile ilgili durum ve konum bilgilerini sağlar. TCP aynı zamanda bir ağ veya çoklu ağlar boyunca yerleşmiş bir alıcı kullanıcı uygulaması ile (veya diğer ULP) uçtan-uca veri transferi yapılmasından sorumludur. Aşağıdaki şekilde TCP’nin, veriyi üç ağ boyunca iki host arasında iletmesi gösterilmiştir. TCP iletim yaparken sıra numaraları ve pozitif acknowledgment’ler kullanır.

*Aktarım Katmanının Diğer Katmanlarla İlişkisi

İletilen her bir bayt için bir sıra numarası atanır. Alıcı TCP modülü bir toplamsal-hata rutini kullanarak verinin iletim boyunca bir hasara uğrayıp uğramadığını kontrol eder. Eğer veri kabul edilebilir ise, TCP gönderici-TCP modülüne bir pozitif acknowledgment gönderir. Eğer veri hasarlı ise, alıcı-TCP veriyi yok eder ve bir sıra numarası kullanarak gönderici-TCP’ye sorun hakkında bilgi gönderir. TCP zamanlayıcıları tedavi ölçümleri yapmadan önce zaman kaymasının aşırı olmadığından emin olurlar. Tedavi ölçümleri alıcı siteye acknowledgment gönderilerek veya veriyi gönderici siteye yeniden-göndererek yapılır.

TCP, veriyi bir ULP’den nehir-yönlendirmeli biçimde alır. Nehir-yönlendirmeli protokoller ayrık karakterler (blok, çerçeve veya datagram değil) göndermek üzere tasarlanmamışlardır. Baytlar bir ULP’den nehir temelli, yani bayt-bayt gönderilir. Baytlar TCP katmanına varınca, TCP segmentleri olarak gruplaşırlar. Bu segmentler daha sonra diğer varışa iletilmek üzere IP’ye (veya başka bir alt-katman-protokolüne) geçirilir. Segment uzunluğuna TCP karar verir, ancak bir sistem geliştiricisi TCP’nin bu kararı nasıl vereceğine karar verebilir.

TCP ayrıca ikilenmiş veri kontrolü yapar. Eğer gönderici TCP veriyi tekrar yollarsa, alıcı TCP tüm ikilenmiş gelen veriyi yok eder. Örneğin, alıcı TCP acknowledgment trafiğini belli bir zamanda gerçekleştirmezse, gönderici TCP veriyi yeniden gönderir ve veri ikilenmiş olur.

TCP push fonksiyonu kavramını destekler. Bir uygulama; alt katmandaki TCP’ye geçirdiği tüm verinin iletildiğinden emin olmak istediğinde push fonksiyonunu çalıştırılır. Böylece, push fonksiyonu TCP’nin tampon yönetimini ele geçirir. ULP push’u kullanmak için, push parametresi bayrağı 1’e set edilmiş bir send komutunu TCP’ye gönderir. Bu işlem TCP’nin, tüm tamponlanmış trafiği bir veya daha fazla segment içerisinde varışa ilerletmesini gerektirir. TCP kullanıcısı bir close-bağlantı işlemi kullanarak da push fonksiyonunu sağlayabilir.

TCP acknowledgment’ler için sıra numaraları kullanır. TCP bu sıra numaralarını aynı zamanda, segmentlerin son varışa sırası ile varıp varmadıklarını kontrol etmek üzere, segmentleri yeniden-sıralamada kullanır. TCP bağlantısız bir sistemin üzerinde yer aldığı için ki bu sistem internet içerisinde dinamik, çoklu rotalar kullanabilir, internette ikilenmiş datagramların oluşması muhtemeldir. Daha önce değindiğimiz gibi, TCP ikilenmiş datagramlar içerisinde taşınmış, ikilenmiş segmentleri yok eder.

TCP her bir oktete sıra numarası verir. Daha sonra ilettiği bu oktetlere karşılık acknowledgment (ACK) bekler. Eğer belirli aralıklarla beklenen ACK’leri almazsa ACK almadığı kısımları yeniden varış host’a iletir. TCP olumsuz bir geri bildirim mekanizması kullanmaz.

Alıcı TCP modülü gönderici verisi üzerinde akış kontrolü yapabilir. Böylece tampon overrun ve alıcı cihazın doyması (saturation) gibi sorunlar engellenir. TCP’nin kullandığı kavramın, haberleşme protokollerinde kullanımı alışılmış değildir. Akış kontrolü göndericiye bir “pencere” değeri verilmesine dayanır. Gönderici bu pencere ile belirlenmiş sayıda bayt iletebilir, pencere kapanınca gönderici veri göndermeyi durdurmalıdır.

TCP’nin bir hüneri de host cihazı üzerindeki çoklu kullanıcı oturumlarını çoğullayabilmesidir. çoğullama; TCP ve IP modüllerindeki portlar ve soketler için basit isimlendirme anlaşmaları kullanılarak gerçekleştirilir. TCP, iki TCP varlığı arasında tam-duplex iletim sağlar. Böylece bir dönüş işareti beklemeksizin (half-duplex’te gereklidir) eşzamanlı iki-yönlü iletim yapılır.

TCP kullanıcının bağlantı için güvenlik ve öncelik seviyeleri belirleyebilmesine olanak tanır. Bu iki özellik, tüm TCP ürünlerinde bulunmayabilir ancak TCP DOD standardında tanımlanmışlardır. TCP iki kullanıcı arasında hoş close sağlar. Hoş close bağlantı koparılmadan önce tüm trafiğin ACK’larının oluşturulduğundan emin olunmasını sağlar.

5 – Kısaca ARM İŞLEMCİ

ARM mimarisi (orijinal adı Acorn RISC Machine) pek çok gömülü tasarımda kullanılan 32-bit RISC işlemci mimarisidir. Güç tasarruf özelliklerinden dolayı, ARM işlemciler mobil elektronik gibi düşük güç tüketiminin kritik bir parametre olduğu pazarda en fazla tercih edilen CPU’ dur.

Günümüzde ARM işlemci ailesi tüm dünyadaki 32-bit gömülü işlemcilerin %75′ ini oluşturmaktadır. ARM işlemciler taşınabilir cihazlardan (PDA, cep telefonu, medya oynatıcılar, avuç içi oyun üniteleri ve hesap makineleri) bilgisayar parçalarına kadar (disk sürücüler, masaüstü router’lar) tüketici elektroniğinin her alanında yoğun olarak kullanılmaktadır. Bu ailenin bugünlerdeki en önemli kolu Intel’ n XScale’ dir.

Gömülü tasarım uygulamalarında kullanılan en popüler ARM mimarisi komut kümeleri 32-bit’lik ARM ve 16-bit’lik Thumb komut kümeleridir. Her Thumb komutunun bir ARM komut karşılığı vardır fakat bunun tersi doğru değİldir. Bu sorun bu iki komut kümesinin bir arada çalışmasının mümkün olması ile aşılmıştır (interworking). Bu sayede, 16-bit’lik komut kümesinin daha az bellek kullanımı ve 32-bit’lik komut kümesinin üstün işlevsellik özellikleri bir arada kullanılabilmektedir.

6 – KAYNAKLAR

http://tr.wikipedia.org/wiki/TCP

http://tr.wikipedia.org/wiki/Tcp_ip

http://en.wikipedia.org/wiki/Internet_protocol_suite

http://en.wikipedia.org/wiki/TCP_IP

http://www-128.ibm.com/developerworks/tivoli/library/t-devarm/index.html

http://www.belgeler.org/lis/archive-tlkg-lis-8.html

http://www.belgeler.org/lis/archive-tlkg-lis-8.1.html

http://www.riscworld.co.uk/ONLINE/ARMCODE/INDEX.HTM

http://www.turkcenet.org/

http://www.bilgisayardershanesi.com/

http://www.arm.com/

http://www.ee.ic.ac.uk/pcheung/teaching/ee2_computing/rfc793 (tcp-ip)

http://bid.ankara.edu.tr/start/hii/bolum3.html

http://www.ilkertemir.com/document/tcpip.html

http://cekirdek.uludag.org.tr/~meren/belgeler/tcp/

İlginize Çekebilir

Yazılım Tanımlı Ağ (SDN) Nedir?

Yazılım tanımlı ağ (SDN), ağ kontrol düzleminin sevk düzleminden fiziksel olarak ayrılması ve bir kontrol düzleminin …