TCP/IP NEDİR, NASIL ÇALIŞIR?
Herkesin merak ettiği bazı sorular vardır: İnternette kurulan bağlantıların kaynağı nerden başlar? Hangi oluşum aracılığıyla veri karşı tarafa iletilir? İletim esnasında hangi olaylar gerçekleşmektedir?
Bu soruların cevaplarını yeni yazmış olduğum ‘TCP/IP NEDİR, NASIL ÇALIŞIR?’ adlı blog yazımda bulunmaktadır. Bu blog yazısında;
- TCP/IP Nedir?
- TCP/IP Çalışma Mantığı Nasıldır?
- TCP/IP Modelinde Hangi katmanlar bulunur?
- TCP/IP ve OSI Modelinin Karşılaştırılması
- TCP/IP Protokollerinin avantajları ve dezavantajları nelerdir?
Gibi konular ele alınmıştır.
TCP/IP Nedir?
1970’lerde Amerika Savunma Bakanlığı’nın veri iletişimi ihtiyacını karşılamak için tasarlanmıştır. Daha sonra Dünyada ilk kez kurulan geniş alan ağı olan ‘ARPANET’ İçin vazgeçilmez bir protokol oldu. Günümüzde TCP/IP protokolü internette bulunan iletişim için küresel standartlar taşımaktadır.
TCP (Transmission Control Protocol): Türkçe karşılığı ‘İletim Kontrol Protokolü’ olarak geçmektedir. İnternet üzerinden paket göndermek, mesaj göndermek ve başarılı bir şekilde veri akışı sağlamak için tasarlanmış bir protokoldür.
TCP Protokolünün en önemli özelliği; veri akışı sağlanırken kimlik doğrulaması yapmasıdır. Veri ilettiği tarafa paket gönderirken küçük paketler halinde kayıpsız bir şekilde gönderir. Bu özelliği sayesinde verinin bütünlüğünü de korumuş olur.
Ağ iletişiminde en yaygın kullanılan protokoller arasındadır ve uçtan uca veri iletimi sağlar.
IP (Internet Protocol): Türkçe karşılığı ‘İnternet Protokolü’ olarak geçmektedir. İki bilgisayar arasında kurulan trafikte paketlerin yönlendirilmesini sağlar. Uygulamalarda ve cihazlarda bulunan veri paketleri arasındaki değişimin nasıl gerçekleştiğini tanımlamaktan sorumludur.
Her cihazın kendine göre bir IP adresi bulunmaktadır. İnsanlarda nasıl parmak izi, TC kimlik numarası gibi kendine has kişisel bilgiler bulunuyorsa her cihazında parmak izi, TC kimlik numarası IP adresi olarak belirtilir.
- TCP ve IP protokollerin farkı nelerdir?
TCP ve IP protokolleri bir verinin iletilmesini sağlamak amacıyla birlikte çalışan iki ayrı protokoldür. IP gönderilecek mesaj için hedef cihazın veya hedefin IP adresini kendi içerisinde tanımlar. IP tarafından belirlenen hedefe TCP gönderilecek olan mesajı doğrulama yaparak göndermekle sorumlu olan protokoldür. Örneğin elimizde bir telefon var. Bu telefonla yakın arkadaşımıza bir mesaj iletiyoruz. Burada bulunan telefon IP Protokolünü, mesaj gönderilmesi ve iletilmesi ise TCP protokolünün işlevi sayesinde gerçekleşmektedir.
Kısacası TCP/IP Modeli cihazlar arası veri iletişimini sağlayan ve bu iletişimin kurallarını koyan protokol modelidir.
TCP/IP Çalışma Mantığı Nasıldır?
Öncelikle iki cihaz arasında bir veri aktarımı veya mesaj yollama durumu mevcut olmalıdır. İletim sırasında çıkacak her türlü olumsuz durum için yeniden mesajı göndermemek adına gönderilen veri paketler haline ayırır. Hedefe ulaştıklarında tüm paketler yeniden birleşir. Paketlerin iletilirken izlediği yollar farklılıklar gösterebilir.
TCP, veri alışverişi bitene kadar bağlantıyı kurar ve sürdürür. Gönderilen iletinin nasıl paketlere, sayılara bölüneceğini, bu paketleri nasıl birleştireceğini belirler. Bunları ağdaki güvenlik geçitlerine, yönlendiricilere ve anahtarlar gibi diğer cihazlara gönderir. Kısacası;
- Paketleri gönderir ve alır.
- Bırakılan paketlerin iletimini yönetir.
- Akış kontrolünü yönetir.
- Tüm paketleri hedefine ulaştırır.
TCP/IP, aygıt ve sunucu arasındaki bağlantıyı kurmak için Three Way Handshake (Üçlü El Sıkışma) yöntemini kullanır.
- Three Way Handshake Nedir?
Üçlü El Sıkışma yöntemi kurulacak iletişimin daha güvenli olabilmesi için yapılan bir güvenli iletişim modelidir. Ağdaki bağlantıları güvenli bir şekilde kurmak ve sonlandırmak için kullanılır.
Bir veri akışından gelen verileri kabul edip parçalarına bölmeye başlar. Bu parçalanan verilere bir başlık eklenerek devam eder. Bu işleyiş ile birlikte bir TCP başlığı (TCP Header) oluşur.
TCP Header Yapısı:
- Source Port (Kaynak Bağlantı Noktası): Gönderen tarafın bağlantı noktasını ifade eder. 16 bitlik bir alana sahiptir.
- Destination Port (Hedef Port): Alıcı tarafın port numaralarını belirtir. 16 bitlik bir alana sahiptir.
- Sequence Number (Sıra Numarası): TCP oturumu işlenirken ne kadar veri gönderildiğini gösteren 32 bitlik bir alandır. Alıcı tarafından bu sıra numarasını kullanarak alındı mesajı verecektir.
- Acknowlendgment Number (Onay Numarası): Alıcı tarafından bir sonraki TCP segmentini istemek için kullanılır. 32 bitlik bir alana sahiptir.
- DO (Yap): Gerçek verilerin nereden başlandığını bildirmek için TCP Header uzunluğunu belirtir.
- RSV: Ayrılmış alanları belirtir ve kullanılmazlar.
- Flags (Bayraklar): Bağlantılar kurmak, sonlandırmak verileri göndermek için kullanılır.
- Wİndow (Pencere): Alıcını kaç bayt veri alacağını gösterir.
- Checksum (Sağlama Toplamı): TCP Header uygun mu değil mi onu kontrol eder.
- Urgent Pointer (Acil İşaretçi): Acil verilerin nerede bittiğini gösteren yapıdır.
- Options (Seçenekler): İsteğe bağlı ayarlamaların yapıldığı alandır.
Bu alanları Wireshark aracını kullanarak yakından inceleyebilirsiniz.
Şimdi de Three Way Handshake olayının adımlarını izleyelim.
Adım 1: İstemci ile sunucu arasında bir iletişim kurulur. SYN ile bir segment yollanır ve sunucuya iletişime artık geçmesini ve sıra numarasını belirtmesini ister.
Adım 2: Sunucu bu isteğe yanıt olarak SYN+ACK mesajını iletir. Bu mesajda geri bildirim olarak iletişime geçtiğini ve sıra numarasının kaç olduğunu gönderir.
Adım 3: İstemci bu geri bildirimden sonra sunucunun yanıtını kabul eder ve ACK mesajı ile bağlantı oluşturulup veri aktarımı başlar.
NOT: Eğer bağlantı kurmak yerine oluşan bir bağlantıyı sonlandırmak istiyorsak mantık yukarıdaki gibi çalışır. Tek Fark SYN mesajı yerine FIN mesajı gider.
TCP/IP Modelinde Hangi katmanlar bulunur?
TCP/IP Modeli toplamda 4 katmandan oluşur.
- Katman – Network Interface (Ağ Arayüz Katmanı)
- Katman – İnternet Katmanı
- Katman – Transport (Taşıma Katmanı)
- Katman – Application (Uygulama Katmanı)
Katman 1: Network Interface (Ağ Arayüz Katmanı)
Veri Bağlantı katmanı olarak da bilinir. Bu katmanda bilgisayarların internet aracılığıyla birbiriyle iletişim kurmasını sağlayan fiziksel altyapıyı yönetir. Ethernet kablosu, kablosuz ağlar, ağ arabirim kartları, aygıt sürücülerini kapsar.
Ayrıca ağ bağlantısının vazgeçilmezi olan dijital verileri sinyallere dönüştüren kod gibi teknik altyapıyı da içerir.
Katman 2: İnternet Katmanı
Ağ katmanı olarak da bilinir. Verilerin doğru ve hızlı bir şekilde iletilmesini sağlayan, trafiğin akışını kontrol eden ve yönlendirilmesini sağlayan katmandır. Verilerin paketler halinde gidip birleştirildiğinden bahsetmiştik. İşte bu katmanda veriler hedefte yeniden birleştirilir.
Katman 3: Transport (Taşıma Katmanı)
Taşıma katmanı iletişim kuran istemci ile sunucu arasında güvenli bir veri bağlantısı yolu izler. Verileri paketler, halinde böler göndericiden aldığı paketleri onaylayıp alıcını aldığı paketlerin kabul edilmesini sağlar. TCP tam da bu katman üzerinde bulunmaktadır.
Katman 4: Application (Uygulama Katmanı)
Kullanıcının ağa erişmesi için izin verdiği uygulamaları kapsayan katmandır. Bu uygulamalar e-posta sistemleri, mesajlaşma uygulamaları örnek gösterilebilir.
TCP/IP ve OSI Modelinin Karşılaştırılması
TCP/IP Modeli ile OSI Modelinin arasında hangi farklar bulunur?
- OSI modelinde 7 katman bulunurken TCP/IP modelinde dört katman bulunur.
- Gerekmeyen bir katmanın kullanılmamasına OSI modeli izin vermez. TCP/IP modelinde böyle katı kurallar olmadığı için gerek duyulmayan katmanların kullanılmamasına izin verir.
- Üst katmanların işlevselliğini tanımlamak için OSI modelinde 3 katman bulunur: Application, Presentation, Session. TCP/IP modelinde ise bunlara karşılık tek katman bulunur: Application.
- Yönlendirme protokolleri ve standartları OSI modelinde Network Katmanında bulunurken, TCP/IP modelinde Internet Katmanında bulunur.
- OSI modeli TCP/IP modeline göre standart ve protokolleri daha ayrıntılı olarak işlenmiştir.
- TCP/IP modeli UDP bağlantısı yaptığı zaman iletim katmanında güvenlilik kontrolü yapmaz fakat OSI modeli bu güvenlik kontrolünü her zaman yapar.
- TCP/IP modelinin başlık boyutu 20 bayt, OSI modelinin ise 5 bayttır.
- TCP/IP, farklı PC türleri arasında bağlantı kurulmasını sağlar. OSI modeli ise yönlendiricileri, anahtarları, anakartları ve diğer donanımları standartlaştırmaya hedefler.
TCP/IP Modeli ile OSI Modelinin arasında hangi benzerlikler bulunur?
- Her iki model de mantıksal modellerdir.
- Ağ standartlarını tanımlarlar.
- Ağ iletişim sürecini katmanlara bölmekle yükümlüdürler.
- Ağ standartları ve cihazları oluşturmak ve uygulamak için çerçeveler sağlarlar.
TCP/IP Protokollerinin avantajları ve dezavantajları nelerdir?
Avantajları:
- Farklı PC türleri arasında bağlantı kurmaya yardımcı olur.
- İşletim sistemine bağlı kalmaz.
- Birçok yönlendirme protokolü mevcuttur.
- Ölçeklenebilir istemci-sunucu mimarisine sahiptir.
- Bağımsız olarak çalıştırılabilme özelliği bulunur.
- Hafif bir modeldir, ağ ve bilgisayar üzerinde yük oluşturmaz.
Dezavantajları:
- Kurulumu ve yönetimi karmaşıktır.
- Bu modelde protokolleri değiştirmeye çalışmak bayağı zordur.
- Transport katmanı paketlerin teslim edileceğini garantilemez.
- Hizmetler, arayüzler ve protokol kavramlarını açıkça ayırmaz, bu sebepten ötürü yeni ağlarda yeni oluşan teknolojileri tanımlamak için uygunluğu yoktur.
- Hizmet reddi saldırılarına karşı savunmasızdır.
Bu blog yazımda sizlere TCP/IP modelini detaylı bir şekilde anlatmış bulunmaktayım. Umarım faydalı olmuştur. Yeni blog yazılarımda görüşmek üzere…