TCP Nedir, Ne İşe Yarar?

Hızlı Bakış

TCP, iki uç nokta arasında güvenilir ve sıralı bir veri akışı kuran bağlantı odaklı bir taşıma protokolüdür. Gönderici, her veri parçasına bir sıra numarası ekleyip alıcıdan onay bekliyor. Alıcı eksik veya bozuk paketleri fark ettiğinde tekrar gönderim talep ediyor. Bu mekanizma, veri bütünlüğünü ve doğru sıralamayı kesin olarak garanti ediyor. Aynı zamanda pencere tabanlı akış kontrolü ile ağ tıkanıklığını önlüyor. Bu titiz doğrulama süreci, web sayfalarının yüklenmesinden dosya transferlerine kadar kritik işlemleri sorunsuz hale getiriyor. Söz konusu yapı, internet iletişiminin omurgasını oluşturan temel taş olarak çalışıyor.

TCP veya İletim Kontrol Protokolü, modern bilgisayar ağlarının işleyişinde kritik bir rol oynar. 1960’ların sonu ve 1970’lerin başında geliştirdikleri bu protokol, farklı ağlar arasında kaynak paylaşımını kolaylaştırdı. Zamanla ağlar gelişti ve güvenilir veri aktarımına olan talep arttı. Bu nedenle, TCP sorunsuz bağlantıyı sağlamada temel bir unsur haline geldi.

Bu makalede sizlere TCP protokolü tam olarak nedir ve özellikleri nelerdir anlatacağım. Ayrıca, tarihsel bağlamını, ağ mimarisine entegrasyonunu ve veri alışverişindeki rolünü ele alacağım.

TCP Protokolü Tanımı ve Özellikleri

Transmission Control Protocol (İletim Kontrol Protokolü) Nedir?

Kullanıcı uygulamalarının kaynakları paylaşması giderek önemli hale gelmiştir. Ancak, ağ yöneticileri, ağların iletişim kurması için ortak teknolojiler üzerinde anlaşmalıdır. Bu nedenle, dosya aktarımı ve e-posta gibi uygulamalar da standartlaştırılmalıdır. Bu hedeflerle birlikte, İletim Kontrol Protokolü (TCP) geliştirilmiştir.

TCP’nin temel amacı, işlem çiftleri arasında güvenilir bağlantı hizmetleri sağlamaktır. Bu, IP gibi daha düşük seviyeli protokollerden sağlanamaz, bu yüzden bu güvenilirliği tek başına garanti etmelidir.

TCP protokolü, geleneksel modelin taşıma düzeyinde bulunur. IP ve üst seviyeler arasında yer alır ve ağ geçitlerine yüklenmez. Uç noktalar arasındaki veri aktarımının bütünlüğünü korur. Genellikle, bu protokol kullanıcı bilgisayarlarında bulunur. IP bağlantısız bir ağdır, bu yüzden güvenilirlik, akış kontrolü, sıralama ve kapanma gibi görevleri üstlenir.

TCP ve IP birbirine yakındır, bu yüzden “TCP/IP” olarak adlandırılırlar. Ancak, diğer protokolleri destekleyebilir. Örneğin, ISO 8473 (CNLP) gibi bağlantıya yönelik olmayan protokollerle çalışabilir. Ayrıca, SMTP gibi uygulama protokolleri TCP’nin sunduğu birçok hizmetle desteklenir.

TCP Protokolü Başlıca Özellikleri

TCP protokolü, yüksek seviyelerde çeşitli hizmetler sunar ve bağlantı odaklıdır. Bu, her kullanıcı verisinin durumu hakkında bilgi tuttuğu anlamına gelir. Ayrıca, ağlar arasında uç noktalar arasında veri aktarımını yönetir.

TCP, verilerin doğru bir şekilde iletildiğinden emin olur. Verilerin doğru bir şekilde alındığını garanti eder. Her karakteri güvenilir bir şekilde aktarır. Ayrıca, sıra numaralarını kullanır ve kabul/ reddet işlemleri yapar.

Bağlantı yönelimli protokoller sanal bir devre olarak çalışır. İletilen her oktete bir sıra numarası atanır. Alıcı TCP, veri hasarını kontrol etmek için sağlama toplamı kullanır. Veriler kabul edilirse, pozitif bir anlam (ACK) gönderir.

Eğer veriler bozulmuşsa, alıcı verileri atar. Alıcı, bir sıra numarası kullanarak problemi bildirir. Ayrıca, verici düğümden veri iletiminden önce zamanlayıcılar kullanır.

TCP, dizeye yönelik protokolleri destekler. Verileri bayt bayt olarak gönderir. Baytlar, TCP segmentleri oluşturmak için gruplanır. Bu segmentler, IP’ye aktarılır. Daha sonra, segmentlerin uzunluğunu belirler ve sistem geliştiricileri buna karar verebilir.

TCP, değişken uzunluktaki segmentlerin kullanımını destekler. Ancak, sabit uzunluktaki veri blokları ile çalışan uygulamalar, TCP kullanamaz. Bu nedenle, uygulama düzeyinin dizelerini yapılandırması gerekir.

TCP, verilerin kopyalanmasını kontrol eder. Gereksiz veriler, alıcı TCP tarafından atılır. Ayrıca, bir itme işlevi kavramını destekler. Bu işlev, tüm verilerin iletildiğinden emin olur.

Arabellek yönetimi bu işlevi sağlar. TCP, tüm trafiği hedefe göndermek için bir komut alır. Ayrıca, sıradışı segmentleri yeniden sıralar. Yinelenen datagramları ortadan kaldırır.

TCP protokolü, kapsamlı bir kabul şeması kullanır. Kabul numarası, sıfırdan eksik bir değere kadar olan baytları kabul eder. Ayrıca, kabul zaman aşımı süresi geçebilir ve trafik yeniden gönderilir. Bu, ağa ek yük getirebilir.

Alıcı TCP, veri akışını kontrol eder. Bu, taşmaları ve doygunluğu önler. Bir “pencere” değeri gönderir ve vericinin bu değeri aşmasına izin vermez. Ayrıca, çok kullanıcılı oturumları destekler.

TCP, tam çift yönlü iletişim sağlar. Şanzıman, yön değiştirme sinyali beklemeden her iki yönde gerçekleştirilir. Ayrıca, güvenlik düzeylerini belirler ve sanal devrelerin güvenli bir şekilde kapanmasını sağlar.

Aktif ve Pasif Açıklıklar

TCP bağlantı noktaları iki tür bağlantı kurabilir. Pasif açık mod, üst düzey protokolün (örneğin bir sunucu) TCP’ye bağlantı isteklerinin uzak sistemden gelmesini beklemesini sağlar. Bu mod, bilgisayarın işletim sistemine etkin bir açık göndermeyi gerektirmez.

İstek alındığında, işletim sistemi bir bağlantı noktası numarası atar. Bu numara, uzak kullanıcılarla iletişim kurmak için kullanılır. Ayrıca, pasif açılma talep eden uygulama işlemleri, uyumluluk gereksinimleri karşılandığında gelen talepleri kabul edebilir.

Eğer herhangi bir çağrı kabul edilebilirse, dış soket numarası sıfırlanır. Ancak, belirtilmemiş dış soket numaralarına sadece pasif açıklıklarda izin verilir. Bununla birlikte, bağlantı kurmanın diğer bir biçimi aktif açık moddur.

Aktif açık modda, üst düzey protokol bağlantı kurmak için belirli bir soket kullanır. Tipik olarak, aktif açıklık, bir sanal devre oluşturmak için pasif olarak açılan bir porta gönderilir. Artı, iki etkin açıklığın aynı anda gönderildiği durumları destekler ve bağlantıyı kurar.

Bu özellik, uygulamaların istedikleri zaman açılış göndermesine olanak tanır. Diğer uygulamaların başka bir açılış gönderip göndermediğine bakılmaksızın, TCP protokolü bağlantı kurabilir. Ayrıca, pasif ve aktif açıklıkların nasıl kullanılacağına dair katı kurallar belirler.

İlk olarak, aktif bir açık belirli bir soketi ve güvenlik seviyelerini tanımlar. Yani, uyumlu bir pasif açıklık veya etkin açıklık varsa bağlantıyı kurmayı garanti eder.

The Transmission Control Block – İletim Kontrol Bloğu (TCB)

TCP protokolü, her sanal bağlantı hakkında birçok bilgi saklar. Bu bilgileri İletim Kontrol Bloğunda (TCB) depolar. TCB, yerel ve uzak soket numaralarını içerir. Ayrıca, gönderme ve alma tamponlarına işaretçiler bulunur. Ek olarak, yeniden iletim kuyruğuna işaretçiler ve bağlantının güvenlik ile öncelik değerleri de saklanır. Devam eden segmenti vurgular.

Bununla birlikte, TCB gönderme ve alma sıra numaralarını da içerir. İki TCP modülü arasında değiştirilen PDU’lara segment adı verilir. Segment iki bölüme ayrılmıştır: başlık ve veri. Veri bölümü, başlık bölümünü takip eder. Segmentteki ilk iki alan, kaynak ve hedef bağlantı noktasıdır. Bu 16 bit alanlar, TCP bağlantısını kullanan üst düzey uygulamaları tanımlar.

TCP Segment (PDU)

Bir sonraki alana sıra numarası denir. Bu alan, kullanıcı veri alanının ilk sekizlisinin sıra numarasını içerir. Değeri, verici modülünün bit dizesinin konumunu belirtir. Ayrıca, segment içinde kullanıcı verilerinin ilk sekizlisini belirtir.

Bununla birlikte, sıra numarası bağlantı yönetimi sırasında kullanılır. İki TCP varlığı bağlantı isteği segmentini kullanıyorsa, sıra numarası belirli işlevler görür. Örneğin, kullanıcı verilerinin sonraki numaralandırması için kullanılacak ilk gönderme sıra numarasını (ISS) belirtir.

Kabul numarasının değeri, daha önce alınan verilerin kabulüne izin verir. Bu alan, vericiden alınması beklenen bir sonraki sekizlinin sıra numarasının değerini içerir. Ayrıca, bu tanım, eksi 1’in değerine kadar olan tüm sekizlilerin kabulünü sağlar.

Veri ofseti alanı, TCP başlığından oluşan 32 bit hizalanmış kelimelerin sayısını belirtir. Bu alan, veri alanının nerede başladığını belirlemek için kullanılır. Ayrılmış alan, sıfır olması gereken 6 bitten oluşur. Bu bitler ileride kullanılmak üzere ayrılmıştır.

Sonraki altı bite bayrak denir. Bayraklar, kontrol bitleridir ve belirli hizmetleri veya yardımcı programları belirtir. Bu bitlerin bazı değerleri, başlıktaki diğer alanların nasıl yorumlanacağını gösterir. Bu altı bit çeşitli bilgileri taşır.

  • URG, aciliyet işaretçisi alanının önemli olduğunu gösterir.
  • ACK, kabul alanının önemli olup olmadığını belirtir.
  • PSH, modülün itme işlevini kullanacağı anlamına gelir.
  • RST, bağlantının başlatılacağını belirtir.
  • SYN, sıra numaralarının senkronize edileceğini gösterir; bağlantı kurulum segmentlerinde bazı kurulum işlemlerinin gerçekleştirileceğinin bir göstergesi olarak kullanılır.
  • END, gönderenin gönderecek başka veri olmadığını gösterir. Diğer protokollerde iletim sinyalinin (EOT) sonuna kadar karşılaştırılabilir.

Pencere olarak adlandırılan bir sonraki alan, alıcının kaç okteti kabul edeceğini gösterir. Bu değer, kabul alanının (kabul numarası) değerine bağlı olarak belirlenir. Ayrıca, pencere alanı ve kabul numarası alanı değerleri eklenerek oluşturulur.

Sağlama toplamı alanı, segmentteki 16 bitlik kelimelerin toplamının 1-tamamlayıcısının 1 ila 16 bit tamamlayıcısını içerir. Bunun amacı, vericiden gelen segmentin hatasız olup olmadığını belirlemektir. Ayrıca, segmentteki acil işaretçi olarak adlandırılan bir alan yalnızca URG bayrağı 1 ise kullanılır.

Bu işaretçinin amacı, veri sekizlisini ve ardından acil verileri tanımlamaktır. Acil verilere bant dışı veri denir. Bununla birlikte, acil verilerle ne yapılacağı uygulamaya bağlıdır. Başka bir deyişle, sadece acil verilerin başladığı yer belirtilir.

Bu alandaki değer, sıra numarasına bir ofsettir ve acil verilerin izlediği sekizliyi gösterir. Seçenekler alanı, gelecekteki TCP protokolü geliştirmelerine izin vermek üzere tasarlanmıştır. IP datagramlarının seçenekler alanına benzer şekilde, her seçeneğin numarasını belirten bir bayt içerir. Ayrıca, seçeneğin uzunluğunu ve son olarak da seçeneğin kendisini gösterir.

Şu anda, seçenek alanının kullanımı oldukça sınırlıdır. TCP standardı yalnızca üç seçenek belirtmektedir: 0 – seçenek listesinin sonu, 1 – işlem yok, 2 – maksimum segment boyutu.

Son olarak, kullanıcı verileri aşağıdadır. İnternet protokolleri, dünyada en çok kullanılan protokol ailelerinden biridir. Bu protokoller, bilgisayar ağlarının iletişimini kolaylaştırmak için tasarlanmıştır. Ayrıca, ağ protokolleri TELNET, FTP ve SMTP gibi uygulama düzeyinde protokoller içerir.

  • 0: seçenek listesinin sonu
  • 1: işlem yok
  • 2: maksimum segment boyutu

