TCP Nedir, Ne İşe Yarar?
By Tolga Bagci Mart 22, 2020 Cisco 0 Comments
TCP (Transmission Control Protocol – İletim Kontrol Protokolü), 1960’ların sonlarında ve 1970’lerin başlarında ağlar, kaynakları farklı ağlar arasında paylaşılabilecek şekilde tasarlanmamıştı.
Transmission Control Protocol (İletim Kontrol Protokolü) Nedir?
O zamandan beri, kullanıcı uygulamalarının kaynakları paylaşması giderek daha fazla gerekli hale gelmiştir. Ancak bunu yapabilmeleri için, ağ yöneticilerinin öncelikle ağların iletişim kurması için bir dizi ortak teknoloji ve standart üzerinde anlaşması gerekir. Bu nedenle dosya aktarımı ve e-posta gibi uygulamalar da kullanıcı uygulamaları arasında etkileşime izin verecek şekilde standartlaştırılmalıdır. İletim Kontrol Protokolü bu hedeflerle geliştirilmiştir.
TCP’nin temel amacı, işlem çiftleri arasında güvenilir mantık devreleri veya bağlantı hizmetleri sağlamaktır. Bu, daha düşük seviyeli protokollerden (IP gibi) güvenilirlik anlamına gelmez, bu nedenle bunu tek başına garanti etmelidir.
TCP, geleneksel seviye modelinin taşıma düzeyinde bulunur. IP ve üst seviyeler arasında bulunur ve ağ geçitlerine yüklenmez. Uç noktalar arasındaki veri aktarımının bütünlüğünü korumakla ilgilenen bilgisayarlarda veya makinelerde kalacak şekilde tasarlanmıştır. En yaygın olarak, bu protokol kullanıcı bilgisayarlarında bulunur. IP bağlantısız bir ağ olduğundan, güvenilirlik, akış kontrolü, sıralama, açıklıklar ve kapanma görevlerinden sorumlu olması gereken TCP’dir.
TCP ve IP o kadar yakından ilişkili olsalar da, birlikte “TCP/IP” olarak adlandırılsalar da, diğer protokolleri destekleyebilir. Örneğin, ISO 8473 (Bağlantı Odaklı Olmayan Ağ Protokolü veya CNLP) gibi bağlantıya yönelik olmayan başka bir protokol ile çalışabilir (modüller arasında bazı arabirim ayarlamaları yapılırsa). Ayrıca, Basit Posta Aktarım Protokolü (SMTP) gibi uygulama protokolleri, TCP’nin sağladığı birçok hizmet tarafından desteklenir.
TCP’nin Başlıca Özellikleri
TCP protokolü, daha yüksek seviyelerde bir dizi hizmet sunar ve bağlantı odaklı bir protokoldür, yani içinden geçen her bir kullanıcı verisi zincirinin durumu hakkında bilgi tutar.
Bu bağlamda kullanılan terim ayrıca TCP’nin ağ veya ağlar tarafından uç noktalar arasında alıcı kullanıcı uygulamasına (veya üst düzey protokole) aktarılmasından sorumlu olduğu anlamına gelir. Böylece, verilerin ilgili ağlardaki bilgisayarlar tarafından doğru bir şekilde iletildiğinden ve alındığından emin olmalıdır. TCP bağlantı yönelimli bir protokol olduğundan, karşılık gelen üst düzeyden aldığı her karakterin (bayt veya sekizli) güvenilir bir şekilde aktarılmasından sorumludur. Sonuç olarak sıra numaralarını kullanır ve kabul eder / reddeder.
Bağlantı yönelimli protokollerin bu yönleriyle ilişkili terim sanal bir devredir. İletilen her oktete bir sıra numarası atanır. Alıcı TCP modülü, iletim işleminde üretilen veri hasarının olası varlığını kontrol etmek için bir sağlama toplamı yordamı kullanır. Veriler kabul edilebilirse, TCP gönderen modülüne pozitif bir anlam (ACK) gönderir. Veriler bozulmuşsa, alıcı verileri atar ve gönderen TCP’ye sorunu bildirmek için bir sıra numarası kullanır. Diğer birçok bağlantı yönelimli protokol gibi, TCP de alıcı düğümden kabullerin iletilmesinden ve / veya verici düğümden veri iletiminden önce çok uzun bir süre geçmemesini sağlamak için zamanlayıcılar kullanır.
İletim kontrol protokolü, verileri üst düzey bir protokolden dizeye yönelik bir şekilde alır. Bu, endüstride kullanılan diğer birçok protokolden farklıdır. Dize odaklı protokoller bloklar, çerçeveler, datagramlar değil ayrı karakterler göndermek için tasarlanmıştır. Veriler, bayt bayt olarak dizeler şeklinde daha üst düzey bir protokolle gönderilir. seviyeye ulaştıklarında, baytlar TCP segmentleri oluşturmak için birlikte gruplanır. Bu segmentler, bir sonraki hedefe aktarım için IP’ye (veya başka bir alt düzey protokole) aktarılır. Bölümlerin uzunluğu TCP tarafından belirlenir, ancak belirli bir sistemin geliştiricisi TCP’nin nasıl karar verdiğini belirleyebilir.
IBM işletim sistemleri gibi blok odaklı sistemlerle çalışan TCP geliştiricilerinin TCP yetenekleri hakkındaki düşüncelerini biraz değiştirmeleri gerekebilir.
TCP, dizeye yönelik tasarımı sayesinde değişken uzunluklu segmentlerin kullanımını destekler. Bu nedenle, genellikle sabit uzunluklu veri bloklarıyla (sabit uzunluktaki çalışan kayıtlarını gönderen bir personel yönetimi uygulaması veya sabit uzunluk ücret kayıtlarına sahip bir bordro yönetimi uygulaması) çalışan uygulamalar sabit blokları alıcıya iletmek için TCP kullanamaz. Uygulama düzeyi, TCP dizeleri içindeki blokları yapılandırmayla ilgilenmelidir.
İletim kontrol protokolü ayrıca verilerin kopyalanmasını kontrol eder. Gönderen TCP’nin verileri yeniden iletmeye karar vermesi durumunda, TCP gereksiz verileri atar. Bu gereksiz veriler, örneğin alıcı TCP trafiği zamanlanmış bir şekilde kabul etmediğinde ağda görünebilir, bu durumda gönderen TCP verileri yeniden iletmeye karar verir. Zincir iletim kapasitesine ek olarak TCP, bir itme işlevi kavramını da destekler. Bu işlev, bir uygulama daha düşük seviyeye iletilen tüm verilerin iletildiğinden emin olmak istediğinde kullanılır.
Bunu yapmak için arabellek yönetimini yönetir. Bu işlevi elde etmek için, üst düzey protokol, 1’e bir itme parametresi tanımlayıcısıyla TCP’ye bir komut gönderir. Bu işlem, TCP’nin depolanan tüm trafiği hedefine bir segment veya segment şeklinde göndereceğini gösterir. TCP, kabuller için sıra numaralarını kullanmanın yanı sıra, hedeflerine sıra dışı olan segmentleri yeniden sıralamak için de kullanır ve bağlantıya yönelik olmayan bir protokole dayandığından, ağda yinelenen datagramların oluşturulması oldukça mümkündür.
TCP, yinelenen segmentleri de ortadan kaldırır. TCP kapsamlı bir kabul şeması kullanır. Kabul numarası, kabul numarası eksi bir olana kadar (ve dahil) tüm sekizlileri kabul eder. Bu şema trafiği kabul etmenin çok basit ve etkili bir yöntemidir, ancak bir dezavantajı vardır. Örneğin, on bölümün iletildiğini ve yönlendirme işlemi sırasında gerçekleştirilen işlemler nedeniyle sıra dışı olduklarını varsayalım. TCP’nin yalnızca hatasız olarak alınan en fazla bitişik bayt sayısını kabul etmesi gerekir. Tüm ara baytlar gelinceye kadar alınan en yüksek bayt kabul edilmesine izin verilmez.
Bu nedenle, diğer herhangi bir bağlantı yönelimli protokolde olduğu gibi, kabul zaman aşımı süresi geçebilir ve TCP iletilmesi henüz kabul edilmeyen trafiği yeniden gönderir. Bu yeniden iletimler ağa önemli ölçüde ek yük getirebilir. Alıcı TCP modülü ayrıca, vericiden gelen veri akışını kontrol etmekten sorumludur, bu da depolama cihazlarının taşmasını ve alıcı makinenin doygunluğunu önlemek için çok yararlıdır. TCP’nin kullandığı fikri iletişim protokollerinde biraz olağandışıdır. Bu, verici cihaza bir “pencere” değeri göndermeye dayanır. Vericinin, penceresinin değerine eşit sayıda bayt göndermesine izin verilir. Bu değere ulaşıldığında, pencere kapanır ve vericinin veri göndermeyi durdurması gerekir. Ayrıca, TCP’nin aynı bilgisayarda birden çok kullanıcı oturumunu çoğaltmanıza izin veren çok kullanışlı bir özelliği vardır. Bu işlem, kullanıcılar arasında bağlantı noktaları ve soketler paylaşmak için bazı kurallar tanımlanarak gerçekleştirilir.
TCP, iletişim kuran varlıklar arasında tam çift yönlü mod iletimi sağlar. Bu şekilde, şanzıman, yarım dubleks şanzımanlarda gerekli olan yön değiştirme gösterge sinyalini beklemeden her iki yönde gerçekleştirilebilir. Ayrıca, TCP kullanıcıların güvenlik düzeylerini ve bağlantı önceliklerini belirlemelerine olanak tanır. Bu seçenekler tüm TCP protokollerinde yer almasa da, TCP standardında tanımlanır. TCP, sanal devrelerin güvenli bir şekilde kapatılmasını sağlar (iki kullanıcı arasındaki mantıksal bağlantı). Güvenli kapatma, sanal devre devre dışı bırakılmadan önce tüm trafiğin tanınması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 ve bilgisayarın işletim sistemine etkin bir açık göndermek yerine bağlantı isteklerinin uzak sistemden gelmesini bekleyeceğini söylemesini sağlar.
Bu istek alındığında, işletim sistemi bu amaçla bir bağlantı noktası numarası atar. Bu yardımcı program, açık gecikme etkin olmadan uzak kullanıcılarla iletişim kurmak için kullanılabilir. Pasif açılma talep eden uygulama işlemleri herhangi bir kullanıcıdan gelen bir talebi kabul edebilir (bazı uyumluluk gereksinimlerinin karşılandığı varsayılarak).
Herhangi bir çağrı kabul edilebilirse (uyumluluk gereksinimleri olmadan) dış soket numarası sıfırlanır. Belirtilmemiş dış soket numaralarına sadece pasif açıklıklarda izin verilir. Bağlantı kurmanın ikinci biçimi aktif açık moddur. Bu durumda, üst düzey protokol özellikle bağlantı kurmak için başka bir soket belirler. Tipik olarak, aktif açıklık, bir sanal devre oluşturmak için pasif olarak açılan bir porta gönderilir.
TCP, iki etkin açıklığın bir sistemden diğerine aynı anda gönderildiği bir senaryoyu destekler ve bağlantıyı kurar. Bu özellik, diğer uygulamanın başka bir açılış göndermiş olup olmadığına bakılmaksızın uygulamaların istedikleri zaman açılış göndermesine izin verir.
Pasif ve aktif açıklıkların birlikte nasıl kullanılması gerektiğine dair katı kurallar belirler. İlk olarak, aktif bir açık, belirli bir soketin yanı sıra önceliği ve güvenlik seviyelerini tanımlar. TCP, uzak sokette uyumlu bir pasif açıklık varsa veya uyumlu bir etkin açıklık gönderdiyse açmayı garanti eder.
The Transmission Control Block – İletim Kontrol Bloğu (TCB)
TCP’nin her sanal bağlantı hakkında birkaç şeyi hatırlaması gerektiğinden, bu bilgileri İletim Kontrol Bloğunda (TCB) saklar. TCB’de depolanan bilgiler arasında, yerel ve uzak soket numaralarını, gönderme ve alma tamponlarına işaretçileri, yeniden iletim kuyruğuna işaretçileri, bağlantının güvenlik ve öncelik değerlerini ve devam eden segmenti vurgular.
TCB ayrıca gönderme ve alma sıra numaraları ile ilişkili birkaç değişken içerir. İki TCP modülü arasında değiştirilen PDU’lara segment adı verilir. Segment, başlık bölümü ve veri bölümü olmak üzere iki bölüme ayrılmıştır. Veri kısmı başlık kısmını takip eder. Segmentteki ilk iki alana kaynak bağlantı noktası ve hedef bağlantı noktası denir. Bu 16 bit alanlar, TCP bağlantısını kullanan en üst düzey uygulama programlarını tanımlar.
TCP Segmenti (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. Segment içinde, kullanıcı verilerinin ilk sekizlisini belirtin. Sıra numarası bağlantı yönetimi işlemi sırasında da kullanılır. İki TCP varlığı bağlantı isteği segmentini kullanıyorsa, sıra numarası 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. Bu tanımın kullanılması, eksi 1’in değerine kadar olan ve bu sayı dahil olmak üzere tüm sekizlilerin kabulüne izin verdiği anlamıyla kapsayıcı kabulü 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. Beklenildiği gibi, ayrılmış alan ayrılmıştır. Sıfır olması gereken 6 bitten oluşur. Bu bitler ileride kullanılmak üzere ayrılmıştır. Sonraki altı bite bayrak denir. Bunlar kontrol bitleridir ve oturum sırasında kullanılabilecek belirli hizmetleri veya yardımcı programları belirtmek için kullanılır. Bu bitlerin bazılarının değeri, başlıktaki diğer alanların nasıl yorumlanacağını gösterir. Bahsedilen altı bit aşağıdaki 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 etmek istediğini gösteren bir değere ayarlanır. Bu değer, kabul alanının değeri (kabul numarası) dikkate alınarak belirlenir. Pencere, pencere alanı ve kabul numarası alanı değerleri eklenerek oluşturulur. Sağlama toplamı alanı, metin üstbilgisi de dahil olmak üzere, segmentteki 16 bitlik kelimelerin toplamının 1-tamamlayıcısının 1 ila 16 bit tamamlayıcısını içerir. Bu hesaplamanın amacı vericiden gelen segmentin hatasız olup olmadığını belirlemektir. Segmentteki acil işaretçi olarak adlandırılan bir sonraki 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. Acil verilerle ne yapılacağını söylemez çünkü bu uygulamaya bağlıdır. Başka bir deyişle, sadece acil verilerin başladığı yer belirtilir, onunla ne yapılacağı belirtilmez.
Bu alandaki değer, sıra numarasına bir ofsettir ve acil verilerin izlediği sekizliyi gösterir. Seçenekler alanı, gelecekteki TCP geliştirmelerine izin vermek üzere tasarlanmıştır. IP datagramlarının seçenekler alanına benzer şekilde, her seçeneğin seçenek numarasını belirten bir bayt, seçeneğin uzunluğunu içeren bir alan ve son olarak da seçeneğin kendisi.
Şu anda, seçenek alanının kullanımı oldukça sınırlıdır ve TCP standardı yalnızca üç seçenek belirtmektedir:
0: seçenek listesinin sonu
1: işlem yok
2: maksimum segment boyutu
Son olarak, şekilde gösterildiği gibi, kullanıcı verileri aşağıdadır. İnternet protokolleri dünyada en çok kullanılan protokol ailelerinden biri haline gelmiştir.
Bilgisayar ağlarının iletişimini kolaylaştırmak için tasarlanmıştır. İnternet protokolleri, ağlar arasındaki iletişim işlemlerini desteklemek için tasarlanmış birçok protokolden oluşur. Ayrıca, ağ protokolleri TELNET, Dosya Aktarım Protokolü (FTP) ve Basit Posta Aktarım Protokolü (SMTP) gibi çok sayıda uygulama düzeyinde protokol içerir.
♦ EGP Nedir?
Tags:Ağ, Bilgisayar, Cisco