logo
ağ dersleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ağ dersleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

16 Ocak 2014 Perşembe

VB'de API Tanımı

VB'de API Tanımı


VB'de API'ler iki şekilde tanımlanabilir. Fonksiyon veya altprogram olarak. Fonksiyon olarak tanımlanan API'lerden geriye bir değer dönerken, altprogram olarak tanımlananlardan bir değer geri dönmez.

Alt program olarak API tanımı:
Private/Public Declare Sub isim Lib "libname" [([parametreler])]
Fonksiyon program olarak API tanımı:
Private/Public Declare Function isim Lib libname [([parametreler])] [As tip]
Burada isim fonksiyonun ismidir ve programda API bu isimle çağrılır. Libname kullanılan kütüphanenin ismi, parametreler; fonksiyona giren parametreler, As tip; fonksiyondan dönen değerin tipidir.

API'nin tanımlanacağı yer formun veya modülün General-Declerations kısmıdır. API'yi bir formun decleration kısmında tanımlarsanız API'yi yalnız o formun altprogramlarından çağırabilirsiniz. Bir modülde tanımlarsanız programınızın her yerinde kullanabilirsiniz.

API'yi doğru olarak tanımladığınız halde VB, ilgili dosyada böyle bir API bulunmadığını söylüyorsa veya API ile aynı isme sahip bir VB komutu var ise bu durumda Alias isimleri kullanmanız gerekir.
Private/Public Declare Function/Sub isim Lib libname Alias "isim" [([parametreler])] [As tip]
API'yi doğru olarak tanımladığınız halde VB, ilgili dosyada böyle bir API bulunmadığını söylüyorsa API isminin sonuna A ekleyerek Alias ismi olarak vermeniz gerekir. Bunun sebebi Windows işletim sisitemi farklı dilleri desteklemektedir. ANSI karakter setini destekleyen ülkler için sonuna A harfi, UniCode veya iki karekter genişliğini kullanan ülke seti için ise sonuna W harfi eklemeniz gerekir.

API tanımı yaparken kullanacağınız tiplerin isimlerini ise C'den VB'ye çevirmeniz gerekir. Genel olarak tip karşılıkları şöyledir.


C
Visual Basic

atom
ByVal değişken AS integer

bool
ByVal değişken As Long

byte
ByVal değişken As Byte

char
ByVal değişken As Byte

colorref
ByVal değişken As Long

dword
ByVal değişken As Long

hwnd,hdc,hmenu vb
ByVal değişken As Long

int,uint
ByVal değişken As Long

long
ByVal değişken As Long

lparam
ByVal değişken As Long

lpdword
değişken As Long

lpint,lpuint
değişken As Long

Iprect
değişken As type

Ipstr,Ipcstr
ByVal değişken As String

Ipvoid
değişken As Any

lpword
değişken As Integer

lresult
ByVal değişken As Long

null
değişken As Any veya ByVal değişken As Long

short
ByVal değişken As Integer

void
Sub procedure

word
ByVal değişken As Integer

wparam
ByVal değişken As Long

16 bit
ByVal değişken As Integer

32 bit
ByVal değişken As Long

float
ByVal değişken As Single

double
ByVal değişken As Double

Parametrelerden biri iki farklı tipte değer alabiliyorsa bunu As Any olarak tanımlamanız gerekir. Hangi parametrenin Any olarak tanımlanması gerektiğine ancak dosyadaki bilgileri okuyarak anlayabilirsiniz. Örneğin bir parametre hem string içerebiliyor ve hemde Null içerebiliyorsa bu parametre Any olarak tanımlanmalıdır.

Yaptıkları işlere göre API'lerin bulundukları dosyalar ise şunlardır :


DLL
Fonksiyonları

Advapi32.dll
Şifre ve Kayıt dosyası işlemleri gibi gelişmiş bir çok API'ler

Comdlg32.dll
Diyalog pencereleri ile ilgili API'ler

Gdi32.dll
Grafik API'leri

Kernel32.dll
Çekirdek Windows API'leri

Lz32.dll
32 bit skıştırma API'leri

Mpr.dll
Multiple Provider Router API'leri

Netapi32.dll
32-bit Network API'leri

Shell32.dll
32-bit Shell API'leri

User32.dll
Kullanıcı arabirimi API'leri

Version.dll
Versiyon işlemleri API'leri

Winmm.dll
Multimedia API'leri

Winspool.drv
Print spooler API'leri

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.

TCP/IP'nin Yapısı ve Katmanları

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.

8 Ocak 2014 Çarşamba

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.

7 Ocak 2014 Salı

AĞ

