Bilgisayar Ağları II (Computer Networks II)

watch_later 3/10/2016
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...



sentiment_satisfied Emoticon