Ağ Teknolojileri ve Protokoller

Bilgisayar ağlarının temel yapı taşları, OSI ve TCP/IP modelleri, temel ve ileri seviye iletişim protokolleri (HTTP/HTTPS, WebSocket, gRPC, TCP/UDP), DNS, yük dengeleme, güvenlik katmanları (TLS/SSL) ve bu teknolojilerin .NET ekosistemindeki karşılıkları ele alınır.

Ağ Teknolojileri ve Protokoller

Ağ Teknolojileri ve Protokoller: İnternetin Dili ve Kuralları

Günümüz yazılım dünyasında, uygulamaların büyük çoğunluğu birbirleriyle ağ üzerinden iletişim kurar. İster bir web API'si, ister bir mikroservis, isterse bir oyun sunucusu olsun, tüm bu sistemlerin temelinde verilerin doğru, hızlı ve güvenli bir şekilde taşınmasını sağlayan ağ teknolojileri ve protokoller yatar. Bu yazıda, ağ iletişiminin temel modellerinden başlayarak, en yaygın kullanılan protokollere, güvenlik katmanlarına ve .NET uygulamalarında bu teknolojilerin nasıl kullanıldığına dair kapsamlı bir bakış sunacağız.


1. Ağ Modelleri: OSI ve TCP/IP

Ağ iletişimini anlamak için, iki temel referans modelini bilmek gerekir: OSI (Open Systems Interconnection) ve TCP/IP.

A. OSI Modeli (7 Katman)
OSI, uluslararası standartlara uygun, kavramsal bir modeldir. Gerçek dünyada doğrudan uygulanmasa da, ağ mimarisini anlamak için harika bir referanstır.

  • Katman 7: Uygulama (Application): Kullanıcıya en yakın katmandır. HTTP, FTP, SMTP, DNS gibi protokoller burada çalışır.

  • Katman 6: Sunum (Presentation): Verilerin şifrelenmesi, sıkıştırılması ve format dönüşümlerinden sorumludur (Örn: SSL/TLS).

  • Katman 5: Oturum (Session): İki uç arasındaki iletişim oturumunu başlatır, yönetir ve sonlandırır.

  • Katman 4: Taşıma (Transport): Verilerin uçtan uca (end-to-end) güvenli ve hatasız taşınmasını sağlar. TCP ve UDP bu katmanda çalışır.

  • Katman 3: Ağ (Network): Verilerin kaynaktan hedefe yönlendirilmesini (routing) sağlar. IP (Internet Protocol) bu katmanda çalışır.

  • Katman 2: Veri Bağlantısı (Data Link): Fiziksel katman üzerinden veri iletimini düzenler ve hata tespiti yapar. MAC adresleri bu katmanda kullanılır.

  • Katman 1: Fiziksel (Physical): Kablolar, fiber optik, radyo dalgaları gibi fiziksel iletim ortamını temsil eder.

B. TCP/IP Modeli (4 Katman)
OSI modelinin pratik uygulamasıdır ve internetin temelidir.

  • Katman 4: Uygulama (Application): OSI'nin 5, 6 ve 7. katmanlarını birleştirir. HTTP, FTP, DNS, SMTP.

  • Katman 3: Taşıma (Transport): OSI'nin 4. katmanına denktir. TCP ve UDP.

  • Katman 2: İnternet (Internet): OSI'nin 3. katmanına denktir. IP, ICMP, ARP.

  • Katman 1: Ağ Erişimi (Network Access): OSI'nin 1 ve 2. katmanlarını birleştirir. Ethernet, Wi-Fi, PPP.


2. Temel ve İleri Seviye İletişim Protokolleri

A. TCP (Transmission Control Protocol)

  • Türü: Bağlantı odaklı (connection-oriented), güvenilir (reliable).

  • Nasıl Çalışır: Üç yönlü el sıkışma (3-way handshake) ile bağlantı kurar. Verilerin sıralı ve hatasız gitmesini garanti eder. Kayıp paketleri yeniden gönderir (retransmission). Akış kontrolü (flow control) ve tıkanıklık kontrolü (congestion control) sağlar.

  • Kullanım: Web (HTTP/HTTPS), e-posta (SMTP), dosya transferi (FTP), SSH, veritabanı bağlantıları.

  • Özellikler: Daha yavaş (overhead), yüksek güvenilirlik.

B. UDP (User Datagram Protocol)

  • Türü: Bağlantısız (connectionless), güvenilmez (unreliable).

  • Nasıl Çalışır: Bağlantı kurulumu yoktur. Veriler "ateşle ve unut" (fire-and-forget) mantığıyla gönderilir. Hata kontrolü yoktur, kayıp paketler yeniden gönderilmez.

  • Kullanım: Gerçek zamanlı uygulamalar (VoIP, video konferans, canlı yayın), DNS sorguları, oyun sunucuları, IoT.

  • Özellikler: Daha hızlı, düşük gecikme, veri kaybı toleransı.


3. Uygulama Katmanı Protokolleri

A. HTTP (Hypertext Transfer Protocol) ve HTTPS (HTTP Secure)

  • HTTP: İstemci-sunucu arasındaki iletişimi sağlayan, durumsuz (stateless), metin tabanlı bir protokoldür. İstek (request) ve yanıt (response) yapısına sahiptir. HTTP/1.1, HTTP/2 ve HTTP/3 (QUIC) sürümleri bulunur.

  • HTTPS: HTTP'nin güvenli versiyonudur. Veriler, TLS/SSL ile şifrelenir.

  • HTTP Metotları: GET (oku), POST (oluştur), PUT (güncelle), DELETE (sil), PATCH (kısmi güncelle), HEAD, OPTIONS.

  • Durum Kodları: 2xx (Başarılı), 4xx (İstemci hatası), 5xx (Sunucu hatası), 3xx (Yönlendirme).

.NET Uygulaması: HttpClient, IHttpClientFactory, HttpRequestMessage, HttpResponseMessage, HttpClientHandler (HTTP/2, HTTP/3 desteği).

B. WebSocket

  • Türü: Tam çift yönlü (full-duplex), kalıcı bağlantı (persistent).

  • Nasıl Çalışır: HTTP başlangıcıyla başlar, ardından TCP üzerinden kalıcı bir bağlantıya "yükseltilir" (upgrade). Sunucu ve istemci birbirine asenkron mesaj gönderebilir.

  • Kullanım: Gerçek zamanlı uygulamalar (canlı sohbet, oyun, finansal veri akışı, bildirimler).

  • .NET Uygulaması: System.Net.WebSockets, ASP.NET Core SignalR (WebSocket üzerinde soyutlama).

C. gRPC (gRPC Remote Procedure Call)

  • Türü: Yüksek performanslı, hafif, RPC (Remote Procedure Call) çerçevesi.

  • Nasıl Çalışır: Protocol Buffers (Protobuf) ile binary serileştirme kullanır. HTTP/2 (ve HTTP/3) üzerinde çalışır.

  • Kullanım: Mikroservis iletişimi, düşük gecikme, yüksek verim gerektiren sistemler.

  • Avantajları: REST'ten daha hızlı, güçlü tip güvenliği, çift yönlü streaming, otomatik istemci/sunucu kod üretimi.

  • .NET Uygulaması: Grpc.Net.Client, Grpc.AspNetCore.

D. DNS (Domain Name System)

  • Görevi: İnsanların okuduğu alan adlarını (example.com) makinelerin anladığı IP adreslerine (93.184.216.34) çevirir.

  • Çalışma Prensibi: Hiyerarşik, dağıtık bir veritabanıdır. Önce önbellek (cache), ardından recursor, root, TLD (Top-Level Domain) ve yetkili (authoritative) DNS sunucuları sorgulanır.


4. Güvenlik Katmanları: TLS/SSL

Ağ üzerinden giden verilerin gizliliğini ve bütünlüğünü sağlamak için TLS (Transport Layer Security) kullanılır.

  • Amaç: Verileri şifreleme, karşılıklı kimlik doğrulama, veri bütünlüğü.

  • Nasıl Çalışır: Asimetrik şifreleme (public/private key) ile güvenli bir tünel kurulur, ardından simetrik şifreleme ile veri aktarımı yapılır.

  • El Sıkışma (Handshake): Client Hello, Server Hello, Certificate Exchange, Key Exchange, Finished.

  • .NET Uygulaması: SslStream, HttpClient (otomatik TLS desteği), X509Certificate.

Önemli Not: 2025 yılı itibarıyla, güvenli iletişim protokollerinin temel taşlarından olan TLS, özellikle Post-Quantum (Kuantum Sonrası) güvenlik ihtiyaçlarına yanıt verecek şekilde evrilmektedir. Yakın gelecekte, hibrit anahtar değişim mekanizmaları ve kuantum güvenli kriptografi standardizasyonu, ağ güvenliğinin yeni normu olacaktır.


5. Yük Dengeleme (Load Balancing)

Yüksek trafik alan sistemlerde, gelen istekleri birden fazla sunucuya dağıtmak için yük dengeleyiciler (load balancer) kullanılır.

  • Amaç: Dağıtık sistemlerde yükü dengelemek, yüksek kullanılabilirlik (HA) sağlamak, hata toleransı oluşturmak.

  • Türleri:

    • DNS Load Balancing: Round-robin ile farklı IP'ler döndürür.

    • Reverse Proxy: NGINX, HAProxy, YARP (.NET). İstekleri backend sunuculara iletir.

    • Client-Side Load Balancing: İstemci, hizmet keşfi (service discovery) ile sunucu listesini alır ve yükü dağıtır (ör. Netflix Ribbon, Resilience4j).

  • Yük Dengeleme Algoritmaları:

    • Round Robin

    • Weighted Round Robin

    • Least Connections

    • Consistent Hashing

.NET Uygulaması: YARP (Yet Another Reverse Proxy) ile reverse proxy ve yük dengeleyici uygulamaları oluşturulabilir.


6. .NET'te Ağ İletişimi İçin Temel Araçlar

Araç Açıklama Kullanım Alanı
HttpClient HTTP istekleri göndermek için temel sınıf. REST API tüketimi, web scraping, harici servis çağrıları.
IHttpClientFactory HttpClient'ı yönetmek, ömür döngüsünü kontrol etmek, Polly ile entegre etmek için. Microservisler, dayanıklı HTTP çağrıları.
WebSocket / ClientWebSocket WebSocket bağlantıları kurmak ve yönetmek için. Gerçek zamanlı iletişim, canlı veri akışları.
Socket Düşük seviyeli TCP/UDP iletişimi için. Özel protokoller, performans kritik uygulamalar.
MailKit SMTP, POP3, IMAP protokolleri için. E-posta gönderme/okuma.
FtpClient (Flurl, SSH.NET) FTP/SFTP iletişimi için. Dosya transferi.
Grpc.Net.Client gRPC istemcileri oluşturmak için. Yüksek performanslı microservis iletişimi.

Sonuç:

Ağ teknolojileri ve protokoller, yazılım dünyasının olmazsa olmazıdır. İster bir web uygulaması, ister bir microservis, isterse bir IoT cihazı geliştiriyor olun, bu protokollerin temel prensiplerini bilmek, doğru aracı seçmenizi ve daha sağlam, ölçeklenebilir sistemler inşa etmenizi sağlar. .NET ekosistemi, TCP/IP'den HTTP/3'e, WebSocket'tan gRPC'ye kadar geniş bir yelpazede güçlü kütüphaneler ve araçlar sunarak geliştiricilerin bu iletişim ihtiyaçlarını verimli bir şekilde karşılamasına olanak tanır.

Tüm yazılar