TCP/IP PROTOKOLU

Etiketler:

Başta internet olmak üzere, farklı teknolojilere sahip networklerin olması, bağımsız olarak yönetilmesi ve geliştirilmesi gibi özellikleri TCP/IP protokolünün en yaygın kullanılan protokol olmasına neden olmuştur.

Aslında TCP/IP protokolü diye adlandırmak çok doğru değildir. Çünkü TCP/IP çok sayıda protokol ve yardımcı programlardan oluşan bir protokol kümesidir (protocol stack).

TCP/IP PROTOKOLU

ŞEKİL 1: TCP/IP Protokol Kümesi

TCP/IP PROTOKOLU

ŞEKİL 2: TCP/IP Protokol Kümesi ve OSI Katmanları

TARİHÇE:
TCP/IP, endüstri standardı olan bir protokoldür. Bütün networkler için geliştirilmiştir. TCP/IP protokolünün temelleri A.B.D Savunma Bakanlığı projesi olarak 1970'lerde atılmıştır. U.S. Department of Defense Advanced Research Projects Agency (DARPA) projesi daha sonra ARPANET olarak kullanılmaya başlanmıştır. ARPANET adı verilen proje üniversite ve kamu kuruluşlarını bir birine bağlamayı sağlayacak bir ağ geliştirme amacını taşımaktaydı. TCP/IP, DARPA'nın farklı bilgisayarlar arasında iletişim kurması gerektiğinde geliştirilmiştir. O günlerde bu oldukça zor bir görevdi. TCP/IP işletim sistemi ve bilgisayardan bağımsız olarak bilgisayarların iletişim kurmasını planlamıştı. O zamanların TCP/IP standartları ve amaçları DoD (Department of Defence) olarak anılır. Ardından yapılan gelişmeler IAB (Internet Activities Board) adı verilen gruplar tarafından yapılmaktadır. Şu anda da RFC (Request For Comments) adı verilen makalelerce TCP/IP'nin gelişmesi devam ettirilmektedir.

RFC (REQUEST FOR COMMENTS)
RFC (Request For Comments), TCP/IP'yi tanımlayan makalelerdir. Bu makaleler herhangi bir kişi tarafından hazırlanabilir ve NIC yöneticisine gönderilir. Her RFC'nin bir numarası vardır. Örneğin SNMP yönetimi RFC 1065 ile tanımlanırken, kabul edilen SNMP kullanımı RFC 1155 numaralıdır. Günümüz teknolojilerindeki gelişmeler, TCP/IP için bir gelişmenin olmasını zorunlu kıldığında komiteler önerilen RFC'leri kabul ederek yayınlarlar.

TASARIM AMAÇLARI
İlk başta U.S Savunma Bakanlığı (Department of Defence) TCP/IP çalışmalarına başladığında çok sayıda tasarım amaçlarına sahipti. Bunlardan bazıları;
-Donanım ve yazılım firmalarından bağımsız olacak.
-Yerleşik bir hata dayanıklılığına sahip olacak. Networkün bir kısmı çöktüğünde diğer bir kısmı çalışabilecek.
-Etkin bir veri aktarım hızına sahip olacak.

NEDEN TCP/IP ?
-Üreticiden bağımsız olması.
-Değişik ölçekli bilgisayarları birbirine bağlayabilmesi.
-Farklı işletim sistemleri arasında veri alışverişi için kullanılabilmesi.
-UNIX sistemleriyle tam uyumluluk.
-Birçok firma tarafından birinci protokol olarak tanınması ve kullanılması.
-Internet üzerinde kullanılması.
-Yönlendirilebilir (routable) protokol olması.
-Yaygın bir adresleme şemasına sahip olması,
ve daha sayabileceğimiz onlarca özellik TCP/IP'nin yaygın olarak kullanılmasını sağlar.

TCP/IP MİMARİSİ
TCP/IP, OSI 3 ve 4. katmanda çalışan bir protokoldür. Şekilde de görüldüğü gibi TCP/IP data link ve fiziksel katmanda bağımsız olarak çalışmaktadır.

TCP/IP PROTOKOLU

ŞEKİL 3: TCP/IP Mimarisi

TCP/IP PROTOKOL KÜMESİ
TCP/IP protokol kümesi Windows 2000 networkünün oluşmasını sağlar. TCP/IP protokol kümesi çekirdek protokol ve bir dizi yardımcı program (utility) içerir.
Çekirdek protokoller:
-TCP (Transmission Control Protocol)
-UDP (User Datagram Protocol)
-IP (Internet Protocol)
-ICMP (Internet Control Message Protocol)
-IGMP (Internet Group Management Protocol)
-ARP (Address Resolution Protocol)

Yardımcı programlar:
Program İşlevi
Ping: Konfigürasyonu kontrol eder ve bağlantıyı test eder.
FTP: TCP/IP hostları arasında tek yönlü dosya transferini sağlar.
TFTP: TCP/IP hostlar arasında UDP kullanarak tek yönlü dosya transferini sağlar.
Telnet: Terminal öykünümünü sağlar.
RPC: UNIX bilgisayarlar ile Windows bilgisayarlar arasında dosya kopyalar.
RSH: UNIX bilgisayarlarda komutları çalıştırır.
REXEC: Uzakta bulunan bilgisayardaki bir işlemi çalıştırır.
Finger: Uzak bilgisayar hakkında bilgi sağlar.
ARP: Yerel olarak düzenlenmiş IP adreslerinin ön belleğini hazırlar.
IPCONFIG: Windows makinelerde mevcut TCP/IP konfigürasyonunu gösterir.
IFCONFIG: Linux Unix makinelerde TCP/IP konfigürasyonunu gösterir.
NBTSTAT: IP adresleriyle düzenlenmiş NetBIOS bilgisayar adlarını görüntüler.
Netstat: TCP/IP protokolünün çalışması ilgili bilgileri görüntüler.
Route: Yerel yönlendirme tablosunu gösterir ve değiştirilmesini sağlar.
Hostname: RCP, RSH ve REXEC programlarının kimlik denetimini yaparak yerel bilgisayarın adını döndürür.

TCP (TRANSMISSION CONTROL PROTOCOL)
TCP protokolü connection-oriented olarak adlandırılan ve iki bilgisayar arasında veri transferi yapılmadan önce bağlantının kurulması ve veri iletiminin garantili olarak yapıldığı bir protokoldür. TCP iletişiminde veri paketleri kullanılır. Ayrıca gönderen ve alan uygulamalarda da port bilgisi eklenir. Port (çıkış), kaynak ve hedef uygulamanın iletişimini sağlar.

TCP/IP PROTOKOLU

ŞEKİL 4: TCP/IP Protokol Kümesi

TCP, güvenilir ve bağlantı (connection-oriented) temelli bir servistir. Bağlanı temelli olması bağlantının bilgisayarlar arasında veri değişiminden önce yapılması anlamına gelir. Güvenilir olması ise iletimin kontrolünün yapılması ile ilgilidir. Belli aralıklarla ACK bilgisi ile veri gönderimi kontrol edilir.
TCP byte-stream iletişimi kullanır. Bu yöntemde TCP segmentlerindeki datalar bir bayt dizisi olarak işlenir. Aşağıdaki tabloda TCP header içindeki ana alanlar yer almaktadır;
Alan İşlevi
Source Port Gönderenin TCP portu.
Destination Port Alanın (hedefin) TCP portu.
Sequence Number TCP segmenti içindeki birinci baytın sıra numarası.
Window TCP ara bellek (buffer) alanının şu anki mevcut büyüklüğü.
TCP Checksum TCP header ve TCP datanın bütünlüğünü kontrol etmek için kullanılır.

TCP Portları:
Bir TCP portu mesaj iletişiminde kullanılır:
Port Numarası İşlevi
21 FTP

23 Telnet

53 DNS

UDP (USER DATAGRAM PROTOCOL)
UDP'de bir gönderim katmanı protokoldür. Ancak UDP iletiminde sağlama yapılmadığı için gönderim garantisi olmaz. Broadcast iletiminde, az miktardaki verilerin iletiminde UDP paketleri kullanılır. UDP iletimi, gönderimin garanti edilmediği connectionless türü bir iletişim kurar.
UDP Servisi
UDP bağlantısız (connectionless) datagram servisidir. UDP kaybolan verilerin kurtarılması konusunda herhangi bir garanti vermez. Bu nedenle güvenilir bir protokol olarak nitelendirilmez. UDP alınan verilerin garantisine gereksinim duymayan uygulamalar tarafından kullanılır. NetBIOS name servisleri, NetBIOS datagram servisi ve SNMP servisleri UDP kullanan uygulamalara örnektir. Aşağıdaki tabloda UDP header içindeki ana alanlar yer almaktadır:
Alan İşlevi
Source Port Gönderen bilgisayarın UDP portu.
Destination Port Alıcı bilgisayarın UDP portu.
UDP Checksum UDP header ve UDP datasının kontrolü için kullanılır.

IP (INTERNET PROTOCOL)
Hedef bilgisayarın network üzerindeki yerini bulur. Paketlerin adreslenmesi ve network üzerindeki bilgisayarlar arasında yönlendirilmesini sağlar. IP iletimi de UDP gibi gönderimin garanti edilmediği connectionless türü bir iletişim kurar.
IP, iki bilgisayar paketlerin yönlendirilmesini sağlayan bağlantısız bir protokoldür. Bağlantısız (connectionless) olması oturumun iletişimden önce kurulmamasıyla ilgilidir. Bununla birlikte veri iletimindeki başarı da garantili olmaz. İletimin garantisi daha üst düzey protokol olan TCP ile sağlanır. Bir IP paketi bir IP Header (başlık bilgisi) ve bir IP payload'tan oluşur. Aşağıdaki tabloda IP header paketinin alanları yer almaktadır:
IP Header alanı İşlevi
Kaynak IP Adresi Kaynak verinin IP adresi.
Hedef IP Adresi Gideceği yerin IP adresi.
Tanımlama Bir spesifik IP datagramını tanımlamak için kullanılır.
Protokol Paketlerin TCP, UDP, ICMP ya da diğer protokollerle iletişimi ile ilgili.
Checksum IP header'ın bütünlüğünü kontrol etmek için kullanılan basit bir
matematiksel hesaplama.
Time-to-Live (TTL) Datagramın dolaşacağı network sayısını belirler. TTL sayesinde paketlerin sürekli olarak dolaşması engellenir.

ARP (ADDRESS RESOLUTION PROTOCOL)
Network üzerindeki bilgisayarlar iletişim kurmak için birbirlerinin donanım adreslerini (MAC) bilmeleri gerekir. ARP, broadcast (genel yayın) temelli çalışan ağlarda donanım adresini bulmak için kullanılır. ARP, donanım adresini bulduktan sonra, IP adresini ve donanım adresini ARP cache olarak adlandırılan bir alanda saklar. Bu bir sonraki istenilen hedef adresinin fiziksel yerinin kolayca bulunmasını sağlar. ARP cache içinde statik ve dinamik adresler bulunur. Dinamik kayıtlar otomatik olarak eklenir ve silinir. Statik adresler ise bilgisayar restart edilinceye kadar bellekte kalır.
Uzak Bir IP Adresinin Çözülmesi
Eğer hedef IP adresi uzaktaki bir networke ait ise, bir ARP broadcast sayesinde router bulunur ve datagramlar hedef bilgisayarlara (hosts) ulaştırılır.
Bu işlem şu şekilde yerine getirilir:
1) İletişim isteği başlatıldığında, hedef (destination) IP adresi uzak adres (remote address) olarak tanımlanır.
2) Belirtilen gateway için bir eşleşme bulunmadığında bir ARP isteği yayınlanır. ARP isteği hedef host için değil de gateway adresi yapılır.
3) Router'da IP hedef adresinin yerel (local) ya da uzak (remote) olduğunu belirler. Eğer adres yerelse, router donanım adresini bulmak için ARP'yi kullanır. Eğer adres uzaksa, router kendi routing tablosuna bakar.
4) Hedef bilgisayar isteği aldıktan sonra, bir ICMP yanıtı düzenler. Belirtilen gateway'in donanım adresi ARP cache içinde yoksa, onu sağlamak için bir ARP broadcast kullanılır.

TCP/IP PROTOKOLU

ŞEKİL 5: Uzak IP Adreslerinin Çözülmesi

