TCP ve UDP

İki tür İnternet Protokolü (IP) trafiği vardır. Onlar TCP veya Geçiş kontrol protokolü ve UDP veya Kullanıcı Datagram Protokolü. TCP bağlantıya yöneliktir - bağlantı kurulduktan sonra veriler çift yönlü olarak gönderilebilir. UDP daha basit, bağlantısız bir İnternet protokolüdür. UDP kullanılarak parçalar halinde çoklu mesajlar paket olarak gönderilir.

Karşılaştırma Tablosu

Farklılıklar - Benzerlikler - TCP ve UDP karşılaştırma tablosu
TCPUDP
Kısaltması Geçiş kontrol protokolü Kullanıcı Datagram Protokolü veya Evrensel Datagram Protokolü
Bağ İletim Kontrol Protokolü bağlantı odaklı bir protokoldür. Kullanıcı Datagram Protokolü bağlantısız bir protokoldür.
fonksiyon Bir mesaj olarak bir bilgisayardan diğerine internette yol alır. Bu bağlantı tabanlı. UDP ayrıca mesaj taşıma veya aktarmada kullanılan bir protokoldür. Bu bağlantıya dayalı değildir, bu da bir programın diğerine paket yükü gönderebileceği ve ilişkinin sonu olacağı anlamına gelir.
kullanım TCP, yüksek güvenilirlik gerektiren uygulamalar için uygundur ve iletim süresi nispeten daha az kritiktir. UDP, oyunlar gibi hızlı ve verimli iletim gerektiren uygulamalar için uygundur. UDP'nin vatansız yapısı, çok sayıda istemciden gelen küçük sorguları yanıtlayan sunucular için de yararlıdır.
Diğer protokoller tarafından kullanım HTTP, HTTPs, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Veri paketlerinin siparişi TCP, veri paketlerini belirtilen sırada yeniden düzenler. Tüm paketler birbirinden bağımsız olduğu için UDP'nin doğal bir sırası yoktur. Sipariş gerekiyorsa, uygulama katmanı tarafından yönetilmelidir.
Aktarım hızı TCP hızı UDP'den daha yavaş. Hata kurtarmaya çalışmadığından UDP daha hızlı. "En iyi çaba" protokolüdür.
Güvenilirlik Aktarılan verilerin bozulmadan kaldığı ve gönderildiği sırayla ulaşacağına dair kesin bir garanti vardır.. Gönderilen mesajların veya paketlerin hiçbir şekilde ulaşacağının garantisi yoktur.
Başlık Boyutu TCP başlık boyutu 20 bayt UDP Başlık boyutu 8 bayt.
Ortak Başlık Alanları Kaynak bağlantı noktası, Hedef bağlantı noktası, Çek Toplamı Kaynak bağlantı noktası, Hedef bağlantı noktası, Çek Toplamı
Veri akışı Veriler bayt akışı olarak okunur, sinyal mesajı (segment) sınırlarına ayırt edici bir gösterge iletilmez. Paketler ayrı ayrı gönderilir ve yalnızca gelmeleri durumunda bütünlük açısından kontrol edilir. Paketlerin alındıktan sonra onurlandırılan belirli sınırları vardır, yani alıcı soketindeki bir okuma işlemi orijinal olarak gönderildiği gibi tüm bir mesajı verecektir..
Ağırlık TCP ağırdır. TCP, herhangi bir kullanıcı verisi gönderilmeden önce bir soket bağlantısı kurmak için üç paket gerektirir. TCP güvenilirlik ve tıkanıklık denetimini gerçekleştirir. UDP hafiftir. İleti sıralaması, izleme bağlantısı vb. Yoktur. IP üzerinde tasarlanmış küçük bir taşıma katmanıdır..
Veri Akışı Kontrolü TCP Akış Denetimi yapar. TCP, herhangi bir kullanıcı verisi gönderilmeden önce bir soket bağlantısı kurmak için üç paket gerektirir. TCP güvenilirlik ve tıkanıklık denetimini gerçekleştirir. UDP'nin akış kontrolü için bir seçeneği yoktur
Hata kontrolü TCP hata denetimi ve hata giderme yapar. Hatalı paketler kaynaktan hedefe iletilir. UDP hata denetimi yapar, ancak hatalı paketleri atar. Hata kurtarma denenmiyor.
Alanlar 1. Sıra Numarası, 2. AcK numarası, 3. Veri ofseti, 4. Ayrılmış, 5. Kontrol biti, 6. Pencere, 7. Acil İşaretçi 8. Seçenekler, 9. Dolgu, 10. Kontrol Toplamı, 11. Kaynak bağlantı noktası, 12. Varış noktası 1. Uzunluk, 2. Kaynak bağlantı noktası, 3. Hedef bağlantı noktası, 4. Toplamı Kontrol Et
alındı Teşekkür segmentleri Teşekkür Yok
Tokalaşma SYN, SYN-ACK, ACK El sıkışma yok (bağlantısız protokol)

İçindekiler: TCP ve UDP

  • 1 Veri Aktarım Özelliklerindeki Farklar
    • 1.1 Güvenilirlik
    • 1.2 Sipariş
    • 1.3 Bağlantı
    • 1.4 Transfer yöntemi
    • 1.5 Hata Tespiti
  • 2 TCP ve UDP nasıl çalışır?
  • 3 Farklı TCP ve UDP Uygulaması
    • 3.1 Oyun Sunucuları için TCP ve UDP
  • 4 Kaynakça

Veri Aktarımı Özelliklerindeki Farklılıklar

TCP bir bayt akışının kullanıcıdan sunucuya veya tam tersi şekilde güvenilir ve düzenli bir şekilde gönderilmesini sağlar. UDP uçtan uca bağlantılara adanmamış ve iletişim alıcının hazır olup olmadığını kontrol etmiyor.

Güvenilirlik

TCP parçaların kaybolması durumunda mesaj onayını ve yeniden iletimini yönettiği için daha güvenilirdir. Böylece kesinlikle eksik veri yoktur. UDP onay, zaman aşımı ve yeniden iletim kavramları mevcut olmadığından iletişimin alıcıya ulaşmasını sağlamaz.

Sipariş

TCP iletimler bir sırayla gönderilir ve aynı sırayla alınır. Veri segmentlerinin yanlış sırada gelmesi durumunda TCP uygulamayı yeniden sıralar ve sunar. Bu durumuda UDP, gönderilen mesaj dizisi, alıcı uygulamaya ulaştığında korunmayabilir. Mesajın alınacağı sırayı tahmin etmenin kesinlikle bir yolu yoktur.

Bağ

TCP soket bağlantısı için üç paket gerektiren ağır ağırlık bağlantısıdır ve tıkanıklık kontrolü ve güvenilirliği sağlar. UDP IP üzerinde tasarlanmış hafif bir taşıma katmanıdır. İzleme bağlantısı veya mesaj sırası yok.

Transfer yöntemi

TCP verileri bayt akışı olarak okur ve mesaj bölüm sınırlarına iletilir. UDP mesajlar ayrı ayrı gönderilen paketlerdir ve varışta bütünlükleri kontrol edilir. Veri akışının hiçbiri yokken, paketler sınırları tanımladı.

Hata Tespiti

UDP "en iyi çaba" temelinde çalışır. Protokol sağlama toplamı yoluyla hata algılamayı destekler, ancak bir hata algılandığında paket atılır. Bu hatadan kurtulmak için paketin yeniden aktarılması denenmez. Bunun nedeni, UDP'nin genellikle oyun veya ses iletimi gibi zamana duyarlı uygulamalar için olmasıdır. Yeniden iletilen paket alındığı zaman, hiçbir faydası olmayacağı için hatadan kurtarma anlamsız olacaktır..

TCP hem hata algılama hem de hata kurtarma kullanır. Hatalar sağlama toplamı yoluyla algılanır ve bir paket hatalıysa, gönderen tarafından yeniden iletimi tetikleyen alıcı tarafından onaylanmaz. Bu çalışma mekanizmasına Yeniden İletimle Pozitif Onay (PAR) denir.

