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.
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, 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’nin 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, 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 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, 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 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.