Paket
Gecikmesi, Paket Kaybı ve Throughput
Bilgisayar ağlarında, saniyede aktarılan toplam veri
miktarı (throughput) sınırlıdır. Ayrıca, uçtan uca gecikme ve paket kayıpları
yaşanır. Bilgisayar ağlarındaki bu sınırlamaları tümüyle ortadan kaldırmak
fiziksel olarak mümkün değildir.
Bir paket bir host’tan (kaynak (source)) yola çıkar, çok sayıda router’dan geçer ve en
sonunda bir başka host’ta (hedef (destination)) yolculuğu biter. Bir paket bir düğümden (router veya host)
komşu bir düğüme giderken (router veya host) yolu üzerindeki her düğümde
gecikmeler yaşanır. Bu gecikmeler: processing delay, queuing delay,
transmission delay ve propagation delay’dır. Bunların
tümünün toplamına toplam düğüm
gecikmesi denir.
Bir paket router A’ya geldiğinde, önce başlık
bilgilerine bakılır ve ilgili çıkış bağlantısı seçilir. Eğer router A’nın
ilgili çıkış bağlantısı üzerinde bekleyen paket yoksa doğrudan gönderilir. Eğer
bağlantı kullanılıyor ve kuyrukta bekleyen paketler varsa, gelen paket kuyruğa
eklenir.
Paket Gecikmesi
Paket Gecikme Simülasyonu |
İşlem Gecikmesi (Processing Delay)
Processing delay,
paketin başlık bilgisine bakılarak çıkış portunun belirlenmesi için geçen
süredir. Processing delay, bit seviyesinde hata kontrolü için geçen süreyi de
içerir. Yüksek hızlı router’larda processing delay mikrosaniye düzeyindedir.
Kuyruk Gecikmesi (Queuing Delay)
Queuing delay,
paketin bağlantıdan gönderilebilmesi için geçen süredir. Queuing delay bekleyen
paket sayısına bağlıdır. Bekleyen paket yoksa gecikme sıfır olur.
Diğer gecikme türlerinden farklı olarak, kuyruk
gecikmesi her paket için farklı olur. Boş bir kuyruğa 10 paket gelirse, ilk
paket gecikme olmadan gönderilir, ancak sonuncu pakete kadar her pakette
gecikme artarak devam eder. Gecikme değerini analiz ederken ortalama bir
gecikme değeri veya belirli bir değerden fazla olma olasılığı hesaplanabilir.
Kuyruk gecikmesinin önemli olup olmaması,
paketlerin kuyruğa geliş trafiği, bağlantının iletim oranı ve trafiğin
karakteristiğine (periyodik veya burst) bağlıdır.
a (paket/s) paketlerin kuyruğa geliş oranı.
R (bps) iletim oranı ve kuyruktan çıkan bit sayısı.
L paketlerin boyutu (bit).
Kuyruğa saniyede gelen bit sayısı:
L*a
bps
Trafik yoğunluğu:
L*a/R
Eğer L*a/R > 1 olursa kuyruğa gelen bit sayısı kuyruktan ayrılan bit sayısından büyüktür.
Eğer kuyruk uzunluğu sınırsız olursa paketlerdeki kuyruk gecikme süresi sonsuza
doğru artarak devam eder. Eğer kuyruk uzunluğu sınırlı olursa bir süre sonra
gelen paketler atılmaya başlar.
Eğer L*a/R ≤ 1 olursa kuyruğa gelen bit sayısı kuyruktan ayrılan bit sayısından küçüktür.
Eğer paketler periyodik olarak L/R saniye aralıklarla gelirse kuyruk
gecikmesi olmaz. Eğer paketler periyodik ancak burst şeklinde gelirse, örneğin N paket (L/R) saniye
aralıklarla gelirse, ilk pakette gecikme olmaz sonrakilerde gecikme artarak
devam eder.
Gerçekte paketlerin kuyruğa gelişi rastgeledir
Trafik yoğunluğu 1’e yaklaştıkça kuyruk gecikmesi hızla artar.
Trafik Yoğunluğu ve Ortalama Kuyruk Gecikmesi Grafiği |
Kuyruklar sınırlı kapasiteye sahiptir ve router
tasarımına ve fiyatına bağlıdır. Trafik yoğunluğu 1’e yaklaşırken paket
gecikmesi sonsuza doğru artmaz. Paket tamamen dolu bir kuyruğa gelirse saklamak
için yer olmadığından paket kaybı olur. Trafik yoğunluğu arttıkça paket kayıp
oranı artar. Bir düğüm için performans, paket gecikmesinin yanında paket atılma
olasılığıyla da değerlendirilir.
İletim Gecikmesi (Transmission Delay)
Bir paketin tamamı router’a geldikten sonra
iletilir (Store and Forward) . Transmission
delay, bir paketin tamamının iletim ortamına verilebilmesi için geçen
süredir. Bir paketin toplam boyutu L bit ve router A ile router B arasındaki
bağlantının iletim oranı R bps ise, transmission delay, L/R saniye olacaktır.
Transmission delay, mikrosaniye düzeyindedir.
Yayılma Gecikmesi (Propagation Delay)
Bir bit bağlantı üzerine gönderildiğinde diğer
router’a kadar yayılım yapar. Propagation
delay, bir bitin bağlantının bir ucundan diğer ucuna ulaşması için geçen
süredir. Propagation delay, sinyalin iletim ortamındaki yayılım hızı ile
mesafeye bağlıdır ve d/s (distance (m), speed (m/s)) şeklinde gösterilir.
Wide-area network’lerde yayılım gecikmesi milisaniye düzeyindedir.
Egzersiz
Aşağıdaki 10 araç bulunmaktadır. Ücret toplama
birimleri (tollboots) bilgisayar ağlarındaki router benzeri görev yapar. Bir
araç için ücret toplama biriminde geçen süre 12s ve araçların hızı 100km/saat
ise, 10 aracın yola çıkması için geçen toplam süre (transmission delay) 10 x
12s = 120s olur. Tüm araçların ikinci ücret toplama birimine ulaşması için
geçen süre (propagation delay) ise 120s + 1saat = 62 dakika olur.
Sorunun Simülayonu |
Araçlar 1000km/saat hızına sahip olursa ne
değişir? Araçların ücret toplama
biriminde harcadığı süre 1dakika olursa ne değişir? İki ücret toplama
birimi (iki router arasındaki) arasındaki toplam gecikme aşağıdaki gibi ifade
edilir.
Sorunun Simülasyonu |
Uçtan Uca Gecikme (End to End Delay)
Uçtan uca gecikme, kaynak ile hedef arasındaki yol
üzerinde bulunan router sayısına bağlıdır. Ağda tıkanıklık olmadığı
düşünüldüğünde (kuyruk gecikmesi ihmal edildiğinde) aşağıdaki gibi ifade
edilir.
Burada N yol üzerindeki router sayısını
göstermektedir. Katmanlarda oluşan gecikmeler (modülasyon, kodlama, paket
oluşturma süresi) uçtan uca gecikmeyi önemli oranda artırabilir.
Traceroute programı
uçtan uca gecikmeyi elde etmek için kullanılır. Bir hedef host adı girilerek
traceroute program çalıştırıldığında, kaynakta çalışan program hedefe özel
paketler gönderir. Bu paketler birçok router’dan geçerek hedefe doğru gider.
Her router aldığı özel paket için kaynağa kendi adını ve adresini içeren mesaj
gönderir. Kaynak ile hedef arasında N-1
router varsa, kaynak N tane
özel paketi ağa gönderir. Her paket 1 ile N arasında numaralandırılır. N hedef içindir.
N. sıradaki router, N sıra numarasına sahip paketi
alır ve hedefe yönlendirmeden kaynağa kendi adresi ve adını içeren bir cevap
mesajı gönderir. Kaynak her geri dönen cevap için gönderme zamanı ile alış
zamanına göre geçen süreyi hesaplar. Traceroute programı ile her router için 3 paket gönderilir. Kaynaktan (N+1). sıradaki bir router’dan
dönen süre bazen N. sıradaki router’dan daha az olabilmektedir.
Throughput
Bilgisayar ağlarında, gecikme ve paket
kayıplarının yanı sıra önemli bir performans ölçütü uçtan uca throughput
değeridir. Host A ile Host B arasında bir dosya transferi yapıldığını
varsayalım.
Anlık Throughput:
Herhangi bir anda Host B’nin dosyayı alma oranıdır (bps).
Ortalama Throughput:
Dosyanın toplam boyutunun (F)
toplam transfer süresine (T)
oranıdır ve F/T şeklinde
gösterilir.
Bazı uygulamalarda düşük gecikme ve belirli bir
eşik değerin üstünde sabit throughput (İnternet telefon için 24kbps, real time
video 256kbps) istenir. Dosya transferi gibi uygulamalarda gecikme kritik
değildir ancak olabildiği kadar yüksek throughput değeri istenir. İki Host
arasında veri aktarımı yapılırken, kurulan yol üzerinde en düşük transmission oranına sahip link iletişimin troughtput değerini belirler.
Sunucudan istemciye bir dosya transfer edilsin. Rs server ile router arasındaki
iletim oranını, Rc router ile
client arasındaki iletim oranını göstermektedir. Server ağa Rs bps oranında bit gönderir ancak
router Rc bps oranından fazla
bit gönderemez.
Rs ve Rc Simülasyonu |
Eğer Rs < Rc ise, throughput değeri Rs olur. Eğer Rs > Rc ise, throughput değeri Rc olur.
Eğer Rc
< Rs ise, router içinde bekleyen bit sayısı sürekli artar.
Eğer server ile client arasında N tane link varsa,
throughput değeri min{R1 , R2 , ... , RN} olur.
F bit
boyutundaki dosyanın transfer süresi F/min{R1,…, RN} olur.
N Tane Link Simülasyonu |
R ağın
core(çekirdek) kısmındaki iletim oranıdır ve R >> Rs ve R >> Rc dir.
Eğer R
>> Rs veya R >> Rc ise
ağda tıkanıklık olmaz. (>> birkaç yüz kat)
Darboğaz Simülasyonu |
Egzersiz
Rs = 2Mbps, Rc = 1Mbps R=5Mbps oranına sahiptir.10 download aynı anda yapılırsa her iletişim için
iletim oranı 5Mbps/10 = 500kbps olur. Uçtan
uca throughput değeri 500kbps olur.
Bu durumda throughput değeri erişim ağları
tarafından değil, ağdaki çekirdek kısım tarafından belirlenir.
Katmanlı Mimari
İnternet son derece karmaşık bir sistemdir.
İnternet, çok sayıda uygulama ve protokoller, farklı uç sistemler, paket
anahtarlar ve iletim ortamlarına sahiptir. Günlük hayatta çok sayıda karmaşık
sistemler kullanılmaktadır. Uçakla yolculuk sırasında yapılan tüm işler, bir
dizi iş olarak ifade edilebilir. Bilet alımı, bagaj kontrolü, kapıya gidiş,
uçağa biniş gibi işler tanımlanabilir. Uçak hedef havaalanına indikten sonra
yapılan işlemlerde bir dizi işlem olarak ifade edilebilir. Yolculuk sırasında
yapılan tüm işlemler parçalar halinde ayrılmıştır. Her iş parçasının diğer iş
parçasıyla ilişkisi bulunmaktadır. Her katman bir hizmet sağlar. Her katman üst
katmandan bir giriş alır ve alt katmana çıkış sağlar.
Uçuş Kalkış-İniş Simülasyonu |
Katmanlı mimari modülerlik sağlar. Her katman üst katmana aynı hizmeti
sağladığı ve alt katmandan aynı hizmeti aldığı sürece kendi yaptığı işi değiştirse bile sistemin diğer kısmı bu değişiklikten
etkilenmez. Uçak yolculuğu simülasyonunda, kapılarda yapılan işler değişse
bile diğer katmanlarda yapılan işlerde herhangi bir değişiklik olmayacaktır.
Bilgisayar ağlarında, her katmanda yazılım ve
donanımlar tarafından protokoller çalıştırılır. Her katman, kendisinin
altındaki katmanın hizmetlerini kullanarak belirli işleri yapar.Farklı katmanlardaki protokoller protokol yığını
(protocol stack) olarak adlandırılır. İnternet protokol yığını 5 katmandan oluşur: fiziksel (physical), bağlantı (link), ağ (network), ulaşım (transport) ve uygulama (application).
OSI (Open System Interconnection) başvuru modeli 7
katmandan oluşur: fiziksel, bağlantı, ağ, ulaşım, oturum, sunum ve uygulama.
Uygulama Katmanı (Application Layer)
İnternet uygulama katmanı, ağ uygulamalarının ve
uygulama katmanı protokollerinin bulunduğu katmanıdır. Internet uygulama
katmanı, HTTP, SMTP, FTP ve DNS gibi protokolleri bulundurur. Uygulama katmanı
protokolü çok sayıdaki uç sistemde dağıtık çalışır ve bir uç sistemden diğerine
veri aktarır. Uygulama katmanı veri parçası mesaj olarak adlandırılır.
Ulaşım Katmanı (Transport Layer)
İnternet ulaşım katmanı, uygulama katmanı
mesajlarını uç sistemlerde çalışan uygulamalar arasında aktarır. Ulaşım katmanı
veri parçası segment olarak
adlandırılır. İnternet ulaşım katmanında iki protokol vardır. Bunlar TCP ve UDP'dir. TCP, uygulama katmanına bağlantı yönelimli (connection-oriented) ve güvenilir (reliable) hizmet sağlar.
TCP uygulama mesajlarının hedefe ulaşmasını garanti eder. TCP, akış kontrolü (flow control) ve tıkanıklık kontrolü (congestion control) yaparak
kaynağın iletim hızını ayarlar. UDP, güvenilir olmayan hizmet sağlar. UDP, akış
ve tıkanıklık denetimi yapmaz. UDP, hedefe segmentin gitmesini garanti etmez ve
geri bildirim beklemez.
Ağ Katmanı (Network Layer)
İnternet ağ katmanı, bilgisayarlar arasında ağ
katmanı paketlerinin taşınmasını sağlar. Ağ katmanı veri parçası datagram olarak adlandırılır.
İnternet ağ katmanı, IP protokolünü bulundurur. Ağ katmanı, IP protokolünün
yanı sıra çok sayıda yönlendirme protokolünü de bulundurur. İnternet ağ katmanı
kaynak ile hedef host arasında router’lar üzerinden datagram yönlendirir.
Bağlantı Katmanı (Link Layer)
Link katmanı hizmetleri, link katmanındaki
protokol tarafından sağlanır. Link katmanı protokolleri, Ethernet, WiFi ve
Point-to-Point Protocol (PPP). Bir datagram hedef hosta giderken bir link
üzerinde Ethernet protokolü ile diğerinde ise PPP ile taşınabilir. Link katmanı
veri parçası frame (çerçeve) olarak
adlandırılır.
Fiziksel Katman (Physical Layer)
Link katmanı, çerçeveleri bir düğümden sonraki
düğüme aktarırken, fiziksel katman çerçeve içindeki bitleri bir düğümden
sonraki düğüme taşır. Fiziksel katman protokolleri iletim ortamına bağlıdır.
OSI Modeli
ISO (International Standard Organization)
tarafından 1970’li yıllarda bilgisayar ağlarını 7 katmanla organize etmiştir.
Bu model Open Systems Interconnection
(OSI) olarak adlandırılmıştır. OSI modelinde, application, presentation,
session, transport, network,
data link ve physical katman bulunmaktadır.
Application, transport, network, data link ve physical katmanlarıda İnternet
katmanlarıyla hemen hemen aynı işler yapılır.
Sunum katmanı, verinin gösterimi, şifreleme
ve sıkıştırma hizmetlerini sağlar. Oturum katmanı, veri gönderimi sırasında
checkpoint oluşturur ve bir sorun oluşursa recovery işlemlerini yapar.
Mesaj, Segment, Datagram ve Frame
Router ve switch protokol yığınındaki tüm
protokolleri bulundurmazlar. Alt
katmanları bulundururlar. Link-layer switch 1. ve 2. katmanı, router ise 1., 2. ve 3. katmanı bulundurur. İnternet router’ları IP
protokolünü çalıştırır. Link layer switchler IP protokolünü çalıştırmazlar ve
katman 2 adresleriyle işlem yaparlar. Hostlar 5 katmanı da çalıştırırlar.
Gönderen host’ta her
katman üst katmandan aldığı veriye kendi başlık bilgisini ekler ve alt katmana
gönderir. Uygulama katmanı mesajı (M) ile ulaşım katmanı
başlık bilgisi (Ht) birleştirilerek ulaşım katmanı segment’ini oluşturur (encapsulation). Ağ katmanı,
ulaşım katmanından aldığı segment’e başlık bilgileri (Hn) ekleyerek ağ katmanı
datagram’ı oluşturur. Ardından link-layer başlığı (Hl) eklenerek frame
oluşturulur.
Mesaj, Segment, Datagram ve Frame Simülasyonu |
Her veri parçasında iki tür alan vardır: overhead data (başlık bilgisi) ve payload data (üst katman veri parçası).
Her katmana ait veri parçası alt katmanda birden fazla parçaya bölünebilir. Ulaşım
katmanı, uygulama katmanı mesajını birden fazla parçaya bölüp başlık
bilgilerini her birisine ekler. Ağ katmanı, ulaşım katmanı segment’ini birden
fazla parçaya bölüp başlık bilgilerini her birisine ekler. Alıcı tarafta bu
parçalar tekrar birleştirilir.
Ağ Saldırıları
İnternet, günümüzde birçok kurum için kritik öneme
sahiptir. Ağ güvenliği, bilgisayar
ağlarına saldırıların nasıl yapıldığı, bilgisayar ağlarının saldırılara karşı nasıl korunabileceği ve bilgisayar ağlarının saldırılara karşı
yapılandırılması konularıyla ilgilenir.
İnternet’e bağlanıldığında, web sayfalarından veri
almak, e-posta mesajları almak, mp3 dosyaları almak, telefon çağrısı yapmak,
video izlemek ve arama yapmak gibi işleri yapılır. Ancak bu veri alma/gönderme
sırasında kötücül yazılımlarda (malware)
bilgisayarlara gelebilir. Kötücül yazılımlar, bilgisayarımızdaki
dosyaları silebilir, verileri ve şifreleri İnternet üzerinden başka
bilgisayarlara gönderebilir.
Bilgisayarlar binlerce cihazla (botnet) aynı ağda çalışır. Kötücül
yazılımlar bir hosta bulaştıktan sonra, bu hosttan İnternet üzerindeki diğer
hostlara da bulaşır (self-replicating).
Böylece İnternet üzerinde çok hızlı yayılırlar. Kötücül yazılımlar, virüs, Trojan veya worm olarak
kullanıcı bilgisayarlarına bulaşırlar. Virüsler
bilgisayara bulaşmak için kullanıcının etkileşimine ihtiyaç duyarlar (e-posta
eki açmak vb.).
Worm’lar kullanıcı etkileşimi olmadan
bulaşabilirler. Kullanıcı bilmeden korumasız bir uygulamayı çalıştırır, bu
uygulama İnternet’ten bir kötücül yazılımı alır ve çalıştırır. Ardından diğer
hostları tarar ve aynı uygulamayı çalıştıran diğer bilgisayarlara bulaşır. Trojan atları ise, faydalı bir
yazılımla gelen kötücül yazılımdır.
Güvenlik tehditlerinin önemli kısmı Denial of Service (DoS) olarak
sınıflandırılır. Web sunucular, e-posta sunucuları, DNS sunucuları, kurumsal
ağlar DoS saldırılarına hedef olabilir. İnternette DoS saldırıları çok
yaygındır ve her yıl binlerce DoS saldırısı gerçekleşir. İnternetteki DoS
saldırıları 3 şekilde gruplanır:
Vulnerability attack: İyi
oluşturulmuş mesajlar hedef sunucu uygulamasına gönderilir. Belirli bir sırada
gönderilen mesajlar sunucu uygulamasını durdur, hizmeti yavaşlatır veya
bozabilir.
Bandwith flooding: Çok
sayıda paket hedef host’a gönderilir. Mesajlar bağlantıda tıkanıklığa neden
olur ve normal paketlerin erişimi engellenir.
Connection flooding: Hedef
host’a çok sayıda TCP bağlantısı açılır ve normal bağlantı istekleri kabul
edilemez.
Bandwidth flooding saldırısında saldırı yapan kişi
sunucunun bant genişliği kadar (R bps) trafik oluşturursa hasara neden olur. Bu
duruma bir saldırı ile neden olunamaz. Çok sayıda saldırı ile yeterli düzeyde
trafik oluşturulması gerekir. Eğer router aynı kaynak host üzerinden gelen
trafiği algılar ve engellerse saldırı engellenmiş olur.
Dağıtık DoS (Distributed DoS (DDoS)) saldırılarında kaynak host başka hostları
kullanabilir.
DDos Saldırı Simülasyonu |
Birçok kullanıcı kablosuz cihazlarla İnternet’e bağlanmaktadır.
Kablosuz ortamlar güvenlik açığı oluşturur. Kablosuz vericinin kapsama alanında
bulunan bir pasif alıcı tüm iletilen paketlerin kopyasını alabilir. Pasif alıcı
paket sniffer ile tüm
kopyaları saklayabilir. Sniffer’lar kablolu birçok Ethernet ağda da
yerleşebilir. Kötü amaçlı kişiler ağa erişim router’larına erişim hakkı
alabilir ve tüm paketleri kopyalar. Kopyalanan paketler offline analiz edilerek
önemli bilgiler elde edilebilir.
İçeriği geçerli bir paket (kaynak adres (yanlış adres)), hedef adres, paket
içeriği) oluşturulup İnternet’e gönderilir. Bu paketi alan router kendi
yönlendirme tablosunu değiştirir. İnternet’te paketlere yanlış adresler
kullanarak bulaşma IP spoofing olarak
adlandırılır. Bunu engellemek için end-point
authentication yapılır. Gelen mesajın doğru yerden gelip
gelmediğini belirler.
Global Siber Saldırılar |
Man in the Middle olarak
adlandırılan saldırıda iki uç sistem arasında bir noktada kötü amaçlı kişi
iletişime dahil olur. Sadece paketlerin kopyasını almakla kalmaz, paketlere
bulaşabilir, paketleri silebilir veya değiştirebilir. Public Key Infrastructure
(PKI) veya karşılıklı authentication ile önlem alınabilir.
Bir sonraki yazımda görüşmek üzere...