TAŞIMA KATMANI (LAYER 4)

  • Layer-4, uygulamalar için bağlantıya dayalı data akışı desteği, güvenlik, akış kontrolü ve çoklama gibi hostlar arası bağlantı servislerini sağları.
  • TCP ve UDP bu katmanda en yaygın kullanılan protokollerdir. (Diğerleri; SCTP, SSL,TLS)

TCP vs UDP

TCPUDP
GüvenilirGüvensiz
Bağlantı TemelliBağlantısız
Segmentlerin tekrar gönderimi ve akış kontrolü
Segmentlerin sıralanması
Segmentlerin doğrulanması
Yavaş transferHızlı ve garantisiz transfer (best effort)

Bir paketin hangi protokol ile gönderileceği 4. Katmanda belirlenmektedir.  Taşıma protokolü olarak TCP kullanılırsa, güvenli fakat biraz yavaş bir bağlantı sağlamaktadır. Yani, bir paket karşıya gönderilirken aynı zamanda hata kontrolü yapılarak paketin sorunsuz bir şekilde teslim edip edilmediği kontrol edilmektedir. UDP seçilirse çok hızlı bir gönderim olur fakat her hangi bir kontrole tabi tutulmadığı için olası paket eksikliğinde dosyalar zarar görebilmektedir.  Özetle, TCP paketin karşıya gidip gitmediğini titizlikle kontrol ederken UDP için bu söz konusu değildir.

Birden Fazla Bağlantıyı Ayırt Etme

  • Farklı uygulamalar eşsiz port numaraları kullanır.
  • Port numaraları, uygulamaları bir birinden ayırt etmek için kullanılır.
1

Görseli inceleyecek olursak, Mevcut bir server var ve bu server üzerinden üç farklı hizmet sağlanmakta. Verilen bu hizmetlerin bir birileri ile karışmaması için, her protokolün kendisine ait bir eşsiz port numarası bulunmaktadır. Bu sayede veriler, bir birileri ile

karışmadan rahatlıkla iletilmektedir. Örnek verecek olursak, POP3 protokolü bir mail hizmetini sağlıyor ve bunu 110 numaralı port üzerinden gelen isteklerden almaktadır. Server mail hizmetini sağlarken bir taraftan da bağımsız olarak bir HTTP hizmeti sağlamakta ve bu iki hizmeti aynı anda yaparken, yapılan işlemler bir birileri ile çakışmamaktadır. Bu kontrollerin sağlanmasında ki en büyük yardımcı ise her protokolün kendisine ait özel bir port numarasına sahip olmasından kaynaklanmaktadır.

Port Adresleme

2

Yukarıdaki görselde, bir serverda bulunan 3 ayrı hizmetin bir birilerine engel olmadan tek bir server üzerinden nasıl hizmet sağladığından bahsetmiştik.

Peki, bir kullanıcı, bir serverda bulunan birden fazla hizmeti aynı anda nasıl almaktadır?

Kullanıcının bilgisayarında hedef porta (serverda hizmet almak istediği alan) istek atılmadan önce, kendi bilgisayarında

bir birinden bağımsız, aynı numarayı aynı anda başka bir hizmette kullanmamak şartı ile değişken bir port açılmaktadır. Bu açılan port numarası ile sunucudan hizmet almak istediği port numarasına bağlanmaktadır.  Yukarıdaki görseli inceleyelim (Görsel 2). Bir kullanıcı iki ayrı hizmeti tek bir sunucudan almak istiyor. Görsel içerisinde bulunan iki farklı sarı çerçeve ile işaretlenmiş alanı inceleyecek olursak, ilk çerçevede kullanıcının kendi bilgisayarında 1305 numaralı bir port oluşturulmuş ve bu port numarasını, serverda ki 21 numaralı port için kaynak port olarak gösterilmiştir. İkinci çerçeveyi inceleyecek olursak, kullanıcının bilgisayarında 1099 numaralı farklı bir port oluşturulmuş ve serverda ki 80 numaralı port için kaynak port olarak tanımlanmış. Yani kullanıcı, serverda ki 21 numaralı port ile haberleşmek istediğinde kendi bilgisayarındaki 1305 numaralı port üzerinden haberleşirken, serverda ki 80 numaralı port ile haberleşmek istediğinde kendi bilgisayarında ki 1099 numaralı portu kullanmak zorundadır. Bu sayede iki ayrı hizmeti aynı anda sağlıklı bir şekilde almaktadır.

3

Bilgisayarınızda bulunan CMD ekranını açıp, netstat komutunu girerek kendi bilgisayarınızda hangi port numarası açık ve gitmek istediği yerin neresi olduğunu rahatlıkla inceleyebilirsiniz.

İyi Bilinen Port Numaraları

4

Segmentation (Parçalara Ayırma)

5

Layer-4’te veri TCP veya UDP tarafından küçük parçalara ayrılır. Yanda ki görseli (görsel 5) inceleyecek olursak. Application katmanından gelen bir veri, TCP yani Layer 4’de parçalarına ayrılarak headerına karşı tarafa hangi protokol üzerinden iletileceğini belirterek bir alt katmana (taşıma katmanına) iletilmektedir. Verinin parçalara ayrılmasında ki amaç ise;  daha kolay veri taşımak ve veri doğrulamasını kolaylıkla sağlamak amacı ile yapılmaktadır.                  