TCP ve UDP nasıl çalışır?

TCP bağlantısı, bir bağlantıyı başlatma ve onaylama işlemi olan üç yönlü bir el sıkışma ile kurulur. Bağlantı kurulduktan sonra veri aktarımı başlayabilir. İletimden sonra, kurulan tüm sanal devrelerin kapatılmasıyla bağlantı kesilir.

UDP, güvenilirliği, siparişi veya veri bütünlüğünü garanti etmek için örtülü el sıkışma diyalogları olmayan basit bir iletim modeli kullanır. Bu nedenle, UDP güvenilir olmayan bir hizmet sağlar ve datagramlar sipariş dışı kalabilir, çoğaltılabilir veya bildirimde bulunulmadan kaybolabilir. UDP, hata kontrolü ve düzeltmenin gerekli olmadığını veya uygulamada gerçekleştirildiğini varsayar ve bu tür işlemlerin ağ arabirimi düzeyinde ek yükünü önler. TCP'den farklı olarak UDP, paket yayınları (yerel ağdaki herkese gönderme) ve çok noktaya yayın (tüm abonelere gönderme) ile uyumludur.

TCP ve UDP'nin Farklı Uygulamaları

Web'de gezinme, e-posta ve dosya aktarımı, TCP'yi kullanan yaygın uygulamalardır. TCP, segment boyutunu, veri değişim hızını, akış kontrolünü ve ağ tıkanıklığını kontrol etmek için kullanılır. Ağ arayüz düzeyinde hata düzeltme olanaklarının gerekli olduğu yerlerde TCP tercih edilir. UDP büyük ölçüde zamana duyarlı uygulamalar ve çok sayıda istemciden gelen küçük sorguları yanıtlayan sunucular tarafından kullanılır. UDP, bir ağdaki herkese gönderme ve tüm abonelere gönderme için çoklu yayın gönderme ile uyumludur. UDP, Alan Adı Sistemi, IP Üzerinden Ses, Önemsiz Dosya Aktarım Protokolü ve çevrimiçi oyunlarda yaygın olarak kullanılır.

Oyun Sunucuları için TCP ve UDP

Çok oyunculu çevrimiçi (MMO) oyunlar için, geliştiriciler genellikle UDP veya TCP kalıcı bağlantıları kullanma arasında mimari bir seçim yapmak zorundadır. TCP'nin avantajları, kalıcı bağlantılar, güvenilirlik ve isteğe bağlı boyutlardaki paketleri kullanabilmektir. Bu senaryoda TCP ile ilgili en büyük sorun, paket kaybını bant genişliği sınırlamalarının bir işareti olarak gören ve paketlerin gönderilmesini otomatik olarak kısıtlayan tıkanıklık kontrol algoritmasıdır. 3G veya Wi-Fi ağlarında, bu önemli bir gecikmeye neden olabilir.

Deneyimli geliştirici Christoffer Lernö, artıları ve eksileri tarttı ve oyununuz için TCP veya UDP kullanılıp kullanılmayacağını seçmek için aşağıdaki kriterleri önerdi:

  • Zaman zaman gecikme olması uygun olduğunda, istemci tarafından başlatılan vatansız sorgular yapmak için TCP üzerinden HTTP kullanın.
  • Hem istemci hem de sunucu bağımsız olarak paket gönderirse, ancak ara sıra bir gecikme tamamsa (örneğin Çevrimiçi Poker, birçok MMO) kalıcı düz TCP yuvaları kullanın.
  • Hem istemci hem de sunucu bağımsız olarak paket gönderebilirse ve ara sıra gecikme olmazsa (örn. Çoğu çok oyunculu aksiyon oyunu, bazı MMO'lar) UDP kullanın.

Referanslar

  • Wikipedia: İletim Kontrol Protokolü
  • Wikipedia: Kullanıcı Datagram Protokolü
  • Oyun sunucuları için UDP ve TCP
  • İletim Kontrol Protokolü