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

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.