İ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.
TCP | UDP | |
---|---|---|
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) |
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.
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.
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.
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.
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ı.
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 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.
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.
Ç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: