TCP vs UDP: Güvenilirliği ve verimlilik tartışmasını kötüleştirmek

Bugün, TCP'ye odaklanarak başlayacağız. Katmanlama bölümünün başlarında önemli bir noktadan bahsettik. Ağ katmanında ve aşağıda, daha çok ana bilgisayar bağlantıları ile ilgilidir, bu da bilgisayarınızın kendisine bağlanmak için başka bir bilgisayarın nerede olduğunu bilmesi gerektiği anlamına gelir. Bununla birlikte, bir ağdaki iletişim, iç içe iletişimden ziyade sık sık iletişimdir. Bu nedenle, TCP protokolü bağlantı noktası kavramını tanıtmaktadır. Bir bağlantı noktası, farklı ana bilgisayarlarda çalışan uygulama süreçleri arasında doğrudan iletişim sağlayan yalnızca bir işlem tarafından işgal edilebilir.

Taşıma katmanının görevi, farklı ana bilgisayarlarda çalışan uygulama süreçleri arasında doğrudan iletişim hizmetlerinin nasıl sağlanacağıdır, bu nedenle uçtan uca protokol olarak da bilinir. Taşıma katmanı, ağın temel ayrıntılarını gizler ve uygulama işleminin iki taşıma katmanı varlığı arasında mantıksal bir uçtan uca iletişim kanalı varmış gibi görmesini sağlar.

TCP iletim kontrol protokolünü temsil eder ve bağlantı odaklı bir protokol olarak bilinir. Bu, bir uygulamanın diğerine veri göndermeye başlamadan önce, iki işlemin bir el sıkışma yapması gerektiği anlamına gelir. El sıkışma, güvenilir iletim ve verilerin düzenli olarak alınmasını sağlayan mantıksal olarak bağlantılı bir işlemdir. El sıkışma sırasında, bir dizi kontrol paketi alışverişi yaparak ve başarılı veri iletimini sağlamak için bazı parametreler ve kurallar üzerinde anlaşarak kaynak ve hedef ana bilgisayarlar arasında bir bağlantı kurulur.

TCP nedir? (MyLowing'sAğ muslukVeAğ Paketi KomisyoncusuHem TCP hem de UDP paketlerini işleyebilir)
TCP (Şanzıman Kontrol Protokolü), bağlantı odaklı, güvenilir, bayt akışı tabanlı taşıma katmanı iletişim protokolüdür.

Bağlantı odaklı: Bağlantı odaklı TCP iletişiminin bire bir, yani UDP'nin aksine, aynı anda birden fazla ana bilgisayara mesaj gönderebilen UDP'nin aksine, bire bir iletişim sağlanamayacağı anlamına gelir.
Güvenilir: TCP'nin güvenilirliği, şebeke bağlantısındaki değişikliklerden bağımsız olarak paketlerin alıcıya güvenilir bir şekilde teslim edilmesini sağlar, bu da TCP'nin protokol paket formatını UDP'den daha karmaşık hale getirir.
Bayt akışı tabanlı: TCP'nin bayt akışı tabanlı doğası, herhangi bir boyuttaki mesajların iletilmesine izin verir ve mesaj siparişi: Önceki mesaj tam olarak alınmamış olsa bile ve sonraki baytlar alınmış olsa bile, TCP bunları işleme için uygulama katmanına teslim etmeyecek ve yinelenen paketleri otomatik olarak bırakacaktır.
Ana Bilgisayar A ve Ana Bilgisayar B bir bağlantı kurduktan sonra, uygulamanın yalnızca veri göndermek ve almak için sanal iletişim hattını kullanması ve böylece veri iletimini sağlamak gerekir. TCP protokolü, bağlantı kuruluşu, bağlantısı ve tutma gibi görevleri kontrol etmekten sorumludur. Burada sanal çizginin sadece bir bağlantı kurmak için anlamına geldiğine dikkat edilmelidir, TCP protokol bağlantısı yalnızca iki tarafın veri iletimini başlatabileceğini ve verilerin güvenilirliğini sağlamak için olduğunu gösterir. Yönlendirme ve taşıma düğümleri ağ cihazları tarafından işlenir; TCP protokolünün kendisi bu detaylarla ilgili değildir.

TCP bağlantısı tam çift yönlü bir hizmettir, yani A ve ana bilgisayar B'nin bir TCP bağlantısında her iki yönde veri aktarabileceği anlamına gelir. Yani, veriler çift yönlü bir akışta ana bilgisayar A ve ana bilgisayar B arasında aktarılabilir.

TCP, bağlantının gönderme arabelleğinde verileri geçici olarak saklar. Bu gönderme tamponu, üç yönlü el sıkışma sırasında kurulan önbelleklerden biridir. Daha sonra TCP, Gönderme önbelleğindeki verileri, hedef ana bilgisayarın alma önbelleğine uygun zamanda gönderecektir. Uygulamada, her akran burada gösterildiği gibi bir gönderme önbelleği ve bir alma önbelleği olacaktır:

TCP-UDP

Gönderme arabelleği, gönderilecek verileri geçici olarak saklamak için kullanılan Gönderen tarafındaki TCP uygulaması ile tutulan bir bellek alanıdır. Bağlantı kurmak için üç yollu el sıkışma yapıldığında, Gönderme önbelleği ayarlanır ve veri depolamak için kullanılır. Gönderme arabelleği, ağ tıkanıklığına ve alıcıdan gelen geri bildirimlere göre dinamik olarak ayarlanır.

Bir alma arabelleği, alınan verileri geçici olarak saklamak için kullanılan alıcı taraftaki TCP uygulaması ile tutulan bir bellek alanıdır. TCP, alınan verileri alma önbelleğinde saklar ve üst uygulamanın okumasını bekler.

Güvenli veri iletimini ve ağ kararlılığını sağlamak için TCP, önbellek dolduğunda, TCP'nin tıkanıklık kontrolü, akış kontrolü vb. Gibi bazı stratejileri benimseyebileceğini unutmayın.

Bilgisayar ağlarında, ana bilgisayarlar arasındaki veri iletimi segmentler aracılığıyla gerçekleştirilir. Peki paket segmenti nedir?

TCP, gelen akışı parçalara ayırarak ve her bir parçaya TCP başlıkları ekleyerek bir TCP segmenti veya paket segmenti oluşturur. Her segment sadece sınırlı bir süre için iletilebilir ve maksimum segment boyutunu (MSS) aşamaz. Aşağı doğru, bir paket segmenti bağlantı katmanından geçer. Bağlantı katmanında, veri bağlantı katmanından geçebilen maksimum paket boyutu olan maksimum iletim ünitesi (MTU) vardır. Maksimum iletim ünitesi genellikle iletişim arayüzü ile ilgilidir.

Peki MSS ve MTU arasındaki fark nedir?

Bilgisayar ağlarında, hiyerarşik mimari çok önemlidir, çünkü farklı seviyeler arasındaki farkları dikkate alır. Her katmanın farklı bir adı vardır; Aktarım katmanında verilere segment denir ve ağ katmanında verilere IP paketi denir. Bu nedenle, maksimum iletim ünitesi (MTU), ağ katmanı tarafından iletilebilen maksimum IP paket boyutu olarak düşünülebilirken, maksimum segment boyutu (MSS), bir seferde bir TCP paketi tarafından iletilebilen maksimum veri miktarını ifade eden bir taşıma katmanı kavramıdır.

Maksimum segment boyutunun (MSS) maksimum iletim ünitesinden (MTU) daha büyük olduğunda, IP parçalanması ağ katmanında gerçekleştirileceğini ve TCP'nin daha büyük verileri MTU boyutuna uygun segmentlere ayırmayacağını unutmayın. Ağ katmanında IP katmanına adanmış bir bölüm olacaktır.

TCP Paket Segment Yapısı
TCP başlıklarının biçimini ve içeriğini keşfedelim.

TCP segmenti

Dizi numarası: TCP bağlantısı kurulduğunda bağlantı başlangıç ​​değeri olarak belirlendiğinde bilgisayar tarafından oluşturulan rastgele bir sayı ve sekans numarası SYN paketinden alıcıya gönderilir. Veri iletimi sırasında, gönderen sırayı gönderen veri miktarına göre artırır. Alıcı, alınan dizi numarasına göre verilerin sırasını değerlendirir. Veriler düzensiz bulunursa, alıcı verilerin sırasını sağlamak için verileri yeniden sıralayacaktır.

Onay numarası: Bu, TCP'de verilerin alınmasını kabul etmek için kullanılan bir dizi numarasıdır. Gönderenin almayı beklediği bir sonraki verilerin sıra numarasını gösterir. Bir TCP bağlantısında, alıcı, alınan veri paketi segmentinin sıra numarasına göre hangi verilerin başarıyla alındığını belirler. Alıcı verileri başarıyla aldığında, gönderene bir ACK paketi gönderir, bu da onay onay numarasını içerir. ACK paketini aldıktan sonra, gönderen yanıt numarasını kabul etmeden önce verilerin başarıyla alındığını doğrulayabilir.

Bir TCP segmentinin kontrol bitleri aşağıdakileri içerir:

ACK biti: Bu bit 1 olduğunda, onaylama yanıt alanının geçerli olduğu anlamına gelir. TCP, bağlantı kurulduğunda SYN paketleri dışında bu bitin 1 olarak ayarlanması gerektiğini belirtir.
İlk bit: Bu bit 1 olduğunda, TCP bağlantısında bir istisna olduğunu ve bağlantının bağlantısı kesilmeye zorlanması gerektiğini gösterir.
Syn Bit: Bu bit 1 olarak ayarlandığında, bağlantının belirleneceği ve sıra numarasının başlangıç ​​değerinin Sekans Numarası alanında ayarlandığı anlamına gelir.
Yüzgeç biti: Bu bit 1 olduğunda, gelecekte daha fazla veri gönderilmeyeceği ve bağlantı istenildiği anlamına gelir.
TCP'nin çeşitli fonksiyonları ve özellikleri TCP paket segmentlerinin yapısı ile somutlaşır.

UDP nedir? (MyLinking'sAğ muslukVeAğ Paketi Komisyoncusuhem TCP hem de UDP paketlerini işleyebilir)
Kullanıcı Datagram Protokolü (UDP) bağlantısız bir iletişim protokolüdür. TCP ile karşılaştırıldığında, UDP karmaşık kontrol mekanizmaları sağlamaz. UDP protokolü, uygulamaların bağlantı kurmadan doğrudan kapsüllenmiş IP paketleri göndermesine izin verir. Geliştirici TCP yerine UDP kullanmayı seçtiğinde, uygulama doğrudan IP ile iletişim kurar.

UDP protokolünün tam adı kullanıcı datagram protokolüdür ve başlığı çok özlü sadece sekiz bayttır (64 bit). UDP başlığının biçimi aşağıdaki gibidir:

UDP segmenti

Hedef ve kaynak bağlantı noktaları: Temel amaçları, hangi işlemin UDP'nin paket göndermesi gerektiğini belirtmektir.
Paket boyutu: Paket boyutu alanı, UDP başlığının boyutunu ve verilerin boyutunu tutar
Sağlama toplamı: UDP başlıklarının ve verilerin güvenilir bir şekilde verilmesini sağlamak için tasarlanmış, sağlama toplamının rolü, verilerin bütünlüğünü sağlamak için bir UDP paketinin iletimi sırasında bir hata veya yolsuzluk meydana gelip gelmediğini tespit etmektir.

MyLinking'in TCP ve UDP arasındaki farklılıklarAğ muslukVeAğ Paketi KomisyoncusuHem TCP hem de UDP paketlerini işleyebilir
TCP ve UDP aşağıdaki yönlerde farklıdır:

TCP vs UDP

Bağlantı: TCP, veriler aktarılmadan önce bir bağlantının kurulmasını gerektiren bağlantı odaklı bir taşıma protokolüdür. UDP ise bağlantı gerektirmez ve hemen veri aktarabilir.

Hizmet nesnesi: TCP bire bir iki noktalı bir hizmettir, yani bir bağlantının birbirleriyle iletişim kurmak için yalnızca iki uç noktası vardır. Bununla birlikte, UDP aynı anda birden fazla ana bilgisayarla iletişim kurabilen bire bir, bire çok ve çok sayıda etkileşimli iletişimi destekler.

Güvenilirlik: TCP, verilerin hatasız, kayıpsız, çoğaltılmaması ve talep üzerine gelmesini sağlayarak verilerin güvenilir bir şekilde sunulması hizmetini sağlar. UDP ise en iyi çabayı gösteriyor ve güvenilir teslimatı garanti etmiyor. UDP, iletim sırasında veri kaybı ve diğer durumlardan muzdarip olabilir.

Tıkanıklık kontrolü, akış kontrolü: TCP, veri iletiminin güvenliğini ve stabilitesini sağlamak için veri iletim hızını ağ koşullarına göre ayarlayabilen tıkanıklık kontrol ve akış kontrol mekanizmalarına sahiptir. UDP'nin tıkanıklık kontrolü ve akış kontrol mekanizmaları yoktur, ağ çok tıkanmış olsa bile, UDP gönderme oranında ayarlamalar yapmaz.

Başlık ek yükü: TCP, opsiyon alanları kullanıldığında artar, tipik olarak 20 bayt, uzun bir başlık uzunluğuna sahiptir. Öte yandan UDP, sadece 8 baytlık sabit bir başlığa sahiptir, bu nedenle UDP'nin daha düşük bir başlık yükü vardır.

TCP vs UDP

TCP ve UDP uygulama senaryoları:
TCP ve UDP iki farklı taşıma katmanı protokolüdür ve uygulama senaryolarında bazı farklılıklar vardır.

TCP bağlantı odaklı bir protokol olduğundan, öncelikle güvenilir veri sunumunun gerekli olduğu senaryolarda kullanılır. Bazı yaygın kullanım durumları şunları içerir:

FTP Dosya Aktarımı: TCP, aktarım sırasında dosyaların kaybolmamasını ve bozulmamasını sağlayabilir.
HTTP/HTTPS: TCP, web içeriğinin bütünlüğünü ve doğruluğunu sağlar.
UDP bağlantısız bir protokol olduğundan, güvenilirlik garantisi sağlamaz, ancak verimlilik ve gerçek zamanlı özelliklere sahiptir. UDP aşağıdaki senaryolar için uygundur:

DNS (Alan Adı Sistemi) gibi düşük paket trafiği: DNS sorguları genellikle kısa paketlerdir ve UDP bunları daha hızlı tamamlayabilir.
Video ve ses gibi multimedya iletişimi: Yüksek gerçek zamanlı gereksinimlere sahip multimedya iletimi için UDP, verilerin zamanında iletilebilmesini sağlamak için daha düşük gecikme sağlayabilir.
Yayın iletişimi: UDP, bire çok ve çok sayıda iletişimi destekler ve yayın mesajlarının iletimi için kullanılabilir.

Özet
Bugün TCP'yi öğrendik. TCP, bağlantı odaklı, güvenilir, bayt akışı tabanlı taşıma katmanı iletişim protokolüdür. Bağlantı, el sıkışma ve onay oluşturarak güvenilir iletim ve verilerin düzenli olarak alınmasını sağlar. TCP protokolü, süreçler arasındaki iletişimi gerçekleştirmek için bağlantı noktalarını kullanır ve farklı ana bilgisayarlarda çalışan uygulama süreçleri için doğrudan iletişim hizmetleri sağlar. TCP bağlantıları, eşzamanlı çift yönlü veri transferlerine izin veren tam çift yönlüdür. Buna karşılık, UDP, güvenilirlik garantileri sağlamayan ve yüksek gerçek zamanlı gereksinimlere sahip bazı senaryolar için uygun olan bağlantısız yönlendirilmiş bir iletişim protokolüdür. TCP ve UDP bağlantı modunda, hizmet nesnesi, güvenilirlik, tıkanıklık kontrolü, akış kontrolü ve diğer yönlerinde farklıdır ve uygulama senaryoları da farklıdır.


Gönderme Zamanı: Aralık-03-2024