TCP,UDP Protokolleri – Özellikleri ve Karşılaştırma
İnternetin karmaşık dünyasında, veri iletimi ve iletişim protokolleri hayati bir rol oynar. Bu protokoller arasında en yaygın olarak kullanılanlar ise Transmission Control Protocol (TCP) ve User Datagram Protocol (UDP)’dir. Her iki protokol de veri iletimi için kullanılsa da, farklı özelliklere ve kullanım alanlarına sahiptirler.
Bu yazıda, TCP ve UDP protokollerinin nasıl çalıştığını, avantajlarını ve dezavantajlarını inceleyeceğiz. Ayrıca, hangi durumlarda hangi protokolün tercih edilmesi gerektiğine dair ipuçları sunacağız.
TCP (Transmission Control Protocol) Nedir? ve TCP’nin Özellikleri Nelerdir ?
TCP,Bağlantı odaklı bir protokol olup, veri iletiminde güvenilirlik ve sıranın korunmasını sağlar.
TCP, OSI modelinin Transport (Taşıma) katmanında çalışır.
Özellikleri
Bağlantı Odaklı:Veri iletimine başlamadan önce, iki taraf arasında bir bağlantı kurulur. Bu bağlantı, üçlü el sıkışma
(three-way handshake) adı verilen bir işlemle gerçekleştirilir.
Güvenilirlik:Gönderilen her veri parçası için alıcıdan bir onay (acknowledgment) alınır.Veriler doğru sırada teslim
edilir; kaybolan paketler yeniden iletilir.
Akış Kontrolü:Gönderen ve alıcı arasındaki veri akışı, alıcının kapasitesine uygun şekilde düzenlenir.
Hata Kontrolü:Veriler, iletim sırasında bozulmalara karşı kontrol edilir. Hatalı veriler yeniden iletilir.
Segmentasyon:Büyük veri blokları, daha küçük segmentlere bölünür ve bu segmentler üzerinden iletilir. Alıcı, bu segmentleri tekrar birleştirir.
TCP’nin Çalışma Prensibi
Bağlantı Kurulumu (Three-Way Handshake):
TCP, iletişim başlamadan önce üç adımlı bir işlemle bağlantı kurar:
SYN: Gönderen, bağlantı kurma isteği gönderir.
SYN-ACK: Alıcı, isteği kabul ettiğini bildirir.
ACK: Gönderen, alıcının kabul ettiğini onaylar.
Bağlantı bu aşamada tamamlanır.
Veri İletimi:Veriler, segmentlere bölünerek gönderilir. Her segment, bir sıra numarası (sequence number) içerir.Alıcı,alınan segmentleri onaylar veya eksik olanları yeniden istemek için bildirimde bulunur.
Bağlantı Sonlandırma (Four-Way Handshake):Taraflardan biri iletişimi sonlandırmak istediğinde:
FIN: İletişimi sonlandırma isteği gönderilir.
ACK: Karşı taraf bu isteği kabul eder.
Bağlantı, iki tarafın da işlemi onaylamasıyla kapatılır.
TCP Başlık (Header) Yapısı
TCP başlığı, protokolün çalışması için gerekli bilgileri içerir ve genellikle 20–60 bayt uzunluğundadır.Başlıca alanlar:
Source Port(Kaynak Port):Verinin gönderildiği port numarasını belirtir.
Destination Port(Hedef Port):Verinin gönderileceği port numarasını belirtir.
Sequence Number(Sıra Numarası):Gönderilen verinin sıra numarasını içerir.
Acknowledgment Number(Onay Numarası):Alınan veriyi onaylamak için kullanılır.
Header Lenght(Başlık Uzunluğu):TCP başlığının uzunluğunu belirtir. Bu, veri kısmının nerede başladığını gösterir.
Reserved(Rezerv Alan):Gelecekteki kullanımlar için ayrılmıştır ve genellikle sıfır olarak ayarlanır.
Urgent Pointer(Acil İşaretçi):Acil veri işaretçisini belirtir.Bu, acil verinin nerede bittiğini gösterir.
Flags(Bayraklar): SYN, ACK, FIN, RST, PSH, URG gibi bayraklar, bağlantı durumunu belirtir.
Options: Ek bilgi ve hizalama için kullanılan alanlardır
Window Size(Pencere Boyutu ): Alıcının kabul edebileceği maksimum veri miktarını belirtir
Checksum: Verinin hatasız iletilip iletilmediğini kontrol eder.
TCP Flags(Bayraklar)
TCP bağlantısında, bayraklar belirli bir bağlantı durumunu belirtmek veya sorun giderme amaçları gibi bazı ek yararlı bilgiler sağlamak veya belirli bir bağlantının kontrolünü ele almak için kullanılır. En yaygın kullanılan bayraklar “SYN”, “ACK” ve “FIN” dir .Her bayrak 1 bitlik bilgiye karşılık gelir.
SYN (Synchronize): Bağlantı kurulumu sırasında kullanılır. Üçlü el sıkışma (three-way handshake) sürecinde, bir cihazın diğerine bağlantı başlatma isteği gönderdiğini ifade eder.SYN=1 olduğunda, paket bir bağlantı isteği içerir.
ACK (Acknowledgment): Alınan verinin onaylandığını belirtir.ACK flag’i ve onay numarası (Acknowledgment Number) birlikte çalışır.Çoğu TCP paketinde ACK=1 olarak işaretlenir; çünkü gönderilen veri paketlerinin onaylanması temel bir TCP özelliğidir.
FIN (Finish): Bir bağlantıyı sonlandırmak için kullanılır.Dört adımlı bağlantı sonlandırma (four-way handshake) sırasında gönderilir. Gönderici artık veri göndermeyeceğini belirtir.
RST (Reset): Anormal bir durumu ifade eder ve bağlantıyı hemen sonlandırır.Örneğin, beklenmeyen bir bağlantı isteği alındığında gönderilebilir.
RST kullanımı, bağlantıyı sıfırlayarak sistemi koruma amacı taşır.
PSH (Push): Verinin mümkün olan en kısa sürede alıcıya iletilmesini sağlar.Bu flag set edildiğinde, ara bellekleme yapılmadan veri doğrudan alıcı uygulamaya iletilir.
URG (Urgent): Acil bir verinin iletildiğini belirtir.Bu flag set edildiğinde, TCP başlığındaki Urgent Pointer alanı kullanılır ve acil verinin işlenmesi sağlanır.
TCP’nin Avantajları ve Dezavantajları,Kullanım Alanları
Avantajları
Güvenilir veri iletimi sağlar.
Verilerin doğru sırada teslim edilmesini garanti eder.
Akış ve hata kontrolü yapar.
Dezavantajları
Ekstra güvenlik önlemleri ve bağlantı kurulumu nedeniyle daha yavaş çalışır.
Daha fazla sistem kaynağı (örneğin, bellek ve işlem gücü) kullanır.
TCP’yi Kullanma Alanları
TCP, güvenilir veri iletiminin önemli olduğu uygulamalarda kullanılır:
Web tarayıcıları (HTTP/HTTPS)
E-posta iletimi (SMTP, IMAP, POP3)
Dosya aktarımı (FTP)
Uzaktan bağlantı protokolleri (SSH, Telnet)
UDP (User Datagram Protocol) Nedir? ve UDP’nin Özellikleri Nelerdir ?
UDP, TCP gibi bir Transport Layer (Taşıma Katmanı) protokolüdür ancak TCP’den farklı olarak connectionless
(bağlantısız) bir yapıya sahiptir.
UDP, daha hızlı ve basit bir iletişim sağlamak için tasarlanmıştır ve güvenilirlik, sıra düzeni veya hata kontrolü gibi mekanizmaları içermez.
Özellikleri
Bağlantısız:UDP, bağlantı kurulum süreci olmadan çalışır. Veriler doğrudan gönderilir.
Bu, iletişim başlamadan önce bir bağlantı kurulmasını gerektiren TCP’ye kıyasla daha az gecikme anlamına gelir.
Onay Yok:Gönderilen verinin alınıp alınmadığı ya da doğru sırada olup olmadığı konusunda bir onay alınmaz.
Akış Kontrolü Yok:Gönderilen veri, alıcının kapasitesine bakılmaksızın iletilir.
Hata Kontrolü:Veriler, iletim sırasında bozulmalara karşı kontrol edilir.Hatalı veriler yeniden iletilir.
Hafif Yapı:UDP başlığı sadece 8 bayttır, bu nedenle TCP’ye göre daha az sistem kaynağı kullanır.
Yeniden Gönderim Yok:Kaybolan veya bozulmuş veri yeniden gönderilmez.
Datagram Tabanlı:Veriler, bağımsız datagram birimleri olarak gönderilir ve her biri alıcıya ayrı bir mesaj olarak ulaşır.
UDP’nin Çalışma Prensibi
Bağlantı Kurulumu Yok:UDP, connectionless (bağlantısız) bir protokoldür. Bu, veri gönderilmeden önce gönderici ile alıcı arasında herhangi bir el sıkışma (handshake) veya bağlantı kurma işlemi yapılmadığı anlamına gelir.Veriler doğrudan gönderilir.
Veri Paketlerine Bölünme (Datagram Tabanlı)
Gönderilecek veri, her biri bağımsız bir datagram olacak şekilde küçük parçalara bölünür.Her datagram, şu bilgileri
içerir:
Kaynak ve Hedef Port Numaraları:Veriyi gönderen ve alıcı uygulamayı tanımlar.
Uzunluk (Length):Datagramın toplam boyutunu belirtir.
Checksum:Verinin bozulup bozulmadığını kontrol eder.
Verinin Gönderilmesi
Datagram, IP (Internet Protocol) kullanılarak hedef adrese gönderilir. IP, veriyi hedefe ulaştırmak için yönlendirme (routing) işlemini yapar.
UDP, bu süreçte sadece veriyi göndermekle ilgilenir ve veri kaybı, paket sırası veya ağ durumu hakkında endişe
duymaz.
Teslimat ve Onay Yok
UDP, bir datagramın başarıyla alınıp alınmadığını kontrol etmez. Alıcı, datagramı aldığına dair göndericiye bir ACK
(onay mesajı) göndermez.
Ayrıca, paketlerin alıcıya hangi sırayla ulaştığını garanti etmez.
Hata Kontrolü Sınırlı
UDP başlığındaki Checksum alanı, verinin bozulup bozulmadığını kontrol eder. Ancak bir hata tespit edilirse,
protokol bu hatayı düzeltmek için herhangi bir işlem yapmaz.
UDP Başlık(Header) Yapısı
UDP başlığı toplamda 8 bayttan (64 bit) oluşur ve dört ana alan içerir.UDP port numarası alanlarının her biri 16 bit uzunluğundadır.
Source Port:Verinin gönderildiği port numarasını belirtir.Bu alan, verinin hangi uygulamadan geldiğini belirlemek için kullanılır
Destination Port:Verinin gönderileceği port numarasını belirtir. Bu alan, verinin hangi uygulamaya iletileceğini belirlemek için kullanılır.
Length (Uzunluk):Bu alan, başlık ve veri dahil olmak üzere tüm UDP paketinin boyutunu ifade eder.
Checksum:Veri bütünlüğünü kontrol etmek için kullanılır. Bu alan, başlık ve veri kısmının hata kontrolünü sağlar
UDP’nin Avantajları ve Dezavantajları,Kullanım Alanları
Avantajları
Bağlantı kurulumuna gerek olmadığından gecikme çok düşüktür.
Hafif bir protokol olduğu için ağ ve sistem kaynaklarını daha az tüketir.
Karmaşık hata kontrol mekanizmalarına ihtiyaç duymaz.
Dezavantajları
Gönderilen verilerin kaybolması veya bozulması durumunda protokol bir düzeltme yapmaz.
Paketler, alıcıya karışık sırada ulaşabilir.
Alıcının kapasitesine bakılmaksızın veri gönderilir, bu da veri kaybına neden olabilir.
UDP’yi Kullanma Alanları
UDP, güvenilirlikten ziyade hızın önemli olduğu durumlarda tercih edilir:
Video Yayınları (Streaming): Canlı yayınlarda kullanılır.
Online Oyunlar: Hızın kritik olduğu durumlar için uygundur.
DNS (Domain Name System): Hızlı sorgu ve yanıt için kullanılır.
VoIP (Voice over IP): Düşük gecikme gerektiren ses iletişiminde kullanılır.
TCP ve UDP Karşılaştırması
Share this content:
Yorum gönder