AĞ
         Ağ ile ilgili ayarları yapabilmek için önce Denetim Masası penceresindeki Ağ simgesine çift tıklayın...
         Ağ ayarlamaları, bir network(workgroup) içinde yer alan Windows 98 bilgisayarının network adaptörü, protokol vb... bileşenlerinin kurulmasını ve yapılandırılmasını sağlayan bir menüdür. Windows 98, kuruluş sırasında network kartını ve bağlı olunan network' u tanıyıp bilgisayarın yapılandırılmasını sağlayabilir. Bu menü 3 katmandan oluşmaktadır. Yapılandırma, Tanımlama, Erişim Denetimi. 
  Yapılandırma Katmanı:
         Bu katman Ağ menüsüne ilk girildiğinde zaten aktif durumdadır. Burada ağ için gerekli bileşenlerin mevcut olanlarının bir listesi görülecektir. Biz burada gerekli olacak yeni bir bileşeni daha ekleyebiliriz. Örneğin ethernet kartı tanımlanmıyorsa, buradaki menüde Ekle butonuna tıklayarak Bilgisayar yapısında mevcut bulunan(eğer varsa) ethernet kartını tanımlayabilir ve bu bileşenler içine katabiliriz.

Tanımlama Katmanı:
     Bu katmanı kısaca açıklayacak olursak, ağ üzerindeki bilgisayarların birbirlerini tanımalarına kolaylık kazandırır. Herkesin bir ismi vardır; Ahmet, Ali, Ayşe...Biz de burada bilgisayarımıza bir isim vererek onun ağ üzerinde tanınmasına sebebiyet veririz. Ayrıca bulunacağı ağ ortamınında bir ismi olacaktır. Mesela bizler insanlar ile çalışırız. Burada da bilgisayarın çalışacağı ortamın ismini "Çalışma Grubu" yerine yazarak adlandırabilir ve o bilgisayarı, ağ ortamına sokmuş oluruz. 

Erişim Denetimi Katmanı:
         Bu katman sayesinde ağ ortamına soktuğumuz bilgisayarımızın etkinliğini ayarlarız. Yani bu ağ ortamında kullanılacak kaynakların veyahut dosyaların kullanımına bir parola getirebilir yada serbest bırakabiliriz. Bu katman menüsünde de görüleceği üzere 2 seçenek mevcuttur. Bunlar "Paylaşım düzeyi erişim denetimi", "Kullanıcı düzeyi erişim denetimi". Bunlardan paylaşım düzeyi erişim denetimi, ağ ortamına soktuğumuz bilgisayarımızın her kaynağına bir parola getirmemizi sağlar. Kullanıcı düzeyi erişim denetimi ise bu kaynakların kullanımına izin verdiğimiz bilgisayarların tanımlanmasını sağlar. 

Bağlantıyı sağlayan ve ulaşılmak istenen bilgisayara giden yolu bulan katmandır. Yönlendirme protokolleri bu katmanda çalışır.
Ağ tabakası alt ağda yapılan işlerin denetimi ile ilgilidir. Tasarımında anahtar konu veri paketlerinin kaynaktan hedefe nasıl yönlendirileceğidir. Yönlendirmeler sabit tablolara dayalı ve sıkça değişmeyecek şekilde ağ ile birlikte tanımlanmış olabilir. Bu yönlendirmeler ayrıca bir terminal oturumunda olduğu gibi, her oturum için ayrıca belirlenebilir. Son olarak anlık ağ yüküne bağlı olarak her bir yeni paket için yeniden belirlenecek şekilde dinamik olabilir.
Aynı anda ağa birbirinin rotası üzerine çakışan birçok paket ağa sunulursa performans sıkıntıları oluşabilir. Bu tür çakışmaların önlenmesini sağlamak ağ katmanının sorumluluğundadır.
Ağ operatörleri, servisi paralı olarak vermek istediklerinde ayrıca ağ katmanı üzerinde raporlama özellikleri de eklenir. Sonuç olarak bir yazılım aracılığı ile her müşterinin ilettiği veya aldığı paket veya karakter sayısı faturalama bilgisinin üretilmesi sayılır. Raporlama, değişik ücretlendirme oranlarının uygulandığı sınırları geçildiğinde daha karmaşık bir hal alabilir.
Bir paket hedefine ulaşmak için bir ağdan diğer bir ağa geçmek zorunda kaldığında başka problemler de baş gösterebilir. Adresleme ağlar arasında farklı olabildiği gibi, bir ağ diğerinden çok geniş olduğu için paketi kabul etmeyebilir veya protokoller farklı olabilir. Heterojen ağların ara bağlantılarının sağlıklı bir şekilde yapılıp bu problemlerin üstesinden gelme ağ katmanın sorumluluğundadır.
Yayın ağlarında, ağ katmanı çok ince veya hiç varolmadığından, yönlendirme problemi daha basittir.