TCP/IP Protokol Yapısı Fatih Şirin
İnternet iletişim kuralları dizisi internet protokol takımı, 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.
TCP/IP Yapı olarak iki katmanlı bir haberleşme protokolüdür. Üst Katman TCP(Transmission Control Protocol) verinin iletimden önce paketlere ayrılmasını ve karşı tarafta bu paketlerin yeniden düzgün bir şekilde birleştirilmesini sağlar. Alt Katman IP (Internet Protocol) ise,iletilen paketlerin istenilen ağ adresine yönlendirilmesini kontrol eder. İlk olarak 80'li yıllarda Amerikan Savunma Bakanlığı (DoD) tarafından OSI tabanlı sistemlere alternatif olarak geliştirilmiştir. DoD'un Amerikan piyasasındaki ana belirleyici olması,bu protokolün Amerikan yazılımlarında standart kabul edilmesine neden oldu. İnternet'in babası sayılabilecek ARPANet bu nedenle TCP/IP ile doğdu.İnternet kullanımının büyük bir hızla artması ile birlikte,TCP/IP OSI üzerinde bir üstünlük kurmuş oldu.
TCP/IP TCP’nin (“transmission control protocol-iletişim kontrol protokolü”) temel işlevi, üstkatmandan (uygulama katmanı) gelen bilginin segment’ler haline dönüştürülmesi , iletişim ortamında kaybolan bilginin tekrar yollanması ve ayrı sıralar halinde gelebilen bilginin doğru sırada sıralanmasıdır. IP (“internet protocol”) ise tek tek datagramların yönlendirilmesinden sorumludur. Bu açıdan bakıldığında TCP katmanının hemen hemen tüm işi üstlendiği görülmekle beraber (küçük ağlar için bu doğrudur) büyük ve karmaşık ağlarda IP katmanı en önemli görevi üstlenmektedir. Bu gibi durumlarda değişik fiziksel katmanlardan geçmek, doğru yolu bulmak çok karmaşık bir iş halini almaktadır.
TCP/IP ile OSI arasındaki Farklar TCP/IP haberleşme görevini karmaşık bir iş olarak niteleyerek daha basit alt görevlere böler. Her bir alt görev diğer alt görevler için belirli servisler sunar ve diğer alt görevin servislerini kullanır. OSI modeli de aynı kavramı kullanır ,ancak OSI modelinde her bir katmandaki protokollerin özellikleri ve birbiri ile ilişkileri kesin bir dille tanımlanmıştır. Bu özellik OSI modeli ile çalışmayı daha verimli kılar. OSI modelinde katmanların görevlerinin kesin bir şekilde belirlenmiş olması yeni bir protokol geliştirmeyi kimi zaman güçleştirebilir. TCP/IP ise böyle bir kısıtlama getirmediğinden,gerektiğinde yeni bir protokol mevcut katmanlar arasına rahatlıkla yerleştirilebilir. OSI modelinde gerekmeyen bir katmanın kullanılmaması gibi esnek bir yapıya izin verilmemektedir. TCP/IP ise katı kurallarla tanımlı olmadığından gereksinim duyulmayan katmanların kullanılmamasına izin verir. Örneğin uygulama katmanında olmasına rağmen doğrudan IP üzerinden kullanılabilen protokoller mevcuttur.
Katmanlar / Layers TCP/IP'de, yollanan veriler katmanlara göre paketlenerek yollanır ve alıcıda bu paketler teker teker açılıp veri ulaştırılır. Bu yöntem, yollanan veri, yollama şekli ve yollama yolunu birbirinden ayırarak birlikte çalışmayı kolaylaştırır: örneğin bir bilgisayarda bağlantı olarak Ethernet yerine Wi-fi kullanılması, üzerinde başka bir web tarayıcı kullanılmasını gerektirmez. Katmanlar, bahsedilen standarda göre dört veya yedi şekilde açılabilir. TCP/IP'de genel olarak dört katmandan bahsedilir, bunlar:
1-Uygulama Farklı sunucular üzerindeki süreç ve uygulamalar arasında olan iletişimi sağlar. Bu katmanda veriyi göndermek isteyen uygulama ve kullandığı dosya biçimi bulunarak gönderilen verinin türüne göre farklı protokoller çalıştırılır (HTTP, SMTP, FTP, Telnet, vs.) ve programlarla Taşıma protokollerinin haberleşmesi sağlanır. Uygulama Katmanı Taşıma Katmanıyla portlar aracılığıyla haberleşir. Portlar numaralandırılmış standart uygulamalardır (HTTP:80, FTP:21, vs.) ve Taşıma Katmanında gelen paket içeriğinin türünün anlaşılmasında rol oynar.
Uygulama katmanındaki protokoller DNS (Domain Name System, yani Alan Adı Sistemi) alan adı verilen isimler (mesela www.siteismi.org) ile IP adreslerini birbirine bağlayan sistemdir. Paylaştırılmış bir veritabanı olarak çalışır. UDP veya TCP ü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 üzerinden çalışır. HTTPS (Secure HTTP yani Güvenli HTTP) HTTP'nin RSA şifrelemesi ile güçlendirilmiş halidir. TCP üzerinden çalışır. POP3 (Post Office Protocol 3, yani Postahane Protokolü 3) e-posta almak için kullanılan bir protokoldür. TCP üzerinden çalışır. SMTP (Simple Mail Transfer Protocol, yani Basit Mektup Gönderme Protokolü) e-posta göndermek için kullanılır. TCP ü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 illa ki sisteme giriş yapmasını gerektirir. Veri ve komut alış verişi için iki ayrı port kullanır. TCP üzerinden çalışır. SFTP veya FTPS (Secure FTP, yani Güvenli FTP), FTP'nin RSA ile güçlendirilmiş halidir. TCP üzerinden çalışır.
2-Taşıma Noktadan noktaya veri akışını sağlar. Bu katmanda verinin ne şekilde gönderildiği gösterilir. Servis kalitesi(the quality of service), güvenli 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ılı (connection oriented) ve güvenilir iletişim sağlayan bir protokoldür. Bağlantılı olması; kaynak ve hedef arasında mantıksal bağlantı kurulmasıdır. Bu da iki bilgisayarın veri alışverişinde bulunmadan önce anlaşması demektir. Güvenilir olması; 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 ve güvenilir olmayan bir iletişim sağlar. Bu nedenle UDP, TCP' ye göre daha hızlıdır.
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 imkân tanıyan bir protokoldür. UDP'den farklı olarak, TCP'de iki cihazın iletişim kurabilmesi için önce birbirlerine bağlanmaları gerekmektedir.
3-İnternet Katmanı Bazen IP katmanı olarak da anılan bu katman, IP adreslerinin veriye eklendiği ve yönlendirmenin yapıldığı noktadır. Kaynak ağdan gelen veriyi hedef ağa gönderme yönlendirmedir. 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 gibiICMP, IGMP veya ARP gibi durum bildirme ve katmanlar arası bağ protokolleri de olabilir.
4-Ağ Arayüzü Katmanı Bu katmanda verinin kablo üzerinde alacağı yapıyı tanımlayarak bir ve sıfırların fiziksel olarak görüntülenmesi sağlanır. Ethernet Ağ Arayüzü Katmanında kullanılan ve veri iletiminin fiziksel görünümünü sağlayan en yaygın kablolu yerel ağ teknolojisidir.
Ağ 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 Ters 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.
IP katmanındaki 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 (radyo 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 veDNS sunucusu atanmasına yarar.
Örneğin, bilgisayarınız herhangi bir site ana sayfasını alırken işlemler şu şekilde gerçekleşir:
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.