Bugün TCP'ye odaklanarak başlayacağız. Katmanlama bölümünde daha önce önemli bir noktadan bahsetmiştik. Ağ katmanında ve altında, daha çok ana bilgisayardan ana bilgisayara bağlantılar söz konusudur; yani bilgisayarınızın başka bir bilgisayara bağlanabilmesi için nerede olduğunu bilmesi gerekir. Ancak, bir ağdaki iletişim genellikle makineler arası iletişimden ziyade süreçler arası iletişimdir. Bu nedenle, TCP protokolü port kavramını tanıtır. Bir port yalnızca bir işlem tarafından kullanılabilir ve bu da farklı ana bilgisayarlarda çalışan uygulama süreçleri arasında doğrudan iletişim sağlar.
Taşıma katmanının görevi, farklı sunucularda çalışan uygulama süreçleri arasında doğrudan iletişim hizmetleri sağlamaktır; bu nedenle uçtan uca protokol olarak da bilinir. Taşıma katmanı, ağın temel ayrıntılarını gizleyerek, uygulama sürecinin iki taşıma katmanı varlığı arasında mantıksal bir uçtan uca iletişim kanalı varmış gibi görmesini sağlar.
TCP, İletim Kontrol Protokolü anlamına gelir ve bağlantı odaklı bir protokol olarak bilinir. Bu, bir uygulamanın diğerine veri göndermeye başlamadan önce iki işlemin el sıkışması yapması gerektiği anlamına gelir. El sıkışması, verilerin güvenilir bir şekilde iletilmesini ve düzenli bir şekilde alınmasını sağlayan mantıksal olarak bağlantılı bir süreçtir. El sıkışması sırasında, kaynak ve hedef ana bilgisayarlar arasında bir dizi kontrol paketi alışverişi yapılarak ve başarılı veri iletimini sağlamak için bazı parametreler ve kurallar üzerinde anlaşmaya varılarak bir bağlantı kurulur.
TCP nedir? (Mylinking'inAğ BağlantısıVeAğ Paket Aracısıhem TCP hem de UDP paketlerini işleyebilir.)
TCP (İletim Kontrol Protokolü), bağlantı odaklı, güvenilir, bayt akışına dayalı bir taşıma katmanı iletişim protokolüdür.
Bağlantı odaklıBağlantı odaklı olması, TCP iletişiminin bire bir, yani uçtan uca iletişim olduğu anlamına gelir; UDP ise aynı anda birden fazla sunucuya mesaj gönderebildiği için bire çok iletişim sağlanamaz.
GüvenilirTCP'nin güvenilirliği, ağ bağlantısındaki değişikliklerden bağımsız olarak paketlerin alıcıya güvenilir bir şekilde iletilmesini sağlar; bu da TCP'nin protokol paket formatını UDP'ninkinden daha karmaşık hale getirir.
Bayt akışı tabanlıTCP'nin bayt akışına dayalı yapısı, her boyuttaki mesajın iletilmesine olanak tanır ve mesaj sırasını garanti eder: önceki mesaj tamamen alınmamış olsa bile ve sonraki baytlar alınmış olsa bile, TCP bunları işleme için uygulama katmanına iletmez ve yinelenen paketleri otomatik olarak atar.
A ve B sunucuları bağlantı kurduktan sonra, uygulama yalnızca sanal iletişim hattını kullanarak veri gönderip alabilir ve böylece veri iletimini sağlayabilir. TCP protokolü, bağlantı kurma, bağlantıyı kesme ve bağlantıyı sürdürme gibi görevleri kontrol etmekten sorumludur. Burada sanal hat ifadesinin yalnızca bağlantı kurmayı, TCP protokolü bağlantısının ise iki tarafın veri iletimine başlayabileceğini ve verinin güvenilirliğini sağlamayı ifade ettiğini belirtmek gerekir. Yönlendirme ve taşıma düğümleri ağ aygıtları tarafından ele alınır; TCP protokolünün kendisi bu ayrıntılarla ilgilenmez.
TCP bağlantısı, tam çift yönlü bir hizmettir; bu, A ve B sunucularının bir TCP bağlantısında her iki yönde de veri iletebileceği anlamına gelir. Yani, A ve B sunucuları arasında veri çift yönlü bir akışla aktarılabilir.
TCP, verileri geçici olarak bağlantının gönderme arabelleğinde saklar. Bu gönderme arabelleği, üç yönlü el sıkışma sırasında kurulan önbelleklerden biridir. Daha sonra TCP, gönderme önbelleğindeki verileri uygun zamanda hedef ana bilgisayarın alma önbelleğine gönderir. Uygulamada, her eşin burada gösterildiği gibi bir gönderme önbelleği ve bir alma önbelleği olacaktır:
Gönderme arabelleği, gönderen tarafındaki TCP uygulaması tarafından tutulan ve gönderilecek verileri geçici olarak depolamak için kullanılan bir bellek alanıdır. Bağlantı kurmak için üç yönlü el sıkışma gerçekleştirildiğinde, gönderme önbelleği oluşturulur ve verileri depolamak için kullanılır. Gönderme arabelleği, ağ tıkanıklığına ve alıcıdan gelen geri bildirime göre dinamik olarak ayarlanır.
Alma arabelleği, alıcı taraftaki TCP uygulamasının aldığı ve alınan verileri geçici olarak depolamak için kullandığı bir bellek alanıdır. TCP, alınan verileri alma önbelleğinde saklar ve üst uygulamanın bunları okumasını bekler.
Gönderme önbelleği ve alma önbelleğinin boyutunun sınırlı olduğunu unutmayın; önbellek dolduğunda TCP, güvenilir veri iletimini ve ağ istikrarını sağlamak için tıkanıklık kontrolü, akış kontrolü vb. stratejiler uygulayabilir.
Bilgisayar ağlarında, sunucular arasındaki veri iletimi segmentler aracılığıyla gerçekleştirilir. Peki, paket segmenti nedir?
TCP, gelen veri akışını parçalara ayırarak ve her parçaya TCP başlıkları ekleyerek bir TCP segmenti veya paket segmenti oluşturur. Her segment yalnızca sınırlı bir süre için iletilebilir ve Maksimum Segment Boyutunu (MSS) aşamaz. Paket segmenti, aşağı doğru ilerlerken bağlantı katmanından geçer. Bağlantı katmanının, veri bağlantı katmanından geçebilecek maksimum paket boyutu olan Maksimum İletim Birimi (MTU) vardır. Maksimum iletim birimi genellikle iletişim arayüzüyle ilişkilidir.
Peki MSS ve MTU arasındaki fark nedir?
Bilgisayar ağlarında hiyerarşik mimari çok önemlidir çünkü farklı seviyeler arasındaki farklılıkları dikkate alır. Her katmanın farklı bir adı vardır; taşıma katmanında veriye segment, ağ katmanında ise IP paketi denir. Bu nedenle, Maksimum İletim Birimi (MTU), ağ katmanı tarafından iletilebilecek maksimum IP paketi boyutu olarak düşünülebilirken, Maksimum Segment Boyutu (MSS) ise bir TCP paketi tarafından aynı anda iletilebilecek maksimum veri miktarını ifade eden bir taşıma katmanı kavramıdır.
Maksimum Segment Boyutu (MSS), Maksimum İletim Birimi (MTU)'dan büyük olduğunda, IP parçalama işlemi ağ katmanında gerçekleştirilecek ve TCP, daha büyük verileri MTU boyutuna uygun segmentlere bölmeyecektir. Ağ katmanında IP katmanına ayrılmış bir bölüm olacaktır.
TCP paket segmenti yapısı
TCP başlıklarının biçimini ve içeriğini inceleyelim.
Sıra numarası: TCP bağlantısı kurulduğunda bilgisayar tarafından başlangıç değeri olarak üretilen rastgele bir sayıdır ve sıra numarası SYN paketi aracılığıyla alıcıya gönderilir. Veri iletimi sırasında, gönderici gönderilen veri miktarına göre sıra numarasını artırır. Alıcı, alınan sıra numarasına göre verilerin sırasını belirler. Verilerin sırası bozuk bulunursa, alıcı verilerin sırasını düzeltmek için verileri yeniden sıralar.
Onay numarasıBu, TCP'de veri alındığını onaylamak için kullanılan bir sıra numarasıdır. Göndericinin almayı beklediği bir sonraki verinin 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 verinin başarıyla alındığını belirler. Alıcı veriyi başarıyla aldığında, göndericiye onay numarasını içeren bir ACK paketi gönderir. ACK paketini aldıktan sonra, gönderici, onay numarasından önceki verinin başarıyla alındığını doğrulayabilir.
Bir TCP segmentinin kontrol bitleri şunları içerir:
ACK bitBu bit 1 olduğunda, onay yanıtı alanının geçerli olduğu anlamına gelir. TCP, bağlantı ilk kurulduğunda SYN paketleri hariç bu bitin 1 olarak ayarlanması gerektiğini belirtir.
RST bitBu bit 1 olduğunda, TCP bağlantısında bir istisna olduğunu ve bağlantının zorla kesilmesi gerektiğini gösterir.
SYN bitBu bit 1 olarak ayarlandığında, bağlantının kurulacağı ve sıra numarası alanına sıra numarasının başlangıç değerinin atanacağı anlamına gelir.
SON kısımBu bit 1 olduğunda, gelecekte artık veri gönderilmeyeceği ve bağlantının istendiği anlamına gelir.
TCP'nin çeşitli işlevleri ve özellikleri, TCP paket segmentlerinin yapısında somutlaşmıştır.
UDP nedir? (Mylinking'in)Ağ BağlantısıVeAğ Paket Aracısı(Hem TCP hem de UDP paketlerini işleyebilir)
Kullanıcı Veri Paketi Protokolü (UDP), bağlantı gerektirmeyen 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 olanak tanır. Geliştirici TCP yerine UDP kullanmayı tercih ettiğinde, uygulama doğrudan IP ile iletişim kurar.
UDP protokolünün tam adı Kullanıcı Veri Paketi Protokolü'dür ve başlığı yalnızca sekiz bayt (64 bit) olup oldukça özlüdür. UDP başlığının formatı aşağıdaki gibidir:
Varış ve kaynak limanları: Bunların temel amacı, UDP'nin paketleri hangi işleme göndermesi gerektiğini belirtmektir.
Paket boyutuPaket boyutu alanı, UDP başlığının boyutunu ve verinin boyutunu içerir.
Sağlama toplamıUDP başlıklarının ve verilerinin güvenilir bir şekilde iletilmesini sağlamak üzere tasarlanmıştır. 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 bozulma olup olmadığını tespit etmektir.
Mylinking'in TCP ve UDP arasındaki farklarıAğ BağlantısıVeAğ Paket Aracısıhem TCP hem de UDP paketlerini işleyebilir.
TCP ve UDP aşağıdaki yönlerden farklılık gösterir:
BağlantıTCP, veri aktarımı öncesinde bağlantı kurulmasını gerektiren, bağlantı odaklı bir taşıma protokolüdür. UDP ise bağlantı gerektirmez ve veriyi anında aktarabilir.
Hizmet NesnesiTCP, bire bir iki noktalı bir hizmettir; yani bir bağlantının yalnızca iki uç noktası birbiriyle iletişim kurar. Ancak UDP, bire bir, bire çok ve çoktan çoğa etkileşimli iletişimi destekler ve aynı anda birden fazla ana bilgisayarla iletişim kurabilir.
GüvenilirlikTCP, verilerin güvenilir bir şekilde iletilmesi hizmetini sağlar; verilerin hatasız, kayıpsız, yinelenmeyen ve talep üzerine ulaşmasını garanti eder. UDP ise elinden gelenin en iyisini yapar ancak güvenilir teslimatı garanti etmez. UDP, iletim sırasında veri kaybı ve diğer sorunlardan etkilenebilir.
Trafik sıkışıklığı kontrolü, akış kontrolüTCP, veri iletiminin güvenliğini ve istikrarını sağlamak için ağ koşullarına göre veri iletim hızını 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 yoğun olsa bile UDP gönderme hızında ayarlama yapmaz.
Başlık üstüTCP'nin başlık uzunluğu genellikle 20 bayttır ve seçenek alanları kullanıldığında bu uzunluk artar. UDP ise yalnızca 8 baytlık sabit bir başlığa sahiptir, bu nedenle UDP'nin başlık yükü daha düşüktür.

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 iletiminin gerekli olduğu senaryolarda kullanılır. Yaygın kullanım alanlarından bazıları şunlardır:
FTP dosya transferiTCP, dosya aktarımı sırasında dosyaların kaybolmamasını ve bozulmamasını sağlar.
HTTP/HTTPSTCP, web içeriğinin bütünlüğünü ve doğruluğunu sağlar.
UDP, bağlantı gerektirmeyen bir protokol olduğu için güvenilirlik garantisi sağlamaz, ancak verimlilik ve gerçek zamanlılık özelliklerine sahiptir. UDP aşağıdaki senaryolar için uygundur:
DNS (Alan Adı Sistemi) gibi düşük paketli trafikDNS sorguları genellikle kısa paketlerdir ve UDP bunları daha hızlı tamamlayabilir.
Video ve ses gibi multimedya iletişim araçlarıYüksek gerçek zamanlı gereksinimlere sahip multimedya iletimi için UDP, verilerin zamanında iletilmesini sağlamak üzere daha düşük gecikme süresi sunabilir.
Yayın iletişimiUDP, bire çok ve çoktan çoğa iletişimi destekler ve yayın mesajlarının iletimi için kullanılabilir.
Özet
Bugün TCP hakkında bilgi edindik. TCP, bağlantı odaklı, güvenilir, bayt akışı tabanlı bir taşıma katmanı iletişim protokolüdür. Bağlantı kurma, el sıkışma ve onaylama yoluyla verilerin güvenilir iletimini ve düzenli alımını sağlar. TCP protokolü, süreçler arasındaki iletişimi gerçekleştirmek için portları 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ı tam çift yönlüdür ve eş zamanlı çift yönlü veri aktarımlarına olanak tanır. Buna karşılık, UDP bağlantısız odaklı bir iletişim protokolüdür, güvenilirlik garantisi sağlamaz ve yüksek gerçek zamanlı gereksinimlere sahip bazı senaryolar için uygundur. TCP ve UDP, bağlantı modu, hizmet nesnesi, güvenilirlik, tıkanıklık kontrolü, akış kontrolü ve diğer yönlerden farklıdır ve uygulama senaryoları da farklıdır.
Yayın tarihi: 03-12-2024



