TCP bağlantısının kulumu ve sonlandırılması

Bağlantı kurulumu:

TCP bir bağlantıyı oluşturmak için 3 değişik tokalaşma yöntemi kullanılır.Bir istemci sonucu ile bağlantı kurma girişiminde bulunmadan önce,sunucu bir portu bu bağlantının oluşabilmesi için istemciyle ilişkilendirmelidir.buna bağlantının pasif olarak açılması denir.Pasif bağlantının açılmasından hemen sonra istemci aktif bağlantıya geçer.Bir bağlanın kurulabilmesi için 3 çeşit tokalaşma olur.

· İstemci tarafından gerçekleştirilen aktif bağlantı sunucuya SYN gönderir.

· Sunucu cevap olarak SYN-ACR gönderir.

· Son olarak istemci sunucuya ACR gönderir.

Bu noktada hem istemci hem de sunucu bağlantı konusunda birbirlerini tanımış olurlar.

ÖRNEK:

1.İstemci bağlantıyı başlatmak için Synchronization(SYN bayrağım1 yapar)paketi gönderir. Her SYN paketi bir sıra numarası tutar. Sıra numarası 32 bitlik bir sayıdır ve TCP başlık kısmında yer alır. Bu bölümde sırra numarası x ile niteleyeceğiz.

2. diğer taraftaki makine paketleri alır ve sıra numarasını kaydeder (x) ve bir tanıma ve senkronizasyon ( Acknowlegment and Synchronization)

(SYN-ACK): Tanıma (kabul)sinyali(verisi) 32-bittir ve TCP başlık kısmındadır. Bu veri alamayı umduğu diğer paketin sıra numarasını tutar.

(x+1).host aynı zamanda dönüş oturumunuda başlatır. Bu içinde kendisinin başlangıç sıra numarası olan (y)barındıran bir tcp segmenti barındırır.

3. Başlangıç makinesı cevap olarak sıra numarası x+1 olan paketi ve sıra numarası göndericinin kinin bir fazlası oln (y+1) tanıma paketi gönderir.

Savunmasız Tarafı Kilitlenme:

Korsanların sahte ıp kullanarak üst üste SYN paketleri göndermeleri sunucunun sahte bağlantıların kaydını tutmak için çok fazla kaynak harcamasına sebep olur. Bu problemin önerilen çözümü SYN. Cookie ve Kriptolamada saklıdır.

Veri Aktarımı:

TCP ile UDP arasında birkaç önemli farklılıklar vardır.

· Düzenli veri aktarımı

· Kayıp paketlerin tekrar aktarımı

· Yenilenen paketlerin reddedilmesi

· Hatadan yoksun veri transferi

· Yığılma/Akış kontrolü

Verilerin Düzenli Aktarımı, Kayıp Paketlerin Tekrar Gönderilmesi, Yenilenen Paketlerin Reddedilmesi

Yukarıda bahsedilen 3 aşamalı el sıkışmadan ilk iki adımda her iki bilgisayar karşılıklı olarak bir başlangıç seri numarası (ISN-Initial Seguence Number ) birbirlerine gönderirler. Bu numara isteğe bağlı olarak seçilebilir. Bu numara karşılıklı veri gönderimlerinde oluşabilecek olan parçalanma veya sıra bozulmasından etkilenmesinden veri taşınması için byteların sıralarını belirler. Her byte taşınmasında sıra numarası artırılır.

Kavramsal olarak, her byte bir sıra numarası ile gönderilir ve alıcı veriyi aldığında, bunu belirtmek için bir ACK(kabul) sinyali gönderir. Gerçekte ne oluyor peki, sıra numarası alanına sıra numarası yerleştirilmiş ilk veri byte alıcı tarafından alındığında, diğer byte’i beklediğine dair bir onay bilgisi gönderir.

Örneğin: Eğer A bilgisayarı sıra numarası 100’den başlayan 4 byte’lik bir veri gönderirse, alıcı bu verileri düzgün olarak aldığını ve diğer paketteki verileri beklediğini belirtmek için geriye değeri 104 olan bir onay sinyali gönderir.104 değerinde bir onay sinyalinin gönderilmesi 100,101,102,103 nolu byteların aldığını gösterir. Eğer 102 nolu bir onay sinyali gönderilirse bu 100 ve 104 nolu byte’ların alındığı ve 102 ve 103 nolu byteların alınmadığını gösterir.

Bununla birlikte bazen paketler kaybolabilir. Örneğin 10 farklı pakette gönderilen 10.000 byte’tan gönderim sırasında kaybolduysa; gönderici 10.000 byte’ın hepsini tekrardan göndermek zorundadır. Alıcı 1000 ile 9.999 arasındaki byteların aldığını söyleyemez bunu yerine kaybolan ilk paketteki 0 ile 999 arasındaki byteların alamadığını söyleyebilir. Bu problemi halletmek için ’seçimli onay’ (Selectime Ack) sinyali seçeneği eklenmiştir. Bu seçenek, basit TCP onayında olduğu gibi başarılı olarak alınan en son paketin sıra numarasını onaylamak yerine, paketlerin düzgün bir biçimde alınan farklı bloklarına onay verebilir. Her blok başlangıç ve sonuç sıra numaraları ile taşınır.” Yukarıdaki örneğe göre, alıcı sıra numarası 1000 ile 10000 arasında olan SACK seçeneği zorunlu değildir, sadece iki kısımda bunu destekliyorsa kullanılabilir. Bağlantı kurulum aşamasında karşılıklı olarak karara bağlanır. SACK kullanımı TCP başlığının seçimine bağlı bir bölümdür. SACK aynı zamanda SCTP de de kullanılır.

Hatasız veri transferi

Sıra numaraları ve onay sinyalleri yineleyen paketleri kaybolan paketlerin yeniden gönderilmesi gibi olumsuz durumları ortadan kaldırır ve düzenli bir veri transferine imkan saglar. Dogru bir transferi sağlayabilmek için check sun( kontrol) eklenmiştir. Yüksek oranda bit hatalarının muhtemel oldugu veri bağlantı katmanları ek olarak bağlantı hata düzeltme \bulma kapasitesini gerektirebilir. Eger TCP bügün tekrardan dizayn edilmilş olsaydı şu anda kullanılmakta olan kontrol yöntemi checksum’ un yerine 32 bitlik bir periyodik fazlalık kontrolü yüksek ihtimamli olarak olabilirdi. Zayıf checksum 2 katmanda bulunan TCPve IP nin kullandıgı en iyi tümleşik kontrolü veya CRC nin bir kısmını karşılayabilir. Bununla birlikte bu karşılama 16 bitlik TCP saglamasıfazlalık anlamına gelmez, Internet trafigi dikkatle incelenirse CRC korumalı paketler arasındaki atlamalardan kaynaklanan yazılım ve donanım hatalarının oldugu gözükür. İşte bu hataların cogunu 16 bitlik TCP sağlaması yakalamaktadır. Bu noktadan noktaya iletişimin bir prensibidir.

Yığılma kontrolü

TCP nin son parçası yığılma kontrolüdür. TCP yüksek performas saglamak ve ağ performansını ciddi derecede düşüren yığılmaların engellenmesi için pek çok sayıda mekanizma kullanmaktadır. Bu mekanizmalar tüm ağdaki veri akişını kontrol eder. Veri akışını yığılmayı teziklememesi için belli bir oranın altında tutulmasını sağlar.

Veri gönderi için onaylama gönderici tarafından , gönderici ve alıcı tarafından ağ şartlarının üstü kapalı şekilde yorumlanması için kullanır.

Bir zamanlayıcı ile birleştirilmiş TCP alıcı ve göndericileri veri akış özelliğini değiştirebilirler. Bu akış kotrolü genelde yıgılma kontrolü veya ağda yığılmaları önlemeyi temsil eder.

TCP nin modern uygulamaları iç içine geçmiş 4 algoritma barındırırlar. Yavaş- başlangıç_ yığılmalardan uzak , hızlı yeniden gönderim ve hızlı kurtarma.

TCP pencere boyutu

TCP alıcı pencere büyüklüğü alıcının bağlantı süresince tamamlayabilecegi veri boyutudur. Gönderici tarafı ilk etapda en fazla bu büyüklük kadar veri gönderebilir daha sonra alıcının alındı onayını ve pencereyi güncellendi göndermeyi keser ve devem sayacını çalıştırır. Devem sayacı TCP yi bir kilitlemeye karşı korur. Kilitleme göndericinin yeni pencere büyüklügünün güncellenmesini beklerken alıcının hiçbir veri göndermemesi durumunda meydana gelir. Devam sayacı sona erdiğinde alıcının onay paketiyle birlikte yeni pencere büyüklügünü ve TCP nin kilitlemeye maruz kalmaması için küçük bir veri paketi gönderir.

Pencere ölçeklendirme:

Yüksek bant genişliği sağlayan ağların daha etkin kullanımı için daha büyük TCP pencere büyüklüğü kullanılmalıdır.TCP pencere alanı veri akışını kontrol eder ve 2 ile 65.535 byte arasında değişen aralıktaki boyutlara sahiptir.Pencere büyüklüğünün aşılamadığı durumlarda ölçeklendirme faktörü kullanılır.İşte TCP pencere ölçeği

seçeneği en büyük pencere boyutunu 65.535’den 1GB’a kadar yükseltmek içn kulanılan bir seçenektir.Büyük boyutlarda pencer kullanımı TCP tuning adıverilen yüksek bant genişliği ve düşük gecikmeli bir TCP’yi tanımlayan tekniklerin bir parçasıdır.

Pencere ölçeği seçeneği sadece 3 aşamalı yapılan tokalaşma sırasında kulanılabilir.Bu pencere ölçeği 16 bitlik pencere alanının kaç bit sola kaydırıldığını gösterir.Bu pencere seçeneği 0 ile 14 arasındaki değerlerde olabilir.

Çoğu yönlendirici ve güvenlik duvarı iletim esnasında pencere ölçeklendirme faktörünü yeniden yazar. Bu durum alıcı-gönderi taraflarında farklı farklı pencere büyüklüğüne sebep

olabilir. Sonuç ise çok yavaş ve istikrarsız bir ağ trafiğin ortaya çıkmasıdır.Bu problem kırık-bağlı yönlendiricilerin arkasındaki alıcı ve gönderici sitelerde görülebilir.

Bağlantının Sonlandırılması:

Bağlantı sonlandırma adımı genelde 4 aşamalı tokalaşmada kullanılır.Her bir bağlantıyı birbirinden bağımsız olarak sonlandırır.Bir nokta bağlantısını sonlandırmak isterse diğer taraftaki noktanın ACK ile onaylaması için bir FIN paketi gönderir.Bu yüzden, bağlantının sonlanması içinheruç noktadan bir çift FIN ve ACK segmenti gerekir.

Eğer bir uç bağlantıyı sonlandırdıysa fakat diğer ucu sonlandırmadıysa bağlantı “Yarı açık” bir şekil alır. Bu şekilde bir taraf sonlandırmayı yaptıysa bağlantı aracılığıyla veri gönderemez fakat diğer ise taraf veri gönderebilir.

3 aşamalı tokalaşmada bağlantı A ucunun FIN göndermesi ve B ucunun FIN+ACK ile onaylaması ile sonlanabilir. Ve bu genelde kullanılan bir metoddur.

İki ucun aynı anda FIN göndermesi ile sonlandırma olabilir.Bu durum FIN/ACK sıralamasının iki yönde aynı anda geçekleşmesiyle 2 aşamalı tokalaşmada olabilir.

Hiç yorum yok:

Yorum Gönder

Popüler Yayınlar