Temel Network

Temel Network

TCP-UDP

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Hasan Alperen Selçuk

Şimdiye kadar TCP/IP katmanlarından ilk 3 katmanda çalıştık. Bundan sonra verinin nasıl gideceğine bakacağız. Transport katmanını kontrol edeceğiz. Kullanıcı uygulamalarının IP katmanına doğrudan ulaşımları yoktur. IP ve uygulama programları arasındaki bağlantıyı sağlayan iki protokol vardır: Transmission Control Protocol (TCP)’ ve ‘User Datagram Protocol (UDP)

* TCP: Bağlantı temelli bir protokol olan TCP’de kullanıcı verisi taşınmadan önce bağlantı kurulması gerekir. Protokol, ulaşım katmanında uçtan-uca güvenilir bir ortam yaratmayı amaçlar. Ortamın güvenilirliği, kaybolan paketlerin tekrar gönderilmesini temel alır. IP katmanında verilerin güvenli bir şekilde taşınacağı garantilenmez, bu işi TCP yapar. TCP gelen veriyi 64KB olarak parçalayarak
sıralı gönderilmesini sağlar. Bu sebeple her bir veri karşı tarafa ulaştığında ulaştığına dair geri dönüş verir bu sayede iletim anında kaybolan veri tekrar yollanır.

TCP veri taşınmadan önce bağlantı kurulması gerekiyor demiştik. Belki karşılaştığınız bir kavram olan “3 way handshake” olayından bahsedeceğiz. TCP katmanında haberleşmeden önce iki cihaz arasında bir el sıkışma yapılır.
Client bir serverla konuşacağı zaman ilk paket olarak bir sayı ile SYN isteği gönderir, bu sayıya sequence number denir. Server bu SYN isteğini aldığı zaman yeni bir sequence numarası üretir ve gelen sequence numarasını 1 artırarak ACK numarası üretir. Client tarafına SYN-ACK paketi gönderir. Client bu SYN-ACK numarasını alıp server’a bir tane ACK packeti yollar seq ve ack numaraları bir artar böylece paketlerin kendilerinden gittiğini anlarlar bu artırılmalardan. Bu 3 işlem gerçekleştiği anda TCP bağlantı kurulur ve haberleşme hazır hale gelir.

 

Bu el sıkışmadan sonra client her yolladığı veri karşılığında server'dan bir reply almayı bekler. Eğer ilgili reply dönmezse aynı veriyi birkaç defa göndermeye devam eder, belli bir süre sonra göndermeyi bırakır.

* UDP: TCP’yi düşünürsek verinin parçalara bölünmesi ve her parçanın yollanması sonrası karşıya ulaştığının dönüşünün beklenmesi ne kadar güvenli olsa da yavaş çalışan bir protokol olduğunu düşündürüyor. Bu durumda uygulama katmanında geliştiriciler güvenlik yerin verimliliği tercih ettiği zamanlar da olmaktadır. Burada devreye UDP girmektedir. UDP paketlerini taşımadan önce TCP de olduğu gibi bir üçlü el sıkışma gerekmez. UDP basit bir protokoldür; kaybolan verinin tekrar gönderilmesi, akış kontrolü gibi konularla ilgilenmez. Bu yüzden hızlı bir protokoldür. Basitliği nedeniyle de gerçek zamanlı uygulamalarda tercih edilir.

Farklarını bir tablo üzerinde gösterirsek;