Son olarak, kullanıcı verileri aşağıda gösterilmiştir. İnternet protokolleri, dünya çapında en yaygın kullanılan protokol ailelerinden biridir.

Bu protokoller, bilgisayar ağlarının iletişimini kolaylaştırmak amacıyla tasarlanmıştır. İnternet protokolleri, ağlar arasındaki iletişimi desteklemek için birçok protokolden oluşur. Ayrıca, ağ protokolleri TELNET, Dosya Aktarım Protokolü (FTP) ve Basit Posta Aktarım Protokolü (SMTP) gibi birçok uygulama düzeyinde protokol içerir.

TCP ve UDP Arasındaki Fark Nedir?

Bilgisayar ağlarında, iki temel taşıma katmanı protokolü vardır: TCP ve UDP. Bu protokoller farklı ihtiyaçlara ve amaçlara hizmet eder. Ayrıca, uygulama türüne göre doğru olanı seçmek oldukça önemlidir.

Transmission Control Protocol (TCP), güvenli veri iletimi sağlayan bağlantı temelli bir protokoldür. 1970’lerde geliştirilen TCP, veri gönderilmeden önce bir bağlantı kurar. Bu sayede, veriler sıralı ve hatasız şekilde karşıya ulaşır. Ayrıca tekrar eden iletimler de engellenmiş olur. Bu özellikler, web gezintisi ve e-posta gibi uygulamalarda önemlidir. Dahası, dosya aktarımı gibi güvenilirlik isteyen işlemler için de uygundur.

UDP (User Datagram Protocol) ise bağlantısız çalışır ve hıza odaklanır. Veri paketlerini doğrudan iletir, teslimat garantisi vermez. Ek olarak, doğruluk yerine düşük gecikme tercih edilen yerlerde kullanılır. Örneğin çevrimiçi oyunlar, canlı yayınlar ve VoIP uygulamaları bu protokolü kullanır.

Temel Farklar

  • Bağlantı Türü

TCP, veri iletiminden önce bağlantı kurar ve bu süre alır. Buna karşılık, UDP bağlantısızdır ve verileri doğrudan gönderir. Bu durum, iletimi daha hızlı yapar.

  • Güvenilirlik

TCP verileri sıralı ve hatasız ulaştırır. Ayrıca kaybolan paketleri yeniden gönderir. Bununla birlikte, onaylama (ACK) ve kontrol mekanizmaları içerir. UDP ise teslimat garantisi vermez. Ek olarak, hata kontrolü içermez ve daha az güvenilirdir.

  • Hız ve Verimlilik

TCP, bağlantı ve kontrol işlemleri nedeniyle daha yavaştır. Diğer yandan, UDP bu yüklerden kaçınır ve daha hızlı çalışır.

  • Kullanım Örnekleri

TCP protokolü, veri bütünlüğü isteyen uygulamalarda kullanılır. Örneğin web tarayıcıları, e-posta sistemleri ve dosya transferleri bu protokole dayanır. Öte yandan, UDP gerçek zamanlı uygulamalar için daha uygundur. Video konferans, medya akışı ve çok oyunculu oyunlar buna örnektir.

  • Başlık Boyutu

Ayrıca, fazladan kontrol verileri nedeniyle 20 baytlık başlık kullanır. Ama, UDP yalnızca 8 baytlık başlığa sahiptir. Bu da hıza ve verimliliğe katkı sağlar.

TCP Güvenilir Veri İletimi Hakkında SSS

TCP'nin en büyük gücü olan üçlü el sıkışma süreci neden bu kadar kritik?

Üçlü el sıkışma, iki tarafın da konuşmaya hazır olduğunu garanti eder. İstemci önce bir SYN paketi gönderir. Sunucu SYN-ACK ile yanıt verir.
Ardından istemci ACK gönderir ve bağlantı kurulur. Bu süreç, sahte isteklerle sunucuyu boğmayı engeller. Ayrıca sıra numaraları bu aşamada belirlenir.
Sonrasında gelen her paket bu numaralarla doğrulanır. El sıkışma olmazsa paketler rastgele kabul edilir. Kötü niyetli taraf, var olmayan bir oturuma veri enjekte edebilir.
Zira bu katı tören, güvenliğin ilk adımıdır. Bağlantı odaklı yapı, kaynakları korur. Gönderici ve alıcı arasında güvenli bir kanal açar.

Segment yapısındaki sıra numaraları ve onay mekanizması kayıp paketleri nasıl telafi ediyor?

Her giden segmente benzersiz bir sıra numarası eklenir. Alıcı, gelen segmentin numarasını kontrol eder. Eğer doğru numaraysa hemen bir ACK onayı gönderir.
Gönderici onayı almazsa paketi tekrar yollar. Böylece kayıp paketler otomatik telafi edilir. Veri bütünlüğü asla şansa bırakılmaz.
Üstelik sıra dışı gelen segmentler yeniden sıralanır. Parçalanmış veriler, hedefte eksiksiz bir bütün olur. Checksum mekanizması da bozuk paketleri ayıklar.
Kısacası bu mekanizma, güvenilirliğin temelidir. Hiçbir veri kaybolmaz veya bozulmaz. İletim sırasında oluşan hatalar anında düzeltilir.

Pencere mekanizması olmadan veri akışı neden çöker?

Pencere, alıcının aynı anda kabul edebileceği veri miktarını belirtir. Gönderici bu sınırı aşamaz. Eğer bu mekanizma olmasaydı, hızlı gönderici yavaş alıcıyı boğardı.
Alıcı tamponu taşar, paketler düşerdi. Sürekli yeniden iletimler ağı kilitlerdi. Akış kontrolü bu felaketi önler.
Alıcı her ACK’da güncel pencere boyutunu bildirir. Gönderici hızını buna göre ayarlar. Böylece trafik dengelenir, gecikme minimize edilir.
Ayrıca bu mekanizma ağ tıkanıklığını da yönetir. TCP pencereyi daraltarak hızı düşürür. Dolayısıyla hem alıcı hem ağ korunur.

Bu bağlantı odaklı yapı ile UDP'nin bağlantısız doğası arasındaki seçim neye göre yapılmalı?

Her şey uygulamanın ihtiyacına bağlıdır. Dosya transferi veya e-posta gibi hassas verilerde İletim Kontrol Protokolü şarttır. Kayıp kabul edilemez.
Canlı yayın veya oyun gibi gerçek zamanlı uygulamalarda ise UDP kazanır. Mermi hızı, onay beklemeden çok daha önemlidir. Birkaç kayıp paket, donma kadar can sıkmaz.
Temel fark güvenilirlik ve hız arasındadır. Bağlantı odaklı yapı, veri bütünlüğü sunar. Ancak el sıkışma ve onaylar gecikme yaratır.
Öte yandan UDP başlığı sadece 8 bayttır. Aradaki fark, ağın gayrimenkulüdür. Bu yüzden doğru seçim, projenin can damarıdır.

Aktif ve pasif açıklık kavramları sunucu-istemci modelinde ne anlam ifade ediyor?

Pasif açıklık, sunucunun gelen bağlantıları dinlemesidir. Bir portu açar ve istek bekler. İşletim sistemi bu porta gelen SYN’lere cevap vermeye hazırdır.
Aktif açıklık ise istemcinin bağlantıyı başlatmasıdır. Belirli bir soket üzerinden sunucuya SYN gönderir. İki aktif açıklık aynı anda çakışırsa dahi bağlantı kurulabilir.
Bu model, ağ kaynaklarını verimli kullanır. Pasif taraf sadece talep geldiğinde işlem yapar. TCB blokları böylece atıl durumda beklemez.
Sonuç olarak bu mekanizma, ölçeklenebilirliğin anahtarıdır. Her yeni istemci için ayrı bir sanal devre oluşturulur. TCP’nin çoklu oturum desteği bu sayede çalışır.

Segment başlığındaki bayraklar (URG, ACK, PSH, RST, SYN, FIN) aslında ne işaret ediyor?

Bu altı bayrak, segmentin nasıl yorumlanacağını anlatır. SYN bağlantı kurulumunu başlatır. FIN ise veri akışının bittiğini bildirir.
ACK her zaman onay bilgisi taşır. RST anormal bir durumda bağlantıyı sertçe keser. PSH, veriyi tamponda beklemeden uygulamaya it der.
URG ise acil veri bayrağıdır. Bant dışı veri göndermek için kullanılır. Her bayrak segment başlığındaki bir bite karşılık gelir.
Pratikte en sık SYN, ACK ve FIN’i görürsünüz. Üçlü el sıkışma tamamen bu bayraklarla yürür. Bu minik bitler, tüm oturumun kaderini belirler.

Bu Rehberi Keşfettikleri İçin Sana Teşekkür Edecekler!

Sadece bir tıkla sevdiklerine dev bir iyilik yapmaya hazır mısın? Bilgi paylaştıkça devleşir.

İlk yorumu sen paylaş