Sobes.tech
Middle

TCP/IP modelinin taşımacılık katmanı (transport layer) hakkında bana bilgi ver.

sobes.tech yapay zeka

AI'dan gelen yanıt

TCP/IP Taşıma Katmanı, farklı ana makinelerde çalışan süreçler arasında iletişim sağlar. Ana görevler:

  • Ana makinedeki uygulamaları/süreçleri tanımlama (portlar aracılığıyla).
  • Veri teslimi hizmetleri sunma:
    • Güvenilir, sıralı teslimat (TCP).
    • Güvensiz, garantisiz teslimat (UDP).

İki temel protokol:

  • İletim Kontrol Protokolü (TCP):
    • Bağlantı odaklı.
    • Paketlerin teslimatını garanti eder, sıralamayı korur, akış kontrolü ve aşırı yüklenmeyi yönetir.
    • Güvenilir iletim gerektiren uygulamalar için kullanılır (HTTP, FTP, SMTP).
  • Kullanıcı Datagram Protokolü (UDP):
    • Bağlantısız.
    • Teslimatı, sıralamayı veya akış kontrolünü garanti etmez.
    • Düşük gecikme süresi, zaman duyarlı uygulamalar için uygundur, küçük veri kaybına izin verir (DNS, VoIP, akış video).

TCP segmentleri, kaynak/hedef portları, sıralama numaraları, onay numaraları, bayraklar (SYN, ACK, FIN), kontrol toplamı gibi alanları içerir.

UDP datagramları, kaynak/hedef portları, uzunluk ve kontrol toplamı alanlarını içerir.

Portlar: süreçler arasında veri çoklaması/çoklaması için kullanılan 16 bitlik sayılar.

  • Well-known ports (0-1023): Standart hizmetler için rezerve edilmiştir (80 HTTP için, 443 HTTPS için, 22 SSH için).
  • Registered ports (1024-49151): IANA'da kayıtlı özel uygulamalar için kullanılır.
  • Dynamic/Private ports (49152-65535): Çıkış bağlantıları için istemciler tarafından kullanılır.

TCP bağlantısı kurma örneği (Üç aşamalı el sıkışma):

  1. İstemci, SYN bayrağı ve başlangıç sıralama numarası ile bir segment gönderir.
  2. Sunucu SYN'yi alır, SYN ve ACK bayrakları ile kendi başlangıç sıralama numarası ve client_seq + 1 olan onay numarası ile yanıt verir.
  3. İstemci SYN+ACK'yi alır, ACK bayrağı ve server_seq + 1 olan onay numarası ile yanıt verir. Bağlantı kurulur.
// Basitleştirilmiş TCP başlık yapısı örneği
struct tcp_header {
    unsigned short src_port;       // Kaynak portu
    unsigned short dest_port;      // Hedef portu
    unsigned int   seq_num;        // Sıralama numarası
    unsigned int   ack_num;        // Onay numarası
    unsigned short flags;          // Bayraklar (SYN, ACK, FIN vb.)
    // diğer alanlar...
};
// Basitleştirilmiş UDP başlık yapısı örneği
struct udp_header {
    unsigned short src_port;       // Kaynak portu
    unsigned short dest_port;      // Hedef portu
    unsigned short length;         // UDP datagram uzunluğu
    unsigned short checksum;       // Kontrol toplamı
};