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):
- İstemci, SYN bayrağı ve başlangıç sıralama numarası ile bir segment gönderir.
- 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.
- İ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ı
};