Three Way Handshake (Üçlü El Sıkışma)

Three way handshake TCP/IP networkünde son kullanıcı ve server arasında bağlantı oluşturabilmek için kullanılan yöntemdir. Adımlar: SYN- SYN,ACK ve ACK paketi gönderilerek tamamlanır. Konuyu biraz daha derinlemesine anlatacak olursak;

6

SYN: Synchronize (Sekronize)

ACK: Acknowledge (Doğrulama)

  1. Oturum açmak için kullanıcı server’a  oturum açma isteği gönderir(SYN).
  2. Server kullanıcıya cevap gönderir (SYN-ACK)
  3. Sonunda ise kullanıcı server’a tekrar bir yanıt gönderir(ACK).

Adımları Tanımlarla Anlatacak Olursak;

Kullanıcı bir oturum açma isteği gönderiyor ve bu göndermiş olduğu oturum açma isteğini numaralandırıyor (Görsel 6, ilk adım seq:1000). Server kullanıcıya yanıt gönderirken, iki paket göndermektedir. Paketin bir tanesi, kullanıcının oturum açma isteğinde numaralandırdığı sayının üzerine +1 ekleyerek geri gönderirken(Görsel 6, 2. Adım ack:1001), diğer paket ise server’ın paketi kendisinin de takip edebilmesi için gönderdiği pakete bir numara atamaktadır (Görsel 6, 2. Adım seq: 2000). Son olarak, kullanıcıya gelen paket bir doğrulama işlemi yapılmaktadır (ACK). Kullanıcı almış olduğu SYN-ACK paketini doğrulamak için, ACK paketi göndermektedir ve bu işlemi yaparken ACK paketinin içerisinde ki numaralarla yapmaktadır.  (Görsel 6, 3. Adım (seq:1001 numarasını aldığını ack:2001 diyerek  servera doğruladığını bildirmekte))

TCP Oturum Sonlandırma

Oturum sonlandırma işlemi için SYN paketi yerine, FIN (Finish) paketi gönderilmektedir. Yapılan işlemler yukarıda ki anlatınlar ile aynıdır fakat sadece SYN yerine FIN gitmektedir.

7

TCP Tekrar Sıralama

8

        Segmantation işleminde (görsel 5) bölünen paketler, hedefe gitmek için birden fazla yoldan ayrı ayrı gidebilir. Paketlerin farklı şekilde ilerlemesi ve birleştirildiğinde bozulmaması için belirli sıra numarasına göre gelen paketler hedef noktasında segmentlerine göre yeniden sıralanmaktadır.  Bu özellik sadece TCP’de mevcut olup UDP’de böyle bir işlem söz konusu değildir.

TCP Windowing

9

İletişim sırasında, bağlantının durumuna bakılarak paket gönderim sayısının arttırılarak ya da azaltılarak gönderilmesidir. Bunun için üçlü el sıkışmada (Three way handshake (Görsel 6)) bir window size isimli yapı belirlenmektedir. Belirlenen yapı TCP header’ında ki windowing bölümüne yazılmaktadır. Bu değer, hattın bant genişliğine ve iletişimdeki kullanıcıların durumuna göre değişmektedir. Yukarıda ki görseli inceleyecek olursak;

A: Sol Bilgisayar

B: Sağ Bilgisayar

Adım 1) A’dan B’ye bir paket gönderilmiştir. A’dan gelen 1 numaralı paketi aldığını söylemek için B, A’ya 2 numaralı ACK paket göndermektedir.

Adım 2) A’dan B’ye paket gönderilmiştir. A’dan gelen 2 ve 3 numaralı paketin B’ye ulaştığını söylemek için B, A’ya 4 numaralı ACK paketini göndermiştir.

Adım 3) A’dan B’ye paket gönderilmiştir. A’dan 4,5,6 ve 7 numaralı paketler B’ye gönderilmiş fakat, B, 4,5 ve 6 numaralı paketi alıp 7 numaralı paketi alamadığını belirtmek için A’ya 7 numaralı ACK paketi göndermektedir.

Adım 4) Adım 3’de, B’ye çeşitli sebeplerden dolayı B’ye ulaştırılamayan 7 numaralı paket, 4. Adımda 8 ve 9 numaralı paketlerle beraber tekrar gönderilmiştir. B, A’dan gelen 7,8 ve 9 numaralı paketi aldığını A’ya söylemek için 10 numaralı ACK paketi göndermektedir.

Verinin tamamı gönderilene kadar, veriye ait sıra numaralı parçalar;  segmantation işleminde kendilerine verilen numaraya göre baştan sona yeniden birleştirilene kadar devam etmektedir. Sıra numarası atlaması ya da yer değiştirmesi gibi bir işlem söz konusu değildir.

UDP

  • Güvenilir olmayan veri transferi
  • Yeniden sıralama işlemi yok
  • Bağlantısız (İki cihaz arasında veri gönderimi esnasında bir oturum oluşturmamaktadır. (Görsel 6))
  • Veri kaybı meydana gelebilir
  • Hızlı iletim gerektiren uygulamalar için kullanılmaktadır.