Uygulama Katmanı ve Ağ İletişimi Temelleri - kapak
Teknoloji#dns#p2p#video akışı#cdn

Uygulama Katmanı ve Ağ İletişimi Temelleri

Bu podcast'te, ağların uygulama katmanındaki temel protokolleri, DNS, P2P, video akışı, CDN'ler ve soket programlamayı inceliyorum.

toprakemredunda7 Nisan 2026 ~17 dk toplam
01

Flash Kartlar

25 kart

Karta tıklayarak çevir. ← → ile gez, ⎵ ile çevir.

1 / 25
Tüm kartları metin olarak gör
  1. 1. Uygulama Katmanı'nın internet mimarisindeki temel rolü nedir?

    Uygulama Katmanı, internetin en üst katmanıdır ve kullanıcıların doğrudan etkileşimde bulunduğu yazılımların ağ üzerinden nasıl çalıştığını belirler. Bu katman, son kullanıcı uygulamalarının ağ hizmetlerine erişmesini sağlar ve kullanıcı deneyimini doğrudan etkileyen protokolleri barındırır. Örneğin, web tarayıcıları veya e-posta istemcileri bu katmanda çalışır.

  2. 2. Alan Adı Sistemi (DNS) ne işe yarar ve temel amacı nedir?

    DNS, alan adlarını (örneğin, google.com) internet üzerindeki sunucuların IP adreslerine (örneğin, 172.217.160.142) çeviren bir sistemdir. Temel amacı, kullanıcıların hatırlaması zor olan IP adresleri yerine kolayca hatırlanabilen alan adlarını kullanarak internet kaynaklarına erişmesini sağlamaktır. Bu sayede, ağdaki cihazlar birbirlerini bulabilir ve iletişim kurabilir.

  3. 3. Yinelemeli DNS sorgusu nasıl çalışır?

    Yinelemeli DNS sorgusunda, sorguyu alan DNS sunucusu doğrudan nihai cevabı vermez. Bunun yerine, isteği yapan istemciye, aradığı bilgiyi bulabileceği başka bir DNS sunucusunun adresini iletir. İstemci daha sonra bu yeni sunucuya sorguyu tekrarlar ve bu süreç nihai IP adresi bulunana kadar devam eder. Bu yöntem, sunucunun yükünü istemciye dağıtır.

  4. 4. Özyinelemeli DNS sorgusu nasıl çalışır?

    Özyinelemeli DNS sorgusunda, sorguyu alan DNS sunucusu, istemci adına tüm çözümleme adımlarını tamamlar. Yani, diğer DNS sunucularıyla kendi başına iletişim kurar ve nihai IP adresini bulduktan sonra bu bilgiyi doğrudan istemciye döndürür. Bu, istemcinin iş yükünü azaltırken, sorguyu alan sunucu üzerinde daha fazla yük oluşturabilir.

  5. 5. Yinelemeli ve özyinelemeli DNS sorguları arasındaki temel fark nedir?

    Temel fark, sorumluluğun kimde olduğudur. Yinelemeli sorguda, DNS sunucusu istemciye 'git şuraya sor' derken, özyinelemeli sorguda DNS sunucusu istemci adına tüm sorgu sürecini tamamlar ve nihai cevabı döndürür. Özyinelemeli sorgular genellikle yerel DNS sunucuları tarafından kullanılırken, yinelemeli sorgular kök ve TLD sunucuları arasında yaygındır.

  6. 6. Eşler arası (P2P) mimarisinin temel özelliği nedir?

    P2P mimarisinin temel özelliği, merkezi bir sunucunun olmamasıdır. Bu modelde, ağdaki her bir uç sistem (eş), hem hizmet talep eden bir istemci hem de hizmet sunan bir sunucu olarak işlev görür. Eşler doğrudan birbirleriyle iletişim kurar ve kaynakları paylaşır. Bu yapı, merkezi bir hata noktasını ortadan kaldırır.

  7. 7. P2P mimarisi kendi kendine ölçeklenebilirliği nasıl sağlar?

    P2P mimarisinde, yeni eşler sisteme katıldıkça, sadece hizmet talep etmekle kalmaz, aynı zamanda kendi kaynaklarını (bant genişliği, depolama vb.) da ağa sunarlar. Bu durum, ağın toplam kapasitesini ve performansını artırır. Dolayısıyla, kullanıcı sayısı arttıkça sistemin genel kapasitesi de doğal olarak artar, bu da kendi kendine ölçeklenebilirlik sağlar.

  8. 8. P2P mimarisinin başlıca dezavantajları nelerdir?

    P2P mimarisinin dezavantajları arasında eşlerin kesintili bağlantıları ve değişen IP adreslerinin yönetimi yer alır. Eşlerin ağdan ayrılması veya IP adreslerinin değişmesi, kaynakların bulunabilirliğini ve ağın istikrarını etkileyebilir. Ayrıca, güvenlik ve içerik denetimi gibi konularda merkezi bir otoritenin olmaması bazı zorluklar yaratabilir.

  9. 9. Dosya dağıtımında P2P mimarisi, istemci-sunucu modeline göre neden daha verimli olabilir?

    P2P mimarisi, dosya dağıtımında daha verimli olabilir çünkü her eş, indirdiği dosyanın parçalarını diğer eşlere de yükleyebilir. Bu, her eşin sisteme katkıda bulunarak toplam yükleme kapasitesini artırması anlamına gelir. İstemci-sunucu modelinde ise tüm yükleme tek bir sunucuya binerken, P2P'de yük dağıtılır ve tıkanıklık riski azalır.

  10. 10. Video akışının internet üzerindeki temel zorlukları nelerdir?

    Video akışının temel zorlukları arasında internet bant genişliğinin büyük bir kısmını tüketmesi, milyarlarca kullanıcıya ulaşma gerekliliği ve farklı cihazlara (telefon, tablet, TV) hizmet verme ihtiyacı bulunur. Ayrıca, ağdaki değişken bant genişliği, paket kayıpları ve gecikmeler nedeniyle kesintisiz oynatma sağlamak da önemli bir zorluktur.

  11. 11. Video akışında görüntü sıkıştırması nasıl yapılır?

    Video akışında görüntü sıkıştırması, görüntülerin uzamsal ve zamansal kodlamasıyla gerçekleştirilir. Uzamsal kodlama, tek bir kare içindeki tekrarlayan bilgileri azaltırken, zamansal kodlama ardışık kareler arasındaki benzerlikleri kullanarak veri miktarını düşürür. Bu sıkıştırma teknikleri, video verisinin boyutunu küçülterek ağ üzerinden daha verimli aktarımını sağlar.

  12. 12. Akışlı videoda kesintisiz oynatma sağlamanın zorlukları nelerdir?

    Akışlı videoda kesintisiz oynatma sağlamak zordur çünkü internet bağlantıları değişken bant genişliğine, paket kayıplarına ve gecikmelere tabidir. Bu ağ koşulları, video verisinin düzenli ve zamanında ulaşmasını engelleyebilir. Sonuç olarak, video donabilir, takılabilir veya kalitesi düşebilir, bu da kullanıcı deneyimini olumsuz etkiler.

  13. 13. Akışlı videoda istemci tarafında neden ara belleğe (buffer) ihtiyaç duyulur?

    İstemci tarafında ara belleğe (buffer) ihtiyaç duyulur çünkü ağdaki değişkenlikler nedeniyle video verisi her zaman sabit bir hızda akmayabilir. Buffer, gelen video verisini geçici olarak depolar ve oynatma hızından daha hızlı veri geldiğinde bir miktar veriyi biriktirir. Bu birikim, ağda kısa süreli kesintiler veya yavaşlamalar olduğunda videonun kesintisiz oynatılmasını sağlar.

  14. 14. İçerik Dağıtım Ağları (CDN'ler) nedir ve temel amacı nedir?

    İçerik Dağıtım Ağları (CDN'ler), içeriğin (video, resim, web sayfaları vb.) birden fazla kopyasını coğrafi olarak dağıtılmış sunucularda depolayan bir altyapıdır. Temel amacı, kullanıcılara içeriği daha hızlı ve güvenilir bir şekilde ulaştırmak, gecikmeyi azaltmak ve bant genişliği kullanımını optimize etmektir. Bu, kullanıcı deneyimini önemli ölçüde iyileştirir.

  15. 15. CDN'ler neden tek bir merkezi sunucuya göre daha avantajlıdır?

    Tek bir merkezi sunucu, tek hata noktası oluşturur ve yüksek trafik durumlarında tıkanıklık nedeniyle ölçeklenemez. CDN'ler ise içeriği birden fazla sunucuya dağıtarak bu sorunları çözer. Kullanıcılara coğrafi olarak daha yakın sunuculardan hizmet vererek gecikmeyi azaltır, yükü dağıtır ve tek bir sunucunun çökmesi durumunda bile hizmetin devamlılığını sağlar.

  16. 16. CDN'ler içeriği kullanıcılara nasıl daha hızlı ulaştırır?

    CDN'ler, içeriğin kopyalarını dünyanın farklı bölgelerindeki sunucularda (edge sunucular) depolar. Bir kullanıcı bir içeriği talep ettiğinde, CDN sistemi kullanıcının coğrafi konumuna en yakın sunucuyu belirler ve içeriği oradan sunar. Bu, verinin kat etmesi gereken mesafeyi kısaltır, ağ gecikmesini (latency) azaltır ve içeriğin daha hızlı yüklenmesini sağlar.

  17. 17. Netflix'in OpenConnect CDN'i ne işe yarar?

    Netflix'in OpenConnect CDN'i, Netflix içeriğini dünya genelindeki internet servis sağlayıcılarının (İSS) ağlarına veya onlara yakın konumlara yerleştirilmiş özel sunucularda depolar. Bu sayede, Netflix kullanıcıları talep ettikleri videoyu doğrudan kendi İSS'lerinin ağından veya çok yakın bir noktadan alabilirler. Bu, gecikmeyi minimuma indirir ve yüksek kaliteli, kesintisiz video akışı deneyimi sunar.

  18. 18. Soket nedir ve bir uygulama sürecindeki görevi nedir?

    Soket, bir uygulama süreci ile uçtan uca taşıma protokolü (TCP veya UDP) arasındaki bir kapı veya arayüz görevi görür. Uygulamaların ağ üzerinden veri gönderip almasını sağlayan bir iletişim bitiş noktasıdır. Soketler aracılığıyla uygulamalar, belirli bir IP adresi ve port numarası üzerinden diğer uygulamalarla bağlantı kurabilir ve veri alışverişi yapabilir.

  19. 19. İki ana soket türü nelerdir?

    İki ana soket türü UDP (User Datagram Protocol) soketleri ve TCP (Transmission Control Protocol) soketleridir. Bu iki tür, farklı iletişim ihtiyaçlarına yönelik olarak tasarlanmıştır. UDP, bağlantısız ve güvenilir olmayan datagram transferi sağlarken, TCP bağlantı odaklı, güvenilir ve sıralı bayt akışı hizmeti sunar.

  20. 20. UDP soketinin temel özellikleri nelerdir?

    UDP soketi, güvenilir olmayan datagramlar için kullanılır. Bağlantısızdır, yani veri göndermeden önce el sıkışma (handshaking) yapmaz. Gönderici, her pakete hedef IP adresini ve port numarasını açıkça ekler. Veriler kaybolabilir, sırasız ulaşabilir veya kopyaları oluşabilir. UDP, hızlı ve düşük gecikmeli iletişim gerektiren uygulamalar için tercih edilir.

  21. 21. UDP'de veri gönderimi öncesi el sıkışma (handshaking) neden yapılmaz?

    UDP'de veri gönderimi öncesi el sıkışma yapılmamasının nedeni, protokolün bağlantısız doğasıdır. El sıkışma, bağlantı kurma ve parametreleri müzakere etme sürecidir. UDP, bu ek adımları atlayarak iletişimi daha hızlı ve daha az overhead ile gerçekleştirmeyi hedefler. Bu durum, veri kaybı veya sırasız teslimat riskini artırsa da, gecikmenin kritik olduğu senaryolarda avantaj sağlar.

  22. 22. UDP'de verilerin kaybolma veya sırasız ulaşma riski neden vardır?

    UDP'de verilerin kaybolma veya sırasız ulaşma riski, protokolün güvenilirlik mekanizmalarından yoksun olmasından kaynaklanır. UDP, paketlerin teslimatını garanti etmez, yeniden iletim yapmaz ve paketlerin doğru sırada ulaşıp ulaşmadığını kontrol etmez. Ağdaki tıkanıklık, yönlendirme hataları veya buffer taşmaları gibi durumlar paket kaybına yol açabilir ve paketler farklı yollardan giderek sırasız ulaşabilir.

  23. 23. TCP soketinin temel özellikleri nelerdir?

    TCP soketi, güvenilir, sıralı bayt akışı tabanlı bir hizmet sunar. Bağlantı odaklıdır, yani veri transferinden önce üçlü el sıkışma ile bir bağlantı kurulur. TCP, kaybolan paketleri yeniden iletir, paketlerin doğru sırada teslim edilmesini sağlar ve akış kontrolü ile tıkanıklık kontrolü mekanizmalarına sahiptir. Bu özellikler, verinin bütünlüğünü ve güvenilirliğini garanti eder.

  24. 24. TCP'de sunucu aynı anda birden fazla istemciyle nasıl iletişim kurar?

    TCP'de sunucu, gelen bağlantı isteklerini karşılamak için bir 'karşılama soketi' (listening socket) oluşturur. Bir istemci bağlantı isteği gönderdiğinde, karşılama soketi bu isteği kabul eder ve o istemci için yeni, ayrı bir soket oluşturur. Bu yeni soket, istemciyle özel bir iletişim kanalı kurar. Bu mekanizma sayesinde, karşılama soketi diğer istemci bağlantı isteklerini dinlemeye devam ederken, sunucu her istemciyle ayrı ayrı iletişim kurabilir.

  25. 25. TCP ve UDP arasındaki temel farklar nelerdir?

    TCP ve UDP arasındaki temel farklar güvenilirlik, bağlantı durumu ve hızdır. TCP bağlantı odaklı, güvenilir ve sıralı veri akışı sağlarken, UDP bağlantısız, güvenilir olmayan ve daha hızlı datagram transferi sunar. TCP, veri bütünlüğünün önemli olduğu uygulamalar (web, e-posta) için uygunken, UDP, gecikmenin kritik olduğu uygulamalar (video akışı, oyunlar) için tercih edilir.

02

Bilgini Test Et

15 soru

Çoktan seçmeli sorularla öğrendiklerini ölç. Cevap + açıklama.

Soru 1 / 15Skor: 0

Uygulama katmanı, internetin hangi seviyesinde yer alır ve temel amacı nedir?

03

Detaylı Özet

7 dk okuma

Tüm konuyu derinlemesine, başlık başlık.

Bu çalışma materyali, bir dersin ses kaydı transkripti ve ek metin kaynaklarından derlenmiştir.


📚 Uygulama Katmanı: Temel Kavramlar ve Ağ İletişimi

Bu çalışma materyali, internetin en üst katmanı olan uygulama katmanını, yani kullanıcıların doğrudan etkileşimde bulunduğu yazılımların ağ üzerinden nasıl çalıştığını detaylandırmaktadır. Alan Adı Sistemi (DNS), eşler arası (P2P) uygulamalar, video akışı ve İçerik Dağıtım Ağları (CDN'ler) gibi kritik konular ile soket programlamanın temel prensipleri incelenecektir.

1. 🌐 Alan Adı Sistemi (DNS)

DNS, alan adlarını (örneğin, google.com) IP adreslerine (örneğin, 172.217.160.142) çeviren dağıtık bir veritabanı sistemidir. Bu çeviri, kullanıcıların IP adreslerini ezberlemek zorunda kalmadan web sitelerine erişmesini sağlar. DNS çözümlemesi iki ana sorgu türüyle gerçekleşir:

1.1. Yinelemeli (Iterated) Sorgu ✅

Bu sorgu türünde, yerel DNS sunucusu bir kök DNS sunucusuna sorgu gönderir. Kök sunucu, istenen alan adının IP adresini bilmiyorsa, bu bilgiyi bulabileceği bir Üst Düzey Alan Adı (TLD) sunucusunun adını yerel DNS sunucusuna iletir. Yerel DNS sunucusu daha sonra TLD sunucusuna sorgu gönderir ve bu süreç, yetkili DNS sunucusu bulunana kadar devam eder. Her adımda, sorguyu yapan sunucu, bir sonraki adımı kendisi atar.

Örnek Akış:

  1. Kullanıcı gaia.cs.umass.edu adresinin IP'sini ister.
  2. Yerel DNS sunucusu (dns.nyu.edu), kök DNS sunucusuna sorar.
  3. Kök DNS sunucusu, .edu TLD sunucusunu işaret eder.
  4. Yerel DNS sunucusu, .edu TLD sunucusuna sorar.
  5. .edu TLD sunucusu, umass.edu yetkili DNS sunucusunu işaret eder.
  6. Yerel DNS sunucusu, dns.cs.umass.edu yetkili DNS sunucusuna sorar.
  7. Yetkili DNS sunucusu, gaia.cs.umass.edu adresinin IP'sini döndürür.
  8. Yerel DNS sunucusu, IP adresini kullanıcıya iletir.

1.2. Özyinelemeli (Recursive) Sorgu ✅

Bu sorgu türünde, yerel DNS sunucusu bir kök DNS sunucusuna sorgu gönderir. Kök sunucu, istenen alan adının IP adresini bilmiyorsa, kendisi TLD sunucusuna sorgu gönderir. TLD sunucusu da yetkili sunucuya sorgu gönderir. Tüm çözümleme adımları, ilk sorguyu alan sunucu tarafından tamamlanır ve nihai IP adresi doğrudan yerel DNS sunucusuna döndürülür. Bu yöntem, hiyerarşinin üst seviyelerindeki sunucular üzerinde daha fazla yük oluşturabilir.

2. 🤝 Eşler Arası (P2P) Mimarileri

P2P mimarilerinde, merkezi bir sunucu bulunmaz. Bunun yerine, ağdaki uç sistemler (eşler) doğrudan birbirleriyle iletişim kurar.

2.1. Özellikler 💡

  • Merkezi Sunucu Yok: Herhangi bir "her zaman açık" sunucuya ihtiyaç duyulmaz.
  • Doğrudan İletişim: Eşler, diğer eşlerden hizmet talep eder ve onlara hizmet sağlar.
  • Kendi Kendine Ölçeklenebilirlik: Yeni eşler sisteme katıldıkça, hem yeni hizmet talepleri hem de yeni hizmet kapasitesi getirirler. Bu, sistemin doğal olarak ölçeklenmesini sağlar.
  • Yönetim Karmaşıklığı: Eşlerin kesintili bağlantıları ve değişen IP adresleri nedeniyle yönetimi karmaşık olabilir.
  • Örnekler: BitTorrent (dosya paylaşımı), Skype (VoIP).

2.2. Dosya Dağıtımında P2P vs. İstemci-Sunucu 📊

Bir dosyanın (boyut F) N istemciye dağıtılması durumunda, P2P mimarisi genellikle istemci-sunucu modelinden daha verimli olabilir.

  • İstemci-Sunucu Modeli:

    • Sunucu, N adet dosya kopyasını sırayla yüklemelidir.
    • Dağıtım süresi: Dc-s > max{NF/us, F/dmin}
      • us: Sunucu yükleme kapasitesi
      • dmin: En düşük istemci indirme kapasitesi
    • Bu süre, N ile doğrusal olarak artar.
  • P2P Modeli:

    • Sunucu en az bir kopyayı yüklemelidir.
    • Toplam yükleme kapasitesi, sunucunun (us) ve tüm eşlerin (Σ ui) yükleme kapasitelerinin toplamıdır.
    • Dağıtım süresi: DP2P > max{F/us, F/dmin, NF/(us + Σ ui)}
    • Bu süre de N ile doğrusal olarak artar, ancak her eşin sisteme katkısı toplam hizmet kapasitesini artırdığı için daha verimli olabilir.

3. 🎬 Video Akışı ve İçerik Dağıtım Ağları (CDN'ler)

Video akışı, internet bant genişliğinin büyük bir kısmını tüketir ve milyarlarca kullanıcıya ulaşma ile farklı cihazlara hizmet verme gibi zorluklar yaratır.

3.1. Video Kodlama 📚

  • Video: Sabit bir hızda gösterilen görüntü dizisidir (örn. 24 görüntü/sn).
  • Dijital Görüntü: Piksellerden oluşan bir dizidir; her piksel bitlerle temsil edilir.
  • Kodlama: Görüntü içindeki ve görüntüler arasındaki fazlalığı kullanarak bit sayısını azaltır.
    • Uzamsal (Spatial) Kodlama: Görüntü içindeki tekrarlayan desenleri sıkıştırır (örn. aynı renkteki N piksel yerine renk değeri ve tekrar sayısı gönderilir).
    • Zamansal (Temporal) Kodlama: Bir sonraki kareyi, önceki kareden farklarını göndererek sıkıştırır.
  • Bit Hızı Türleri:
    • CBR (Constant Bit Rate): Video kodlama hızı sabittir.
    • VBR (Variable Bit Rate): Video kodlama hızı, uzamsal ve zamansal kodlama miktarına göre değişir.

3.2. Depolanmış Video Akışı Zorlukları ⚠️

  • Değişken Bant Genişliği: Sunucudan istemciye bant genişliği, ağ tıkanıklığına göre zamanla değişir.
  • Paket Kaybı ve Gecikme: Tıkanıklık nedeniyle paket kaybı ve gecikme, oynatma kalitesini düşürebilir veya oynatmayı geciktirebilir.
  • Kesintisiz Oynatma Kısıtlaması: İstemci tarafında oynatma zamanlaması orijinal zamanlamayla eşleşmelidir, ancak ağ gecikmeleri değişkendir (jitter). Bu, istemci tarafında bir ara belleğe (buffer) ihtiyaç duyulmasına neden olur.

3.3. Oynatma Ara Belleği (Playout Buffering) 📈

İstemci tarafındaki ara bellek ve oynatma gecikmesi, ağın neden olduğu gecikmeyi ve gecikme dalgalanmasını telafi etmek için kullanılır. Video verileri, oynatılmadan önce bir miktar ara belleğe alınır. Bu, ağdaki kısa süreli dalgalanmaların oynatma kalitesini etkilemesini engeller.

3.4. İçerik Dağıtım Ağları (CDN'ler) 🌍

Milyonlarca videoyu yüz binlerce eşzamanlı kullanıcıya akışla sunma zorluğunu aşmak için CDN'ler kullanılır.

  • Tek Sunucu Çözümü Neden Ölçeklenmez? Tek bir büyük sunucu, tek hata noktası, ağ tıkanıklığı ve uzak istemcilere uzun yollar nedeniyle ölçeklenemez.
  • CDN Çözümü: Videoların birden fazla kopyası, coğrafi olarak dağıtılmış sitelerde (CDN sunucuları) depolanır ve sunulur.
    • Derine İniş (Enter Deep): CDN sunucuları, birçok erişim ağına derinlemesine yerleştirilir (kullanıcılara yakın). Örn: Akamai.
    • Eve Yakınlaşma (Bring Home): Erişim ağlarına yakın POP'larda (Point of Presence) daha az sayıda, daha büyük kümeler kullanılır. Örn: Limelight.
  • Netflix Örneği: Netflix, içeriğinin kopyalarını dünya çapındaki OpenConnect CDN düğümlerinde saklar. Bir abone içerik istediğinde, istemci en yüksek desteklenen hızda içeriği almak için bir manifest dosyası kullanır. Ağ yolu tıkalıysa farklı bir hız veya kopya seçilebilir.

4. 🔌 Soket Programlama

Soket, bir uygulama süreci ile uçtan uca taşıma protokolü arasında bir "kapı" görevi görür. İstemci/sunucu uygulamalarının ağ üzerinden iletişim kurmasını sağlar.

4.1. Soket Nedir? 📚

Soket, bir ağ bağlantısının bir ucunu temsil eden bir yazılım yapısıdır. Uygulama geliştiricisi tarafından kontrol edilir ve işletim sistemi tarafından sağlanan taşıma katmanı protokolleriyle (UDP veya TCP) etkileşime girer.

4.2. UDP Soket Programlama 🚀

UDP (User Datagram Protocol), bağlantısız ve güvenilir olmayan bir taşıma hizmeti sunar.

  • UDP Özellikleri:

    • Bağlantısız: Veri göndermeden önce el sıkışma (handshaking) yapılmaz.
    • Güvenilmez: Gönderilen veriler kaybolabilir veya sırasız ulaşabilir.
    • Adresleme: Gönderici, her pakete hedef IP adresini ve port numarasını açıkça ekler. Alıcı, gönderenin IP adresini ve port numarasını alınan paketten çıkarır.
    • Datagramlar: İstemci ve sunucu süreçleri arasında datagram gruplarının güvenilir olmayan transferini sağlar.
  • İstemci/Sunucu Etkileşimi (UDP):

    1. Sunucu: Bir soket oluşturur ve belirli bir porta bağlar.
    2. İstemci: Bir soket oluşturur.
    3. İstemci: Sunucu IP adresi ve port numarası ile bir datagram oluşturur ve soket üzerinden gönderir.
    4. Sunucu: Soketinden datagramı okur, işler (örn. küçük harfleri büyük harfe çevirir).
    5. Sunucu: İstemcinin adresini ve port numarasını belirterek bir yanıt datagramı gönderir.
    6. İstemci: Soketinden yanıtı okur ve görüntüler.
    7. İstemci: Soketi kapatır.
  • Python UDP İstemci Örneği:

    from socket import *
    serverName = 'hostname' # Sunucu adı veya IP adresi
    serverPort = 12000
    clientSocket = socket(AF_INET, SOCK_DGRAM) # UDP soketi oluştur
    message = input('Input lowercase sentence:')
    clientSocket.sendto(message.encode(), (serverName, serverPort)) # Mesajı sunucuya gönder
    modifiedMessage, serverAddress = clientSocket.recvfrom(2048) # Yanıtı al
    print(modifiedMessage.decode())
    clientSocket.close() # Soketi kapat
    
  • Python UDP Sunucu Örneği:

    from socket import *
    serverPort = 12000
    serverSocket = socket(AF_INET, SOCK_DGRAM) # UDP soketi oluştur
    serverSocket.bind(('', serverPort)) # Soketi yerel porta bağla
    print('The server is ready to receive')
    while True: # Sonsuz döngüde dinle
        message, clientAddress = serverSocket.recvfrom(2048) # İstemciden mesajı al
        modifiedMessage = message.decode().upper() # Mesajı büyük harfe çevir
        serverSocket.sendto(modifiedMessage.encode(), clientAddress) # Yanıtı istemciye gönder
    

4.3. TCP Soket Programlama 🔗

TCP (Transmission Control Protocol), bağlantı tabanlı, güvenilir ve sıralı bayt akışı hizmeti sunar.

  • TCP Özellikleri:

    • Bağlantı Tabanlı: Veri göndermeden önce istemci ve sunucu arasında bir bağlantı kurulur (el sıkışma).
    • Güvenilir: Veri kaybı veya sırasız ulaşma durumları taşıma katmanı tarafından ele alınır.
    • Sıralı Bayt Akışı: Veriler, gönderildiği sırayla alıcıya ulaşır.
    • Çoklu İstemci Desteği: Sunucu, her istemci için yeni bir soket oluşturarak aynı anda birden fazla istemciyle iletişim kurabilir.
  • İstemci/Sunucu Etkileşimi (TCP):

    1. Sunucu: Gelen istekler için bir "karşılama soketi" oluşturur ve belirli bir porta bağlar.
    2. Sunucu: Gelen bağlantı isteklerini dinlemeye başlar.
    3. İstemci: Bir TCP soketi oluşturur ve sunucunun IP adresi ile port numarasını belirterek sunucuya bağlanır. Bu, TCP bağlantısını kurar.
    4. Sunucu: Bir bağlantı isteği aldığında, o istemciyle iletişim kurmak için yeni bir "bağlantı soketi" oluşturur.
    5. İstemci: Bağlantı soketi üzerinden sunucuya veri gönderir.
    6. Sunucu: Bağlantı soketinden veriyi okur, işler ve yanıt gönderir.
    7. İstemci: Yanıtı okur.
    8. İstemci ve Sunucu: İletişim bittiğinde ilgili soketleri kapatır.
  • Python TCP İstemci Örneği:

    from socket import *
    serverName = 'servername' # Sunucu adı veya IP adresi
    serverPort = 12000
    clientSocket = socket(AF_INET, SOCK_STREAM) # TCP soketi oluştur
    clientSocket.connect((serverName,serverPort)) # Sunucuya bağlan
    sentence = input('Input lowercase sentence:')
    clientSocket.send(sentence.encode()) # Mesajı gönder
    modifiedSentence = clientSocket.recv(1024) # Yanıtı al
    print ('From Server:', modifiedSentence.decode())
    clientSocket.close() # Soketi kapat
    
  • Python TCP Sunucu Örneği:

    from socket import *
    serverPort = 12000
    serverSocket = socket(AF_INET,SOCK_STREAM) # TCP karşılama soketi oluştur
    serverSocket.bind(('',serverPort)) # Soketi yerel porta bağla
    serverSocket.listen(1) # Gelen bağlantıları dinle (1 bekleyen bağlantı)
    print('The server is ready to receive')
    while True: # Sonsuz döngüde dinle
        connectionSocket, addr = serverSocket.accept() # Bağlantı isteğini kabul et, yeni soket oluştur
        sentence = connectionSocket.recv(1024).decode() # İstemciden veriyi al
        capitalizedSentence = sentence.upper() # Veriyi büyük harfe çevir
        connectionSocket.send(capitalizedSentence.encode()) # Yanıtı istemciye gönder
        connectionSocket.close() # İstemci bağlantısını kapat
    

Kendi çalışma materyalini oluştur

PDF, YouTube videosu veya herhangi bir konuyu dakikalar içinde podcast, özet, flash kart ve quiz'e dönüştür. 1.000.000+ kullanıcı tercih ediyor.

Sıradaki Konular

Tümünü keşfet
Uygulama Katmanı: Ağ Uygulamalarının Temelleri

Uygulama Katmanı: Ağ Uygulamalarının Temelleri

Bu podcast'te, bilgisayar ağlarının uygulama katmanını, temel prensiplerini, istemci-sunucu ve eşten eşe mimarilerini, HTTP, E-posta ve DNS gibi önemli protokolleri detaylıca inceliyorum.

Özet 25 15
Taşıma Katmanı: Temel İlkeler ve Protokoller

Taşıma Katmanı: Temel İlkeler ve Protokoller

Bu podcast'te, bilgisayar ağlarındaki taşıma katmanının temel prensiplerini, hizmetlerini, TCP ve UDP protokollerini ve çoklama/ters çoklama kavramlarını detaylıca inceliyorum.

Özet 25 15
Veri Yolu Monitörü ve Görev Bilgisayarı

Veri Yolu Monitörü ve Görev Bilgisayarı

Bu podcast'te, veri iletişiminin güvenilirliğini sağlayan Veri Yolu Monitörü'nün işlevlerini ve bu kritik bileşenin, Operasyonel Uçuş Programı ile birlikte Görev Bilgisayarı içindeki rolünü detaylıca inceliyorum.

Özet Görsel
Bilgisayar Bilimlerinin Temel Kavramları

Bilgisayar Bilimlerinin Temel Kavramları

Bu içerik algoritmalar, yazılım türleri, dosya ve klasör yönetimi ile işletim sisteminin işlevleri gibi bilgisayar bilimlerinin temel kavramlarını akademik bir yaklaşımla incelemektedir.

6 dk 25 15
Swift Kontrol Akış Yapıları ve Yapay Zeka Destekli iOS Uygulamaları

Swift Kontrol Akış Yapıları ve Yapay Zeka Destekli iOS Uygulamaları

Bu içerik, yapay zeka destekli mobil uygulama geliştirmede Swift'in if/else, switch ve döngü gibi kontrol akış yapılarını detaylıca ele almaktadır. Mantıksal karar alma ve veri işleme süreçleri incelenmiştir.

9 dk Özet 25 15 Görsel
BlackArch Linux ile Ağ Saldırıları ve Güvenlik Analizi

BlackArch Linux ile Ağ Saldırıları ve Güvenlik Analizi

Bu içerik, BlackArch Linux kullanarak gerçekleştirilen ağ içi ve ağ dışı saldırı tekniklerini, temel protokolleri ve ilgili araçları akademik bir yaklaşımla incelemektedir.

6 dk Özet 25 15 Görsel
İletişim Teknolojilerinin Gelişim Süreci ve İnternet

İletişim Teknolojilerinin Gelişim Süreci ve İnternet

Bu özet, iletişim teknolojilerinin tarihsel gelişimini, bilgisayar ağlarının ve internetin ortaya çıkışını, günümüzdeki etkilerini ve bilgi çağının getirdiği dönüşümleri akademik bir perspektifle incelemektedir.

7 dk 25 15
R-L Yükleri ve Doğrultucu Devre Analizleri

R-L Yükleri ve Doğrultucu Devre Analizleri

Bu özet, R-L yüklerinin Kirchhoff Voltaj Kanunu ile analizini, akım tepkisi bileşenlerini ve R-L-DC kaynak, anti-paralel diyot, kapasitör filtreli ve kontrollü yarım dalga doğrultucu devrelerini incelemektedir.

6 dk Özet 25 15 Görsel