İnternet iletişim kuralları dizisi

İnternet protokol takımı (İngilizce: :en:Internet Protocol Suite), bilgisayarlar ve ağ cihazları arasında iletişimi sağlamak amacıyla standart olarak kabul edilmiş kurallar dizisidir. Bu kurallar dizisi temel olarak verinin ağ üzerinden ne şekilde paketleneceğini ve iletilen veride hata olup olmadığının nasıl denetleneceğini belirlemektedir.
Ağ kavramının ortaya çıkmasından günümüze kadar geçen sürede farklı amaçlar için birçok protokol geliştirilmiştir. Bu protokoller ilk zamanlar belli bir standarda uygun olarak geliştirilmemiş, genelde bilgisayar donanımlarına bağlı olacak şekilde tasarlanmışlardır. Bu dönemde ağ yapıları donanım üreticileri tarafından kendilerine has bir biçimde geliştirilmekteydi. Bu yapılara örnek olarak IBM'in SNA
ve DEC'in DECnet
ağları verilebilir. Farklı markalara ait donanımlara özel tanımlanan bu tür protokollerden dolayı farklı donanımlar arası iletişimde bir ortak nokta bulunamamıştır. Bu durum, ağlar arası yazılımların geliştirilmesinde sorun oluşturmuştur. Ortaya çıkan bu sorunun çözümüne yönelik 1984 yılında ISO (International Organization for Standardization - Uluslararası Standartlık Örgütü) tarafından, donanım ve ağ altyapısından bağımsız olarak geliştirilmiş OSI (Open Systems Interconnection) başvuru modeli ortaya konmuştur.
İnternet iletişim kuralları, internet ve benzeri bilgisayar ağları üzerinde kullanılan iletişim kuralları ve bilgisayar ağ modeli ve kümesidir. Genel olarak TCP/IP olarak bilinir çünkü bunlar; İletim Kontrol Protokolü (TCP) ve Internet Protokolü (IP) olarak bu standartta tanımlanmış internet iletişim kurallarıdır. Bunun yanında bunlar, Amerika Birleşik Devletleri Savunma Bakanlığının bir alt kolu olan DARPAnın finanse ettiği ağ bağlantısının geliştirilmesi nedeniyle orijinal olarak DoD olarak bilinen internet modeli olarak da tanımlanır.
TCP/IP modeli ve ilgili iletişim kuralları Internet Engineering Task Force (IETF) tarafından yapılmaktadır.
Tarihçe
Önceki Araştırmalar
İnternet protokol takımı 1960'ların sonunda İleri Araştırma Projeleri Savunma Ajansı (Defense Advanced Research Projects Agency - DARPA) tarafından yapılan araştırma ve geliştirme sonucu ortaya çıkmıştır. 1969 yılında öncü olarak başlatılan ARPANET sonrasında DARPA diğer veri iletim teknolojileri ile ilgili bir dizi çalışma başlattı. Uydu paket ağları (satellite packet networks) ve karasal radyo paket ağları (radio packet networks) üzerine çalışan ve bu iki farklı ağ arasında iletişim kurabilmenin değerininin farkına varmış olan Robert E. Kahn 1972 yılında DARPA Bilgi İşleme Tekik Ofisine katıldı. 1973 baharında, mevcut ARPANET Ağı Kontrol Programı (NCP) protokolünün geliştiricisi olan Vint Cerf, yeni nesil ARPANET protokolleri tasarımı amacıyla, açık mimari arabağlantı modelleri üzerinde çalışmak için Robert E. Kahn ile birlikte çalışmaya başladı.
1973 yazında Kahn ve Cerf ağlar arası iletişim protokollerinde yeni temel bir formül geliştirdiler. Bu yeni formülde iletişimin güvenilirliğinin (reliability) sorumluluğu ARPANET'tekinin aksine olarak, ağa değil de uçlara (host) veriliyordu. Cerf, CYCLADES ağının tasarımcıları olan Hubert Zimmermann ve Louis Pouzin'i bu yeni tasarımlarına yapmış oldukları katkılardan dolayı takdir etmiştir. Kahn ve Cerf'in yapmış oldukları bu tasarım Transmission Control Protocol adıyla kodlanmış ve 1974 yılında yayınlanmıştır.
Bu ağın tasarımının temelinde şu kabul vardı: Ağ, sadece uçlar (node) arasındaki trafiğin verimli bir şekilde iletilmesi ve yönlendirilmesini sağlamaktan sorumluydu. Bunun haricindeki diğer tüm bilgiler uçlarda (node) bulunacaktı. Bu tasarım "uçtan uca prensibi (end-to-end principle)" olarak bilinir. Bu tasarım ile ARPANET'e herhangi bir ağın bağlanması mümkün olabilecekti. ARPANET'e bağlanacak olan bir ağın, sadece kendisine has özelliklerinin bulunması bile ARPANET'e bağlanabilmesine engel olmayacaktı. Böylece Kahn'ın en başta karşılaşmış olduğu problem de çözülmüş oluyordu. Cerf ve Kahn'ın nihai ürünü olan TCP/IP böylece adeta "iki teneke kutu ve bir ip" ile çalışabilecek duruma gelmişti. Yıllar sonra -şaka yollu gibi gözükse de- "IP üzerinden güvercin haberleşmesi" kavramının protokol tanımlamaları D. Waitzman tarafından yapılmış ve RFC 1449 adıyla 1 Nisan 1990 yılında resmi olarak yayınlanmıştır.
Tanımlama
Vint Cerf'in Stanford'daki ağ araştırma grubu, 1973ten 1974e kadar TCPin ilk tanımlamarının yapılması üzerine çalıştı. TCP'nin bu ilk tanımlamaları, o tarihlerde yaygın olarak kullanılan ve Xerox PARC tarafından geliştirilmiş olan PARC Universal Suite ağ çalışmalarından teknik olarak önemli ölçüde etkilenmiştir.
DARPA, sonrasında TCP'nin, farklı donanımlar üzerinde çalışabilecek sürümlerinin geliştirilmesi amacıyla; BBN, Stanford Üniversitesi ve University College London ile anlaştı. Bu çalışmalar sonrasında dört adet TCP versiyonu üretilmiştir: TCP v1, TCP v2, TCP v3 ve IP v3 ve TCP/IP v4. Son versiyon bugün hala kullanılmaktadır.
1975 yılında, Stanford Üniversitesi ve University College London tarafından iki ağdan oluşan bir TCP/IP haberleşme testi gerçekleştirilmiştir. 1977 yılının Kasım ayında ise; ABD, Birleşik Krallık ve Norveç'teki birimler arasında üç ağdan oluşan bir TCP/IP haberleşme testi yapılmıştır.
1978 ve 1983 yılları arasında birçok araştırma merkezinde bazı farklı TCP/IP prototipleri de geliştirilmiştir.
ARPANETin TCP/IPye geçişi; 1 Ocak 1983 tarihinde, bir bayrak gününde tamamlanmıştır. Bu tarihten sonra ARPANET'te yeni protokoller kalıcı bir şekilde kullanılmaya başlanmıştır.
Yaygınlaşma
1982 yılının Mart ayında ABD Savunma Bakanlığı, TCP/IPyi tüm askeri bilgisayar ağları için standart olarak kabul ettiğini açıkladı.
1985 yılında, Dan Lynch Internet Danışma Kurulu (sonraki ismiyle Internet Mimarisi Kurulu), bilişim sektöründe TCP/IP'yi teşvik etmek ve ticari kullanımını artırmak amacıyla, 250 üretici firma temsilcisinin katıldığı, üç günlük bir atölye çalışması düzenledi.
TCP/IP'nin yaygın bir şekilde kullanılması üzerine 1985 yılında düzenlenen ilk Interop konferansı, bilgisayar ağlarında birlikte çalışabilme üzerinde yoğunlaştı. Dan Lynch 1988 yılında, ürünlerinde TCP/IP'yi destekleyen üreticilerle, San Jose (ABD) şehrinde ilk ticari Interop konferansını düzenledi. TCP/IP'nin nasıl çalıştığını ya da hangi şartlarda çalışamadığını görmek amacıyla, bu organizasyona 50 firma ve 5,000 ağ uzmanı katıldı.
SNA, XNS ve DECNET gibi kendilerine özel iletişim protokollerine sahip olmalarına rağmen; IBM, AT&T ve Digital Equipment Corporation gibi başlıca büyük firmalar, ürünlerinde TCP/IP'yi kullanmaya başladılar. 1984ten sonra IBMde Barry Appelmanın grubu TCP/IPyi geliştirdi. (Appelman sonra tüm kalkınma çabalarının başkanı olmak için AOLa taşındı.) Bunlar çalışmalarına devam ederek MVS, VM ve OS / 2 dahil olmak üzere çeşitli IBM sistemlerinin, TCP / IP ürünlerinin akışı elde etmek için bir bağ kurdular. Aynı zamanda, FTP Yazılım ve Wollongong Grup gibi birkaç küçük şirket, DOS ve MS Windows için TCP / IP kümeleri sunmaya başladı. İlk VM / CMS TCP / IP kümesiWisconsin Üniversitesi'nden geldi.
O zamanlarda bu TCP/IP yığınlarının çoğu, birkaç yetenekli programcı tarafından yazılmıştır. Örneğin, FTP Yazılımcısı olan John Romkey MIT PC / IP paketinin yazarıdır. John Romkeynin PC / IP uygulaması ilk IBM PC TCP / IP yığını olmuştur. Jay Elinsky ve IBM Araştırmacısı Oleg Vishnepolsky TCP / IP VM / CMS ve sırasıyla OS / 2 için kümeler yazmıştır.
TCP / IP yayılması, AT & Tnin kamusal alana UNIX için geliştirilen bir TCP / IP kodunu yerleştirmek için anlaştığı zaman olan haziran 1989 yılında daha da hızlandı. IBM dahil olmak üzere çeşitli sunucular, bu kodu kendi TCP / IP kümelerinin içerisine dahil etti. Birçok şirket Microsoft Windows 95 yerli TCP / IP kümesi yayınlayana kadar Windows için TCP / IP kümelerini sattı. Bu süreç internetin evrimine kadar biraz geç kalsa da diğer internet iletişim kurallarının yok olduğdu gibi TCP/IPnin sunuculuğuna eklenmiştir. Bu protokoller aynı zamanda IBM System's Ağ Mimarisi (SNA), Açık Sistem Arabağlantı (OSI), Microsoft'un yerli NetBIOS ve Xerox Ağ Sistemlerini de içermektedir.(XNS)
Temel Mimari Prensipler / Key Architectural Principles
İlk mimari belge olan RFC 1122, katman üzerinde mimari ilkeleri vurgular. End to End Principle; Bu prensip zamanla gelişmiştir. Orijinal açıklaması durumun devamlılığını sağlamak ve köşelerde bulunan bilginin bir uçtan bir uca transferi sağlamak, buna ek olarak internetin kenarlara hızını ve basitliğini etkilemeyecek bir şekilde bağlı olduğunu kabul etmektir. Dünyanın bu prensipte güvenlik duvarları, ağ adresi çevirmenleri, web içeriği önbelleklerini ve benzeri zorunlu değişikliklerden dolayı ihtiyacı vardır.
Dayanıklılık Prensibi; Genel anlamda bir uygulama göndericisine göre korunumlu ve alıcı tarafından özgür olmak zorundadır. Yani iyi biçimlenmiş datagram göndermek için dikkatli olmak gerekir, ama aynı zamanda yorumlayabileceği herhangi bir datagram kabul etmelidir. (teknik hatalardan dolayı açıklaması hala net değildir.) Ilkenin ikinci kısmı diğerleri kadar önemlidir: Diğer bilgisayarlar üzerindeki yazılım akılsızca yasal ama karanlık protokol özelliklerini istismar edebilecek eksiklikleri içerebilir.
Soyutlama Katmanları / Abstraction Layers
İnternet protokol takımı protokolleri ve hizmetlerin soyutlama sağlamak için kapsülleme kullanır. Encapsulation genellikle genel işlevsellik katmanlarına, protokol paketinin bölümü ile uyumludur. Genel olarak, bir uygulama (modelin en üst düzeyi) her seviyede daha fazla kapsülleme olmak, katmanlar aşağı veri göndermek için bir protokol kümesi kullanır.
Protokol paketinin katmanları, alt kısımdaki katmanların veri transferine yakın olmasına rağmen, kullanıcı uygulamasına mantıksal olarak yakındır. Katmanları hizmeti sağlayan veya tüketen olarak görmek soyutlama yöntemi üzerinde bit iletilmesi ve ayrıntıları üst katman protokolleri ile izole etmektir. Örneğin Ethener ve çarpışma algılaması, alt tabakaların her ayrıntılarını ve her uygulama ve protokol bilmek zorunda olmasından kaçınmasıdır.
Katmanlar, çeşitli mimari belgeler incelendiğinde bile -ISO 7498, Açık Sistemler Bağlantısı (OSI) modu gibi tek mimari model var- OSI modelinin daha az veya daha az katı olarak tanımlanan katmanları ve bu nedenle dünya protokolleri için daha kolay bir uyum sağlar. Sık başvurulan başka bir belge ise, RFC 1958, tabakalar yığınını içermemesidir. Tabakaların vurgu eksikliği IETF ve OSI yaklaşımlar arasındaki önemli bir farkdır. Sadece bu üst tabakalar, genel olarak iletişim tabakasının varlığını ifade eder; Aslında bu belge 1996 yılının anlık mimarisi olarak düşünülmüştü. İnternet ve mimarisi oldukça görkemli bir plandan ve daha mütevazı başlangıçtan evrimsel biçimde büyüdü. Evrim bu sürecin teknolojisinin başarısı için ana nedenlerinden biri iken yine de internet mimarisinin mevcut ilkelerin bir anlık kaydetmek için yararlı olacaktır.
RFC 1122, Sunucu Gereksinimleri başlıklı, katmanlara atıfta olacak şekilde paragraflarda yapılandırılmıştır, ancak belge vurgulayan katmanlardan ziyade diğer pek çok mimari ilkelere hitap eder. Bahsi geçen RFC 1122 aşağıdaki gibi gevşek, katmanların sayılarını değil, isimlerini, dört katmanlı bir model olarak tanımlar:
Uygulama katmanı uygulamaları kullanıcı verilerini oluşturmak ve başka diğer uygulamalar veya aynı ana bilgisayara bu verileri ileten bir katmandır. Uygulamalar veya işlemler, temel, alt tabakalar tarafından sağlanan hizmetlerin özellikle diğer işlemlere güvenilir veya güvenilmez komutları sağlayan taşıma katmanının kullanımını gerçekleştirir. Iletişim ortakları, istemci-sunucu modeli ve peer-to-peer network olarak, uygulama mimarisi ile karakterize edilebilir. Bu tür SMTP, FTP, SSH, HTTP gibi tüm yüksek seviyeli protokoller, faaliyet gösterdikleri tabakadır. Süreçler esas hizmeti temsil eden portlar üzerinden ele alınmaktadır.
Taşıma Katmanı ya aynı ya da farklı bilgisayarlar ve yerel ağ veya yönlendirici bulunan uzak ağlar ya da üzerinde host-to-host iletişimi gerçekleştirir Bu katman uygulamaların iletişim ihtiyaçları için bir kanal sağlar. UDP güvenilmez bir datagram hizmeti veren, basit bir temel taşıma katmanı protokolüdür. İletim Kontrol Protokolü akış kontrolü, bağlantı kurulması ve verilerin güvenilir biçimde iletilmesini sağlar.
Internet katmanının ağ sınırları boyunca datagramları alışverişi görevi vardır. Bu temel ağ bağlantılarının gerçek topolojisini (düzenini) gizleyen bir üniforma ağ arabirimi sağlar. Bu nedenle, aynı zamanda internetworking'i kuran tabaka olarak adlandırılır. Aslında gerçekten de interneti kurar ve tanımlar. Bu katman, TCP / IP protokol takımı için kullanılan adresleme ve yönlendirme yapıları tanımlar. Bu kapsamda, öncelikli olan protokol IP adreslerini tanımlayan Internet Protokolü vardır. Bu protokolün amacı verileri final bağlantısına yönlendiren bir ağa sahip olan bir sonraki IP dağıtıcısına ulaştırmaktır.
Link katmanı iletişimin yerel ağ ağlantısı kapsamında ana yönlendiricilerin müdahale olmadığı ağ yöntemlerini tanımlar. Bu katman, yerel ağ topolojisini tanımlamak için kullanılan protokol ve sonraki komşu hosts internet tabakası datagramlarının iletimini gerçekleştirmek için gerekli arabirimler içerir.
İnternet İletişim kuralı ve katmanlı iletişim kuralları tasarımı OSI modeli kurulmadan önce kullanımdaydı. Bu süreçten beri TCP / IP modeli kitap ve dersliklerde, sonuç olarak karışıklık ile sonuçlanan OSI modeli ile karşılaştırılmıştır. Çünkü iki model de sıkı katman göreceli önemi de dahil olmak üzere farklı varsayımları ve amaçları kullanmaktaydı.
Bu soyutlama aynı zamanda alt tabakaların sağlayamadığı fakat üst katmanların sağladığı hizmetin sağlanmasına olanak tanır. Orijinal OSI modeli bağlantısız hizmetleri (OSI RM CL) kapsayacak şekilde genişletilmişken, IP güvenilir olarak tasarlanmamış fakat yine de en iyi veri teslimi için çaba gösteren bir protokoldür. Bu, tüm ulaşım katmanı uygulamalarının güvenirlik sağlayıp sağlayamayacağı yahut nasıl sağlayacağı konusunda seçim yapılması gerektiğini belirtir. UDP, sağlama yoluyla veri bütünlüğünü sağlar, ancak teslimini garanti etmez; bunun yanında TCP, alıcı paket alımını kabul edene kadar retransmitting üzerinde veri bütünlüğü ve dağıtım garantisini sağlar.
Bu model OSI modeli ve ilgili belgelerin formalizminden yoksundur ancak IETF bir model kullanmaz ve David D. Clarkın bir yorumunda özetlediği gibi bunu bir sınırlama olarak da algılamaz Bizler; kralları, başkanları ve oylamayı reddediyoruz. İnandığımız şey kabaca uzlaşma ve kod çalıştırmadır. OSI modeline göre yapılan bu modelin eleştirisi, bu modele göre ISOnun sonraki geliştirmelerini hesaba katmamıştır.
Adresleme sistemlerinin kendi multiaccess bağlantıları için (örneğin Ethernet) bir adres eşleme protokolü gereklidir. Bu protokoller IPnin altında, ancak mevcut bağlantı sistemi üzerinde olarak kabul edilebilir. IETF teminolojiyi kullanmaz iken, bu durum ağ katmanı (IONL) iç organizasyonu olan OSI modeli bir uzantısına göre bir alt ağ bağımlı yakınsama kolaylığıdır.
ICMP & IGMP IP üstünde çalışır ancak UDP veya TCP gibi veri transferi gerçekleştirmez. Yine de, bu işlevselliği kendi Yönetim Çerçevesinde (OSIRM MF)[, OSI modeli katman yönetimi uzantıları olarak var eder.
SSL/TLS Kütüphanesi ise yukarıda belirtilen ve TCP kullanan taşıyıcı katmanlarını aşağıda belirtilen uygulama protokolleri kapsamında kullanır. Yine, OSI mimarisine uymak için, bu protokollerin tasarımlarının parçalarının hiçbir amacı yoktur.
Bağlantıya karşı kara kutuya benzer bir davranış sergilenir. IETF açık bir şekilde, OSI modeline nazaran daha az akademik fakat pratik bir alternatif olan iletim sistemlerini tartışmak niyetinde değildir.
Katmanlar / Layers
TCP/IP modelinde, yollanan veriler her katmanda sarmallanır (encapsulation) ve bir alt katmana yollanır. Alıcı tarafında bu veriler teker teker açılıp (decapsulation) bir üst katmana gönderilir. Bu yöntemfarklı marka ve modellerdeki cihazların birlikte çalışmasını sağlar. Örneğin bir bilgisayarın ağ bağlantısınde Ethernet yerine Wi-fi kullanılması o bilgisayarın üzerinde başka bir web tarayıcı kullanılmasını gerektirmez.
OSI modelinde yedi ve TCP/IP modelinde ise dört katman bulunmaktadır. TCP/IP modelindeki katmanlar aşağıda verilmiştir:
Uygulama: Bu katmanda veriyi göndermek isteyen uygulama ve kullandığı dosya formatı bulunur. Örneğin "HTTP üzerinden HTML formatında yazılmış Wikipedia ana sayfası". OSI modelindeki gibi ağa erişmek için gerekli uygulama protokollerini içerir. OSI modelindeki uygulama katmanından farkı sunum ve oturum katmanlarının uygulama katmanı içerisinde yer almasıdır. SMTP ve FTP protokolleri bu katmanda bulunur.
Taşıma: Bu katmanda verinin ne şekilde gönderildiği gösterilir. Servis kalitesi (the quality of service), güvenli (reliable) veri aktarımı, veri akış kontrolü (flow control), hata kontrolü (error control) gibi işlemlerin yapıldığı katmandır. TCP veya UDP gibi protokoller bu katmandadır. TCP, bağlantı tabanlı (connection oriented) ve güvenilir (reliable) iletişim sağlayan bir protokoldür. Bağlantı tabanlı olması kaynak ve hedef arasında mantıksal bağlantı kurulması anlamına gelmektedir. Bu da iki bilgisayarın veri alışverişinde bulunmadan önce anlaşması demektir. Güvenilir olması; kurulan bağlantı üzerinden gönderilen verinin gönderildiği şekilde, veri kaybı olmadan ve sıralı biçimde iletimini garanti eder. UDP bağlantısız (connectionless) ve güvenilir olmayan bir iletişim sağlar. UDP'de ek bağlantı kontrolleri olmadığından dolayı UDP başlığı (header) TCP'nin başlığına göre daha kısadır. Bu nedenle UDP, TCP' ye göre daha hızlıdır.
İnternet: Bazen IP katmanı olarak da anılan bu katman, IP adreslerinin veriye eklendiği ve yönlendirmenin yapıldığı katmandır. Paketin hedefe en iyi yoldan gönderilmesi de bu katmanın sorumluluğudur. Bu katmandaki uygulamalar IP veya IPv6 gibi iletişim protokolleri olabileceği gibi ICMP veya IGMP gibi durum bildirme ve katmanlar arası bağ protokolleri de olabilir.
Veri Bağlantı: Bu katmanda Ethernet, Wi-fi, token ring, ATM gibi protokoller bulunur.
Uygulama Katmanı / Application Layer
Uygulama Katmanı, bünyesinde ağ yönlendirici protokolleri ve sunucu düzenleme protokolleri gibi basit ağ destekli servisleri içeren fakat düşük seviyedeki katmanlar tarafından kurulan ağ bağlantıları üzerindeki uygulama verilerinin değişimini yahut kullanıcılara servis sağlayan protokoller içerir. Uygulama katmanı protokolleri örnekleri Hypertext Transfer Protocol [Köprü Metni Aktarım Protokolü] (HTTP), the File Transfer Protocol [Dosya Transferi Protokolü] (FTP), the Simple Mail Transfer Protocol [Basit Mail Transfer Protokolü] (SMTP) ve the Dynamic Host Configuration Protocol [Aktif Sunucu Düzenleme Protokolü] (DHCP)dür. Veri, protokol birimler halinde kapsüllü bir biçimde uygulama katmanı protokollerine göre taşıma katmanı yani gerçek veri transferi gerçekleştirilmesi için alt katman protokolleri halinde kodlanmıştır.
IP modeli biçimlendirme ve veri sunma özelliklerini dikkate almaz ve OSI modeli (Sunum ve oturum katmanları) gibi uygulama ve ulaşım katmanları arasında ilave katmanları tanımlamaz. Bu tür işlevler ise kütüphane bölümleri ve uygulama programları arayüzleridir.
Uygulama Katmanı protokolleri taşıyıcı katmana veya daha altındaki katmanlara, taşıyıcı katmanların özelliklerinden olan çıkmaz IP adresleri ve port numaraları gibi uygulamalara rağmen iletişim kurmaya yarayan ağ bağlatıları sağlayan siyah kutulara davrandığı gibi davranır. Uygulama katman protokolleri genel olarak sunucu server uygulamaları ile bağdaştırılır ve Internet Assigned Numbers Authority (IANA) tarafından rezerve edilmiş iyi bilinen port numaraları gibi servis görür. Örneğin; the HyperText Transfer Protokolü 80 numaralı portu ve Telnet ise 23 numaralı portu kullanır. Bir servise bağlanan istemciler ise genellikle bağlantı noktası numaralarının rastgele veya uygulama yapılandırılmış belirli bir mesafeden işlem süresince atanan kısa ömürlü bağlantı noktalarını kullanır.
Taşıma katmanı ve alt düzey katmanları uygulama katmanı protokolleri özellikleri ile ilgisizdir. Yönlendiriciler ve anahtarlar genellikle kapsüllü trafiği incelemek yerine sadece bir kanal sağlarlar. Yine de, bazı güvenlik duvarı ve bant genişliği daraltma uygulamaları, uygulama verilerini yorumlamak zorundadır. Bunun bir örneği Kaynak Rezervasyon Protokolüdür (RSVP). Bu uygulama yükü, ayrıca ağ adresi çeviricisi (NAT) geçişi için bazen gereklidir.
TCP/IP modelindeki uygulama katmanı, Open System Interconnection (OSI) modelinin beşinci (oturum), altıncı (sunum), ve yedinci (uygulama) katmanlarını kapsamaktadır.
Ayrıca, TCP/IP referans modeli kullanıcı protokolleri ve destek protokolleri arasında çeşitlere ayrılır. Destek protokolleri sisteme servis sağlar. Kullanıcı protokolleri ise kullanıcı uygulamaları için kullanılır. Örneğin, FTP bir kullanıcı protokolü ve DNS ise sistem protokolüdür.
Taşıma Katmanı / Transport Layer
Taşıma katmanı uygulama görevinin özel veri alışverişini kullanan bir temel veri kanalı kurar. Katman kullanıcı verisinin yapısından bağımsız olarak end-to-end servisinin sağlandığı ve herhangi belirli bir amaç için bilgi alışverişinin gerçekleştiği process-to-process bağlantısı kurar. Sorumluluğu kapsamında bağımsız temel ağın end-to-end mesaj transferini, hata kontrolünü, segmentasyonu, akış kontrolünü, tıkanma kontrolünü ve port numaraları ile birlikte uygulama adreslemesini içerir. Uçtan uca aktarım katmanındaki mesaj iletimi veya bağlantı uygulamaları bütün bunları ya TCPde uygulanan bağlantı yönelimi ya da UDPde uygulanan bağlantısız yönelimi olarak kategorize edebilir.
Uygulamalar için process-specific iletim kanallarını sağlamak amacıyla, katman port kavramını ortaya çıkarmıştır. Bu, bir uygulamanın ihtiyacı olan iletişim kanallarının her biri için özel olarak tahsis edilen numaralı bir mantıksal yapıdır.
TCP güvenilir bir veri akışı sağlayan güvenilirlik sorunlarını gideren bir bağlantı tabanlı (connection oriented) protokoldür:
Veri bir düzen içerisinde ulaşır
Veride minimum düzeyde hata vardır (Örneğin; hata düzeltme)
Kopya veri atılmıştır
Kayıp veya atılan paketler yok edilmiştir.
Trafik sıkışıklığı kontrolü içerir
Yeni olan Bağlantı Transferi Kontrol Protokolü de (SCTP: Stream Control Transmission Protocol) aynı zamanda güvenilir, bağlantı yönelimli taşıma mekanizmasıdır. Bu protokol mesaj bağlantı odaklı TCP gibi bit bağlantı odaklı değil- ve tek bir bağlantı üzerinden çoklu bağlantılar sağlayabilir. Aynı zamanda bir bağlantının kopması durumunda diğer bağlantının otomatik olarak devreye girdiği çoklu IPnin başlangıcı ile son bulan farklı bir bağlantı olan multi-homing desteği de sağlar. Bu, ilk başta telefon uygulamaları için geliştirilsede (IP üzerinden SS7i transfer etmek için), farklı uygulamalar tarafından da kullanılabilmiştir.
UDP (Kullanıcı Datagram Protokolü) bir bağlantı tabanlı olmayan (connectionless) bir protokolüdür. IP gibi, en iyi bir çabası, "güvenilmez" bir protokoldür. Güvenilirlik, zayıf sağlama algoritması kullanılarak hata tespiti yoluyla ele alınmaktadır. UDP tipik olarak akış ortamı gibi güvenilirlikten ziyade zamanında ulaşımın önemli olduğu ya da basit bir sorgu / DNS aramaları gibi güvenilir bağlantı kurma yükünün orantısızca fazla olduğu uygulamalar için kullanılır. (ses, video, vb.) Real-time Transport Protocol (RTP) ise bu tür akışı ses ve video gibi gerçek zamanlı veriler için tasarlanmış bir datagram protokolüdür.
Herhangi bir ağ adresindeki uygulamalar kendi TCP veya UDP bağlantı noktası ile ayırt edilir. Geleneksel olarak belli bir şekilde tanınmış portlar özel uygulamalar ile ilişkilidir.
TCP/IP modelinin ulaşım ya da host-to-host katmanı OSI modelindeki dördüncü katmana karşılık gelmektedir.
İnternet Katmanı
İnternet katmanının, potansiyel çoklu ağlar üzerinden paketleri gönderme sorumluluğu vardır. Internetworking hedef ağa kaynak ağdan veri göndermeyi gerektirir. Bu süreç yönlendirme işlemi olarak tanımlanır. Internet Protokolü iki temel işlevleri gerçekleştirir:
Host addressing and identification: Bu süreç hiyerarşik bir IP adresleme sistemi ile gerçekleştirilir
Paket Yönlendirme: Bu süreç veri paketlerinin kaynak üzerinden hedefe en yakın ağ yönlendiricisi üzerinden ulaştırılmasıdır.
İnternet katmanı sadece taşıma katmanında agnostik veri yapıları değil, bunun yanı sıra çeşitli ulaşım katmanı protokollerinin operasyonu arasında ayırım yapmaz. IP, farklı üst katman protokolleri için çeşitli veri taşır. Bu protokollerin her biri bünyesindeki benzersiz protokol sayısına göre tespit edilir. Örneğin; Internet Denetim İletisi Protokolü (ICMP) ve Internet Grup Yönetimi Protokolü (IGMP) sırasıyla 1 ve 2 numaralı iletişim kurallarıdır.
IP üzerinden taşınan bu protokollerin bazıları Tanı bilgilerini aktarmak için kullanılan ICMP gibi veya IP Multicast verileri yönetmek için kullanılan IGMPdir. Bu, internet TCP / IP yığını ve OSI modelinin mimarisinde farklılıkları göstermektedir. TCP / IP modeli internet katmanı ağ katmanına hitap eden Açık Sistemler Bağlantısı (OSI)nın üç katmanına tekabül eder.
Internet Katmanı potansiyel olarak aldığı verileri hedefine ulaştırmak üzere en yakınındaki yönlendiriciye gönderen ve farklı IPler üzerinde yer alan sunucular arasında sadece güvenilmez bir datagram iletim tesisi sağlar. Bu işlevsellik ile internet katmanı temel olarak internet üzerine kurulu internetworkingi, farklı IPler üzerindeki internetworkingi mümkün kılar. Internet Protokolü İnternet katmanın başlıca bileşenidir ve ağ sunucuları bilgisayarlarını tanımlamak için iki adresleme sistemleri tanımlar ve onların ağ üzerindeki yerini belirler. ARPANETin orijinal adresleme sistemi ve onların arkasından gelenler ise; internet üzerindeki internet iletişim kuralları versiyon 4 (IPv4)tür. 32 bit IP adresi kullandığından dolayı yaklaşık 4 milyar sunucuyu tanımlama kapasitesindedir. Bu sınırlama, 1998'de yayınlanan Internet Protokolü 6. sürüm standardizasyonu dahilinde elimine edildi ve 2006 yılında üretim çalışmaları başladı.
Veri Bağlantı Katmanı / Link Layer
Bağlantı katmanın, sunucunun bağlı olduğu yerel ağ bağlantısına ait bir ağ kapsamı vardır. Bu kapsama literatürde, TCP / IP bağlantısı denir. TCP / IP donanım bağımsız olacak şekilde tasarlandığından dolayı bu bağlantı internet protokolleri arasındaki en yavaş bağlantı olarak tanımlanır. Sonuç olarak TCP / IP hemen hemen herhangi bir donanım ağ teknolojisi ile birlikte uygulanabilir.
Bağlantı katmanı aynı linke iki farklı türdeki internet katman ara yüzleri arasındaki paketleri taşımak için kullanılır. Belirli bir bağlantıyı paketleri gönderme ve alma işlemleri hem ağ kartı için yazılım aygıt sürücüsünde hem de software veya özel yonga setinde kontrol edilebilir. Bunlar iletim için hazırlamak için bir paket başlığını ekleme sonrasında çerçeveyi fiziksel bir ortam üzerinde iletmek gibi veri bağlantısını çalıştırır. TCP/IP modeli, İnternet iletişim kuralları kapsamındaki Media Access Control (MAC) gibi veri yönlendirme ağları içeren özellikler içermektedir. Bu düzeyin altındaki tüm diğer yönleri ise, örtülü bağlantı katmanı var varsayılır, fakat açıkça tanımlanmamıştır.
Bu da paketlerin bir sanal özel ağ ya da diğer ağ tüneli üzerinden gönderilmek üzere seçilebilir tabakadır. Bu senaryoda, bağlantı katmanı veri başka bir IP bağlantısı üzerinden iletimi ya da alımı için IP yığını başka örneğinin erişir uygulama verileri kabul edilebilir. Böyle bir bağlantı veya sanal bağlantı, protokol kümesinin bağlantı katmanında bir tünel olarak hizmet veren bir taşıma protokolü ya da bir uygulama kapsamı protokolü ile kurulabilir. Böylece, TCP / IP modeli sıkı bir hiyerarşik kapsülleme dizisi dikte etmez.
TCP/IP modelinin bağlantı katmanı fiziksel ve veri bağlantı katmanları olan Açık Sistemler- Interconnection (OSI) modeli, katmanlar tek ve OSI modeline tekabül etmektedir.
Örnek
Bilgisayarınız Wikipedia ana sayfasını alırken işlemler şu şekilde gerçekleşir;
Wikipedia web sunucusu, HTML çıktısını yaratır ve üzerinde çalıştığı sisteme "şu veriyi şu adrese şu porttan(80-HTTP) yolla" komutu verir. Bu ilk veri, dördüncü katman olan uygulama katmanından gelen veridir.
Sistem, bu çıktıya öncelikle üçüncü katman olan taşıma katmanının bilgilerini iliştirir, yani paketin başına port bilgisini ve paket boyunu yazar.
Ardından, deminki pakete bu sefer de ağ katmanı bilgileri, başka bir deyişle yollayan bilgisayarın ve sizin bilgisayarınızın IP adresleri ve paketin toplam boyu, eklenir.
Son olarak, paket fiziksel katmanın eline geçer ve o katman da fiziksel adresleri ve paketin yeni boyunu da yazarak paketi gönderir.
Paket, dünya etrafında küçük bir tur attıktan sonra sizin bilgisayarınıza ulaşır. Yol boyunca değişik makineler paketi alır, açar, ihtiyaca ve ağ durumuna göre tekrar paketler. Paket sonunda sizin bilgisayarınıza ulaştığında sizin bilgisayarınız da önce fiziksel paketi, ardından ağ paketini, ardından taşıma paketini ve en son da uygulama paketini açar. Paketten çıkan veriyi web tarayıcınıza verir. Web tarayıcısı da size gösterir.
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'lar 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. Bunun, dünya internet trafiğinin %15'ini oluşturduğu tahmin edilmektedir.
Katmanlama sistemindeki ilk üç katman (yani donanım, ağ ve taşıma katmanları) arasından:
Donanım katmanı, bilgisayarın üzerindeki ağ donanımını tanıyabilmek için bir ağ kartı numarası. Bu kart numarası ağ kartına yazılı gelir (yani değiştirilemez (aslında bu yöne yönelik programlarla MAC adresini de değiştirmek mümkündür)) ve MAC adresi olarak anılır.
Ağ katmanı, bilgisayara ulaşabilmesi için verilen IP adresini kullanır.
Taşıma katmanı ise, aynı bilgisayarda çalışan değişik yazılımların aynı anda internete ulaşabilmesi için her yazılıma bir port numarası verir.
Bazı IP adresleri ve maskeleri bazı kullanımlar için ayrılmıştır. Bunlar şu şekildedir:
Yerel ağlar için ayrılmış adresler:
10.0.0.0 ile 10.255.255.255 arası adresler (maske olarak 255.0.0.0)
172.16.0.0 ile 172.31.255.255 arası adresler (maske olarak 255.0.0.0)
192.168.0.0 ile 192.168.255.255 arası adresler (maske olarak 255.255.0.0)
169.254.0.0 ile 169.254.255.255 arası adresler (maske olarak 255.255.0.0)
Bir makinenin kendisine konuşması (loopback) için ayrılmış adresler:
127.0.0.0 ile 127.255.255.255 arası adresler (yani maske olarak 255.0.0.0)
Bu sayede, bir ağdaki IP adreslerini mantıksal olarak tasarlamak mümkündür. Buna ek olarak, kullanıcılara IP adresi, ağ maskesi ve varsayılan ağ geçidini otomatik atayabilmek için DHCP protokolü kullanılabilir.
Öncelikle, bir önceki bölümde bahsedildiği gibi bir cihaz başka bir cihazla aynı ağda olup olmadığını kendi IP adresi ve diğer IP adresini kendi ağ maskesini kullanarak karşılaştırarak anlar. Yukarıda değinildiği gibi, ağ maskelerinin 255.255.255.0 olması durumunda 192.168.0.1 ile 192.168.0.2 IP adreslerine sahip olan cihazla aynı ağda yer alıyorlar demektir. Aynı maskeye sahip olan 192.168.1.1 IP adresi ise başka bir ağda yer almaktadır. Başka bir ağda yer alan bir cihaza ulaşmak için IP yönlendirmesi (IP routing) yeteneği olan bir cihaza ihtiyaç vardır. Yönlendiriciler, üçüncü katman anahtarlama cihazları yönlendirme yeteneğine sahip olan aktif cihazlardır.
Öte yandan, her ağ geçidi dünyadaki tüm ağ geçitlerinin nerede olduğunu tabii ki tablosunda tutmaz. Dolayısıyla, çoğu ağ geçidinin bir de varsayılan geçit (yani "paket nereye gidiyor bilmediğinde pakedin verileceği yer") girdisi bulunur.
Bazı TCP/IP protokolleri
Veri bağlantı katmanındaki protokoller
ARP (Address Resolution Protocol, yani Adres Çözümleme Protokolü) bir IP adresinin hangi ağ kartına (yani MAC adresine) ait olduğunu bulmaya yarar. TCP/IP'de veri gönderilecek bilgisayarın hangisi olduğunu bulmak için kullanılır. Ayrıca IP adresini yeni almış olan bir RARP, (yani Reverse ARP) protokolü ARP'ın tersi işlemi yapar, yani hangi MAC adresinin hangi IP adresini kullandığını bulur. Bir TCP/IP ağında RARP'ın çalışacağı garanti değildir, zira RARP bir RARP sunucusuna ihtiyaç duyar.
İnternet katmanındaki bazı protokoller
ICMP (Internet Control Message Protocol, yani Internet Yönetim Mesajlaşması Protokolü), hata ve türlü bilgi mesajlarını ileten protokoldür. Örneğin, ping programı ICMP'yi kullanır.
RIP (Router Information Protocol, yani Router Bilgi Protokolü) router'ların yönlendirme tablolarını otomatik olarak üretebilmesi için yaratılmıştır.
OSPF (Open Shortest Path First, yani İlk Açık Yöne Öncelik) aynı RIP gibi router'ların yönlendirme tablolarını otomatik olarak üretebilmesine yarar. OSPF, RIP'ten daha gelişmiş bir protokoldür.
IGMP, (Internet Group Messaging Protocol, yani Internet Grup Mesajlaşma Protokolü) bir sistemin internet yayınlarına (multicast) abone olmasına ve aboneliği durdurmasına yarar. Bu yayınlar, UDP üzerinden yapılır ve genelde çoklu ortam (ses veya video) içerikli olurlar.
DHCP (Dynamic Host Configuration Protocol, yani Dinamik Cihaz Ayar Protokolü) bir TCP/IP ağına bağlanan bir cihaza otomatik olarak IP adresi, ağ maskesi, ağ geçidi ve DNS sunucusu atanmasına yarar.
Taşıma katmanındaki protokoller
UDP (User Datagram Protocol, yani Kullanıcı Veri Protokolü), IP üzerinden veri yollamaya yarar. Verilerin ulaşacağını garanti etmez ve UDP paketlerinin maksimum boy sınırları vardır. Öte yandan, UDP son derece basit ve bağlantı gerektirmeyen (connectionless) bir protokoldür.
TCP (Transmission Control Protocol, yani Gönderim Kontrol Protokolü), IP üzerinden ulaşma garantili ve herhangi bir boyda veri gönderilmesine imkan tanıyan bir protokoldür. UDP'den farklı olarak, TCP'de iki cihazın iletişim kurabilmesi için önce birbirlerine bağlanmaları gerekmektedir.
Uygulama katmanındaki bazı protokoller
DNS (Domain Name System, yani Alan Adı Sistemi) alan adı verilen isimler (mesela www.wikipedia.org) ile IP adreslerini birbirine bağlayan sistemdir. Paylaştırılmış bir veritabanı olarak çalışır. UDP 53. veya TCP 53. portları üzerinden çalışabilir.
HTTP (HyperText Transfer Protocol, yani HiperMetin Yollama Protokolü) ilk başta HTML sayfaları yollamak için yaratılmış olan bir protokol olup günümüzde her türlü verinin gönderimi için kullanılır. TCP 80. port üzerinden çalışır.
çalışır.
POP3 (Post Office Protocol 3, yani Postane Protokolü 3) e-posta almak için kullanılan bir protokoldür. TCP 110. port üzerinden çalışır.
SMTP (Simple Mail Transfer Protocol, yani Basit Mektup Gönderme Protokolü) e-posta göndermek için kullanılır. TCP 25. port üzerinden çalışır.
FTP (File Transfer Protocol, yani Dosya Gönderme Protokolü'') dosya göndermek ve almak için kullanılır. HTTP'den değişik olarak kullanıcının illaki sisteme giriş yapmasını gerektirir. Veri (TCP 20) ve komut (TCP 21) alışverişi için iki ayrı port kullanır.
nır.
Tüm bu protokoller (ve dahası) sayesinde TCP/IP her geçen gün daha da popülerleşen bir protokol olmuştur.
TCP/IP ve OSI Modellerinin Karşılaştırılması
OSI modelindeki en üst katman olan; uygulama katmanı, sunucu katmanı ve oturum katmanı, taşıcıyı katmanı üzerinde sadece uygulama katmanı bulunan TCP/IP gibi ayrı ayrı çeşitlenmez. OSI uygulama protokollerini birbirine bağlayan X.400 gibi, TCP/IPde, taşıyıcı katmanı üzerinde kurulu monolitik mimariyi impoze etmeyi gerektirecek bir zorunluluk yoktur. Örneğin, NFS uygulama protokolleri Remote Procedure Call (RPC) gibi bir protokol çalıştıran External Data Representation (XDR) sunucu protokolleri üzerinde çalışır. RPC güvenilir kayıt iletimini sağlar ve en iyi eforu verecek UDP taşıyıcısını güvenlice kullanabilir.
Değişik yazarlar TCP/IPyi farklı bir şekilde yorumlamıştır ve bağlantı katmanının yahut tüm TCP/IP modelinin OSI 1. Katmanını kapsayıp kapsamadığının yahut donanım katmanının bağlantı katmanı altında farzedilip edilmediği konusunda anlaşamamışlardır.
Birkaç yazar, OSI modelinin katmanlarının bir yahut ikisini modern standartlara atfettiğinden dolayı TCP/IP modelinde birleştirmeye çalışmıştır. (Örneğin; IEEE ve ITU). Bu da ağlardan birinin OSI Modelinin katmanlarından birinci ve ikinciye bağlı beş katmanlı bir modelin ortaya çıkması ile sonuçlanmıştır.
Bazı protokolleri, OSInin katman numaralarını kullansa ve RFC bazen buna atfetse bile, OSI modele uyum sağlayamayabilir. IETF defalarca Internet protokolü ve mimari gelişimini değil OSI ile uyumlu olmasını amaçladığını ifade etmiştir. RFC 3439 Internet mimarisini şu şekilde başlıklı bir bölüm içerir. Zararlı olarak değerlendirildiğinde Katmanlama
Örneğin, OSI paketinin oturumu ve sunum katmanları, TCP/IP paketinin uygulama katmanına dahil olarak kabul edilirler. Bu oturumun katman işlevselliği HTTP ve SMTP gibi protokollerde bulunabilir ve Telnet ve Oturum Başlatma Protokolü (SIP) gibi protokollerden daha belirgindir. Oturum katmanı işlevselliği TCP ve UDP protokolleri, TCP/IP modelinin taşıyıcı katmanını kaplayan port numaralandırma ile gerçekleştirilmektedir. TCP/IP uygulamalarındaki Sunum katmanı fonksiyonları MIME standartındaki veri alışverişi ile gerçekleştirilmektedir.
Orijinal OSI modelinde ISO 7498/4 Management Framework yahut ISO 8648 Internal Organization of the Network layer (IONL) gibi ekler bu model için göz önüne alınmadığonda özellikle ISO7498de çatışmalar daha belirgindir. IONL ve Management Framework belgeleri dikkate alındığında, ICMP ve IGMP, ağ katmanı için katman yönetimi protokolleri olarak tanımlanırlar. Benzer şekilde, ARP ve RARP gibi IONL ekleri "alt ağ bağımlı yakınsama imkanları" için bir yapı sunmaktadır.
Generic Routing Encapsulation (GRE) gibi tünel protokolleri tarafından gösterildiği için IETF protokolleri ardışık bir şekilde sarmalanabilir. GRE, OSInin ağ katmanında tünel için kullandığı aynı mekanizmayı kullanır.
Uygulamalar / Implementations
İnternet iletişim kuralları herhangi bir donanım veya yazılım ortamı varsaymaz. Sadece bilgisayar ağı üzerinde gönderme ve alma kapasitesine sahip olan donanım ve yazılım katmanlarına gerek duymaktadır. En küçük TCP/IP uygulamaları şunları içermektedir: Internet Protocol (IP), Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), ve IGMP. IP ye ek olarak ICMP, CP, UDP, Internet Protocol versiyon 6 Neighbour Discovery Protocol (NDP), ICMPv6 ve IGMPv ye ihtiyaç duyar ve genellikle entegre edilmiş IPSec koruma katmanı tarafından eşlik edilir.
Alt katmanlar yönetici sistemindeki sıkışmış TCP/IP tarafından desteklenirken, uygulama programcıları genellikle taşıma katmanında yalnızca uygulama katmanında arayüzleri ile ilgilidir. IPlerin çoğu soketler ve API gibi programlar sayesinde ulaşılabilirdir.
Benzersiz uygulamalar, gömülü sistemler için tasarlanmış açık kaynak yığını olan Lightweight TCP/IP ve amatör paket radyo sistemleri ve seri hatlar üzerinden bağlanan kişisel bilgisayarlar ile ilgili protokollere sahip olan KA9Q NOS içerir.
Ağ adaptöründeki mikro kontrolcü işletim sistemindeki sürücü yazılım tarafından desteklenerek yazılım üzerinde tipik olarak bağlantı sorunları ile ilgilenir. Programlanamaz analog ve dijital elektronikler tipik olarak her bir ağ arayüzü veya fiziksel standart için yongaseti olarak application-specific integrated circuit (ASIC)i kullanarak, normal olarak bağlantı katmanının altındaki fiziksel parçalardan sorumludur. Yüksek performanslı yönlendiriciler büyük ölçüde bağlantı düzeyi geçişini ortaya koyan ve programlanamayan hızlı dijital elektronik üzerine kuruludur.