PORT VE SOKETLER:
Uygulamaların birbirleriyle iletişim kurmaları için belli TCP/IP portları kullanılır. Örneğin FTP Server'lar port 80 kullanarak diğer uygulamalarla iletişimde bulunurlar. TCP/IP protokolü 65536 tane port kullanımına olanak tanır. Standart port numaraları IANA (Internet Assigned Numbers Authority) tarafından sağlanır.
Tablo: TCP port numaraları:
Port Numarası Açıklama
1 TCP Multiplexer
20 FTP (data)
21 FTP (control)
23 Telnet
25 SMTP
53 DNS
80 http
103 X.400 Mail Service
102 X.400 Mail Sending
139 NetBIOS Session Service
Soketler ise yine bir network iletişimde kullanılan IP adresi ve port bilgisidir. Bir uygulama bir uzak uygulamayla iletişim kurmak için bir connectionless (bağlantı temelli olmayan) bağlantı kurar. Buna socket denir.

BROADCAST:
Network üzerindeki hostların (bilgisayarlar ve diğer aygıtlar) birbirleriyle iletişim kurması için fiziksel adreslerin bilinmesi gerekir. Bu durumda network üzerinde herkese gidecek bir ARP paketi gönderilecek hostların MAC adresleri ve IP adresleri belirlenir. Diğer bir deyişle hedef adresinin bilinmediği ve paketin network üzerinde bütün hostlara iletilmesi gerektiğinde kullanılan bir adresleme yöntemidir.

DİĞER İLETİŞİM PROTOKOLLERİ
FTP:
FTP ptotokolü iki host arasında dosya kopyalamayı sağlar. FTP'nin en önemli özelliği bu işlemleri farklı donanım ve işletim sistemleri üzerinde çalışabilmesidir. FTP (File Transfer Protocol), transport katmanında ve TCP'yi kullanarak çalışır.
FTP kullanımı:
1) Bir FTP servisinin başlatılması için FTP istemcisi çalıştırılır.
2) Karşında bağlanılacak FTP Server'ın IP adresi yazılır.
3) Ardından buraya bağlanmak için bir kullanıcı adı (user name) sorulur.
4) Kullanıcı adını ve şifresini giren kullanıcı FTP Server'a bağlanır.
NOT: WWW'nin yaygın olmadığı durumlarda FTP ile dosya alışverişi yaygın yapılmaktaydı. Şu anda da Web tarayıcıları FTP kullanarak dosya indirmeye yardımcı olurlar.

Telnet:
Telnet, PC'ler üzerinden terminal sunucusu yazılımı çalıştıran bir host'a erişmeyi sağlayan protokoldür. Telnet ile uzaktaki sunucuya bağlanan kullanıcı orada bir uygulamayı çalıştırabilir.
Telnet için gerekli yazılımlar:
-Client-Telnet
-Server-Telnet
Client-Telnet yazılımı kullanıcının terminalinde çalışır. Bu yazılım Telnet sunucusuyla iletişim kurmayı sağlar. İletişim TCP ile yapılır.
Server-Telnet ise host üzerinde çalışır ve gelen istekleri karşılar.
NOT: WWW'nin yaygın olmadığı durumlarda Telnet ile iletişim kurmak yaygındı.

SMTP
Hostlar arasında mesaj iletişimini sağlayan bir uygulama katmanı protokolüdür. SMTP'nin ana amacı postalama yapmaktır. Mesajın düzenlenmesi gibi işlemlerle uğraşmaz. SMTP iletişiminde mesaj üç aşamadan Gönderici-SMTP ile Alıcı-SMTP arasında yapılır.
1) Birinci aşamada bir TCP bağlantısı (connection-based) kurulur.
2) İkinci aşamada veri aktarımı (data transfer) yapılır.
3) Üçüncü aşamada bağlantı sona erdilir.

TCP/IP YAPILANDIRMA
Manuel olarak TCP\IP'yi yapılandırmak için, network üzerinde bulunmayan bir ip adresi, alt ağ geçidi ve subnet mask bilgisi bilinmelidir.
Düzenlenecek bilgiler:
-IP adresi kutusuna ana iletişim birimine atanan IP adresleri yazılır.
-Subnet Mask kutusuna subnet'e atanan subnet mask yazılır.
-Default Gateway kutusuna router (yönlendiricinin) IP adresi yazılır.

Döküman Hakkında:
Bu döküman Özgür Karataş (ozgur (at) ozgurkaratas dot com) tarafından hazırlanmıştır. Dökümanın amacı genel olarak okuyucuları TCP\IP Protokolu konusunda bilgilendirmektir. Ticari amaçlı olarak kopyalanarak kullanılması yasaktır. Ancak yazarın ismi kullanılarak kopyalanabilir.

__________________________
Ozgur Karatas
Net Admin

0