TCP/IP (Transmission Control Protocol/Internet Protocol)

DARPA ve UD DOD tarafından geliştirilen bir protokol kümesidir.Dördüncü katmana kadar tamamlanmışdır.TCP/IP RFC 793 deki tanımlanmasına göre şu fonksiyonları gerçekleştirir.
• Multiplexing (çoğullama)
• Hata giderme (güvenilirlik)
• Pencere kaydırma kullanarak akış kontrolü
• Bağlantı kurulması ve bağlantının sonlandırılması
• Veri aktarımı
TCP bu hedeflerini uç noktalardaki bilgisayarlar üzerindeki mekanizmalar üzerinden gerçekleştirir,verinin uçtan uca iletilmesi için,yönlendirme konuları da dahil olmak üzere IP yi kullanır.
TCP/IP,birbirinden bağımsız bilgisayar sistemlerinin birbirleriyle karşılıklı çalışabilmeleri için en yaygın kullanılan protokol kümesidir ve Internet tede TCP/IP kullanıldığı için günümüzde çok yaygınlaşmıştır.Öyle ki ,kendi yerel ağında TCP/IP dışında farklı bir protokol kümesi kullanan kurumlar,Internet bağlantısı için sistemlerine ya TCP/IP protokol kümesini yüklemekte yada TCP/:IP ye geçiş yapabilecek sistemler eklemektedirler.
Internet bünyesinde milyonlarca LAN ve milyonlarca farklı donanım ve işletim sistemlerine(UNIX,Windows,NetWare) sahiptir.Internet e bir geniş alan ağı veya da ağların ağı diyebiliriz.Tüm bu sistemler,bu kadar çeşitliliğe rağmen tek bir protokol kümesi TCP/IP aracılığıyla birbiriyle iletişim yapabilmektedir.TCP/IP,OSI de olduğu gibi 7 katmalı değilde 4 katmanlıdır.İletişim sağlanabilmesi için gerekli bütün işler 4 katmana ayrıştırılmıştır.Ayrıca TCP ve IP isimleri yalnız başlarına küme içinde birer protokol adıyken,ikisi birlikte protokol kümesine verilen isimdir.TCP/IP kümesinin içindeki protokoller herkese açık olup,kullanılması da serbesttir.Birçok işletim sistemi TCP/IP protokol kümesinin kendi içlerinde bulundururlar,böylece sistemleri Internet e bağlamak için ayrıca üçüncü kişilere yazılmış TCP/IP yazılımlarına gerek olmadan kendi paketlerinden yüklenebilir.
TCP/IP Protokol Kümesi Dört Katmana Ayrılmıştır

Application Layer : Bu katmanda çalışan protokoller:
SMTP(Simple Mail Transport Protocol) :Elektronik mektupları (e-mail) aktarır.
SNMP(Simple Network Management Protocol) :Ağ içersinde bulunan router,switch ve hub gibi cihazların yönetimi için kullanılır.
FTP (File Transfer Protocol) :Internet üzerindeki iki bilgisayar arasında dosyaları aktarmak için kullanılan protokoldür.
HTTP(HyperText Transfer Protocol) :Web sayfalarının alışverişini sağlayan protokoldür.
TELNET :Bir sistem üzerindeki kullanıcının başka bir sistemi, onun terminalindeymiş gibi uzaktan kullanmasını sağlayan protokodür.
Transport Layer : Bu katmanda çalışan protokoller:
TCP (Transmission Control Protocol) :Güvenilir ve yavaş bir protokoldür,geri bildirim yapar.
UDP (User Datagram Protocol ) : Güvenilir değildir,ancak hızlı bir protocoldür,geri bildirim yapmaz.
Network Layer :Network katmanındaki IP ve ICMP protokolleri bir üst katmandan gelen segmentleri alıcıya,uygun yoldan ve hatasız ulaştırmakla yükümlüdür.Bu katmanda, gelen segmentlere özel bir IP başlık bilgisi eklenir.
Physcial Layer : Fiziksel katman için tanımlanmış herhangi bir protokol yoktur.Ethernet bağlantısından modem üzerinden çevrimiçi bağlantıya kadar varolan hertürlü fiziksel bağlantı türleri kullanılmaktadır.Önemli olan uç sistemlerde TCP/IP modullerinin bulunmasıdır.
Bir program TCP/IP için geliştirilmişse,ancak TCP/IP ağlarda çalışır ve dolayısıyla program parçalarının koştuğu sistemlerde TCP/IP yüklü olmalıdır.TCP/IP kullanıcı/sunucu mimarisine sahiptir.Sunucu sistemler daha güçlü sistemlerdir ve sahip oldukları donanım,yazılım ve veri kaynaklarını ağ üzerine yayılmış kullanıcılara sunarlar.Kullanıcı bölümünde sadece kullanıcı arayüzü vardır ve istekleri bu arayüz ile sunucuya istek olarak aktarılır ve sunucu bu hizmet isteğini karşılar.
TCP/IP ağ programlamasında biri bağlantılı,diğeri bağlantısız iki tür ulaşım şekli vardır.Tüm bu hizmetler bu iki ulaşım şeklinden biri altında gerçekleştirilir.Örnek olarak TCP/IP mimarisini 3.katman protokollerinden olan TCP bağlantıya yönelik hizmet sunarken,UDP bağlantısız hizmet sunar.Herbirinin algoritmik ifadeleri birbirinden farklıdır.