Hikayeler

Reklam vermek için turkmmo@gmail.com

TCP ve UDP'nin Temelleri

Nizam-ı Alem

Malato psichico
Telefon Numarası Onaylanmış Üye Turkmmo Discord Nitro Booster
Yönetici
Dergi Editörü
Turnuva
Admin
Yarışma
Gümüş Üye
VIP Üye
Paylaşım
Ayın Üyesi
Altın Üye
Katılım
15 May 2013
Konular
972
Mesajlar
6,651
Online süresi
2ay 11g
Reaksiyon Skoru
5,350
Altın Konu
314
Başarım Puanı
319
TM Yaşı
12 Yıl 11 Ay 12 Gün
MmoLira
22,215
DevLira
15

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Bu konumda sizlere, Katman 4 (Ulaşım Katmanı) ve Katman 7 (Uygulama Katmanı) protokollerinin temelleri hakkında inceleme yapmaya çalışıcam. Bu bilgi, Erişim Kontrol Listelerinin (ACL'ler) nasıl çalıştığını anlamanız için gerekli bağlamı sağlayacaktır. ACL'ler genellikle TCP ve UDP portları gibi Katman 4 bilgilerine veya hatta belirli uygulama parametreleri gibi Katman 7 ayrıntılarına göre trafiği filtreler.

İletim Kontrol Protokolü (TCP)

Katman 4 protokollerini İletim Kontrol Protokolü (TCP) ile tartışmaya başlayalım. Aşağıdaki diyagram TCP başlık formatını göstermektedir. 16 bit uzunluğundaki kaynak ve hedef port alanlarına özellikle dikkat edin. Bu, 216 (65.536) olası port numarası verir.

1775382261006.png


Erişim kontrol listeleri (ACL'ler) bağlamında, bir paketteki en önemli alanlar, aşağıdaki şemada gösterildiği gibi, kaynak ve hedef MAC adresleri, kaynak ve hedef IP adresleri ve kaynak ve hedef port numaralarıdır.

1775382277644.png


Hedef MAC ve IP adresi, ağ aygıtlarının paketi doğru aygıta göndermesine yardımcı olur.

Hedef Port numarası, alıcı aygıtın verileri doğru uygulamaya iletmesine yardımcı olur.
ACL'ler, trafiğe izin verilip verilmeyeceğine karar vermek için bu alanları kullanır. Örneğin, bir ACL belirli bir IP adresinden gelen trafiği engelleyebilir veya yalnızca belirli bir porta, örneğin web erişimi için TCP 80 portuna gelen trafiğe izin verebilir.

Neden TCP port numaralarına ihtiyacımız var?

Katman 4 protokollerini anlamak için, öncelikle neden katman 4 başlığında TCP/UDP portlarına ihtiyacımız olduğunu tartışalım. Aşağıdaki diyagramda gösterilen örneğe bakalım. Aynı anda birçok uygulama çalıştıran bir sunucumuz var. Örneğin, aynı anda bir Web sunucusu, bir Minecraft sunucusu ve bir FTP sunucusu çalıştırıyor.

1775382296497.png


Şimdi, sunucunun aynı anda birçok paket aldığında neler olduğunu görelim. Tüm paketlerin hedef MAC adresi (sunucunun ağ kartının MAC adresi) ve IP adresi (sunucunun ağ kartının IP adresi) aynıdır. Bu nedenle, Katman 2 ve Katman 3 başlıklarına dayanarak, sunucunun işletim sistemi paketin verilerinin hangi uygulamaya ait olduğunu anlayamaz.

Örneğin, paket 1 Minecraft verilerini içeriyor. Sunucu bu paketi aldığında, bu verilerin Web Sunucusu işlemine veya FTP işlemine değil, Minecraft işlemine iletilmesi gerektiğini bir şekilde anlamalıdır. Aynı durum, FTP verilerini içeren paket 2 için de geçerlidir. İşletim sisteminin, bu verilerin FTP işlemine iletilmesi gerektiğini hızlı bir şekilde anlamasının bir yoluna sahip olması gerekir.

İşte burada Katman 4 başlığındaki hedef port numarası devreye giriyor. Bu numara, işletim sistemine (hat hızında) paketin verilerinin hangi uygulamaya iletilmesi gerektiğini hemen bildirir. Bu işleme Çoklama (Multiplexing) denir.

Port numaraları olmadan, cihaz veriler geldikten sonra nereye iletileceğini bilemezdi. İşletim sisteminin her paketin verisini çalışan her işleme iletmesi gerekecekti ki bu çok verimsiz olurdu.

Port numaraları kullanarak çoklama

Port numaraları kullanarak çoklama, cihazların aynı anda birçok bağlantıyı işlemesine olanak tanır. Paketler bir cihaza ulaştığında, port numarası, aşağıdaki şemada gösterildiği gibi, cihazın veriyi hangi uygulamanın alması gerektiğini belirlemesine yardımcı olur.

1775382325200.png


Sunucuda çalışan her işlem, aşağıdaki çıktıda gösterildiği gibi, belirli bir TCP portundan gelen verileri "dinler". Örneğin, Web Sunucusu 80 numaralı porttan, FTP Sunucusu ise 21 numaralı porttan veri dinler.

Kod:
Microsoft Windows [Version 11.0.25621.5339]
(c) Microsoft Corporation. All rights reserved.

C:\> netstat -a -n

Active Connections
  Proto  Local Address          Foreign Address        State
  TCP    1.2.3.4:21             0.0.0.0:0              LISTENING
  TCP    1.2.3.4:80             0.0.0.0:0              LISTENING
  TCP    1.2.3.4:443            0.0.0.0:0              LISTENING
  TCP    1.2.3.4:19133          0.0.0.0:0              LISTENING

Paketler sunucuya ulaştığında, işletim sistemi Katman 4 başlığındaki hedef port numarasını inceler. Verileri, bu port numarasını dinleyen işleme iletir. Örneğin, işletim sistemi hedef port numarası 80 olan paketleri web sunucusu işlemine iletir.

Bilinen, Kayıtlı ve Dinamik Portlar

Bir sonraki önemli nokta, paketlerin Katman 4 başlığındaki port numaralarının rastgele olmamasıdır. İnternet Atanmış Numaralar Kurumu (IANA), port numaralarının küresel atamasını yönetir. Bunları üç ana gruba ayırır:

Bilinen Portlar (0–1023): Bunlar, HTTP (port 80) veya FTP (port 21) gibi yaygın hizmetler için IANA tarafından atanır. Bu aralıkta yeni bir port almak sıkı bir inceleme gerektirir.

Kayıtlı (Kullanıcı) Portlar (1024–49151): Bunlar da IANA tarafından atanır, ancak işlem bilinen portlara göre daha kolaydır.

Dinamik veya Geçici Bağlantı Noktaları (49152–65535): Bunlar IANA tarafından atanmaz. İstemci uygulamaları tarafından geçici bağlantılar için kullanılırlar. İşletim sistemi gerektiğinde bu bağlantı noktalarını seçer.
Örneğin, bilgisayarınız aynı anda birkaç uygulama açabilir. Her uygulama farklı bir dinamik bağlantı noktası kullanır, böylece işletim sistemi bağlantıları ayrı tutabilir. Sunucular ise, istemcilerin nereye bağlanacaklarını bilmeleri için bilinen veya kullanıcı bağlantı noktalarını kullanır.

Soket nedir? TCP Oturumu nedir?

Bağlantı noktası numarasının ne olduğunu gördüğümüze göre, başka bir terime daha yakından bakalım: soket. Soket, bir IP adresi ve bir bağlantı noktası numarasının birleşimidir. İki cihaz arasındaki bağlantının bir ucunu tanımlar. Örneğin, 1.2.3.4:53000 bir sokettir; burada 1.2.3.4 IP adresi ve 53000 TCP bağlantı noktasıdır.

Soketler, cihazların paketin yükündeki gerçek verileri nereye göndereceklerini ve alacaklarını bilmelerini sağlar. Aşağıdaki şemada gösterildiği gibi, bir çift soket, TCP oturumu adı verilen benzersiz bir TCP bağlantısı tanımlar.

1775382383145.png


Örneğin, PC1 ile sunucu arasındaki TCP oturumu, aşağıda vurgulandığı gibi benzersiz bir şekilde tanımlanabilir:

Kod:
Microsoft Windows [Version 11.0.25621.5339]
(c) Microsoft Corporation. All rights reserved.

C:\> netstat -a -n

Active Connections
  Proto  Local Address          Foreign Address        State
  TCP    1.2.3.4:53000          65.3.2.1:80        ESTABLISHED

Burada önemli bir kavrama dikkat çekmek istiyorum. İnternet iletişimlerinin çoğu İstemci-Sunucu modelini kullanır.

İstemci, istek gönderen uygulamadır. Örneğin, bir web tarayıcısı bir web sayfası ister. İstemcinin rastgele atanmış dinamik bir port numarası kullandığına dikkat edin.

Sunucu, istekleri bekleyen ve bir hizmet sağlayan uygulamadır. Örneğin, istenen web sayfasını geri gönderen bir web sunucusu. Sunucunun bilinen bir port numarası kullandığına dikkat edin.

Port numaraları ve soketler kavramı, birden fazla uygulamanın ağ katmanında karışmadan aynı anda çalışmasını sağlar. Hem TCP hem de UDP aynı fikri kullanır.

TCP Oturumu Kurma

Şimdi odak noktamızı bağlantı kurma sürecine kaydıralım. Bu adımda, istemci ve sunucu port numaraları üzerinde anlaşır ve gönderdikleri ve aldıkları verileri takip edebilmeleri için sıra ve onay numaralarını ayarlarlar.

Kurulum işlemine üç yönlü el sıkışma denir. Aşağıdaki diyagram bunun nasıl çalıştığını görselleştirir:

1775382418330.png


İstemci, bağlantıyı başlatmak için sunucuya bir SYN mesajı gönderir.

Sunucu, kabul etmek ve onaylamak için bir SYN-ACK mesajıyla yanıt verir.

İstemci, bir ACK mesajıyla karşılık verir.

Bu el sıkışma tamamlandıktan sonra, istemci ve sunucu arasında veri akışı başlayabilir. Bağlantı, her iki taraftaki soketler tarafından tanımlanır.

Bağlantıyı sonlandırma zamanı geldiğinde, TCP, aşağıdaki şemada gösterildiği gibi, sonlandırma adı verilen dört adımlı bir işlem kullanır:

1775382434066.png


Bir cihaz, veri göndermeyi bitirdiğini belirtmek için bir FIN mesajı gönderir.

Diğer cihaz bir ACK ile yanıt verir.

Bu cihaz daha sonra bağlantıyı kapatmak için kendi FIN mesajını gönderir.

İlk cihaz son bir ACK ile yanıt verir.

FIN biti ("bitir"in kısaltması), bağlantının bir taraftan sonunu işaretler.

TCP ve UDP Karşılaştırması

Şimdi, önce iki protokolü karşılaştırarak odağımızı UDP'ye çevirelim. UDP, üç yönlü el sıkışma kullanarak bağlantı kurmaz veya sonlandırmaz.

Bu nedenle TCP'ye bağlantı odaklı protokol denir; bağlantıları kurar ve yönetir.

UDP, önce bağlantı kurmadan veri gönderdiği için bağlantısız protokol olarak adlandırılır.

Aşağıdaki diyagram iki protokolü karşılaştırmaktadır. Her birinin başlık boyutuna dikkat edin. Bu, temel farklılıklardan biridir.

1775382450847.png


Açıkça görüldüğü gibi TCP, uygulamalara daha fazla hizmet sunmaktadır. UDP bu ek özellikleri sağlamaz. Ancak, UDP'nin daha az hizmet sunması, TCP'den daha kötü olduğu anlamına gelmez. UDP'nin daha küçük bir başlığı olduğundan, ağa daha az ek yük getirir. UDP ayrıca, TCP'nin kasıtlı olarak yapabileceği gibi verileri yavaşlatmaz. IP üzerinden ses (VoIP) veya IP üzerinden video gibi bazı uygulamalar hata kurtarmaya ihtiyaç duymaz, bu nedenle UDP kullanırlar. Bu da UDP'yi günümüz ağlarındaki belirli trafik türleri için önemli kılar.

Kullanıcı Veri Paketi Protokolü (UDP)

TCP'nin aksine, UDP bağlantısızdır. Güvenilirlik, hata kurtarma, veri yeniden sıralama veya büyük verileri iletim için daha küçük parçalara bölme gibi özellikler sağlamaz. Aşağıdaki diyagramda gösterildiği gibi, daha küçük başlık boyutu nedeniyle daha hızlı ve daha verimlidir.

1775382468837.png


UDP daha basit olmasına rağmen, TCP gibi veri aktarımını ve çoklamayı kolaylaştırmak için port numaralarını kullanır. Başlıca avantajı, TCP'nin yaptığı tüm ekstra işleri üstlenmediği için daha az ek yük ve daha az işlem gerektirmesidir.

UDP ile veriler, ulaşıp ulaşmadığı veya doğru sırada olup olmadığı doğrulanmadan gönderilir. Bu, bazı verilerin kaybolmasına tolerans gösterebilen veya verileri kurtarmak için kendi mekanizmalarına sahip uygulamalar için iyi çalışır. Örneğin:

VoIP (IP Üzerinden Ses) UDP kullanır çünkü kayıp bir ses paketinin yeniden iletilmesi çok yavaş olur ve aramayı kesintiye uğratır.
DNS UDP kullanır çünkü bir istek başarısız olursa, istemci basitçe tekrar deneyebilir.
NFS (Ağ Dosya Sistemi) UDP kullanabilir çünkü kurtarmayı uygulama katmanında ele alır.
UDP başlığı küçüktür—sadece 8 bayt—çünkü TCP'den daha az iş yapar. TCP gibi, verileri doğru uygulamaya yönlendirmek için kaynak ve hedef port numaralarını içerir.

Port Numaraları ve Erişim Listeleri (ACL)

Tamam, günümüzde kullanılan iki katman 4 protokolü olan TCP ve UDP'yi ele aldık. Ancak, erişim kontrol listeleri (ACL'ler) bağlamında bu neden önemlidir?

Katman 4 port numaraları kavramını anlamak çok önemlidir çünkü port numaraları, Erişim Kontrol Listelerinin (ACL'ler) bir ağdaki trafiği filtrelemek için kullandığı ana araçlardan biridir.

Port numaraları, trafiğin hangi uygulama veya hizmet için olduğunu belirlemeye yardımcı olur. Örneğin, 80 numaralı port web trafiği (HTTP) için, 443 numaralı port ise güvenli web trafiği (HTTPS) için kullanılır. Bir ACL trafiği filtrelediğinde, bu port numaralarına bakabilir ve belirli trafik türlerine izin verip vermeyeceğine veya engelleyip engellemeyeceğine karar verebilir.

Örneğin, aşağıdaki diyagram, bir yönlendiricinin PC1'in HTTP üzerinden web sayfalarına erişmesini nasıl engellediğini göstermektedir. Erişim listesinin HTTP trafiğiyle eşleşmesi için 80 numaralı portu kullandığına dikkat edin.

1775382486911.png


Kaynak ve hedef port numaralarını kontrol ederek, ACL'ler yalnızca kimin veri gönderip alabileceğini değil, aynı zamanda hangi tür iletişime izin verildiğini de kontrol edebilir. Bu, ağ yöneticilerine yararlı trafiğe (web veya e-posta gibi) izin verme ve istenmeyen veya riskli trafiği (yetkisiz dosya paylaşımı gibi) engelleme olanağı sağlar.

Kısacası, Katman 4 port numaralarının nasıl çalıştığını ve bilinen port numaralarını bilmek, erişim kontrol listesi (ACL) kuralları oluşturmanıza yardımcı olur.​
 
Eline sağlık
 
Eline sağlık
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst