İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 1: VERİ İLETİM ORTAMLARI. VERİ İLETİMİ. ASENKRON İLETİM (RS232) Türkçe (İngilizce) karşılıklar Bantgenişliği (bandwidth) Sayısal (digital) Salınım (oscilation) Microdalga (microwave) Kızılötesi (infrared) Bükümlü Tel Çifti (twisted pair) Eşeksenel (coaxial) Karışma (crosstalk, interference) Optik Lifler (optical fibers) Algılayıcı (detector) Dalgaboyu (wavelength) Tek-modlu (single mode) Çok-modlu (multi mode) Telsiz haberleşme (wireless communication) Transponder (uydu alıcısı-vericisi) Gecikme (latency) Baud miktarı (baud rate) Çoğullama (multiplexing) Çift yönlü (full duplex ya da duplex) Yarı çift yönlü (half duplex), Tek yönlü (simplex) Frekans bölümlü çoğullama (frequency division multiplexing) Dalgaboyu bölümlü çoğullama (wavelength division multiplexing) Zaman bölümlü çoğullama (time division multiplexing) Kodlayıcı-kodçözücü (codec) Eşzamansız (asynchronous) Bölüm Hedefi Bu bölümü bitirdiğinizde • Veri iletim ortamlarını (bakır teller, optik lifler, radyo dalgaları, haberleşme uyduları, mikrodalga ve kızılötesi dalgalar) • Bir sinyal üzerinden aktarılabilecek veri miktarını • Sayısal verinin analog sinyal üzerinden aktarımını • Baud miktarı nedir? • Çoğullama tekniklerini • Eşzamansız haberleşme nedir? öğrenmiş olacaksınız. 1.1 Veri İletimi İçin Kullanılan Ortamlar Veri iletimi için pek çok ortam kullanılır. Bu ortamları, bakır tel, cam lifler, hava olarak sıralayabiliriz. Bakır teller kullandığımızda veri elektrik akımı kullanarak, cam lifler 1 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ üzerinde ışık yardımı ile, hava da ise radio dalgaları, mikrodalga ya da kızılötesi ışınlar ile aktarılır. Doğal olarak, her ortamda o ortamın özelliklerine uygun bir kodlama yapılması gerekir. LF-low frequency (düşük frekans) MF-medium frequency (orta frekans) HF-high frequency (yüksek frekans) VHF-very high frequency (çok yüksek frekans) UHF-ultra high frequency (ultra yüksek frekans) SHF-super high frequency (super yüksek frekans) EHF-extremely high frequency (aşırı yüksek frekans) THF-tremendously high frequency (muazzam yüksek frekans) Şekil 1.1 Elektromanyetik spectrum ve haberleşmede kullanımı [1]’den alınmıştır Boşlukta tüm elektromanyetik dalgalar, frekanslarında bağımsız olarak, aynı hızda ilerler. Bu hız ışık hızı olarak adlandırılır ve 3x108 m/sn’dir. Işık hızı bir üst limittir. Hiçbir sinyal bundan daha hızlı gidemez. Bakırda ve camda yayılma hızı bunun 2/3’üne düşer ve frekansa bağımlı hale gelir. Frekans (f), dalga boyu (λ) ve boşluktaki ışık hızı (c) arasındaki ilişki: fλ=c şeklinde ifade edilir. 1.1.1 Bakır Teller Bakır kablo üzerinde taşınan elektrik sinyali bir elektromanyatik enerji oluşturur. Bu enerji havada aktarılır ve başka bir bakır tele ulaşınca o tel üzerinde, elektromanyatik enerjinin şiddetine bağlı olarak, o tel üzerinde elektrik akımı oluşturur. Buna da karışma (crosstalk, interference) denir. Eğer iki bakır tel birbirine dik açı oluşturacak şekilde duruyorsa karışma en az seviyede olur. Teller birbirine parallel ve yakın ise, bir tel üzerindeki güçlü bir akım diğer tel üzerinde de oluşturulabilir. Bu problemi çözmek için, bakır teller bükümlü tel çifti ya da eşeksenel kablo şeklinde veri iletimi için kullanılır. 2 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bükümlü tel çifti veri aktarımı için kullanılan en eski ortamlardan biridir. Bir mm kalınlığındaki yalıtılmış iki bakır telin bükülmesi ile meydana gelir. Genellikle telefon bağlantıları için kullanılır. Bükümlü bakır teller üzerindeki sinyali güçlendirmeye gerek duymadan birkaç kilometre taşıyabiliriz. Bükümlü tel çiftleri analog ve sayısal sinyal taşımak için kullanılabilir. Kategori 3 bükümlü tel çiftleri dört çift bükümlü telin bir araya gelmesi ile oluşur ve bilgisayar ağlarında da kullanılır. Kategori 5 bükümlü tel çiftleri 1988’de tanıtılmıştır. Bunların kategori 3’ten farkı cm’ye düşen büküm sayısının daha fazla olmasıdır. Büküm sayısının artması karışma oranının düşmesini ve sinyal kalitesinin daha iyileşmesini sağlar. Şekil 1.2 Kategori 3(a) ve kategori 5(b) bükümlü tel çiftleri. [1]’den alınmıştır. Eşeksenli kablolarda, bakır kablo güçlü bir metal zırh ile kaplanır. Bu zırh içteki bakır tel üzerinde taşınan sinyalin elektromanyetik enerji oluşturmasını engelleyeceği gibi dişarıdaki elektromanyetik enerjinin içteki bakır telde karışma oluşturmasını engeller. Bu durumda eşeksenli kablolar birbirlerine parallel olarak konumlandırılabilirler. 1.1.2 Optik Lifler Optik iletim sistemleri üç temel birimden oluşur: ışık kaynağı, iletim ortamı (çok ince cam lifler) ve algılayıcı. Optik lifin bir tarafına ışık kaynağını, diğer tarafına da algılayıcıyı yerleştirerek tek yönlü bir iletim ortamı oluşturulur. Optik ortamda, bakır tellerde görülen karışma problemi yoktur. Farklı veriler, bir optik lif üzerinde, eş zamanlı olarak, pek çok dalgaboyu üzerinden aktarılabileceği için optik liflerin veri taşıma kapasitesi çok büyüktür. Şekil 1.3 Bir optik lifin yapısı. [1]’den alınmıştır. Veri genelde elektrik siyali üzerinden aktarıldığı için optik liflerin kullanıldığı ortamlarda, önce elektrik sinyalinin ışığa dönüştürülmesi, aktarılması ve sonra da verinin optik sinyalden elektrik sinyaline dönüştürülmesi gerekir. Işık kaynağı olarak LED (Light Emitting Diode) ya da lazer kullanılır. Işığın varlığı bir değerini, olmaması ise sıfır değerini ifade eder. Optik lifler üzerinde sinyal, güçlendirmeye gerek duymadan 3 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ kilometrelerce gidebilir. Ayrica verinin bozulma olasılığı da çok düşüktür. Buna karşın optik liflerin çekilmesi, lifte kırık oluştuğunda yerinin bulunması ve tamir edilmesi güçtür Optik lifleri tek-modlu ve çok-modlu olmak üzere iki grupta toplayabiliriz. Çok-modlu liflerde ışın lif içinde birkaç farklı yol kullanabilir. Tek-modlu liflerde, lifler çok dardır ve ışının takip edebileceği tek bir yol vardır. 1.1.3 Radyo Dalgaları Radyo, televizyon yayınlarında olduğu gibi elektromanyetik radyasyon bilgisayar verisi aktarmak için de kullanılır. Elektromanyatik radio dalgalarını kullanarak aktarım yapılan ağlara radyo frekansında (RF) çalışıyor denir. RF üzerinden yapılan aktarımlarda iki birim arasında fiziksel bir bağlantı olması gerekmez, her bir birimde bir anten olması yeterlidir. Bu nedenle, bu tip haberleşmeye telsiz (wireless) haberleşme denir. RF ağlarında sinyalin aktarılacağı alanın büyüklüğüne bağlı olarak farklı boyutlarda antenler kullanılır. Kilometrelerce uzağa yapılan bir aktarım için bir kaç metrelik anten gerekirken bir bina içindeki aktarım için bilgisayara sığan bir anten yeterli olur. Şekil 1.4 VLF, LF,MF ve HF bantlarındaki radio dalgalarının davranışı. [1]’den alınmıştır. Şekil 1.4(a)’da gösterildiği gibi VLF, LF ve MF bantlarındaki radio dalgaları yerkabuğunun şekline göre hareket ederler. HF bantındaki radio dalgaları ise atmosferdeki iyonosfer tabakası tarafından yansıtılırlar. 1.1.4 Haberleşme Uydular Telsiz haberleşmede kullanılan araçlardan biri de haberleşme uydularıdır. Uydular kendilerine gelen sinyali alır güçlendirir ve, gelen sinyal ile karışmaması için, farklı bir frekans üzerinden yeryüzüne gönderirler. Bazı uydu vericileri daha karmaşık işlemler de yapabilir. Bir uydu üzerinde birden fazla alıcı ve verici bulunabilir. Bir uydu vericisi yayın yaptığı alanın boyutunu ayarlayabilir. Bir uydu pek çok müşteriye hizmet verebilir. Uydunun yerleştirildiği yükseklik (yörüngesi) onun periyodunu da belirler. 35,800 km’ye yerleştirilen bir uydunun periyodu 24 saattir. Bu dünyanın dönüş hızına eşit olduğu için uydu her zaman bulunduğu yerde duruyormuş hissi uyandırır. Uyduların yerleri belirlenirken Van Allen kuşaklarına da dikkat edilmelidir. Bu kuşaklarda dünyanın manyetik alanı nedeniyle çok yüklü parçacıklar bulunur. Bu kuşaklara yerleştirilecek uydular bu yüksek enerjiye sahip parçacıklar tarafından kolayca 4 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ yok edilebilirler. Haberleşme uydularının yerleştirileceği yükseklik, yörünge tipi, sinyalin iki uç arasındaki gecikmesi (latency) ve tüm yer kürenin kapsanması için gerekli uydu sayıları A. Tanenbaum’un Computer Networks kitabından alınan Şekil 1.5’te verilmişir. GEO-geostationary/geosynchronous orbit (yeryüzü ile eşzamanlı yörünge) MEO-medium-earth orbit (yeryüzüne orta yakınlıkta yörünge) LEO-low-earth orbit (yeryüzüne yakın yörünge) Şekil 1.5. Uyduların yörüngeleri ve yörüngelerin özellikleri. [1]’den alınmıştır. Şekilde de gösterildiği gibi yörünge yüksekliği arttıkça gecikme artar. Bu da verinin daha uzun sürede yerine ulaşması demektir. Yörünge yüksekliği azaldığında ise yeryüzünün tümünü kapsamak için gerekli uydu sayısı ve bunların koordinasyonunun karmaşıklığı artar. Diğer yöründelerde olduğu gibi, yeryüzü ile eşzamanlı yörüngelere de dilediğiniz kadar uydu yerleştiremezsiniz. Örnegin ekvator üzerindeki yörüngede yer kalmamış gibidir. Çünkü uydu sinyallerinin birbirine karışmaması için aralarında 4-8 derece fark olması gerekir. Bu da 360 derece düşünüldüğünde 90-45 uyduya karşılık gelmektedir. 1.1.5 Mikrodalga Mikrodalga sinyalleri uzun mesafelerdeki telefon verilerini aktarmak amacıyla kullanılmıştır. Yüksek frekanslarda çalıştıkları için düşük frekanslardaki dalgalardan daha fazla veri taşıyabilirler. Ne yazik ki, mikrodalgalar metal yapılardan geçemez, iyi bir aktarım için açık bir görüş alanı gereklidir. Bu nedenle mikrodalga aktarım arada hiç bir engel bulunmayacak şekilde konumlandırılmış iki kule arasında uygun hava şartları altında başarılı bir şekilde gerçeklenebilir. 1.1.6 Kızılötesi Dalgalar Uzaktan kumanda aygıtları kızılötesi dalgaları kullanarak veri aktarırlar. Kızıl ötesi dalgalar küçük alanlarda kullanılır. Sinyal gönderen aletin alıcıya yönlendirilmiş olması gerekir. Kızıl ötesi donanım ucuzdur ve antene ihtiyaç duyulmaz. 5 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bilgisayar ağlarında oda boyutunda bir alan içinde haberleşme gerçeklenecekse kızılötesi teknoloji kullanılır. Bilgisayar ile yazıcının haberleşmesi buna bir örnek olabilir. 1.2 Bir Sinyal Üzerinde İletilebilecek Veri Miktarı Her iletim sisteminin bir bantgenişliği vardır ve veri iletimi sırasında bu bantgenişliğinin üzerine çıkılamaz. Bantgenişliği bir iletim hattında taşınabilecek en fazla frekansa sahip sinyali gösterir ve Hertz (Hz) ile ölçülür. Eğer bir iletim hattının kapasitesi 5000 Hz ise bu sistem saniyede 5000 ya da daha az salınım yapan sinyalleri iletebilir. Sonuç olarak, radyo dalgaları, ses, ışık, elektrik akımını kullanan tüm veri iletim sistemlerinin bir bantgenişliği vardır. 1920lerde Nyquist, B bantgenişliğine sahip bir hattın, V voltaj seviyesi kullanması durumunda (ki bu ikili sistemlerde 2 dir), aktarılabilecek en fazla veri miktarının (D) aşağıda gösterilenden fazla olamayacağını ispatlamıştır. D = 2Blog2V Buna göre 3 000Hz kapasiteli bir hat üzerinde iki seviyeli aktarım yapıldığında 6 000b/sn iletim kapasitesinin üzerine çıkılamaz. 1948’de Shannon bu çalışmaya sinyal-gürültü (S/N) oranını da ekleyerek gerçek kapasitenin sistemdeki gürültüye de bağlı olduğunu ve aktarılan veri miktarının, voltaj seviyesi ne olursa olsun, etkin/efektif kapasiteden (C) fazla olamayacağını göterdi. C (saniyede aktarılan bit miktarı) = Blog2(1+S/N) Sinyal-gürültü oranı hattın fiziksel özelliklerine bağımlıdır ve, genelde, decibel(dB) birimi ile 10log10S/N şeklinde ifade edilir. Bu oran analog telefon hatlarında 30dB’dir. Bu da S/N’nin 1000 olduğunu gösterir. Bu da, bantgenişliği 3 000Hz olan bir telefon hattında 30 000 bitten fazlasının aktarılamayacağı anlamına gelir. 1.3 Sayısal Verinin Analog Sinyal Üzerinden Aktarılması Sayısal veriyi doğru akım üzerinden taşımak çok zordur. Çünkü oluşan kare dalgalar kolayca bozulabilir. Bu sorun verinin alternatif akım üzerinde taşınması ile çözülür. Taşıyıcı olarak sinüs dalgası kullanılır. Bu dalganın genlik (amplitude), frekans (frequency) ya da fazını (phase) değiştirerek 0 ve 1’ler ifade edilir. Bu yöntemler ile verinin sinüs sinyali üzerinde taşınmasına genlik modülasyonu, frekans modülasyonu ve faz modülasyonu denir. 6 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 1.6 Genlik (b), frekans (c) ve faz (d) modülasyonu ile sayısal verinin(a) ifade edilmesi. [1]’den alınmıştır. Şekil 1.6’da görüldüğü gibi her bitin aktarımı için belli bir zaman aralığı ayrılmıştır. Bu teknoloji modemlerde, sayısal veriyi analog iletim ortamlarında taşınabilecek hale getirmek için kullanılır. Faz modülasyonunda faz değişimi 45, 135, 225 veya 315 derece olabilir. Donanım sinyaldeki faz değişimini ölçülebilir. Bu durumda her bir faz değişimine bir bitten daha fazla veri kodlanabilir. Ölçülen faz değişimi kodlanan bitleri de ortaya çıkarır. Bir iletim hattından saniyede alınan örnek sayısı o hattın baud miktarını (baud rate) verir. Alınan her örnek tek bir biti ifade ediyorsa baud rate iletilen veri miktarına (bit rate) eşittir. Örneğin, günümüz modemlerinde genelde saniyede 2400 örnekleme yapılır. Bu da 2400 baud miktarına karşılık gelir. Ancak her örneklemenin birden fazla veri ifade ettiği durumlar olabilir. Örneğin voltaj seviyelerinin arttırılması ya da pek çok faz kayma derecesinin kullanılması gibi. Bu durumda veri miktarı baud miktarının birkaç katı olabilir. Örneğin dört faz kayması iki biti kodlayabilir. Bu da veri miktarını 2400baud’luk bir hat üzerinde 2x2400=4800b/sn’ye çıkarmak demektir. Yeni teknolojilerle donatılmış modemler birkaç modülasyon tekniğini bir arada kullanarak, veri miktarını daha da arttırırlar. Örneğin dört faz değişimi ve 4 genlik değişimi, 16 değişime karşılık 7 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ gelir. 16 değişim dört bit ifade eder. Bu da 2400 baudluk bir hat üzerinde 4x2400=9600b/sn’lik veri iletimine karşılık gelir. Veri iletimi gerçekleyen bağlantılar çift yönlü (full duplex ya da duplex), yarı çift yönlü (half duplex), tek yönlü (simplex) olmak üzere gruplara ayrılabilir. Çift yönlü bağlantılarda haberleşme cihazı aynı anda, tek bir bağlantı üzerinden, hem geliş hem de gidiş yönünde veri aktarımı yapabilir. Bu, farklı yönlerde farklı frekansa sahip dalgalar kullanarak günümüz modern modemlerinde gerçeklenebilir. Yarı çift yönlü bağlantılarda aynı anda sadece tek bir yönde aktarıma izin verilir. Tek yönlü bağlantılarda ise bağlantının yönü bellidir ve değiştirilemez. Bağlantıların özellikleri kullanılan teknolojiye göre de değişiklik gösterebilir. 1.4 Çoğullama Teknikleri Çoğullama teknikleri iki ana başlık altında toplanabilir: frekans bölümlü çoğullama (frequency division multiplexing) ve zaman bölümlü çoğullama (time division multiplexing). Ancak günümüzde frekans bölümlü çoğuşamanın bir şekli olan dalgaboyu bölümlü çoğullamanın (wavelength division multiplexing) yoğun bir şekilde kullanılması o konuyu da bir alt başlık olarak ele almamıza neden olmuştur. 1.4.1 Frekans Bölümlü Çoğullama (FBÇ) Değişik frekanslara sahip sinyaller, birbirleri ile karışmayacak şekilde sinyal aralıklarına yerleştirildikten sonra birlikte taşınabilir. Şekil 1.7, üç frekansın çoğullanmasını gösterilmiştir. Şekil 1.7 Üç kanaldan gelen sinyalin FBÇ ile birleştirilmesi. [1]’den alınmıştır. 8 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Genelde kullanılan yöntem oniki 4000Hz’lik ses kanalının 60-108 kHz bantına çoğullanmasıdır. 1.4.2 Dalgaboyu Bölümlü Çoğullama (DBÇ) Dalgaboyu bölümlü çoğullamada da frekans bölümlü çoğullamada olduğu gibi, aynı ortam üzerinde, aynı anda, farklı sinyallerin taşınması amaçlanmıştır. Şekil 1.8’de dört dalgaboyu için çoğullama işlemi gösterilmiştir. Farklı dalgaboyundaki sinyaller birleştirici (combiner) kullanarak bir araya getirilir ve varış noktasında bir ayrıştırıcı (splitter) yardımıyla birbirlerinden ayrılırlar. Şekil 1.8 Dört farklı dalda boyunun aynı optik lif üzerine çoğullanması. [1]’den alınmıştır. Frekans bölümlü çoğullamadan farklı olarak, dalgaboyu bölümlü çoğullamada dalgaboylarının ayrılması (kırınım ızgarası, diffraction grating) pasif olarak yapılır ve bu nedenle daha güvenilirdir. 1.4.3 Zaman Bölümlü Çoğullama Frekans ve dalgaboyu çoğullamadan farklı olarak, zaman bölümlü çoğullamada veri taşıyan ortamın farklı kaynaklar tarafından zaman içinde paylaşımı söz konusundur. Bir modem tarafından yaratılan analog veri uç birimlerde kodlayıcı-kodçözücü (codec) kullanarak sayısallaştırılır. 4 KHz bantgenişliğindeki bir telefon kanalı kodlayıcı tarafından saniyede 8000 kez örneklenir (125 μsn’de bir örneklenerek). Her örneklemede 7 bitlik veri üretilir. Her örnekleme süresi 125 μsn olduğu için çoğullama sırasında her kanala 125 μsn’de topladıkları veriyi aktarabilecek kadar süre verilir. Doğal olarak çoğullanan verinin taşındığı kanalın kapasitesi, çoğullanan tüm kanallardan gelen veriyi taşıyacak kadar olmalıdır. Şekil 1.9’daki gibi 24 kanalın çoğullandığı düşünülürse çoğullama kanalının kapasitesi 125 μsn’de en az 24x7=168 bit taşıyabilmelidir. Bazı kontrol bitlerinin eklenmesi ile bu sayı şekilde de gösterildiği gibi 193 bite ulaşmıştır. Şekildeki örnek Kuzey Amerika ve Japonya’da T1 olarak bilinen taşıyıcının yapısını gösterir. 125 μsn’de 193 bit taşınması kapasitenin 1.544 Mb/sn olduğunu gösterir. 9 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 1.9 T1 (1.544 Mb/sn) taşıyıcısının veri yerleşim yapısı. [1]’den alınmıştır. Çoğullanmış veri de çoğullanabilir. Şekil 1.10’da dört T1 taşıyıcısının çoğullanması ile oluşan T2 taşıyıcısı (6.312 Mb/sn), yedi T2 taşıyıcısının çoğullanması ile oluşan T3 taşıyıcısı (44.736 Mb/sn) ve altı T3 taşıyıcısının çoğullanması ile oluşan T4 taşıyıcısı (274.176 Mb/sn) gösterilmiştir. Şekil 1.10 T1 verisinin daha yüksek kapasiteli taşıyıcılar üzerine çoğullanması. [1]’den alınmıştır. 1.5 Eşzamansız Yerel İletime Örnek: RS-232 RS-232 EIA (Electronic Industries Association) tarafından geliştirilmiş bir standarttır. +15V ve -15V arasında iki voltaj seviyesi kullanarak 15 metre civarındaki birimler ile haberleşmek için kullanılır. Modem, klavye ya da terminal gibi kısa mesafelerdeki birimlere sayısal veri aktarmak için geliştirilmiştir. Veri karakter olarak taşınır. İletim seri yapılır (bitler ardışıl gönderilir). İletimin eşzamansız (asynchronous) olması nedeniyle gönderici ve alıcının koordine olması gerekmez. Gönderen birim belli bir formatta hazırlanan veriyi hatta aktarır. Alıcı ise devamlı olarak hattı dinlemektedir, verinin gelişini bildiren işareti aldıktan sonra gelen veriyi toplar ve karakterleri oluşturur. Her karakterin yedi bitten oluşması gelen verinin işlenmesinde kolaylık sağlar. RS-232’de, eksi voltaj seviyesi 1, artı voltaj seviyesi 10 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 0 anlamındadır. Hattın boş olduğu eksi voltaj seviyesi ile ifade edilir. Veri gönderileceği voltajın artı değere çekilmesi (0, başlangıç biti) ile ifade edilir ve ardından yedi bitlik karakter verisi gönderilir. Her bit için voltaj belli bir süre aynı seviyede tutulur. Gönderici ve alıcı birimler bu süreye göre ayarlanmıştır. Her karakterin sonuna bir bitiş biti (1) eklenir. 15 0 -15 hat boş zaman başlangıç 1 biti 0 1 0 1 1 0 bitiş biti hat boş Şekil 1.11 RS-232’de veri iletimi RS-232’de, başlangıç ve bitiş bitleri de göz önüne alındığında, yedi bitlik karakter verisini taşımak için dokuz bit göndermek gerekir. RS-232 iletim ortamının yapısı ile, haberleşme protokolleri hakkında da bilgi vermeye başladık. Görüldüğü gibi veri aktarımında birimler belli kurallara uymak zorundadır ve haberleşme cihazlarındaki donanım ve yazılımlar bu kurallara uyulmasını sağlar. Bu kurallara standart adı verilir. Uluslararası standartlar ISO (International Standards Organization) tarafından üretilir ve yayınlanır. Bunun dışında ITU (International Telecommunications Union), ANSI (American National Standards Institute), EIA (Electronic Industries Association), IEEE (Intitute for Electrical and Electronic Engineers), IETF (Internet Engineering Task Force) standart üretimine katkıda bulunur. Bu organizasyonlar belli bir konu üzerinde standart üretirken birlikte çalışmaya ya da farklı zamanlarda üretilmiş standartların birbiri ile çelişmemesine özen gösterirler. 11 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 2 : ANAHTARLAMA : DEVRE ANAHTARLAMA. MESAJ ANAHTARLAMA. PAKET ANAHTARLAMA. Türkçe (İngilizce) karşılıklar Devre Anahtarlama (circuit switching) Mesaj Anahtarlama (message switching) Paket Anahtarlama (packet switching) Sakla-ve-gönder (store-and-forward) Çerçeve (frame) Ek yük (overhead) Sanal devre (virtual circuit) Bölüm Hedefi Bu bölümü bitirdiğinizde • Anahtarlama nedir? • Devre anahtarlama • Mesaj anahtarlama • Paket nedir? • Genel çerçeve yapısı • Ek yük • Paket anahtarlama • Paket anahtarlamada kaynakları niçin daha verimli kullanırız • Sanal devreleri öğrenmiş olacaksınız. Haberleşmede amaç verinin bir noktadan, haberleşmek istenen diğer noktaya aktarılmasıdır. Ne yazık ki, bu iki nokta arasında doğrudan bir hat bulunması pratik olarak çok masraflı ya da imkansızdır. Bu nedenle, veri anahtar adı verilen bağlantı noktalarında bir hattan diğerine aktarılarak uçtan uca iletilir. Anahtarlar ilk telefon hatlarından günümüze kadar, haberleşme sistemlerinin vazgeçilmez elemanları olmuşlardır. Anahtarların yapılarını daha sonraki bölümlerde inceleyeceğiz. Bu bölümde anahtarlama teknikleri üzerinde duracağız. 2.1 Devre Anahtarlama Devre anahtarlamada haberleşecek iki uç düğüm arasında bir yol (devre) kurulur. Bağlantı boyunca belirlenen yol kurulu kalır ve veri aktarımı bu yol üzerinden gerçeklenir. Devre anahtarlamalı veri aktarımında iki aşama vardır : 1) Devrenin kurulması. Bu aşamada ilgili uç düğümler arasında özel sinyalleşme mesajları kullanılarak bir yol kurulur. 2) Veri aktarımının başlatılması. 1 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 2.1 Devre anahtarlama Birinci aşamada uç düğümler arasında bir yol kurulamazsa bağlantı gerçeklenemez. Bağlantı iki uç düğümden biri tarafından koparılabilir (bitirilebilir). Telefon şebekesi bu anahtarlama tipinin en güzel örneğidir. Zamana duyarlı gerçek zaman uygulamaları için devre anahtarlama en uygun ortamı oluşturur. Daha önceden kurulmuş devre üzerinden yaratılan trafik bekletilmeden aktarılır. 2.2 Mesaj Anahtarlama Devre anahtarlamanın en önemli dezavantajı bağlantı süresi boyunca kurulan yolun ve bu yol üzerinde aktarılacağı öngörülen kapasitenin korunmasıdır. Ne yazık ki, tüm haberleşme tiplerinde sabit bir veri aktarımı söz konusu değildir. Telefon konuşmalarınızı düşünün bazen konuşur, bazen dinler, bazen düşünürsünüz. Ya da aktarılan bir video filmini düşünün bazı sahneler hareketli bazıları ise durağandır. Aktarılan veri miktarı zamana göre değişim gösterir. Bu durumda, devre anahtarlamalı bağlantılar için belirlenmiş kapasite efektif olarak kullanılamayabilir. Devre anahtarlamaya getirilen alternatiflerden biri mesaj anahtarlamadır. Mesaj anahtarlamada aktarılması planlanan veri mesaj adını alır. Mesaj yaratıldıktan sonra iletilmek üzere ağa gönderilir. Mesajin iletimi öncesinde bir yol kurulması söz konusu değildir. Mesaj bir düğümden bir sonrakine sakla-ve-gönder yöntemi ile iletilerek varış noktasına kadar yönlendirilir. Bu yöntemde bir mesajı kaynak düğümden varış düğümüne aktarırken geçilen tüm düğümlerde gelen mesaj öncelikle saklanır, ulaşması gereken kaynak düğüm düşünülerek bir sonraki düğüm belirlenir ve o düğüme göndermek için işlemler başlatılır. 2.3 Paket Anahtarlama 2.3.1 Paket Nedir ? Paketler bir bağlantı sırasında aktarılması planlanan verinin küçük parçalara bölünmüş halidir. Mesaj anahtarlamanın geliştirilmiş halidir. Mesaj boyutunun değişken olması mesaj anahtarlamanın uygulamasında anahtarlarada bellek sorunu yaratır. Ayrıca uzun mesajlarda mesajin başındaki veri, mesajın sonundaki veri gelene kadar bekletilir. Bu da, zamana duyarlı uygulamalarda sorunlara neden olur. 2 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Herkes tarafından kabul edilen tek bir paket yapısı yoktur. Donanım teknolojisine bağlı olarak paket yapısı da değişir. Belli bir ağ teknolojinde paket aktarımı için oluşturulan yapıya çerçeve (frame) denir. Bir çerçeve genellikle Şekil 2.2’deki yapıya sahiptir. çerçeve başı veri bloğu çerçeve sonu Şekil 2.2 Çerçevenin genel yapısı Şekilde de görüldüğü gibi verinin önünde ve arkasında çerçevenin başlangıcını ve sonunu gösteren küçük bloklar vardır. Bu bloklarda adres, hata kontrolü vb gibi veri aktarımı sırasında kullanılan ağ teknolojisine özel kontrol bilgisi bulunur. Şekilden de anlaşıldığı gibi paketlere bölerek aktarırım sırasında taşınan veri miktarı artar. Gerçekte taşınması istenen veriye ek olarak gönderilen fazlalıklara ek yük diyoruz. Aktarım sırasında ek yük ne kadar azaltılırsa kullanıcı verisine o kadar fazla alan (kapasite) kalır. Paket Anahtarlamaya dönüş Paket anahtarlama temelde mesaj anahtarlamanın sakla-ve-gönder yöntemini kullanır. Ancak veri tek bir mesaj halinde gönderilmez. Daha küçük boyutlardaki paketlere yerleştirilir. Küçük paketlere yerleştirilmiş veri daha hızlı hareket edebilir. Bir bağlantıya ait paketlerden biri herhangi bir düğüme varırken aynı bağlantının başka bir paketi o düğümden çıkabilir. Paket anahtarlamada da mesaj anahtarlamada olduğu gibi bağlantı öncesinde yol kurulmaya gerek duyulmaz. Paket, mesaj ve devre anahtarlamanın çalışması, zaman bazında, Şekli 2.3’te incelenebilir. 3 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 2.3 Zaman bazında paket (a), mesaj (b) ve devre(c) anahtarlamanın incelenmesi Paket anahtarlamada aynı bağlantıya ait bir paket bir öncekinden farklı bir yolu kullanarak varış noktasına ulaşabilir. Bu da paketlerin varış düğümünde sıralanmasını gerektirir. Paketlerin varış düğümüne ulaştırılırken farklı yollar izlemesi her paketin düğümler üzerinde ayrı ayrı işlenmesi ve o an için en uygun yoldan varış düğümüne yönlendirilmesinin sonucudur. Bu nokta hataya duyarlılık söz konusu olduğunda bir avantaja dönüşür. Kaynak-varış arasındaki bir düğüm bozulduğunda ya da bir bağlantı koptuğunda alternatif yolların kullanılması mümkündür. Devre anahtarlamalı yöntemde kurulan yolun değiştirilmesi mümkün değildir. Paket anahtarlama yöntemi ağ üzerindeki kaynakları en iyi şekilde kullanmayı hedefler. Kaynakları önceden rezerve etmesi söz konusu değildir. Ancak bu durum gerçek zamanlı ve belli bir kapasiteye ihtiyaç duyan uygulamalar için istenmeyen sonuçlar yaratabilir. Bu nedenle, gerçek zamanlı uygulamalarda tercih edilen bir yöntem değildir. 2.3.2 Paket Anahtarlama Temelli Ağlarda Ağ Kaynakları Daha İyi Paylaşılır Bu konuyu aşağıdaki basit örnek üzerinde anlatmak daha kolay olabilir. Altı düğümlü (A, B, C, D, E ve F düğümleri) bir haberleşme ağımız olduğunu ve bu ağ üzerinde devre temelli bağlantıların kurduğunu düşünelim. Bu durumda, B ve D düğümleri arasında kurulmuş bir bağlantı D-E, E-F ve F-B hatlarını kullanacaktır. Aynı ağ üzerinde, daha sonra, A ve C düğümleri arasında başka bir bağlantı kurmak istersek D ve B düğümleri arasındaki bağlantının bitmesini beklememiz gerekir. Çünkü E-F hattının kullanılıyor 4 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ olması A ve C düğümleri arasında yeni bir bağlantı kurulmasını engeller. Şekil 2.4’te gösterildiği gibi. A Yeni bağlantı istegi B Bağlantı E D F C Şekil 2.4 Devre anahtarlamada aynı kaynakları kullanacak iki bağlantı isteğinin ardışıl gelmesi durumu Aynı ağ yapısı üzerinde paket anahtarlama tekniğini kullanılırsa her iki bağlantı da Şekil 2.5’de görüldüğü gibi gerçeklenebilir. Bu durumda ikinci bağlantı birinci bağlantının sona ermesini beklemeden paket aktarımına başlayabilir. Bu da kaynakların nasıl daha verimli kullanıldığını gösterir. 5 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ A B E D F C Şekil 2.5 Paket anahtarlamada aynı kaynakları kullanacak iki bağlantı isteğinin ardışıl gelmesi durumu Uç noktalar arasında bir yol kurulurken hangi düğümlerin seçileceği konusundan bu bölümde bahsedilmemiştir. Bu konu daha sonraki bölümlerde detaylı olarak incelenecektir. 2.4 Sanal Devreler Görüldüğü gibi devre anahtarlamanın ve paket anahtarlamanın kendilerine göre hem avantaj hem de dezavantajları var. İki tekniğin avantajlarından yararlanmak için sanal devreler (virtual circuits) geliştirilmiştir. • Sanal devrelerde, devre anahtarlamada olduğu gibi, bağlantı isteği geldiğinde bağlantının gerçekleneceği yol belirlenir ve bu yol üzerindeki kapasitenin bir bölümü bağlantı için ayrılır. Ayrılan kapasite bağlantının ihtiyaçlarına cevap verecek düzeyde olmalıdır. Aksi halde bir devre kurulamaz ve bağlantı gerçeklenemez. • Sanal devreler üzerinde veri paketler halinde taşınır. Ancak bu paketlerin başlık bölümleri paket anahtarlamada kullanılan paketlerin başlık bölümlerinden daha küçüktür. Çünkü kurulmuş bir yol üzerinde yönlendirme yapmak daha kolaydır. Bu nedenle paketlerdeki ek yük daha az olur. Paketlerin başlıklarındaki yönlendirme amaçlı bilgiler bağlantının kurulması sırasında belirlenir ve daha sonra yaratılan paketlerin başlığında bu bilgiler kullanılır. • Bir sanal devreye ait paketler her zaman aynı yolu takip ederek varış noktasına ulaşır. Paketlerin sırasının değişmesi mümkün değildir. • Bir hat, kapsitesi elverdiğince, pek çok sanal devre tarafından paylaşılır. 6 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ • Bir sanal devre, kaynak veya varış düğümlerinden birinin isteği sonucu koparılabilir. Bu durumda, o sanal devre için ayrılmış kaynaklar (hatlar üzerindeki kapasite vd) diğer sanal devrelerin kurulumunda kullanmak için ağa iade edilir. 7 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 4: AĞ TOPOLOJİSİ ve YEREL ALAN AĞLARI Türkçe (İngilizce) karşılıklar Yerel alan ağları (Local Area Networks, LANs) Metropol alan ağları (Metropolitan Area Networks, MAN) Geniş alan ağları (Wide Area Networks, WAN) Çizge (graph) Örgü (mesh) Yıldız (star) Ağaç (tree) Halka (ring) Veriyolu (bus) Alıcı-verici (transceiver) Tekrarlayıcı (repeater) Çatışma (collision) Dolgu (pad) Gidiş-geliş süresi (round-trip time) Çerçeve hata sınaması (checksum) Hub (kablo göbeği) Ternary (üçlü) Jetonlu halka (token ring) Yapısız (ad-hoc) Bölüm Hedefi Bu bölümü bitirdiğinizde • Ağ topolojilerini • Ethernet standardını • Manchester kodlamasını • CSMA/CD tekniğini • Ethernet çerçeve yapısını • Hızlı Ethernet’i • Gigabit Ethernet’i • Jetonlu halka ağını öğrenmiş olacaksınız. Bilgisayar ağlarını boyutlarına (kapsadıkları alanın büyüklüğüne) göre Yerel Alan Ağları (YAA), Metropol Alan Ağları (MAA) ve Geniş Alan Ağları (GAA) olmak üzere üç grup altında toplamaktayız. YAAlar bir odayı, binayı ya da kampüsü kapsayabilecek boyutta olup, en fazla birkaç km uzunluğunda ağlardır. MAAlar bir şehri kapsayacak boyuttadırlar. Bir şehirdeki kablolu TV ağı MAA olarak gösterilebilir. GAAlar ise coğrafi olarak büyük alanları (bir ülke ya da kıta boyutunda) kapsarlar. Bu bölümde YAAlar üzerinde durulacaktır. Protokol seviyesine inmeden önce ağ topolojisi ve farklı topolojiler hakkında bilgi verilecektir. 4.1 Ağ Topolojileri 1 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Haberleşme ağlarını topolojik yapılarına göre gruplandırırız. Bu bölümde sıkça kullanılan özel ağ topolojileri tanıtılacaktır. Düğümler (ki bu düğümler ağımızdaki bilgisayarları ve diğer haberleşme birimlerini gösterir) arasında bağlantılar oluşturarak, tüm düğümlerden diğerlerine bir kaç yol üzerinden erişimi sağlayan topolojilere örgü (mesh) topoloji diyoruz. Örgü topolojilerde her zaman olası tüm bağlantıların bulunması beklenmez. Eğer tüm bağlantılar gerçeklenmişse buna tam bağlı örgü topolojisi denir. Şekil 4.1’de sekiz düğümden oluşmuş tam bağlı bir örgü topolojisi gösterilmiştir. Bir örgü topolojinin tam bağlı olması için N(N-1)/2 bağlantısının bulunması gerekir. Burada N düğüm sayısını göstermektedir. Şekil 4.1. Tam bağlı örgü ağ Yıldız (star) ağlarda tüm düğümler merkezdeki bir düğüme bağlanırlar ve düğümler arasındaki haberleşme merkez düğüm üzerinden gerçeklenir. 2 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 4.2 Yıldız ağ Halka (ring) ağlarda ise, ağ bir düğümden diğerine geçerek uzar. Düğümler arasındaki bağlantıların mutlaka bir halka oluşturması gerekir. Şekil 4.3 Halka ağ Ağaç (tree) ağlarda ise düğümler arasındaki bağlantılar veri yapısı dersinden de hatırlayacağınız ağaç şeklini oluşturacak biçimde gelişir. Bu yapının bir özelliği herhangi bir düğümden bir başka düğüme sadece tek bir yol kullanılarak gidilmesidir. Bu yapılarda iki düğüm arasında birbirinden bağımsız alternatif yollar kurulamaz. Şekil 4.4 Ağaç ağ Veriyolu (bus) ağlarda ise tüm bilgisayarlar tarafından paylaşılan bir veri yolu vardır. Tüm bilgisayarlar ortamı dinleyerek kendilerine gelen veriden haberdar olurlar. Şekil 4.5 Veriyolu ağı 3 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 4.2 Yerel Alan Ağlarında Kullanılan Standartlar Bu bölümde standart haline getirilmiş bazı yerel alan ağ protokolleri incelenecektir. 4.2.1 Ethernet (IEEE 802.3) Ethernet ve IEEE 802.3 standartları aynı tekniği kullanırlar ancak paket yapılarında birkaç farklılık vardır. Orijinal Ethernet 10 Mb/sn kapasitesi için geliştirilmiştir ancak daha sonra 100 Mb/sn ve 1 Gb/sn kapasitelerine de destek vermiş ve güncelliğini yitirmemiştir. Bu nedenle, Ethernet üzerinde diğer standartlardan daha fazla durulacaktır. 10 Mb/sn Ethernet ortamında pek çok kablo segmanı ve tekrarlayıcı olabilir ancak herhangi alıcı-verici çifti arasındaki uzaklık 2.5 km’yi geçmemelidir. Bir alıcı-vericiden diğerine ulaşmak için ez fazla dört tekrarlayıcı geçilmelidir. Bir segman en fazla 500 m uzunluğunda olabilir. Ethernet kablolama yöntemleri Şekil 4.6’da gösterilmiştir. Hub sözcüğü için Türkçede kablo göbeği ya da tekrarlayıcı kullanılmıştır. Bu ders boyunca her üç terim de kullanılabilir. Şekil 4.6. Ethernet kablolama yöntemleri. (a) vampir bağlantısı, (b) bağlayıcı üzerinden, (c) kablo göbeği (hub) üzerinden. [1]’den alınmıştır. 4.2.1.1 Manchester Kodlaması (Manchester Encoding) Ethernet ortamında veri taşıyıcı üzerine aktarılırken Manchester kodlaması kullanılır. Şekil 4.7’de Manchester ve farksal (differential) Manchester kodlamasının özellikleri verilmiştir. 4 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 4.7 a)İkili kodlama b)Manchester kodlaması c) Farksal Manchester kodlaması. [1]’den alınmıştır. Manchester kodlamasında + ve – voltaj seviyeleri arasındaki geçişler bit değerini gösterir. Artıdan eksiye geçiş, 1 değerini, eksiden artıya geçiş 0 değerini gösterir. Bu yöntem veri gönderen ve alan birimlerin eşzamanlı (senkronize) hale gelmesini kolaylaştırır ancak gereken bantgenişliğini iki katına çıkarır. Farksal Manchester’da ise bit gönderme aralığının başlangıcındaki voltaj değişimi (artı ve eksi arasında) 0’ı, değişim olmaması ise 1’i ifade eder. Bu yöntemde de bit gönderme aralığının tam ortasında mutlaka bir değişim olmalıdır. Ethernet basitliği nedeniyle Manchester kodlamasını kullanır. Daha ileride göreceğimiz jetonlu halka (IEEE203.5) ise farksal Manchester tekniğini kullanır. 4.2.1.2 CSMA/CD CSMA/CD (Carrier Sense Multiple Access/Collision Detection), Ethernet’te veri iletim yoluna erişmek için kullanılan tekniktir. Bu teknik veri iletim yoluna bağlı tüm birimlerin ağ ortamına erişmesini sağlar. Veri iletim yolu, bağlı olan tüm birimlerin veri aktarımına açık olduğu için aynı anda farklı birimler tarafından veri aktarılmaya çalışılması çatışmaya (collision) neden olur. Çatışma durumunda tüm veriler bozulur ve yeniden aktarılması gerekir. Bu nedenle veri gönderen bir düğümün aktarım sonrası hattı dinlemesi ve olası çatışmaların farkına varması gerekir. Şekil 4.8’de bir çatışma örneği verilmiştir. • A bilgisayarı 0 anında ortamı dinler ve veri aktarılmadığını farkedince bir çerçeve/paket çıkarır. • Paket veri iletim yolunda ilerler. • Bu sırada B bilgisayarı da bir çerçeve/paket çıkarmak ister ve hattı dinler. A’nın gönderdiği çerçeve/paket henüz ona ulaşmadığı için hattı boş olarak algılar ve kendi çerçevesini/paketini çıkarır. • τ anında iki çerçeve/paket çarpışır ve çatışma olur. • B bilgisayarı çatışmayı daha önce sezer. • A bilgisayarı çatışmayı 2 τ kadar süre geçtikten sonra sezer. 5 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ • Her iki bilgisayar da çatışmayı sezince, veri aktarımına bir süre ara verip (ikili üssel geri çekilme (binary exponential backoff) algoritmasını kullanılarak) tekrarlarlar. Bekleme süresi belli limitler içinde rastgeledir. Her iki bilgisayarın bekleme sürelerinin aynı olması düşük bir olasılıktır. Şekil 4.8 Ethernet ortamındaki bir çatışma örneği En kötü ihtimalle çatışma birbirinden en uzak (2500 m) iki bilgisayar arasında olur. Bu durumda 2 τ süresi (gidiş-geliş ve tekrarlayıcılardan geçiş süresi düşünüldüğünde) yaklaşık 50 μsndir. 10 Mb/sn kapasitesinde bir hatta bu sürede 500 bit aktarılır. Bu miktarı ikinin katı haline getirmek (512 bit) anlamlıdır. Bu da Ethernet ortamında bir çatışmanın fark edilmesi için en küçük çerçeve/paket boyunun 512 bit (64 sekizli) olması anlamına gelir. Ethernet hattının kapasitesi arttığında en küçük çerçeve boyu da artış gösterir. Örneğin 1Gb/sn için çerçeve boyu 6400 sekizlidir (50000 bit ikinin katı olacak şekilde 6400 sekizliye tamamlanır). Ya da maksimum uzaklık 250 metreye düşürülerek, çerçeve boyu 640 sekizli olarak belirlenir. Doğal olarak Ethernet hattına bağlı birimlerin sayısı ya da aktarılmak istenen verinin miktarı arttıkça çatışmalar ve bekleme süresi artar. Çatışmaların artması hattın verimsiz kullanımına neden olur. 4.2.1.2 İkili Üssel Geri Çekilme Algoritması (Binary Exponential Backoff Algorithm) 6 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Çatışma yaşayan her bilgisayar, i çatışmadan sonra 0 ile 2i – 1 arasında bir sayıyı rastgele seçer. Bu sayıyı 2 τ ile çarpar ve kendisi için bekleme süresini bulur. 10 çatışmadan sonra bu aralık 0-1023 arasına sabitlenir. Görüldüğü gibi çatışma yaşayan iki bilgisayarın seçtikleri sayıya bağlı olarak tekrar çatışma yaşama olasılığı oldukça düşüktür. 4.2.1.3 Ethernet Çerçeve Yapısı Şekil 4.9’da her iki Ethernet standardı için de çerçeve yapısı verilmiştir. Görüldüğü gibi aralarındaki fark çok küçüktür. Çerçeve başı (kullanıcı verisinden, Data olarak gösterilmiştir, önce) ve çerçeve sonundaki (kullanıcı verisinden sonra) alt alanların çoğunu anlayabilirsiniz. Başlangıç (preamble) olarak 10101010 kalıbı kullanılır. Dolgu (Pad) alanı küçük çerçeveleri en küçük çerçeve boyuna getirmek için kullanılır. Şekil 4.9 Ethernet çerçeve yapısı a) DIX Ethernet, b)IEEE 802.3. [1]’den alınmıştır. Hata kontrolü için çevrimli fazlalık sınaması tekniği kullanılır ve elde edilen hata kontrol verisi çerçeve hata sınaması (checksum) alanında saklanır. 4.2.1.4 Ethernet Anahtarları : Hat kapasitesinin 10Mb/sn’den 100Mb/sn’ye çıkması ile Ethernet anahtarların kullanımına başlandı. Şekil 4.10 basit bir Ethernet anahtarını göstermektedir. 7 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 4.10 Basit bir Ethernet anahtarı. [1]’den alınmıştır. Anahtar üzerindeki hat kartlarına yapılan bağlantılar ile çerçevelerin doğrudan anahtarlara aktarılması sağlanır. Kartlardan gelen çerçeveler iki teknik uygulanarak yönlendirilirler : 1) Kart üzerinde yerel alan ağı yaratılarak tüm bağlantılardan gelen çerçeveler CSMA/CD tekniği kullanılarak bu ağ üzerinde aktarılır, 2) Gelen çerçeveler kart üzerindeki tampon bellek alanına yazılır ve daha sonra gitmek istedikleri çıkışa yönlendirilir. Çıkışlar üzerinde çift yönlü (full-duplex) haberleşme gerçeklenir. Bu özellik kullanıldığında CSMA/CD desteklenmez. 4.2.1.5 Hızlı Ethernet (IEEE 802.3u) : Hızlı Ethernet’in arkasındaki temel fikir, klasik Ethernet için geliştirilmiş çerçeve yapısını ve kuralları çok fazla değiştirmeden ortamın hızını arttırmaktır. Bunun da bit süresinin 100 nsn’den 10 nsn’ye düşürerek yapılması planlandı. Hızlı Ethernet sistemlerinde genellikle hub ve Ethernet anahtarları kullandı. Hızlı Ethernet’teki en büyük sorun varolan alt yapıda büyük değişiklik yapmadan 100Mb/sn hızına geçmeyi sağlamaktı. Hızlı Ethernet’te kullanılan kablo türleri Şekil 4.11’de verilmiştir. Şekil 4.11 Hızlı Ethernet ortamında kullanılan kabloların özellikleri. [1]’den alınmıştır. Klasik Ethernet’i hızlı Ethernet hızlarına çıkarmak için değişiklikler yapmak gerekliydi. Kategori 3 UTP (100Base-T4) kablolar 25 MHz sinyal kapasitesine sahipti. Bu ortam klasik Ethernet’in hızına (10 Kb/sn, Manchester kodlaması ile 20MHz gerekli) uygundu ancak gerekli bantgenişliği için dört 100Base-T4 kablosu gerekiyordu. Bunun yanı sıra kodlama da değiştirilmeliydi. Standart telefon kablolarında dört 100Base-T4 kablosu bulunması sorunların bir bölümünü çözdü. Dört kablonun veri iletiminde paralel olarak kullanılması istenen veri kapasitesine rahatça çıkılmasını sağladı. Bu kablolardan biri bilgisayardan hub’a, bir diğeri hub’dan bilgisayara, kalan ikisi ise verinin akış yönüne göre değiştirilecek şekilde ayarlanabilirdi. Gerekli veri iletim kapasitesini sağlamak için ise Manchester kodlaması kullanılmadı. Üçlü (ternary) sinyaller üretildi. Bu durumda tek bir saat periyodunda hattan 0, 1 ya da 2 gönderilebildi. Üçlü sinyal kullanarak, üç 100Base-T4 kablosu üzerinden her saat darbesinde 4 bit veri aktarılabilirdi. Bu da saniyede 100Mb’lik veri aktarımı demekti. Artan bir 100Base-T4 kablosu ise ters yönde veri iletimi için kullanılabilecek şekilde ayarlandı. 8 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Hızlı Ethernet ortamında optik kablolar da kullanılabilir. Ancak optik teçhizat pahalı olduğu için yeterince ilgi görmemiştir. 4.2.1.6 Gigabit Ethernet (IEEE 802.3z) : Artan veri iletim isteğine 100Mb/sn kapasite de yeterli olmadı ve Gigabit Ethernet (IEEE 802.3z) de standartlaştırıldı. Gigabit Ethernet’te, klasik Ethernet’teki aynı veri yolu üzerine bağlanmış bilgisayarlar görülmemektedir. Bir anahtar ve hub üzerinden bağlantılar gerçeklenir. Anahtar üzerinden yapılan bağlantılar çift yönlüdür (duplex). Çakışma olmayacağı için CSMA/CD tekniği kullanılmaz. Hub üzerinden yapılan bağlantılar ise yarı çift yönlüdür (half-duplex). Hublar gelen veriyi tampon belleklere yazmazlar. Onlar benzetimini yaptıkları veri yolu yapısı üzerine CSMA/CD tekniğini uygularlar. En küçük çerçeve boyu 64 Byte olarak kabul edilir. Bu durumda kabloların uzunluğunun da 100 kat azaltılması gereklidir (25 metre). Bu uzunluk pek çok ofis ortamı için yeterli olmadığından kablo uzunluğunu arttırmak için çerçeve boyunun büyütülmesine gerek duyulmuştur. Çerçeve boyunun büyütülmesi için iki teknik önerilmiştir: a) Dolgu bitlerinin eklenmesi, b) Çerçevelerin birleştirilmesi. Gigabit Ethernet ortamında hem optik lifler hem de bakır kablolar kullanılabilir. Kullanılan kablonun özelliklerine bağlı olarak kodlama yöntemi de değişir. 4.2.2 Jetonlu Halka (IEEE 802.5) Halka ağları hem yerel alan hem de metropol alan ağlarında sıkça kullanılmıştır. Halka yapısının kullanıcılarına adil davranması ve bu yapılardaki limitlerin kolayca hesaplanması bu ağ yapılarının tercih edilmesine neden olmuştur. Şekil 4.12’de bir halka ağı gösterilmiştir. Halka ağındaki birimler bir halka arayüzü üzerinden hatta bağlanırlar. Halka üzerinden akan bitler arayüzlere kopyalanır. Kopyalama nedeniyle hat üzerinde bir bitlik veri gecikmesi yaratılır. Jetonlu halkanın kapasitesi 16 Mb/sn’dir. Şekil 4.12 Bir halka ağ 9 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Jetonlu halkalarda jeton (token) adı verilen özel bir bit dizisi kullanılır. Bilgisayarların hiç biri ağı kullanmadığı zaman, jeton halka üzerinde döner durur. Veri göndermek isteyen bir bilgisayar öncelikle jetona sahip olmalıdır. Bu bilgisayar 3-sekizli boyundaki jeton üzerinden geçerken jetonun bir bitini değiştirir (buna jeton ele geçirme diyoruz) ve ardından çerçevesini hatta gönderir. Halka arayüzlerinin iki çalışma durumları vardır: a) dinleme, b) aktarma. Dinleme durumunda gelen veri okunur ve tekrar hatta kopyalanır. Aktarma durumunda ise, bilgisayar jetonu ele geçirmiş ve ardından çerçevesini halkaya aktarmaya başlamıştır. Halka üzerinde dolaşan bitler tekrar onları gönderen bilgisayara geri gelirler. Bu bitler aynı bilgisayar tarafından halkadan çekilmelidirler. Çerçeve aktarımını bitiren bilgisayar hatta jetonu göndermeli ve dinleme durumuna geçmelidir. Jetonlu halkalarda veri kapasitesi 16Mb/sn’ye kadar çıkarılmıştır. Verinin kodlanmasında farksal Manchester tekniği kullanılır. Trafik az olduğunda jetonlu halka üzerinde jeton durmadan döner. Trafiğin yoğunlaşması ile, bilgisayarlar tarafından ele geçirilen jeton daha az görülmeye başlar. Halka boşken de veri aktarımını başlatmak için jetonun ele geçirilmesi gerekir. Bu da, bazen, gereksiz beklemelere neden olur. Hat yoğunlaşmaya başladığında ise bekleyen bilgisayar jetonun ona ulaşacağından emindir. Çünkü aktarımı tamamlayan her bilgisayar jetonu bırakmak zorundadır. Halkaya bırakılan jeton bir sonraki bilgisayara, oradan da daha sonrakine ve nihayet bekleyen bilgisayara ulaşır. Bu nedenle halka yapısının adil bir yaklaşımı olduğunu söyleyebiliriz. Ancak, jetonu ele geçiren bilgisayarın aktaracağı çerçevenin büyüklüğü konusunda bir üst limit yoktur. Bu da jetonu ele geçiren bilgisayarın isterse uzun bir süre jetonu bırakmayacağı anlamına gelir. Bunu önlemek için dilimli halka (slotted ring) yapısı önerilmiştir. 4.2.3 Telsiz Yerel Alan Ağları (IEEE 802.11) Şekil 4.13’de gösterildiği gibi, telsiz ağlar farklı konfigürasyonlara sahip olabilirler. Bazılarında ortam bir baz istasyonu tarafından yönetilir. Bazıları ise yapısızdır. 802.11 standartları her iki konfigürasyonu da göz önüne alır. 10 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 4.13 Baz istasyonu kullanan ve ad-hoc yapısındaki telsiz ağlar, [1]’den alınmıştır. 802.11 ilk önerildiğinde (1997) İnfrared ve kısa alan radyo ortamlarını (FHSS, Frequency Hopping Spread Spectrum ve DSSS, Direct Sequence Spread Spectrum tekniklerini kullanarak, 2.4GHz ISM bandı üzerinde) kullanmayı amaçlamıştı. Bu tekniklerin hepsi 1 veya 2 Mb/sn kapasitesine sahipti. 1999’da OFDM (Orthogonal Frequency Division Multiplexing, 802.11a olarak tanıtıldı) ve HR-DSSS (High Rate-DSSS, 802.11b olarak tanıtıldı) teknikleri tanıtıldı. Bu teknikleri kullanarak 54Mb/sn ve 11 Mb/sn kapasitesine erişmek mümkün oldu. 2001’de farklı bir frekans bandı üzerinde çalışan başka bir OFDM modülasyonu tanıtıldı. Bu protokollerin her birinde veri aktarımı için farklı kodlama ve modülasyon tekniği kullanıldı. Şekil 4.14 802.11 Protokol yığınının bir bölümü, [1]’den alınmıştır. 4.2.3.1 802.11 Ortam Erişim (MAC) Protokolü 802.11’de ortam erişim protokolü Standart Ethernet’ten farklı olmak zorundaydı çünkü veri iletimi için kullanılan ortam farklıydı ve bu ortama özel sorunlar vardı. Bu sorunlar: 1) saklı istasyon problemi (hidden station problem), 2) etkiye açık istasyon (exposed 11 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ station) problemidir. Birinci problem ortamdaki tüm yayınların duyulamamasından, ikincisi ise tam tersi nedenlerden kaynaklanır. Şekil 4.15 Telsiz ortamlarda karşılaşılan sorunlar, [1]’den alınmıştır. Bu problemleri çözmek için 802.11 iki operasyon modunu destekler: DCF (Distributed Coordination Function), PCF (Point Coordination Function). Biri dağıtılmış diğeri merkezi control tekniğidir. DCF kullanıldığında, CSMA/CA (CSMA/Collision Avoidance) mekanizması çalıştırılır. Veri göndermek isteyen istasyon ortamı dinler, ortam boş ise veri gönderilir, ortam meşgul ise beklenir. Ancak veri gönderilirken ortam dinlenemediği için oluşan çakışmalar o anda anlaşılmaz. Çakışma durumunda ikili geri-çekme algoritması çalıştırılır. CSMA/CA’in diğer operasyon modunda veri gönderme öncesinde yapılması gerekenler vardır (Şekil 4.16’da gösterilmiştir). Bu modda gönderen (A) ve alıcı (B) arasında veri iletimi öncesinde bir haberleşme gerçeklenir. Bu haberleşmeyi duyan diğer istasyonlar da uygun şekilde davranırlar. Aşağıdaki örnekte C istasyonunun A’nın veri iletim alanında, D’nin ise B’nin alanında olduğunu düşünebiliriz. Şekil 4.16 CSMA/CA’de sanal kanalın dinlenmesi, [1]’den alınmıştır. RTS-request to send CTS-grand to send NAV-Network Allocation Vector 12 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ CTS mesajını alan A tüm veriyi gönderir ve bir ACK zamanlayıcısını (timer) çalıştırır. B veriyi doğru olarak alınca bir ACK çerçevesi gönderir. ACK çerçevesi A’daki zamanlayıcı dolmadan ulaşırsa işlem başarı ile tamamlanmış olur. Aksi halde herşey yeniden yapılır. Veri iletimi sırasında C ve D istasyonları bir sinyal yaymazlar sadece kanalın meşgul olduğunu kendilerine bildirirler. Telsiz ortamda hata olasılığı telli ortamdan çok daha fazladır.Uzun veri bloklarının hata taşıma olasılıkları da fazladır. Bu nedenle telsiz ortamda verinin kısa çerçeveler içinde taşınması planlanmıştır. Uzun bir veri bloğu parçalara (fragments) bölünür ve bu şekilde gönderilir. Bu durumda hataya bağlı tekrar gönderimler gerekirse sadece hatalı parça tekrar gönderilecektir. Bu durumda NAV’ın kullanılması sadece ilk çerçeveyi koruyacaktır. Şekil 4.17’de gösterildiği gibi. Şekil 4.17 Parçalanmış verinin aktarılması. [1]’den alınmıştır. Bu sorunu çözmek için PCF ve DCF modu birlikte kullanılır. Bu kullanımda çerçeveler arasındaki zamanlamanın önemi büyüktür. Şekil 4.18 IEEE 802.11 için çerçeve arası zamanlama. [1]’den alınmıştır. 13 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ SIFS (Short InterFrame Spacing) o anda haberleşmekte olan birimler içindir. Onlar kullanmazsa aktif haberleşmenin bittiği ya da bir parçanın bozulduğu anlaşılır. Herhangi bir anda SIFS dilimini kullanabilecek en fazla bir istasyon vardır. PIFS (PCF InterFrame Spacing) baz istasyonunun kontrol verisi göndermesine ayrılmıştır. Bu veri göndermek isteyen istasyonları yoklayan bir mesaj da olabilir. Bu durumda gönderdiği çerçeve bozulmuş/kaybolmuş bir istasyona tekrar çerçeve gönderme hakkı tanınır. DIFS (DFC InterFrame Spacing), baz istasyonunun birşey göndermediği durumda kullanılır ve veri göndermek isteyen herhangi bir istasyon yaratabilir. Çakışma durumunda klasik yöntemler uygulanır. EIFS (Extended InterFrame Spacing), bozulmuş ya da bilinmeyen bir çerçeve almış bir istasyon tarafından kullanılır. Bu kadar beklemedeki amaç varolan bir haberleşmenin içine girip karışıklığa neden olmamaktır. Şekil 4.19’da IEEE 802.11’in çerçeve yapısı verilmiştir. Çerçeve alanlarının detayı için [1]’e bakınız. Şekil 4.19. IEEE 802.11 Çerçeve yapısı [1]’den alınmıştır. Kaynakça [1] A. Tanenbaum, Computer Networks, Dördüncü Basım, Prentice Hall, 2002. 14 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 5 : ANAHTARLAR, KÖPRÜLER, YÖNLENDİRİCİLER Türkçe (İngilizce) karşılıklar Anahtar (Switch) Uzam bölüşümlü anahtarlama (space-division switching) Zaman bölüşümlü anahtarlama (time-division switching) Çoğullayıcı (multiplexer) Çoğullama çözücü (demultiplexer) Çaprazlayıcı (crossbar) Çaprazlama noktası (crosspoint) Anahtarlama elemanı (switching element) Çok seviyeli arabağlantı ağları (multistage interconnection networks) Kendiliğinden yönlenebilen (self-routing) Çekişme (contention) Ölçeklenebilir (scalability) Tıkanabilen (blocking) Tıkanmaz (nonblocking) Bölüt (segment) Merkez yönlendiriciler (core routers) Kenar yönlendiriciler (edge routers) Bölüm Hedefi Bu bölümü bitirdiğinizde • Anahtar yapılarını • Tek seviyeli anahtar yapılarını • Çok seviyeli anahtar yapılarını • Köprülerin çalışma şeklini • Yönlendiricilerin işlevini öğrenmiş olacaksınız. Anahtarlar, köprüler ve yönlendiriciler, bilgisayar ağları arasında geçiş yapmamızı sağlayan birimlerdir. Bu birimlerin yer aldığı ortamlar homojen (aynı protokolü kullanan) ya da heterojen (farklı protokolleri kullanan) olabilir. Bu bölümde, adı geçen birimlerin yapıları, görevleri ve çalışma prensipleri hakkında bilgi verilecektir. 5.1 Anahtarlar : Anahtar (switch) kelimesi, telefon haberleşmesinden günümüze gelmiştir. Eski telefon çağrılarını gerçeklerken iki uç nokta arasında adanmış fiziksel bir bağlantı oluşturulurdu. Bu bağlantıda anahtarlar, farklı hatları birleştirerek bir uç birimden diğer uç birimine uzayan yolun kurulması için kullanılırdı. Paket kavramı ile ağ kaynaklarının paylaşımı gündeme geldi. Artık bir fiziksel hat aynı anda pek çok uçtan uça bağlantıya hizmet verebiliyor ve kaynaklar daha verimli kullanılabiliyor. Doğal olarak bu ortamda kullanılan paketlerin yapısı daha karmaşık bir hal aldı. Şekil 5.1 anahtarların temel yapısını göstermektedir. Bu yapı aslında bir anahtarın işlevini de ortaya koyar. Bir anahtarın amacı giriş portlarına gelen paketleri istenen çıkış portlarına aktarmaktır. Bu 1 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ aktarımın kayıpsız ve çabuk olması hedeflenir. Anahtarları N girişi ve N çıkışı olan kutular şeklinde düşünebiliriz. Şekil 5.1’de gösterildiği gibi giriş portlarına gelen paketler giriş kontrol (GK) birimi üzerinden anahtarlama birimine oradan da gitmesi beklenen çıkış kontrol (ÇK) birimlerine ulaştırılır. Anahtarlama birimi girişler ve çıkışlar arasındaki paket aktarımını sağlayarak paketlerin istenen çıkışa ulaştırılmasını sağlar. Bu biriminin çalışması bir işlemci grubu tarafından kontrol edilir. Şekil 5.1 Anahtarların temel yapısı Anahtarların iç yapıları birbirinden farklı olabilir. Genelde anahtarlar iç yapılarına göre iki farklı grupta toplanırlar: 1) zaman bölüşümlü anahtarlama tekniğini kullananlar ve 2) uzam bölüşümlü anahtarlama tekniğini kullananlar. 5.1.1 Zaman Bölüşümlü Anahtarlama Zaman bölüşümlü anahtarlarda (time division switching) bütün girişler ve çıkışlar tarafından paylaşılan hızlı bir veri yolu ya da bellek vardır. Şekil 5.2 her iki örneği de göstermektedir. Paylaşılan ortamlar üzerinde aynı anda sadece tek bir giriş-çıkış çifti için veri aktarımı yapılabilir. Bu nedenle, teknik zaman bölüşümlü olarak adlandırılır. Paylaşılan ortam bellek olunca bir çoğullayıcıya ve çoğullama çözücüye ihtiyaç duyulur. Hangi giriş-çıkış çiftleri arasında veri aktarımı yapılacağı konrol işlemcisi tarafından belirlenir. Zaman bölüşümlü anahtarların kapasitesi paylaşılan ortamın kapasitesi ile kısıtlıdır. Şekil 5.2 Zaman bölüşümlü anahtarlama 2 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 5.1.2 Uzam Bölüşümlü Anahtarlama Uzam bölüşümlü anahtarlamada (space division switching) aynı anda birden fazla girişçıkış çifti için anahtarlama yapılabilir. Bu anahtarlarda kapasite, teorik olarak, (herhangi bir giriş hattının kapasitesi) x (giriş sayısı) kadar arttırılabilir. Ancak bu pratikte her zaman mümkün değildir. Anahtarlama sırasında birden fazla paket anahtar içindeki aynı iç yolu kullanmak veya çıkış portuna ulaşmak isteyebilir. Bu durumda çekişme (contention) olur ve paketlerden biri yoluna devam ederken diğeri yok edilir ya da arabelleklerde bekletilir. Çekişmeler anahtar içi çekişmeler ve çıkış portu çekişmeleri olmak üzere ikiye ayrılır. Anahtarın yapısına bağlı olarak çekişmeler farklı teknikler kullanılarak çözülebilir. Yapısı gereği iç çekişmelerin oluşmasına imkan veren anahtarlara tıkanabilen (blocking) anahtarlar denir. Diğerlerine ise tıkanmaz (nonblocking) anahtarlar denir. Uzam bölüşümlü anahtarları iki grupta inceleyebiliriz : tek seviyeli anahtarlar, çok seviyeli anahtarlar. 5.1.2.1 Tek Seviyeli Anahtarlar Tek seviyeli (single stage) anahtarlarda gelen paket tek bir sekme sonucunda çıkışa (çıkış portuna) erişebilecek hale gelir. Bu anahtarlarda her bir giriş-çıkış port çifti arasında o bağlantıya özel bir hat bulunur ya da yaratılabilir. Tek seviyeli anahtarların en basit örneği çaprazlayıcı anahtardır (crossbar). Bu anahtarlar Şekil 5.3’te gösterildiği gibi gerçeklenebilir. Uzam bölüşümü özelliği şekilde açıkça görülür. Birinci girişten beşinci çıkışa bir paket aktarılırken, aynı anda ikinci girişten üçüncü çıkışa başka bir paket de aktarılabilir. Çaprazlayıcılarda anahtar içi çekişmeler yaşanmaz. Bu da herhangi bir anda giriş portlarına gelen paketlerin farklı çıkış portlarını istemesi durumunda her birinin yerine ulaşacağını gösterir. Bu nedenle tıkanmasız anahtarların en iyi örneklerindendir. Farklı girişlere gelen paketlerin aynı çıkış portunu istemesi durumunda çıkış portu çekişmeleri yaşanır. 1 1 2 2 N N 1 2 N 1 2 N Şekil 5.3 Tek seviyeli uzam bölüşümlü anahtarlar 3 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Çaprazlayıcılarda her bir çaprazlama noktası (crosspoint) bir anahtarlama elemanı (switching element) olarak adlandırılır ve paketin bir girişten diğerine aktarılmasını sağlar. Çaprazlayıcıların karmaşıklığı anahtarlama elemanlarının ve bağlantıların miktarı düşünüldüğünde N2’dir. N’nin değeri arttıkça çaprazlayıcıların gerçeklenmesi güçleşir çünkü tüm giriş ve çıkış portlarına giden bağlantıların aynı yonga üzerinde olması gerekir. Buna karşın tıkanmasız bir yapıya sahip olması bu anahtarları pek çok uygulama için çekici hale getirir. 5.1.2.2 Çok Seviyeli Anahtarlar Çok seviyeli (multi-stage) anahtarlar, çok seviyeli arabağlantı ağları olarak da adlandırılır. Adından da anlaşılanileceği gibi bir paketin çıkış portuna ulaşabilmesi için bir kaç sekme yapması gerekir. Her sekme geçilen anahtarlama elemanı sayısını gösterir. Çaprazlayıcılarda bir olan sekme sayısı çok seviyeli anahtarlarda anahtarın yapısına bağlı olarak değişim gösterir. Şekil 5.4’te çok seviyeli anahtar ailesinde yeralan bir grup anahtar yapısı görülmektedir. Banyan, Clos ve Benes ağları çok seviyeli anahtar yapılarında sıkça kullanılır. a) Banyan anahtarı b) Clos anahtarı c) Benes anahtarı Şekil 5.4 Çok seviyeli uzam bölüşümlü anahtarlar 4 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Çok seviyeli anahtarlardan Banyan anahtarlar üzerindeki paketler merkezi bir birimin kontrolü olmadan kendiliğinden yönlenebilir (self-routing). Yolun kendiliğinden bulunması sırasında her seviyedeki anahtarlama elemanı ilgili adres bitinin değerine bakarak paketin gönderileceği çıkışa karar verir. Örneğin Şekil 5.5’teki 2x2 boyutundaki anahtarlama elemanlarından oluşmuş Banyan anahtarına gelen ve 110 adresli çıkışa gitmek isteyen paket için 1. seviyede, 1 çıkışı (alttaki çıkış), 2. seviyede, 1 çıkışı (alttaki çıkış), 3. seviyede, 0 çıkışı (üstteki çıkış) seçilir. Sonuçta, paket 110 adresine sahip çıkışa iletilmiş olur. Yukarıdaki örnekte görüldüğü gibi, anahtarların çıkışları gibi anahtarlama elemanlarının çıkışları da numaralanır (sıfırdan başlayarak). Bu numaralandırma düzeni paketlerin yönlendirilmesinde kullanılır. Bir paket hangi girişe gelirse gelsin, yönlendirilirken Banyan anahtarındaki her anahtarlama elemanında aynı yöntem uygulanır. Şekil 5.5 Bir Banyan anahtarında paket yönlendirme Çok seviyeli anahtar yapılarında, Şekil 5.6’da gösterildiği gibi hem anahtar içi çekişmeler hem de çıkış portu çekişmeleri yaşanabilir. İç çekişmeler farklı çıkışlara ulaşmak isteyen paketlerden de kaynaklanabilir. Bunun nedeni bazı yolların farklı yollara ulaşırken ortak kullanılmasıdır. Çıkış portu çekişmesi ise aynı çıkışa ulaşmak isteyen paketler olduğunda kaçınılmazdır ve anahtarın yapısından bağımsızdır. Yapısından dolayı iç çekişmelere izin veren anahtarlara tıkanabilen (blocking) anahtarlar denir. Sadece çıkış portu çekişmesine izin veren anahtarlara ise tıkanmaz (nonblocking) anahtarlar denir. Tıkanabilen anahtarların bu yönünü iyileştirmek için özel tekniklerin kullanılması gerekir. 5 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 5.6 Çok seviyeli bir anahtardaki çekişme tipleri Çok seviyeli anahtarları modüler yapıları nedeniyle birkaç yonga üzerinde gerçeklemek mümkündür. Bu da, anahtarın ölçeklenebilir olmasını sağlar ve önemli bir avantajdır. 5.2. Köprüler Köprüler (bridges) aynı protokolü kullanan yerel alan ağlarını birbirine bağlamak için kullanılır. Köprülerle bağlanmış yerel alan ağları kullanıcıya tek bir yerel alan ağı varmış izlenimini verir. Köprüler verinin adres kısmını incelerler ve yerel bir bilgisayarı hedef alan paketleri diğer ağlara geçirmezler. Şekil 5.7’te birkaç köprü kullanarak birleştirilmiş bir yerel alan ağ grubu görülmektedir. Köprülerin birleştirdiği yerel alan ağlarının her birine bölüt (segment) adı verilir. Şekil 5.7. Bir kaç köprü ile birleştirilmiş yerel alan ağları 6 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Daha büyük ve tek bir ağ kullanmak yerine küçük yerel alan ağlarını birbirine köprüler üzerinden bağlamanın uygulamada pek çok yararı vardır. 1) Aynı bölümde çalışan ekibi tek bir yerel alan ağ üzerine toplayarak onların arasındaki trafiğin diğer bölümlerin ağları üzerine yayılmasını önlenmiş olur. Bu hem kaynakların verimli kullanımını sağlar hem de güvenlik açısından önemlidir. 2) Küçük yerel ağlar oluşturup bunları birbirine bağlamak büyük ve tek bir ağ oluşturmaktan daha ekonomik olabilir. Köprüler bağlı bulundukları yerel alan ağları üzerindeki bilgisayarların adreslerini bilirler ve paketleri gerekli ağlara kopyalarlar. Bu bilgilendirme bazen operatör tarafından yapılır. Eğer uyarlanır (adaptive) ya da öğrenebilen (learning) bir köprü kullanılıyorsa, köprü bu bilgiyi ağ üzerindeki işlemleri gerçeklerken öğrenir. Bu işlemi Şekil 5.8’teki ağ üzerinde izleyebiliriz. Köprü gelen çerçevelerdeki kaynak adreslerini takip ederek bilgisayarların yer aldığı yerel alan ağları hakkında bilgi edinir ve bunu ilgili tabloya yazar. Gelen çerçeveler de bu tablolardaki verilere göre ilgili yerel alan ağına gönderir. Bir köprü, nerede olduğunu bilmediği bir bilgisayar için gelen çerçevelerin bağlı bulunduğu tüm yerel alan ağlarına iletilmesini sağlar. Bölüt X A Bölüt Y B B C D E F Şekil 5.8. İki yerel alan ağını bağlayan bir öğrenebilen köprü Şekil 5.8’teki ortama yerleştirilen köprünün akan trafiğe bakarak tablolarını oluşturmasını Şekil 5.9’da izleyebiliriz. Senaryo her ne olursa olsun, öğrenebilen köprü gelişmelere bakarak tablolarını oluşturur. Bu arada, hiç trafik yaratmayan bir bilgisayarın hangi bölütte olduğunu bilmek mümkün olmayacaktır. Olay Köprü çalışmaya başlar A, D’ye çerçeve gönderir B, C’ye çerçeve gönderir D, A’ya çerçeve gönderir F tüme gönderir (broadcast) E, F’ye çerçeve gönderir C, A’ya çerçeve gönderir TabloBölüt X A A, B A, B A, B A, B A, B, C TabloBölüt Y D D, F D, E, F D, E, F Şekil 5.9 Olası bir senaryo için Şekil 5.8’teki köprüye ait tabloların oluşturulması 7 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Köprülerden oluşan bir ağda halkaların oluşturulmamasına dikkat edilmelidir. Bir halka oluşumunda halkada yer alan bölütlerdeki bilgisayarlara aynı çerçeveler bir kaç kez ulaşacaktır. Bu durumda bazı köprülerin veri aktarmasına izin verilmemelidir. Birbirinden uzak yerel alan ağlarını kiralık hatlar (leased lines) üzerinden birleştirmek için, Şekil 5.10’da gösterildiği gibi uzak köprüler (remote bridges) kullanılır. Şekil 5.10 Uzak köprüler [1]’den alınmıştır. 5.3. Yönlendiriciler Yönlendiriciler (routers), paketlerin kaynaktan varış noktasına iletimini sağlayan birimlerdir. İki nokta (kaynak-varış) arasındaki uygun yolun bulunması (geçilecek düğümlerin belirlenmesi) onların görevidir. Yerel alan ağları ile geniş alan ağları arasındaki geçişleri de sağlarlar. Yönlendiriciler, Şekil 5.11’de gösterildiği gibi, farklı protokollere sahip yerel alan ya da geniş alan ağlarını da bir araya getirirler. Şekil 5.11 Farklı protokolleri kullanan yerel alan ağlarının bir yönlendirici ile bağlanması 8 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Yönlendirme sırasında yönlendirme tabloları kullanılır. Yönlendirme tablolarında bir varış noktasına giden en uygun yolun bulunması için kullanılacak parametreler saklanır. Bu tablolar özel yönlendirme algoritmaları kullanılarak hazırlanır. Bölüm 6’da bu algoritmalar üzerinde detaylı olarak durulacaktır. Yönlendirme tabloları ile ilgili önemli noktalardan biri de bu tablolar üzerindeki arama süresidir. Yönlendirme tabloları çok büyük olabilir. Yüksek kapasiteli hatlardan birim zamanda gelen paket miktarının yoğunluğu da düşünülerek tablolardaki arama (tablolara erişim) süresinin düşürülmesi gerekir. Bu amaçla hem yazılım hem de donanım temelli iyileştirici yöntemler kullanılır. Yönlendiricileri merkez (core) ve kenar(edge) yönlendiriciler olmak üzere, Şekil 5.12’de gösterildiği gibi, iki sınıfa ayırabiliriz. Merkez yönlendiriciler daha fazla porta, hızlı hatlara ve yoğun bir trafiğe sahiptir. Bu yoğunluk altında hızla çalışabilmesi için hızlı bir donanım ve bellek erişim (yönlendirme tablosuna ulaşmak için) mekanizmasına ihtiyacı vardır. Merkez yönlendiricilerinin dayanıklılığı çok hassas bir noktadır. Bozulmaları büyük kayıplara neden olabilir. Bu nedenle yedekli çalıştırılmalıdırlar. Kenar yönlendiriciler ise geniş alan ağlarına yerel trafiğin aktarılması için kullanılır. Şekil 5.12 Merkez ve kenar yönlendiriciler 9 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 6 : YÖNLENDİRME TEKNİKLERİ ve ALGORİTMALARI Türkçe (İngilizce) karşılıklar Statik (static) Topoloji (topology) Ölçüt (metric) Kaynakta yönlendirme (source routing) Sekerek yönlendirme (hop by hop routing) Yönlendirme tabloları (routing tables) Taşkın (flooding) Uzaklık vektörü yönlendirmesi (distance vector routing) Hat durumu yönlendirmesi (link state routing) Bölüm Hedefi Bu bölümü bitirdiğinizde • Bilgisayar ağlarında yönlendirme nedir? • En kısa yol bulma (Dijkstra) algoritmasını • Taşkın tekniğini • Uzaklık vektörü yönlendirmesini • Hat durumu yönlendirmesini öğrenmiş olacaksınız. Bu bölümde bir haberleşme ağı üzerinde yönlendirme tablolarını oluştururken kullanılan algoritmalar/teknikler üzerinde durulacaktır. Yönlendirme tabloları temelde statik ve dinamik olmak üzere iki yaklaşım ile oluşturulur. Statik yönlendirme tabloları belli bir algoritmaya dayanarak önceden oluşturulur ve bir daha değiştirilmez. Bu durumda, bir düğümden diğer düğümlere ulaşmak için kullanılacak yollar önceden bellidir ve ağdaki trafiğin değişiminden etkilenmez. Dinamik yönlendirme tablolarında ise tabloların zaman içinde, ağ trafiğinde ya da bağlantılarda meydana gelen değişimlerle, güncellenmesi hedeflenir. Her iki tip yönlendirme tablosu kullanımının da olumlu ve olumsuz yönleri vardır. Statik yönlendirme basittir. Güncelleme gerektirmez ancak zaman zaman belli noktalarda oluşan tıkanıklıklar, trafiği farklı yollara yönlendirme imkanı olmadığı için, başarımın düşmesine neden olur. Ya da bazı hatların kopması sonunda, önceden atanmış yolları değiştirmek mümkün olmadığı için bazı düğümler arasında bağlantı kurulamayabilir. Dinamik yönlendirmede ise düğümler üzerindeki trafik yükünün artması, tıkanmalar ya da bağlantıların kopması sonucunda alternatif yollar oluşturulur. Ancak, dinamik yönlendirme algoritmaları statik algoritmalardan daha karmaşıktır. Hataya dayanıklı olması beklenen ağlarda yönlendirme tablolarının dinamik teknikler kullanılarak oluşturulması gerekir. Paketlerin yönlendirilmesi (geçilecek düğümlerin belirlenmesi) iki şekilde gerçeklenir : kaynakta yönlendirme(source routing) ve sekerek yönlendirme (hop by hop routing). Kaynakta yönlendirmede kaynak düğüm, paketin sırası ile geçeceği düğümleri (yönlendiricileri) belirler ve bu bilgi pakete eklenir. Yönlendiriciler bu bilginin bulunduğu özel alana bakarak paketi sırası ile geçmesi gereken düğümlere aktarırlar. Bu yöntemde, yönlendirme işlemi kaynak düğümde yapılır. Diğer düğümler paketin belirlenen yol üzerinden geçmesini sağlar. Sekerek yönlendirmede ise paketin üzerindeki varış düğümü adresine 1 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ bakarak paketin gönderileceği bir sonraki düğümün adresi belirlenir ve paket o düğüme aktarılır. Yol üzerindeki her sekmede (düğümde) bu işlem yapılır ve paket varış düğümüne kadar ulaştırılır. 6.1 Yönlendirme Teknikleri : Literatürde pek çok paket yönlendirme tekniğine rastlayabilirsiniz. Bu bölümde en temel yönlendirme teknikleri üzerinde durulacaktır. 6.1.1 En Kısa Yolu Bulma Algoritması (Dijkstra’s Shortest Path Algorithm) Yönlendirme teknikleri üzerinde düşünmeye başladığınızda aklınıza gelebilecek ilk teknik iki nokta arasındaki en kısa yolu bulmak ve paketleri o yol üzerinden aktarmak olacaktır. Bilgisayar ağlarında iki nokta arasındaki en kısa yolu bulurken ölçüt olarak: - bağlantı noktaları arasındaki coğrafi uzaklık, - geçilen düğüm (sekme) sayısı, ya da - hatlar üzerinde ortaya çıkan aktarım süreleri, düğümlerdeki kuyruklarda bekleme süreleri (gecikme değerleri) kullanılabilir. Sonuçta amacımız, kullanılan ölçüte bağlı olarak kaynak noktasından varış noktasına en kısa yolun bulunmasıdır. Bu bölümde açıklanacak en kısa yol algoritması Dijkstra tarafından geliştirilmiştir. Algoritmamızı Şekil 6.1’de verilen ağ üzerinde daha iyi açıklayabiliriz. Şekilde kullanılan ölçütün gecikme değerleri olduğunu düşünelim. Amacımız A noktasından diğer düğümlere en kısa yolu bulmak olsun. 2 B 5 C 10 3 A G 3 7 F 2 8 6 H D 5 3 E Şekil 6.1 Örnek ağ yapısı Bu durumda önce A düğümünden başlıyoruz ve ona komşu olan düğümleri inceleyip onlara geçiçi uzaklık değerlerini atıyoruz. Şekil 6.2(a)’da B ve F düğümleri için belirlenmiş geçiçi uzaklık değerleri bulabilirsiniz. Diğer düğümler henüz incelenmediği için onların geçici uzaklık değerleri sonsuz işareti ile gösterilmiştir. 2 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ B(5) A C (∞) G (10) H (∞) F(3) D (∞) E (11) a) B(5) A C (7) G (8) H (∞) F(3) D (∞) E (11) b) B(5) A C (7) G (8) H (17) F(3) D (13) E (11) c) 3 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ B(5) A C (7) G (8) H (10) F(3) D (13) E (11) d) B(5) A C (7) G (8) H (10) F(3) D (13) E (11) e) B(5) A C (7) G (8) H (10) F(3) D (13) E (11) f) 4 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ B(5) A C (7) G (8) H (12) F(3) D (13) E (11) g) Şekil 6.2 Geçici uzaklık değerlerinin belirlenmesi Daha sonra sırası ile A’dan ulaşılan en yakın düğümden (bu örnekte F) başlayarak uzaklık belirlemeye devam ediyoruz. F’nin seçiminden sonraki uzaklık değerleri şekil 6.2(b)’de verilmiştir. B, C, G, H ve E’nin seçiminden sonraki uzaklık değerleri 6.2(c-g)’de gösterilmiştir. Örnekten de anlaşılacağı gibi bu yöntemde son düğüm dışında tüm düğümler bir kez işlenmiştir. Yukarıdaki örnekte A düğümüne olan en kısa yollar hesaplanmıştır. Yani kaynak düğüm A’dır. Aynı yöntem kullanılarak diğer kaynak düğümler için de hesaplama yapılır. Dijkstra’nın en kısa yol algoritması Şekil 6.3’te verilmiştir. Bu algoritmada iki boyutlu L matrisi duğümler arasındaki uzaklıkları (ya da gecikme değerlerini) verir. L[i,j], i ve j düğümleri arasındaki uzaklığı (veya gecikmeyi) verir. Matriste sonsuz işareti ile gösterilmiş alanlar ilgili iki düğüm arasında bağlantı olmadığını gösterir. Yukarıdaki ağ topolojisindeki kenarlar çift yönlü bağlantıları göstermektedir. Yani hat üzerinde verilen değer hem i’den j’ye ulaşmak için hem de j’den i’ye ulaşmak için kullanılır. Bu nedenle L[i,j]=L[j,i] ve matris simetriktir. Bu özellik her ağ yapısında olmayabilir. Aşağıda, örneğimizdeki topoloji için L matrisi verilmiştir. Bu matris Şekil 6.1’e bakarak hazırlanır. L= A 0 5 ∝ ∝ ∝ 3 ∝ ∝ B 5 0 2 ∝ ∝ ∝ 3 ∝ C ∝ 2 0 6 ∝ ∝ ∝ 10 D ∝ ∝ 6 0 3 ∝ ∝ ∝ E ∝ ∝ ∝ 3 0 8 ∝ 5 F 3 ∝ ∝ ∝ 8 0 7 ∝ G ∝ 3 ∝ ∝ ∝ 7 0 2 H ∝ ∝ 10 ∝ 5 ∝ 2 0 A B C D E F G H Aşağıdaki algoritmada tek boyutlu D matrisi kaynak düğümden diğer düğümlere olan en kısa yolların değerini hesaplarken (geçiçi uzaklık değerlerini saklamak için) kullanılmıştır. 5 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Matrislerde indeks değeri olarak kullanılan 1, 2, 3, 4, 5, 6, 7, 8 …. sırası ile A, B, C, D, E, F, G, H düğümlerini ifade etmektedir. n ağdaki düğüm sayısını gösterir. Bu örnekte 8’dir. function Dijkstra(L[1..n, 1..n]) : array [2..n] array D[2..n] set C {incelenecek düğümleri saklar} C ← {2, 3, 4, 5, 6, …, n} for i ← 2 to n D[i] ← L[1,i] repeat n - 2 times v ← C’den en küçük D[v] değerini sağlayan bir eleman v ← C \ {v} {bu eleman C setinden çıkarılır} for each w ∈ C do D[w] ← min(D[w], D[v] + L[v,w]) return D Şekil 6.3 Dijkstra’nın en kısa yolu bulma algoritması Dijkstra algoritması ağda oluşacak değişimlere duyarlı değildir. Bu nedenle bir bağlantının kopması ya da bir bağlantı üzerindeki trafik yükünün artması bazı düğümler arasındaki aktarımı imkansız ya da çok güç hale getirebilir. 6.1.2 Taşkın (Flooding) Bu yöntemde bir düğüme ulaşan paketin kopyaları çıkarılır ve bu kopyalar paketin geldiği bağlantı (hat) dışındaki tüm bağlantılardan gönderilir. Doğal olarak bu yöntem aynı paketin pek çok kopyasının yaratılmasına ve bu kopyaların ağdaki trafiği aşırı derecede yoğunlaştırmasına neden olacaktır. Bu dezavantaja karşın, taşkın yönteminde seçilecek hat için özel hesaplamalar yapılmasına gerek kalmaz. Paket, doğal olarak, ek kısa yol üzerinden varış noktasına erişir. Ancak bu sırada aynı paketin pek çok kopyası yaratılır. Hatta aynı kopyalar pek çok kez aynı düğümlere ulaşır. Şekil 6.4 (a-d), A düğümünden D düğümüne gönderilen bir paketin üç sekme içindeki çoğalmasını ve eriştiği düğümleri gösterir. D A a) 6 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ B A C G H F D E b) B A C G H F D E c) B A C G H F D E d) Şekil 6.4 Taşkın tekniğinde paketlerin ağ içinde yayılması Tekniğin dezavantajlarını önlemek için paketlere sekme sayacı eklenmesi önerilmiştir. Sekme sayacına, paket yaratıldığında, kaynak düğüm tarafından kaynak ve varış düğümleri arasındaki sekme sayısını gösteren bir değer atanır. Sekme sayacının değeri geçilen her düğümde bir azaltılır. Sekme sayacı sıfır değerine ulaştığında, paket varış noktasına ulaşmamışsa yok edilir. Paketlerin aynı düğüm tarafından tekrar tekrar kopyalanmasını engellemek için önerilen bir diğer yöntem ise her düğümün yarattığı/kopyaladığı paketlerin kaydını tutmasıdır. Yeni gelen bir paketin kopyalarının yaratılmasından önce bu kayıtlar kontrol edilir ve paket daha önce çoğaltılmadıysa işleme devam edilir aksi halde paket yok edilir. 7 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 6.1.3 Uzaklık Vektörü Yönlendirmesi (Distance Vector Routing) Uzaklık vektörü yönlendirmesi dinamik bir yönlendirme algoritmasıdır. Bu teknikte her yönlendirici bir yönlendirme tablosu tutar bu tabloda ağdaki her yönledirici için bir satır bulunur. Her satırda ilgili yönlendiricinin tablonun bulunduğu yönlendiriciye olan uzaklığı ve ilgili yönlendiriciye hangi çıkış hattı üzerinden ulaşılacağı bilgisi saklanır. Kullanılan ölçütün uzaklık olması gerekmez. Bu ölçüt gecikme, sekme sayısı, … olabilir. Gecikmenin ölçüt olarak kullanıldığı durumlarda, her yönlendirici kendisi ile komşu yönlendiriciler arasındaki gecikmeyi doğrudan bulabilir. Uzaklık vektörü yönlendirmesinde, her yönlendirici (periyodik olarak) her T milisaniyede bir kendi tablosunda bulunan ölçüt değerlerini komşularına gönderir ve benzer bir tabloyu da komşusundan alır. Gelen tablolardaki verilere bakarak her yönlendirici doğrudan bağlı olmadığı yönlendiriciler ile arasındaki gecikme değerlerini ve o yönlendiricilere nasıl ulaşacağını bulabilir. Şekil 6.1’deki topoloji üzerindeki değerlerin bir anlık gecikme değerleri olduğunu ve ağın çok çok kısa bir süre önce aktif hale geldiğini varsayalım. Bu durumda her yönlendirici sadece komşusuna olan gecikmeyi bilsin ve diğer yönlendiricilere nasıl ulaşılacağı konusunda bilgi sahibi olmasın. Yönlendiricilerin tabloları Şekil 6.5’deki gibi olacaktır. 8 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 2 B C 10 3 2 D F H F Yönlendiricisi A B C D E F G H 3 ∞ ∞ ∞ 8 0 7 ∞ A E G - ∞ 2 0 6 ∞ ∞ ∞ 10 B D H G Yönlendiricisi A B C D E F G H ∞ 3 ∞ ∞ ∞ 7 0 2 B F H A B C D E F G H Birsonraki düğüm A B C D E F G H gecikme A C G - ∞ ∞ 6 0 3 ∞ ∞ ∞ C E - H Yönlendiricisi A B C D E F G H Birsonraki düğüm ∞ ∞ ∞ 3 0 8 ∞ 5 5 0 2 ∞ ∞ ∞ 3 ∞ D Yönlendiricisi gecikme Birsonraki düğüm A B C D E F G H gecikme E Yönlendiricisi A B C D E F G H C Yönlendiricisi Birsonraki düğüm B F - B Yönlendiricisi Birsonraki düğüm 0 5 ∞ ∞ ∞ 3 ∞ ∞ 3 E Birsonraki düğüm Birsonraki düğüm A B C D E F G H gecikme A Yönlendiricisi 5 8 F D Birsonraki düğüm 7 gecikme 3 H gecikme G gecikme A 6 gecikme 5 ∞ ∞ 10 ∞ 5 ∞ 2 0 C E G - 9 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 6.5 Uzaklık vektörü yönlendirmesinde tabloların ilk durumu Bu andan sonra B, F ve H yönlendiricilerinden gelen tablolara göre G yönlendiricisinin kendi yönlendirme tablosunu güncelleyişi Şekil 6.6’da verilmiştir. G yönlendiricisi B, F ve H’den kendisine ulaşan vektörlere göre yönlendirme tablosundaki değerleri günceller ve doğrudan bağlı olmadığı yönlendiricilere olan gecikmeyi hesaplar. Güncelleme sırasında amaç en kısa gecikmeye sahip çıkış hattını bulmaktır. Bir yönlendiriciye ulaşmak için alternatif yollar olabilir ancak bu yolların en kısası seçilmelidir. Örneğin, G yönlendiricisi, A’ya F (7+3) ya da B (3+5) üzerinden ulaşabilir. Ancak B üzerinden gidilen yol daha kısa olduğu için onu tercih eder. Uzaklık vektörlerinin aktarılmasından sonra G’nin doğrudan bağlı olmadığı A, C ve E yönlendiricilerine olan gecikme değerlerine sahip olduğunu görmekteyiz. A B C D E F G H ∞ ∞ 10 ∞ 5 ∞ 2 0 C E G - A B C D E F G H Birsonraki düğüm A E G - G Yönlendiricisi gecikme 3 ∞ ∞ ∞ 8 0 7 ∞ Birsonraki düğüm A B C D E F G H H Yönlendiricisi gecikme A C G - Birsonraki düğüm 5 0 2 ∞ ∞ ∞ 3 ∞ gecikme Birsonraki düğüm A B C D E F G H F Yönlendiricisi gecikme B Yönlendiricisi 3+5 3 3+2 2+5 7 0 2 B B B H F H Şekil 6.6 G yönlendiricisindeki tablonun güncellenmesi Bu teknikte, uzaklık vektörleri T milisaniyede bir komşulara gönderildiği için ağ topolojisindeki bir değişikliğin (bir yönlendiricinin bozulması ya da bir hattın kopması) diğer yönlendiricilere ulaşması, bozukluğun olduğu noktanın diğer noktalara olan uzaklığı ile orantılı olarak değişim gösterir. Bilginin tüm düğümlere aynı anda ulaşma imkanı yoktur. Bu da sonsuza sayma dediğimiz problemi ortaya çıkarır. Varsayalım ki, ölçütümüz sekme sayısı ve ağımızdaki E yönlendiricisi bozuldu (Şekil 6.7). 10 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 1 B C 1 1 1 A 1 G 1 1 F 1 1 H D 1 1 E, BOZUK! Şekil 6.7 Ağ üzerindeki E yönlendiricisinin bozulması ve sekme sayısının ölçüt olarak kullanılması durumu • • • Bu bilgi ilk aşamada H, D ve F yönlendiricilerine ulaşacaktır. Bu yönlendiriciler tablolarında ilgili alanı sonsuz yaparken G yönlendiricisi H’ye ‘ben E’ye 2 sekmede ulaşıyorum’ bilgisini içeren vektörünü gönderecektir (doğrudur, ölçüt sekme sayısı olduğu için F üzerinden ulaşıyordur). H bu bilgiye güvenip tablosunu E’ye G üzerinden 3 sekmede ulaşacak şekilde değiştirir. Bir sonraki aktarımda F’den E’nin çöktüğü bilgisi G’ye ulaşır. Ancak H, G’nin gönderdiği eski vektöre dayanarak E’ye 3 sekmede ulaşabileceğini bildirecektir. Bu durumda G, H’den gelen vektöre güvenerek tablosunu E’ye 4 sekme ile ulaşacak şekilde günceller. Gecikme değeri hatalı olarak bu şekilde artmaya devam eder. 6.1.4 Hat Durumu Yönlendirmesi (Link State Routing) Hat durumu yönlendirmesi de dinamik bir tekniktir. Amacı, toplojideki değişimlere kolayca adapte olmak ve trafikteki değişimlere göre gerektiğinde alternatif yollar bulmaktır. Hat durumu yönlendirmesini, en kısa yol bulma (Dijkstra) algoritmasının uygulaması olarak da düşünebiliriz. Burada, yönlendiriciler bağlı oldukları hatlar (komşuları ile aralarındaki) üzerindeki gecikmeleri gösteren verileri ağdaki tüm yönlendiricilere ulaşması için gönderirler. Bu verileri alan yönlendiriciler ağ topolojisini oluşturur ve diğer yönlendiricilere en kısa yoldan ulaşmak için bu topoloji üzerinde en kısa yol algoritmasını çalıştırırlar. Uygun yolları belirlerler. Hat durumunu gösteren paketler, en kolay taşkın yöntemi ile yayılabilir. Bu durumda paketlerin gereksiz yere ağ içinde dolaşmasını önlemek için hat durumu paketlerinin üzerine yaş (sekme sayacı) alanı koymak anlamlıdır. Ağ üzerindeki trafik zamana bağımlı olarak değişim gösterebilir, yönlendiriciler bu değişimleri yansıtmak için yeni hat durumunu paketleri yaratır ve gönderirler. Bu 11 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ durumda yeni paketlerin eskilerinden ayırt edilmesini sağlamak için paketlere sıra numarası verilir. Bir yönlendiriciye ait daha güncel (daha büyük sıra numarasına sahip) bir paket geldiğinde eski paket yok edilir. Sıra numarası ile ilgili olarak karşılaşılacak bir problem sıra numarası bozulmasıdır. Örneğin iletimdeki bir hata sonucu sıra numarası bozulur ve 1 sıra numarası 65’e dönüşürse, aynı düğüm tarafından gönderilen, 2 ile 65 sıra numarası arasındaki tüm hat durumu paketleri geçersiz sayılır. Bu tekniğe ait bir diğer sorun ise: yönlendiricilerden bir bozulup tekrar düzeltildiğinde yarattığı hat durumu paketlerı 0 sıra numarası ile başlar. Ne yazık ki, bu hat durumu paketi daha önce aynı yönlendirici tarafından yaratılmış hat durumu paketlerinden daha düşük (veya eşit) sıra numarasına sahip olduğu için diğer yönlendiriciler tarafından yok edilecektir. -------- 12 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 7: ÇOĞAGÖNDERİM YÖNLENDİRMESİ, GEZGİN DÜĞÜMLER İÇİN YÖNLENDİRME, ve YAPISIZ AĞLARDA YÖNLENDİRME Türkçe (İngilizce) karşılıklar Çoğagönderim (multicast) Yayın, Tümegönderim (broadcast) Kapsayan ağaç (spanning tree) Merkez temelli ağaç (core-based tree) Seyyar (portable) Gezgin (mobile) Sabit (stationary) Yapısız ağ (ad-hoc network) Bölüm Hedefi Bu bölümü bitirdiğinizde • Kapsayan ağaç oluşturmayı, • Çoğagönderim yönlendirmeyi, • Gezgin düğümler için yönlendirmeyi, • Plansız ağlar, ve • Plansız ağlarda yönlendirmeyi öğrenmiş olacaksınız. Bu bölümün hedefi Bölüm 6’da incelenen yönlendirme algoritmalarının ötesinde, özel durumlarda kullanılacak yönlendirme teknikleri/algoritmaları üzerinde durmaktır. İncelenecek özel durumlar: çoğagönderim, gezgin düğümler ve yapısız (ad-hoc) ağlar için yönlendirme olacak. 7.1 Kapsayan Ağaç Oluşturma Kapsayan ağaç, bir çizge (ağın topolojik yapısı olarak düşünebiliriz) üzerindeki tüm düğümleri içeren ve düğüm_sayısı-1 kenardan oluşan altçizgedir. Tüm düğümleri içermesi nedeniyle kapsayan ağaç olarak adlandırılır. Kenarlar çif yönlü bağlantıları gösterdiği ve yapı halka içermediği için bu ağaçlarda herhangi iki düğüm arasında sadece tek bir yol bulunur. Bu bölümde Kruskal tarafından geliştirilen en küçük kapsayan ağaç algoritması açıklanacaktır. Kapsayan ağacın en küçük olarak adlandırılmasının nedeni kenarlar seçilirken ağırlığı en kısa kenara öncelik verilmesindendir. Eğer kenar uzunluklarının bir önemi yoksa, kenar uzunluklarını gösteren L matrisinde tüm kenarların uzunlukları 1 olarak gösterilebilir. Kruskal algoritması aşağıdaki gibidir: 1 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ function Kruskal(L[1..n, 1..n]) : array [1..n, 1..n] {n düğüm sayısını verir} array Agac[1..n, 1..n] {seçilen kenarları saklar} integer kenar Kenarları uzunluklarına göre sırala Agac ← 0 {Agac matrisinin tüm elemanlarına sıfır değeri verilir} kenar ← 0 n küme yarat ve her birine bir düğüm koy repeat e ← {u, v} {o ana kadar seçilmemiş en küçük kenarı seç} u_kumesi ← bul(u) {u düğümünün bulunduğu kümeyi bul} v_kumesi ← bul(v) {v düğümünün bulunduğu kümeyi bul} if u_kumesi <> v_kumesi then {u ve v farklı kümelerden geliyor, halka olasılığı yok} birleştir(u_kumesi, v_kumesi) {iki kümeyi birleştir} Agac[u,v] = Agac [v,u] = L[u,v] {bu kenarı ağaç kenarları arasına ekle} kenar ++ until (kenar = = n-1) return Agac Bu algoritma her düğümü öncelikle ayrı bir kümeye koyar daha sonra bu kümeler arasındaki en kısa yolları seçerek bağlantı oluşturur ve aralarında bağlantı oluşan kümelerin elemanlarını aynı kümeye koyar. Bu işlem tüm düğümler aynı kümede toplanana ya da n-1 çift yönlü kenar seçilene kadar devam eder. Sonuçta seçilen kenarlar en küçük kapsayan ağacı oluşturur. Kenarlar çift yönlü olduğu için (u ve v düğümleri arasındaki kenar, hem u’dan v’ye hem de v’den u’ya bağlantı olduğunu gösterir) secilen her bir kenar Agac matrisinde iki güncelleme gerektirir. 2 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 1 1 4 6 4 3 4 4 2 2 3 5 6 8 5 7 6 3 7 Şekil 7.1 En küçük kapsayan ağaç algoritması için topoloji örneği Şekil 7.1’de verilen topolojiye Kruskal algoritması uygulandığında aşağıdaki adımlar gerçekleşir: 1. adım 2.adım 3. adım (1, 2) kenarı seçilir (2,3) kenarı seçilir (4,5) ya da (6,7) kenarları eşit uzunlukta, biri rastgele seçilir. Diyelim ki (4,5) kenarı seçilir 4. adım (6,7) kenarı seçilir 5. adım (1,4) ya da (4,7) ya da (2,5) kenarı eşit uzunlukta biri rastgele seçilir. Diyelim ki, (1,4) kenarı seçilir 6. adım (4,7) ve (2,5) kenarları aynı uzunlukta, biri rastgele seçilir. Diyelim ki, (2,5) kenarı seçilir ancak iki düğüm de aynı kümede olduğu için bu kenar kabul edilmez. 7.adım (4,7) kenarı seçilir 6 kenar seçildiği için işlem tamamlanır. Seçilen kenarlar sonrasında oluşan kapsayan ağaç Şekil 7.2’de kalın kenarlarla gösterilmiştir. 3 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 1 1 4 6 4 3 4 4 2 2 3 5 6 8 5 7 6 3 7 Şekil 7.2 Örnek topoloji üzerindeki ek küçük kapsayan ağaç 7.2 Çoğagönderim Yönlendirme Tümegönderim ve çoğagönderim bilgisayar haberleşmesinde sıkça karşılaşılan durumlardır. Tümegönderim de hedeflenen bir paketin/verinin bir ağdaki/altağdaki tüm bilgisayarlara iletilmesidir. Çoğagönderim ise bir paketin/verinin belli bir grup bilgisayara iletilmesidir. Tümegönderim tüm bilgisayarları hedef aldığı için gerçeklenmesi daha kolaydır. Verinin birden fazla bilgisayara iletilmesi durumunda kaçınılması gereken en önemli nokta aynı verinin aynı hatlar üzerinden tekrar tekrar aktarılmasıdır. Bu durum ağ kaynaklarının verimsiz kullanımına yol açar. Yapılması gereken: kaynak ve varış noktaları arasında ortak yollar oldukça, bu yollar üzerinde aynı verinin tek bir kez aktarılmasını ve gerek duyuldukça verinin kopyalanmasını sağlamaktır. Bu durum Şekil 7.3’de açıklanmıştır. 4 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ C (varış) (kaynak) A B D (varış) E I F(varış) G H (varış) (a) Grubun her elemanı için bir paket yaratma durumu (1. sekme) C A B D E I F G H (b) Grubun her elemanı için bir paket yaratma durumu (2. sekme) 5 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ C (varış) (kaynak) A B D (varış) E I F (varış) G H (varış) (c) Çoğagönderim ağacı üzerinde en az paket yaratma durumu (1. sekme) C A B (kopyala) D E I F G (kopyala) H (d) Çoğagönderim ağacı üzerinde en az paket yaratma durumu ( kopyalama ve 2. sekme) Şekil 7.3 Çoğagönderim paketlerinin iletimi (iki durum için) Çoğagönderim, grup yönetimi gerektirir. Verinin iletilecegi bilgisayarlar/düğümler/ kullanıcılar bir grup oluşturur. Gruba yeni elemanlar katılması ya da varolan bir elemanın ayrılması durumunda gerekli güncellemelerin yapılması gerekir. Yönlendiriciler de kendilerine bağlı düğümlerin hangi gruplarda yer aldıklarını bilmelidirler. Bu işlem düğümlerin yönlendiricileri bilgilendirmesi ya da yönlendiricilerin periyodik olarak 6 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ sorgulaması ile gerçeklenir. Yönlendiriciler tarafından elde edilen bilgiler komşu yönlendiricilerle paylaşılır. Böylece gruplara ait bilgiler ağ içinde yayılır. Çoğagönderim yönlendirmesi yapmak için her yönlendirici diğer yönlendiricileri içeren bir kapsayan ağaç oluşturur. Daha sonra belli bir gruba bu kapsayan ağaç üzerinden erişmek için gerekli olmayan tüm yollar budanır ve kullanılacak yollar bulunur. Örneğin Şekil 7.4’te gösterilen ağ üzerinde iki çoğagönderim grubu olsun (grup 1 ve grup 2). Şekildeki ağ üzerinde ilgili yönlendiriciler 1 ve 2 ile belirtilmiştir (Şekil 7.4(a)). Kaynak düğümün en üst sol köşedeki düğüm olduğunu düşünürsek, diğer düğümlerin altısı birinci çoğagönderim grubu ile, beşi ikinci çoğagönderim grubu ile ilgilidir. Bu durumda kaynak düğümden her iki grubun yönlendiricilerini içeren kapsayan ağaç Şekil 7.4(b)’de, sadece birinci grubun yönlendiricilerini içeren kapsayan ağaç Şekil 7.4(c)’de, sadece ikinci grubun yönlendiricilerini kapsayan ağaç ise Şekil 7.4(d)’de verilmiştir. Şekil 7.4 İki çoğagönderim grubuna sahip ağ. [1]’den alınmıştır. Kapsayan ağaçlar tüm düğümleri içerir oysa ki biz, her bir çoğagönderim grubu için bir kapsayan ağaç oluşturmak ve bu ağacında grubun üyelerini içermesini istiyoruz. Bu durumda gereksiz kenarların kesilerek (bu işleme budama denir) ağacın küçültülmesi anlamlıdır. Kapsayan ağacın budanması (pruning) için pek çok yöntem kullanılabilir. Bunların en basiti hat durumu yönlendirmesinde görülür. Çünkü bu teknik her düğümde tüm topolojinin yaratılmasını sağlar. Budama işlemi kaynağa uzak düğümlerden kaynağa doğru yapılır. Dikkat edilmesi gereken bir diğer nokta ise bazı düğümlerin çoğagönderim grupları içinde yer almamasına karşın grubun uzaktaki elemanlarına ulaşmak için kapsayan ağaca dahil edilmesidir. Şekil 7.4(c)’de görüldüğü gibi. 7 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Uzaklık vektörü yönlendirmesinde ise kapsayan ağacı budamak için dağıtılmış bir teknik kullanılır. Bu teknikte herhangi bir yönlendirici kendisinin ya da komşularının yer almadığı bir çoğagönderim grubuna ait bir mesaj aldığında o mesaji gönderen yönlendiriciye budama mesajı gönderir. Budama mesajını alan yönlendirici o mesajı gönderen yönlendiriciye ait hattı budar. Her yönlendiricinin, her grup için bir kapsayan ağaç oluşturması durumunda, ağdaki düğüm ve grup sayısına bağlı olarak gerekli bellek kapasitesi ciddi bir şekilde artabilir. Bu sorunu çözmek için, merkez temelli ağaç (core-based tree) tekniği önerilmiştir. Bu teknik ile her çoğagönderim grubu için tek bir ağaç oluşturulur. Bu ağacın kökü (merkezi) olarak, gruptaki tüm yönlendiricilere eşit uzaklıkta bir yönlendirici seçilir. Her zaman bu kriterin tam olarak sağlanması mümkün olmayabilir, ancak önemli olan merkez yönlendirici ile diğer yönlendiriciler arasında dengeli bir uzaklığın olmasıdır. Gruba mesaj göndermek isteyen yönlendirici, mesajını merkez yönlendiriciye gönderir ve mesaj merkez yönlendiriciden diğer yönlendiricilere yayılır. Bu durumda, ağ üzerindeki herbir çoğagönderim grubu için tek bir ağaç oluşturulur. 7.3 Gezgin (Mobile) Düğümler için Yönlendirme Gelişen teknoloji ile pek çok insan seyyar (portable) bilgisayarları ile dolaşmakta ve gittikleri yerlerden kendilerine gelen e-posta mesajlarını okumak, kendi dosyalarına erişmek istemektedir. Günümüzde bu, bir sunucuya bağlanmak şeklinde gerçeklenmektedir. Üzerinde çalışılan konulardan biri de benzeri durumlarda mesajların doğruca ilgili bilgisayara iletilmesi içindir. Cep telefonlarında olduğu gibi. Bu durum için örnek bir ortam Şekil 7.5’te verilmiştir. Şekil 7.5 Yerel alan ağlarının, telsiz ağların bağlı olduğu bir geniş alan ağı. [1]’den alınmıştır. Hiç hareket etmeyen bilgisayarları sabit (stationary) olarak adlandırıyoruz. Gezgin bilgisayarları ise iki grupta toplayabiliriz. Bunların biri sistem değiştiren (migratory) 8 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ bilgisayarlar grubu, diğeri ise dolaşan (roaming) bilgisayarlar grubudur. Sistem değiştiren gezgin bilgisayarlar, gidilen yerdeki bilgisayar ağını kullanırlar ve kullanım sırasında hareketli değildirler. Dolaşan gezgin bilgisayarlar ise, devamlı hareket halindedir ve bu sırada haberleşme ağına erişmek ihtiyacındadırlar. Bu yaklaşımda, tüm bilgisayarların değişmez bir adresi, ev yeri (home location) olduğu kabul edilmektedir. Telefon numaralarımız ev yeri için iyi bir örnek oluşturur. Şekil 7.5’teki gibi dünyanın coğrafi olarak küçük birimlere (alanlara) bölündüğünü düşünebiliriz. Bu birimler yerel alan ağları, telsiz ağların kapsadığı alanlar, ... olabilir. Bu alanlara kayıtlı, yani orayı ev yeri olarak kullanan bilgisayarlar (düğümler) olduğu gibi, bu alanlarda dolaşan ziyaretçi (visiting) bilgisayarlar da olabilir. Bu alanlarda ziyaretçi bilgisayarlarla ilgili bir ya da birden fazla yabancı ajan (foreign agent) bulunur. Bu ajanların görevi ziyaretçi bilgisayarları algılamak ve onlarla ilgili işlemleri yapmaktır. Benzer şekilde, bir alana ait bilgisayarların diğer alanlardaki varlıkları ile ilgili kayıtları tutan ev ajanları (home agents) da vardır. Yeni bir bilgisayar (birim) ev alanından farklı bir alana girerse öncelikle o alana kaydolmalıdır. Kayıt işlemi aşağıdaki gibidir: 1) Periyodik olarak her yabancı ajanı kendi alanına giren ziyaretçi bilgisayarları belirlemek için paket yayar. Bazı durumlarda, ortamda yabancı ajanı olup olmadığı ziyaretçi bilgisayarlar tarafından da sorgulanabilir 2) Ziyaretçi bilgisayar kendini yabancı ajanına kaydettirir. Adresini, ortama erişim için gerekli verileri ve güvenlik bilgilerini aktarır. 3) Yabancı ajanı, ziyaretçi bilgisayarın ev ajanı ile bağlantı kurar ve onu ziyaretten haberdar eder. Bu bilgileri güvenilir kılmak için gerekli güvenlik kodlarını ekler. 4)İlgili ev ajanı, gelen verileri inceler, uygun görürse yabancı ajanın işleme devam etmesine izin verir. 5) Yabancı ajanı gerekli izni alınca ziyaretçi bilgisayarı kendi tablosuna kaydeder. Gezgin bilgisayarlara gönderilmek istenen veri öncelikle onların ev adreslerine gider. Şekil 7.6’da bu konuyu açıklayan bir örnek verilmiştir. 9 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 7.6 Gezgin bilgisayarlar için paket yönlendirmesi. [1]’den alınmıştır. Bu örnekte gezgin bilgisayarın ev yeri New York’tur ve Seattle’daki bir bilgisayardan ona veri göndermek istenmektedir. Ancak bu sırada gezgin bilgisayar Los Angeles’dadır. Paketler öncelikle gezgin bilgisayarın ev yerine gelir ve buradan gezgin bilgisayarın geçici adresi öğrenilir. Bu işlem sırasında ev ajanı, gezgin bilgisayar için gelen paketleri kapsülleyerek Los Angeles’taki yabancı ajanına gönderir. Bu ajan gerekli kapsülleri açarak veriyi gezgin bilgisayara ulaştırır. Bunun yanı sıra, ev ajanı, gönderen bilgisayara, paketleri kapsülleyerek Los Angeles’taki yabancı ajanına göndermesini de bildirir. Bu durumda paketler boş yere New York’a gönderilmezler, kapsüllenerek doğrudan gezgin bilgisayarın geçiçi adresine gönderilirler. 7.4 Yapısız (Ad Hoc) Ağlarda Yönlendirme Telsiz ortamlarda baz istasyonunun varsa tüm haberleşme baz istasyonu (bazen erişim noktası, access point, olarak da adlandırılır) üzerinden aktarılır. Diğer durumlarda ise bilgisayarlar çevrelerindeki bilgisayarlara doğrudan veri gönderilerek bir haberleşme ağı yaratabilirler. Bu durumda veri bir bilgisayardan diğerine geçerek ilerler. Bu presip üzerine kurulmuş ağlara yapısız ağlar (ad hoc networks) denir. Pek çok ortam yapısız ağların kullanımı için uygun olabilir. Bunları: • hareketli araçların oluştuduğu bir savaş ortamı, • denizdeki bir filo, • deprem sonrasında ilkyardım hizmeti verilen bir ortam olarak sıralayabiliriz. 10 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bu durumda her bilgisayar hem yönlendirici hem de konak (host) görevini üstelenir. Bu ağlara MANET’ler (Mobile Ad hoc NETworks) de denir. Yapısız ağlarda hem kullanıcılar hem de yönlendiriciler hareketli olduğu için sabit bir topoloji yoktur. Zaman içinde düğümlerin komşuları değişir. Bu nedenle klasik telli ağlarda kullanılan teknikler yapısız ağlarda kullanılmaz. Yapısız ağlar için önerilmiş yönlendirme algoritmalarından biri AODV (Ad hoc Ondemand Distance Vector) yönlendirme algoritmasıdır. Bu teknik, ortamdaki düşük bant genişliğini ve kısa ömürlü pilleri göz önüne alır. Bu tekniğin bir diğer özelliği de gönderilecek bir paket olduğunda yol bulma çalışmalarının yapılmasıdır. Bu ağlarda iki bilgisayar birbirlerinin kapsama alanına giriyorsa komşu olarak görülmektedir. Yani aralarında bir hat (bağlantı) varmış gibi düşünülebilir. İki bilgisayardan biri diğerinden daha güçlü bir vericiye sahipse bu bağlantı tek yönlü de olabilir. Genelde çalışmalarda, kolaylık olması amacıyla, tüm vericilerin güçlerinin eşit olduğu varsayılır. Ancak bilgisayarların kapsama alanları içinde olmaları onların haberleşebileceği anlamına gelmez. Aralarında binalar, dağlar vb gibi haberleşmeyi engelleyici unsurlar olabilir. Yönlendirme algoritmasının çalışmasını Şekil 7.7’yi takip ederek daha iyi anlayabiliriz. Şekildeki A düğümünün, I düğümüne bir paket göndermek istediğini düşünelim. AODV algoritması her düğümde bir tablo oluşturur. Bu tabloda hangi varış noktasına hangi komşu düğüm üzerinden erişileceği bilgisi vardır. A’nın tablosunda I’ya nasıl erişileceği hakkında veri bulunmadığını varsayalım. Bu durumda A, I’ya ulaşmak için bir yol bulmalıdır. Yol bulma girişimi, bir istek mesajı ile yapılır. Şekil 7.7 Yapısız ağlarda yönlendirme. [1]’den alınmıştır. I’nın yerini öğrenmek için, A, ROUTE REQUEST paketi oluşturur ve yayar (broadcast). Bu paket Şekil 7.7’de görüldüğü gibi B ve D’ye ulaşır. 11 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ ROUTE REQUEST paketinin yapısı Şekil 7.8’de verilmiştir. Bu paket kaynak ve varış adreslerinin (Source address, Destination address) yanı sıra istek-numarası (Request ID) olarak adlandırılan bir alana sahiptir. Bu yerel bir sayaçtır ve her düğümde saklanır. Bu sayaç her ROUTE REQUEST mesajı ile bir arttırılarak gönderilir. Böylece kaynak-adresi ve istek-numarası alanlarındaki değerler ROUTE REQUEST paketlerini tanımlar ve birbirleri ile karışmamasını sağlar. Bu durumda, aynı paketten bir tane daha geldiğinde ikinci paket hemen silinir. İstek-numarası sayacı dışında, her düğüm ikinci bir sıralama-sayacı (sequence counter) tutar. Bu sayaç ne zaman birinin isteğine cevap göderilse bir arttırılır. ROUTE REQUEST paketindeki dördüncü alan kaynağın sıralama-sayacını saklar. Beşinci alan ise A’nın I’nın sıralama sayacını en son gördüğü değerdir (hiç görmediyse sıfırdır). Sekmesayacı (hop count) paketin kaç kez sektiğini gösterir. İlk yaratıldığında sıfırdır. Şekil 7.8 (5.21) ROUTE REQUEST paketinin yapısı. [1]’den alınmıştır. ROUTE REQUEST paketini alan bir düğüm aşağıdaki adımları tamamlar: 1) (kaynak-adresi, istek-numarası) yerel geçmiş tablosunda (history table) aranır (daha önce görülmüş ve cevaplanmış olup olmadığını anlamak için). Eğer tekrar gelmiş bir mesaj ise silinir. Aksi halde (kaynak-adresi, istek-numarası) geçmiş tablosuna yazılır ve işleme devam edilir. 2) Mesajı alan düğüm yönlendirme tablosundan varışa daha yeni bir yol bilip bilmediğini kontrol eder. Biliyorsa ROUTE REPLY paketi yaratılır kaynağa bu bilgi gönderilir. Yolun yeni olup olmadığını anlamak için paketteki varış-sıranumarası ile tablodaki varış-sıra-numarası karşılaştırılır. Daha yeni yol tablodaki varış-sıra-numarasının pakettekinden büyük ya da eşit olması ile anlaşılır. Eğer daha küçükse kaynağın yol bilgisinin daha güncel olduğu anlaşılır ve 3. adıma geçilir. 3) Paketi alan düğüm daha yeni bir yol bilmediği için sekme-sayacını bir arttırır ve ROUTE REQUEST paketini tekrar yayar. Ayrıca paketteki verilerin bir kopyasını dönüş-yönlendirme-tablosuna (reverse routing table) yazar. Gelen cevabı kaynağa iletebilmek için. Şekil 7.7’deki oklar dönüş yönlendirmesi için kullanılırlar. Örneğimize geri dönersek ne B ne de D, I’nın yerini bilmektedir. Her biri A’ya geri dönmeyi sağlayacak dönüş-yolu bilgisini saklar, sekme sayacını 1 yapar ve paketi tekrar yayarlar (broadcast). B’nin yaydığı paket C’ye ve D’ye ulaşır. D paketi ikinci kez aldığı için siler. Aynı şekilde D’nin yaydığı paketi de B siler. Ancak D’nin yaydığı paket F ve G tarafından kabul edilir ve saklanır (Şekil7.7(c)). E, F ve I’da yayılan ROUTE REQUEST mesajı varış noktasına erişmiş olur. Dikkat edileceği gibi farklı düğümlerin yaydığı mesajlar bir koordinasyon gerektirmemektedir. 12 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Gelen pakete cevap olarak I, ROUTE REPLY paketi yaratır. Bu paketin yapısı Şekil 7.9’da verilmiştir. Kaynak-adresi, varış-adresi, sekme-sayacı gelen mesajdan kopyalanır. Varış-sıra-numarası I’nın sıralama-sayacından okunur. Sekme-sayacı, 0 yapılır. Yaşam süresi (lifetime) alanı yolun ne süredir geçerli olduğunu tutar. Yaratılan paket ROUTE REQUEST paketinin geldiği düğüme (G) gönderilir. Oradan dönüş yolu bilgisini kullanarak D’ye oradan da A’ya gönderilir. Her düğümde sekme sayacı bir arttırılır. Şekil 7.9 ROUTE REPLY paketinin yapısı. [1]’den alınmıştır. Geri dönüş yolu üzerinde her bir düğüm gelen mesaji inceler ve bulunan yol yerel yönlendirme tablosuna I’ya ulaşılacak yol olarak girilir. Bunun gerçekleşmesi için aşağıdaki durumlardan birinin sağlanması gereklidir: 1) I’ya ulaşmak için bir yol bilinmiyorsa, 2) ROUTE REPLY paketi üzerindeki sıra numarası yerel yönlendirme tablosundakinden daha büyükse, 3) Sıra numaraları eşit ancak yeni yol daha kısa ise (Sekme-sayacına bakılarak anlaşılır). Bu şekilde dönüş yolu üzerindeki tüm düğümler I’ya nasıl erişileceğini öğrenmiş ve tablolarını güncellemiş olurlar. ROUTE REQUEST paketini almış ancak dönüş yolu üzerinde olmayan düğümler (B, C, E, F, H) belli bir süre sonra dönüş-yönlendirmetablolarındaki ilgili kayıtları silerler. Bu teknikte pek çok yayın (broadcast) yapılır. Yayınların sayısını düşürmek için IP paketlerinde olduğu gibi yaşam-süresi (Time to Live) alanı kullanılır ve kaynak tarafından belli bir değer verilir. Bu değer her sekmede azaltılır sıfıra erişince paket silinir. Böylece paketlerin sekme sayısı belirlenmiş bir alanın dışına yayılması engellenmiş olur. 7.4.1. Yolların güncellenmesi Yapısız ağlarda düğümler gezgin olduğu ve bazı düğümlerin zaman içinde enerjisi bittiği için topoloji anlık değişimler gösterebilir. Eğer Şekil 7.7’deki G düğümünün enerjisi biterse, A düğümü I’ya ulaşmak için kullanacağı yolun (ADGI) artık aktif olmadığının farkına varamaz. Bu gibi sorunları çözmek için, düğümler periyodik olarak hello mesajı yayarlar ve komşularının bu mesaja cevap vermesini beklerler. Gelen cevaplar komşu düğümlerin hangileri olduğunu gösterir. Daha önce komşu olan bir düğümden cevap gelmemesi o düğümün yerinin değiştiğini ya da enerjisinin bittiğini gösterir. Bu veriler doğrultusunda yönlendirme tabloları güncellenir. Ağdaki her düğüm, her varış noktası için, ΔT süre içinde kendisine paket gönderen düğümleri kaydeder. Bu düğümler o varış noktasına ulaşmada düğümümüzün aktif komşuları (active neighbours) olarak bilinirler. Belli bir varış düğümüne erişmek için takip edilecek düğüm, sekme sayısı, o varışa ait aktif komşular, en yeni varış sıra 13 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ numarası bir tabloda varış adresine göre indekslenerek tutulur. D düğümü için olası bir yönlendirme tablosu Şekil 7.10(a)’da verilmiştir. Şekil 7.10 a) D için olası yönlendirme tablosu, G varken, b) G düğümünden sonra topoloji. [1]’den alınmıştır. Bir düğümün komşularından biri erişilmez hale gelince (yer değiştirme ya da pil bitmesine bağlı olarak yok-olma) o düğümün tablosunun güncellenmesi gerekir. Bu düğümün hangi yollar üzerinde olduğu incelenir ve bu yollara ait aktif komşulara bilgi verilir. Bu durumda yok-olan düğüme ait verilerin tablolardan çıkarılması gerekir. Aktif komşular bu bilgiyi kendi aktif komşularına iletirler. Böylece haber ağ içinde yayılır. Örnek olarak, G’nin enerjisinin bittiğini düşünelim. Değişen topoloji Şekil 7.10(b)’de verilmiştir. D, G’nin yok olduğunu anlayınca yönlendirme tablosunu kontrol eder ve E, G ve I’ya erişimin bu durumdan etkilendiğini fark eder. Bu durumdan etkilenen aktif komşular A ve B’dir. D onlara paket göndererek bilgilendirir ve E, G ve I’ya ait satırları tablosundan siler. AODV’de tabloların düğümler arasında gönderilmesi gibi işlemler yoktur. Çünkü bu işlemlerin enerji gereksinimi fazladır ve düğümün enerjisinin bitmesine yol açarlar. Bu nedenle mümkün olduğunca kısa ve az mesaj gönderilmesi hedeflenir. 14 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 8 : PROTOKOLLER VE KATMANLI YAPI: OSI, TCP/IP REFERANS MODELLERİ. Türkçe (İngilizce) karşılıklar Servis Kalitesi (Quality of Service, QoS) Uçtan-uca (end-to-end) Düğümden-ağa (host-to-network) Bölüm Hedefi Bu bölümü bitirdiğinizde • Katmanlı yapı nedir • OSI Referans modelini ve • TCP/IP referans modelini öğrenmiş olacaksınız. 8.1 OSI Referans Modeli Haberleşme ağları karmaşık bir yapıya sahiptir. Ortamın fiziksel olarak yaratılması, bu ortam üzerinde veri aktarımı için gerekli kodlamanın yapılması, paketlerin oluşturulması, paketlerin varış noktasına yönlendirilmesi, veri aktarımı sırasında oluşan tıkanıklıkların giderilmesi, ağdaki bir hattın ya da birimin bozulması durumunda alternatif yolların bulunması, paketlerin birleştirilmesi, hataların farkedilmesi/düzeltilmesi, verinin bir uygulama protokolü aracılığı ile kullanıcıya sunulması .... gibi pek çok karmaşık işlemin yapılması gerekir. Bunların hepsi haberleşme donanımı üzerinde çalışan haberleşme yazılım programları ile gerçeklenir. Bu işlemleri bir düzen içinde gerçeklemek için ISO (International Standards Organization) tarafından Şekil 8.1’de görülen OSI (Open Systems Interface) Referans Modeli önerilmiştir. 7. Uygulama Katmanı (Application Layer) 6. Sunum Katmanı (Presentation Layer) 5. Oturum Katmanı (Session Layer) 4. Ulaşım Katmanı (Transport Layer) 3. Ağ Katmanı (Network Layer) 1 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 2. Veri bağı Katmanı (Data Link Layer) 1. Fiziksel Katman (Physical Layer) Şekil 8.1 OSI Referans Modeli OSI referans modeli yedi katmandan oluşmuştur. Her katmanda, aktarılan veri farklı bir isim alır (Şekil 8.2’de gösterildiği gibi). Alt katmanlarda bit katarı, çerçeve, paket gibi isimler verilirken, üst katmanlara gidildikçe isimlendirme ulaşım katmanı protokolü veri birimi (Transport Protocol Data Unit - TPDU) gibi katmana özel hale gelir. Uygulama Sunum Uygulama APDU Sunum PPDU Oturum Oturum SPDU Ulaşım TPDU Ulaşım Ağ Paket Ağ Veri bağı Çerçeve Veri bağı Fiziksel Bit katarı Fiziksel Şekil 8.2 Katmanlara göre taşınan verinin isimlendirilmesi Bu katmanların görevi aşağıdaki gibidir. 8.1.1 Fiziksel Katman: Verinin fiziksel (bakır tel, optic lif, hava…) ortamda taşınması için gerekli yapıyı, kodlamayı oluşturur. Bu katman için veri bir bit katarı (dizisi) demektir. Ortamda kullanılacak kablo standartları, gerilim seviyeleri, işaret şekilleri, işaret hızları, örnekleme hızı, bit süresi bu katmanın bilgisindedir. Hat üzerinden aktarılacak 0/1’lerin fiziksel 2 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ olarak ne şekilde ifade edileceği bu katmanın görevidir. Taşıma ortamına göre kullanılacak yöntemler de değişim gösterir. 8.1.2 Veri Bağı Katmanı: Bu katmanda hat kavramı oluşmaya başlar. Katmanın amacı verinin bir noktadan bir sonraki noktaya ulaştırılmasıdır. Bu katmanda veri çerçeve adı verilen bloklara bölünür. Hat üzerinden aktarım sırasında oluşan hataların sezilmesi bu katmanın görevidir. Hattın iki ucundaki birimin aynı hızlarda çalışmasını ayarlamak da bu katmanın görevidir. İletim ortamına erişim bu katman tarafından organize edilir. 8.1.3 Ağ Katmanı: Bu katmanda taşınan veri paket adını alır. Verinin kaynaktan varışa ulaşması için takip edeceği yolun bulunması bu katmanın görevidir. Veri aktarımı sırasında bazı düğümler (yönlendiriciler) üzerinde tıkanıklıklar olabilir. Bunların sezilmesi ve gerekli önlemlerin alınması da ağ katmanının görevidir. Bunları servis kalitesini (Quality of Service, QoS) arttırıcı görevler olarak da adlandırabiliriz. Heterojen altağların bulunduğu bir ortamda, altağlardan geçiş sırasında adresleme, paket boyu farklılığı gibi problemler bu katmanda çözülür. 8.1.4 Ulaşım Katmanı: Bu katman, kaynak tarafında, oturum katmanından aldığı veriyi paketlere böler. Varış tarafında ise gelen paketleri birleştirerek oturum katmanına iletir. Bölünen verinin numaralandırılması ve varış noktasında karışmış paketlerin tekrar sıralanması, yolda veri üzerinde oluşmuş hatalarla ilgili işlemlerin yapılması bu katmanın görevidir. Ulaşım katmanı uçtan-uca çalışır. Bu da kaynak ve varış düğümlerinde etkinlik göstermesi anlamına gelmektedir. 8.1.5 Oturum Katmanı: Bu katman yardımı ile farklı bilgisayarlardaki kullanıcılar arasında oturumlar kurulması sağlanır. Bu işlem oturumların kurulmasını, yönetilmesini ve bitirilmesini içerir. İletişimin kopması durumunda oturumun devam etmasi için eşzamanlama (synchronization) bilgileri tutulur. Oturumlara farklı kalitede servisler de sunabilir. 8.1.6 Sunuş Katmanı: Bu katmanda iletilecek verinin yapısı belirtilir. İletilecek veri karakter şeklinde ifade edilecekse hangi formatın (EBCDIC, ASCII, ...) kullanılacağını belirtmek, ya da format dönüşümleri bu katmanın işidir. Uygulamaya bağlı olarak verinin sıkıştırılması/açılması, şifrelenmesi/çözülmesi yine bu katmanın görevleri arasındadır. 8.1.7 Uygulama Katmanı: 3 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Uygulama katmanı, uygulama protokolleri yardımı ile ağa erişmek için gerekli alt yapıyı sağlar. HTTP (HyperText Transfer Protocol), Telnet, FTP, ... uygulama protokollerinden birkaçıdır. 8.1.8 Katman Bazında Düğümler Arasındaki İlişki: Şekil 8.3 katman bazında düğümler arasındaki ilişkiyi gösterir. Şekil 8.3 OSI Referans Modeline göre katman bazında düğümler arasındaki ilişki. [1]’den alınmıştır. 8.2 TCP/IP Referans Modeli Bir başka referans modeli de TCP/IP’dir. Bu modelin temelini ABD Savunma Bölümü tarafından desteklenerek geliştirilen ARPANET oluşturur. ARPANET’te amaç heterojen (telli, telsiz) altağların oluşturduğu bir ortamda kesintisiz bir bağlantı oluşturmaktı. Önem verilen bir diğer nokta ise bazı hatların kopması ya da düğümlerin bozulması sonrasında bile alternatif yolların bulunarak bağlantıların yaşatılmasını sağlamaktı. TCP/IP referans modelinin yapısı Şekil 8.4’te verilmiştir. 4 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Uygulama (Application) Ulaşım - TCP/UDP (Transport) Internet Düğümden-Ağa (Host-to-Network) Şekil 8.4 TCP/IP Referans modeli TCP/IP referans modelindeki katmanların açıklaması aşağıdaki gibidir: TCP/IP protokolünde düğümden-ağa katmanı hakkında fazla birşey söylenmez. Bu katmanın amacı düğüm ile ağ arasında IP paketlerini gönderecek bir bağlantının kurulmasıdır. Internet katmanı bir paket yapısı ve IP (Internet Protocol) adı verilen protokol tanımlar. Paketlerin oluşturulması, yönlendirilmesi, ortamdaki tıkanıklıkların giderilmesi bu protokolün görevidir. Internet katmanının üzerinde ulaşım katmanı çalışır. Ulaşım katmanında kullanılmak üzere iki uçtan-uca protokol tanımlanmıştır. Bu protokoller: TCP (Transmission Control Protokol) ve UDP’dir (User Datagram Protocol). TCP/IP referans modelinde de uygulama katmanı tanımlanmıştır. Bu katman OSI referans modelinde olduğu gibi, ağa erişmek için gerekli uygulama protokollerini içerir. OSI ve TCP/IP referans modellerinin karşılaştırılmasını Şekil 8.5’te bulabilirsiniz. Şekilde de görüldüğü gibi TCP/IP referans modeli sunuş ve oturum katmanlarına sahip değildir. OSI referans modelindeki veri bağı katmanı ve fiziksel katmanın işlevleri, TCP/IP referans modelinde düğümden-ağa katmanında gerçeklenmiştir. 5 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 8.5 OSI ve TCP/IP referans modellerinin karşılaştırılması. [1]’den alınmıştır. TCP/IP modeli ilk önerildiğinde içinde yeralan protokoller ve ağlar aşağıdaki şekilde gösterilmiştir. Şekil 8.6 TCP/IP ile ilgili protokoller ve ağlar (ilk önerildiğinde). [1]’den alınmıştır. 6 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 9 : IP PAKET YAPISI ve IP ADRESLEME Türkçe (İngilizce) karşılıklar Satır (word in IP) Tanıtıcı (identification) Parça no (Fragment offset) Yaşam süresi (Time-to-live) Başlık sınaması (Header checksum) Noktalı ondalık gösterim (dotted decimal notation) Döngü sınaması (Loopback test) Bölüm Hedefi Bu bölümü bitirdiğinizde • IP datagram yapısını • IP adreslemeyi ve • IP yönlendirmeyi öğrenmiş olacaksınız. 9.1 IP Paket (Datagram) Yapısı Şekil 9.1’de bir IP Sürüm 4 (v4) paketinin yapısı gösterilmiştir. IP paketlerine datagram da denir. 1 4 Sürüm (Version) 8 Başlık Uzunluğu (IHL) 16 Servis Tipi (Type of Service) Tanıtıcı (Identification) Time to Live (Yaşam Süresi) 24 32 Toplam Uzunluk (Total Length) D F Parça No (Fragment offset) M F Başlık Sınaması (Header Checksum) Protokol Kaynak Adresi (Source Address) Varış Adresi (Destination Address) Seçenekler (0 veya daha fazla satır) (Options) Veri (Data) Şekil 9.1 IP paket yapısı 1 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ IP paketlerini 32 bitlik satırlar (words) halinde düşünebiliriz. Paketteki bazı alanların içeriği açıktır. Diğerleri için bu bölümde kısa açıklama yapılacaktır: Başlık uzunluğu satır cinsinden verilir. En kısa başlık beş satır uzunluğundadır. Servis tipi paketin servis sınıfını belirtir. Toplam Uzunluk başlık ve verinin toplam uzunluğunu byte cinsinden verir. Tanıtıcı parçalanmış IP datagramlarının birleştirilmesinde yardımcı olur. DF (Don’t Fragment) biti datagramın parçalanmaması gerektiğini gösterir. MF (More Fragments) biti arkadan aynı datagrama ait başka bir parça gelip gelmediğini gösterir. Son parça dışındaki tüm parçalarda 1 değerine sahiptir. Parça No (bazen parka kayıklığı olarak da adlandırılır) ilgili parçanın bütündeki yerini gösterir. Yaşam Süresi alanındaki değer her sekmede bir azaltılır. Değer sıfıra eriştiğinde paket hala varış düğümüne ulaşmadıysa yok edilir. Protokol alanı hangi ulaşım protokolünün kullanıldığını gösterir. Başlık Sınaması başlıktaki hataları farketmek için kullanılır. Hatalı bir başlığa sahip olan paket yok edilir. Seçenekler alanı protokolün daha sonraki sürümlerine kolaylık tanımak için tasarlanmıştır. Sürüm 4 için planlanan seçenekler güvenlik, kaynak yönlendirme, yolun kaydedilmesi, zaman bilgilerinin tutulması içindir. İlgili bilgiler gerektiğinde seçenekler bölümüne eklenir. 9.2 IP Adresleme IP adresleri 32 bitten oluşur. Bu adresler, genelde, 8 bitlik gruplar halinde noktalarla ayırarak gösterilir. - - - - - - - -.- - - - - - - -.- - - - - - - -.- - - - - - - - şeklindedir. Bu durumda noktalarla ayrılmış her grup 0 ile 255 arasında değer alabilir. Buna noktalı ondalık gösterim (dotted decimal notation) de denir. IP adreslerini, Şekil 9.2’de gösterildiği gibi, beş sınıfa ayırabiliriz. bitno 0 Sınıf A 0 B 10 C 110 8 16 Ağ 24 31 IP adresi (32 bit) 1.0.0.0 127.255.255.255 arası Düğüm Ağ 128.0.0.0 191.255.255.255 arası Düğüm Ağ Düğüm 192.0.0.0 223.255.255.255 arası 2 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ D E 1110 11110 Çoğa Gönderim Adresleri Gelecekteki Uygulamalar İçin Ayrılmış Adresler 224.0.0.0 239.255.255.255 arası 240.0.0.0 247.255.255.255 arası Şekil 9.2 IP adres formatı Her adres sınıfı özel bir bit dizisi ile başlar. A, B ve C sınıfı adresler ağ ve düğüm olmak üzere iki bölümden oluşmuştur. Bazen, ağ adresini gösteren bölüme önek (prefix), düğüm adresini gösteren bölüme de sonek (suffix) denir. Soneki en uzun adres sınıfı A olduğu için en fazla düğüm, A sınıfına ait bir ağda adreslenebilir. D sınıfı adresler çoğagönderim grupları için kullanılır. E sınıfı adresler ise protokol tanımlandığında ileride kullanılmak üzere ayrılmıştır. Adreslerin dağıtılması ICANN (Internet Corporation for Assigned Names and Numbers) tarafından organize edilir. Her ülkede ICANN’ye bağlı olarak çalışan yerel birimler vardır. Aynı ağın içindeki tüm düğümler aynı ağ adresine (önek) sahiptir. Bir yönlendirici kendisine gelen IP paketinin ağ adresine (ya da adresin önekine) bakarak o ağa hangi port üzerinden ulaşılabileceğini bulurlar ve paketi de uygun şekilde yönlendirirler. Bir IP adresinden ağ adresini çekebilmek için maske (mask) kullanılır. Bir IP adresi kendi ağının maskesi ile bit bazında mantıksal VE işlemine girdiğinde ortaya ağ adresi çıkar. Ağ adresleri de paketlerin yönlendirilmesinde kullanılır. Adres sınıflarına göre maske değerleri aşağıdaki gibidir: A sınıfı ağ maskesi: 255.0.0.0 B sınıfı ağ maskesi: 255.255.0.0 C sınıfı ağ maskesi: 255.255.255.0 IP adreslemenin sunduğu olanaklar bazen yetersiz kalabilir. Örneğin B sınıfı bir adres kullanarak ulaşılabilecek düğüm sayısı sizin kurumunuz için yeterli olabilir ancak siz bu adresleri kurum içinde altağlara ayırmak isteyebilirsiniz. Bu durumda düğüm adresi belirtmek için kullanılan bir grup bitini altağ adresi belirtmek için kullanmanız gerekir. Subnet adresinin nerede başladığını göstermek için bir altağ maskesi tanımlamanız gerekir. Şekil 9.3’te B sınıfındaki bir adresin, altı düğüm bitinin altağ adreslemek için kullanılması durumunda kullanılacak altağ maskesi gösterilmiştir. Bu durumda aynı öneki (10 + ağ) kullanarak 64 (26) altağ adreslenebilir. Her altağ içinde de yaklaşık 1024 (210) düğüm adreslenebilir. 3 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Adres 1 0 Maske 1 1 Ağ (14 bit) 11111111111111 Altağ(6 bit) Düğüm (10 bit) 111111 0000000000 Şekil 9.3 A sınıfı bir adresin 64 altağa bölünmesi durumunda kullanılacak altağ maskesi Normalde maskeler ağ adreslerini bulmak için kullanılır. A, B ve C sınıflarındaki adresler yukarıda verilmiştir. Ancak bir adres altağlara bölündüğünde maskenin uzunluğunun ayrıca verilmesi gerekir. Bu da IP_adresi / maske_uzunluğu şeklinde ifade edilir. Maske_uzunluğu verilen IP_adresinin altağ adresini (ağ adresi ile birlikte) gösteren ilk bölümünün uzunluğunu verir. Şekil 9.3’teki örnek için maske_uzunluğu 22 olmalıdır. Adreslemenin ve maskelemenin bu şekilde yapılmasına CIDR (Classless InterDomain Routing) denir. Şekil 9.4’teki IP ağında, iki A sınıfı ağ (22.0.0.0, 50.0.0.0), bir B sınıfı ağ (128.1.0.0) ve bir de C sınıfı ağ (198.4.12.0) bulunmaktadır. Şekilde dikkat edilmesi gereken, bir düğümün birden fazla ağa bağlanması durumunda her ağ üzerinde o ağa özel bir IP adresinin olması gerektiğidir. Şekil 9.4 Örnek bir IP ağı 9.2.1 Özel IP Adresleri: Bazı IP adreslerinin özel anlamı vardır. 0.0.0.0 adresi düğümler sistemlerin önyüklemesi (boot) sırasında kullanılır. Ağ adresi olarak 0 verilen IP adresleri içinde bulunulan IP ağını ifade etmektedir. 255.255.255.255 IP adresi içinde bulunulan (yerel) ağa yayın (broadcast) için kullanılır. Bir ağ adresi belirttikten sonra adresin kalan kısmı 1’lerle doldurulursa, bu da belirtilen ağ adresine yayını ifade eder. 127 öneki ile başlayan tüm adresler döngü sınaması (loopback test) için kullanılır. Bu ağrese gönderilen paketler ağa çıkarılmaz. Yerel olarak işlenir ve ağdan gelmiş bir paket gibi davranılır. 4 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 9.3 IP Datagramlarının Yönlendirilmesi IP datagramları yönlendirilirken sekmede-yönlendirme (hop-by-hop routing) tekniği kullanılır. Bir yönlendirici aldığı datagramların varış adreslerine bakar, kendi yönlendirme tablolarındaki maskeleri kullanarak (mantıksal VE işlemi ile) varılmak istenen ağ adresine en çok benzeyen tablo adresini bulur ve paketin aktarılacağı port bilgisine erişir. Paket yönlendiricinin bağlı bulunduğu ağlardan biri üzerindeki düğüme gönderilmişse, doğrudan o düğüme gönderilir. Aksi halde gitmesi gereken yöndeki porttan bir sonraki yönlendiriciye ulaşması için aktarılır. Şekil 9.5’te verilen ağda ortadaki yönlendiricinin yönlendirme tablosu gösterilmiştir. 128.1.0.0 adresli ağdaki düğümlerden biri (diyelim ki 128.1.0.7 IP adresine sahip olan), 22.0.0.0 adresli ağdaki düğümlerden birine (diyelim ki 22.0.0.50’ye) bir paket göndersin. Bu paket ortadaki yönlendiriciye ulaşınca tablodan 22.0.0.0 adresli ağa ulaşmak için Port_sol üzerinden aktarılır ve soldaki yönlendirici tarafından alınır. Soldaki yönlendirici paketi aldıktan sonra tablosunu kontrol eder ve 22.0.0.0 nolu ağa bağlı olduğu için paketi doğrudan ilgili düğüme iletir. Varış adresi 22.0.0.0 50.0.0.0 128.1.0.0 198.4.12.0 Maske 255.0.0.0 255.0.0.0 255.255.0.0 255.255.255.0 Port Port_sol Port_sol Port_sağ Port_sağ Bir sonraki düğüm 50.0.0.7 doğrudan iletim doğrudan iletim 128.1.0.9 Şekil 9.5 IP ağlarında yönlendirme 5 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 9.4 NAT (Network Address Translation) Şekil 9.6 Ağ Adres Çevrimi için örnek bir senaryo [1] 6 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 10: ADRES ÇÖZÜMLEME. ADRES ÇÖZÜMLEME PROTOKOLÜ. IP DATAGRAMLARI. Türkçe (İngilizce) karşılıklar Adres çözümleme (Address resolution) Ayarlanabilir (Reconfigurable) Dağıtılmış (distributed) Parçalama (fragmentation) Birleştirme (reassembly) Bölüm Hedefi Bu bölümü bitirdiğinizde • Adres çözümlemeyi • Adres Çözümleme Protokolünü • IP datagramlarının kapsüllenmesini • MTU’yu • Datagramların parçalanmasını ve • Datagramların birleştirilmesini öğrenmiş olacaksınız. 9.1 Adres Çözümleme Yönlendiriciler kendilerine gelen IP paketlerini varış adreslerine bakarak bir sonraki düğüme gönderirler ancak bu aktarım sırasında paketlerin farklı özelliklere sahip altağlar üzerinden geçmesi söz konusu olabilir. Ethernet ortamında yaratılmış bir paket daha sonra bir FDDI ağından, daha sonra bir ATM ağından geçebilir. Üstteki IP yapısına destek veren alttaki ağlara fiziksel ağlar (ya da altağlar) diyebiliriz. Fiziksel ağların da kendilerine has bir adresleme ve çerçeve mekanizması vardır. Örneğin Ethernet ağlarına bağlı her bilgisayarın bir Ethernet adresi vardır. Bu adres üretim sırasında değişmeyecek şekilde Ethernet kartının üzerine kaydedilir. Bu adrese fiziksel adres, donanım adresi ya da mac (medium access control) adresi denir. Bu durumda bir IP paketi her geçtiği fiziksel ağ üzerinde o ağın çerçevesinin içine konur ve varış IP adresine ulaşabilecek şekilde fiziksel ağ içinde yönlendirilir. Adres çözümleme IP adresine bakarak ilgili fiziksel adresin bulunmasıdır. Kaynak ve varış düğümleri aynı fiziksel ağ üzerinde ise varış düğümünün adresi tam olarak çözümlenebilir (Şekil 10.1’deki A ve B düğümleri gibi). İki düğüm farklı fiziksel ağlar üzerindeyse (A ve C düğümleri gibi) fiziksel adres çözümlenemez ve yaratılan çerçeve diğer ağlarla bağlantı sağlayan yönlendiricilere gönderilir ve adres çözümlemenin ilgili yönlendirici tarafından yapılması beklenir. A ile D arasındaki haberleşmede, D farklı bir ağda olduğu için paket önce Y1 (Yönlendirici 1), sonra Y2’ye gönderilir. Adres çözümlemesi aşağıdaki gibidir: -A düğümü, Y1’in adresini çözümler, İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ -Y1, Y2’nin adresini çözümler ve -Y2 de D’nin adresini çözümler. Şekil 10.1 Üç altağdan oluşmuş bir ağ 10.2 Adres Çözümleme Teknikleri Kullanılan protokol ve donanım adresleme yöntemine bağlı olarak adres çözümleme teknikleri farklılık gösterebilir. Farklı ağ tiplerine bağlanmış bir yönlendirici ya da düğüm her bir ağ üzerinde o ortama uygun bir adres çözümleme tekniği kullanabilir. Adres çözümleme tekniklerini üç başlık altında toplayabiliriz: 1) tablodan bakma, 2) hesaplama ve 3) mesajlaşma. 10.2.1 Tablodan Bakma Düğümlerde protokol ve fiziksel adreslerin saklandığı tablolar bulunur. Gerektiğinde bu tablolara bakılarak fiziksel adresler bulunur. Bu uygulaması en kolay adres çözümleme yöntemlerinden biridir. Yerel ağdaki bilgisayar sayısı az ise tablo ardışıl olarak incelenerek gerekli adres bulunur. Büyük tablolarda, daha hızlı erişim için indeksleme yapılabilir. Şekil 10.2’de bir Ethernet ağında IP adresi-donanım adresi çözümlemesi yapmak için kullanılan tablo verilmiştir. IP adresi 160.75.26.24 160.75.26.31 160.75.26.34 160.75.26.40 160.75.26.47 160.75.26.50 160.75.26.55 160.75.26.57 160.75.26.60 Fiziksel Adres (Donanım Adresi) 00:02:44:66:D1:04 00:08:02:B9:19:68 00:02:44:65:DD:69 00:02:3F:68:06:E1 00:50:FC:5C:FD:8F 00:50:FC:69:1B:86 00:0E:7F:62:26:0D 00:20:ED:54:2B:75 00:04:75:c8:62:0d Şekil 10.2 Bir Ethernet ağında Ethernet adreslerinin, IP adresleri ile eşleştirilmesi İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Aynı yerel alan ağı içindeki düğümlerin protokol adresi (IP) aynı ağ adresine sahiptir. Bellekten tasarruf etmek için tabloda ağ adresini gösteren önekler tutulmayabilir. Tablodan bakma yönteminde, olası adres değişiklikleri tüm düğümlerin tablolarının değiştirilmesine neden olur. 10.2.2 Hesaplama Çoğu ağlarda statik fiziksel adres kullanılmasına karşın, bazı ağ teknolojileri ayarlanabilir (reconfigurable) adres kullanır. Ayarlanabilir adres kullanımında port adresleri dinamik olarak yaratılır. Bu ortamlarda, adres çözümlemede kolaylık olması için protokol adresinden hesaplanabilecek (türetilebilecek) fiziksel adresler kullanılabilir. Örneğin C sınıfı bir IP ağında, ağ adresindeki son sekizli fiziksel adres olarak kullanılabilir. Bu durumda fiziksel adresler basit bir şekilde bulunabilir (hesaplanabilir). IP Adresi 221.123.5.1 223.123.5.2 223.123.5.3 223.123.5.4 . . gibi Fiziksel adres (Donanım adresi) 1 2 3 4 Bu örnek için fiziksel adres aşağıdaki gibi hesaplanabilir. Fiziksel_adres = IP_adresi & 0xFF Hesaplama tekniğinde tablo tutmak gerekmediği için bellek harcanmaz. 10.2.3 Mesajlaşma Daha önceki yöntemlerde adres çözümleme tek bir bilgisayar üzerinde gerçeklenebilirdi. Mesajlaşma yaklaşımında ise adres çözümlemek için birden fazla düğüme ihtiyaç vardır. Mesajlaşma tekniği iki farklı şekilde gerçeklenebilir: 1) Ağdaki bilgisayarlardan biri adres çözümleme isteklerine cevap sunmakla görevlendirilmiştir. Fiziksel adrese ihtiyaç duyan düğümler isteklerini bu sunucuya gönderirler. Bazı durumlarda birden fazla adres çözümleme sunucusu olabilir. İstekler cevap gelene kadar sırasıyla farklı sunuculara gönderilir. 2) Belli bir adres çözümleyicisi yoktur. Ağ üzerindeki her bilgisayar adres çözümlemeye yardımcı olur. Dağıtılmış (distributed) bir yaklaşımdır. Adres çözümlemesi isteyen bilgisayar isteğini ağa yayar (broadcast). Yayılan mesajdaki protokol adresine sahip bilgisayar da mesaja cevap verir. Mesajlaşma tekniğinde fiziksel adresin bulunması diğer tekniklerden daha uzun sürer. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 10.3 Adres Çözümleme Protokolü (Address Resolution Protocol, ARP) TCP/IP protokolü ağın yapısına bağlı olarak yukarıda tanıtılan adres çözümleme tekniklerinin hepsini kullanabilir. Gerekli durumlardaki mesajlaşmalarda kolaylık sağlaması için bir ARP mesaj yapısı oluşturulmuştur. Bu mesaj yapısı herhangi bir protokol için fiziksel/donanım adres çözümlemesi amaçlasa da genelde IP ağlarında Ethernet adresine ulaşmak için kullanılır. Kullanılan mesaj formatı aşağıda verilmiştir. 0 Donanım Adres Tipi Donanım Adr. Uzunl. 8 16 24 31 Protokol Adres Tipi Protokol Adr. Uzunl. Operasyon Gönderen Donanım Adresi (ilk dört sekizli) Gönderen Donanım Adresi (son iki sekizli) Gönderen Protokol Adresi (ilk iki sekizli) Gönderen Protokol Adresi (son iki sekizli) Varış Donanım Adresi (ilk iki sekizli) Varış Donanım Adresi (son dört sekizli) Varış Protokol Adresi (tümü) Donanım Adres Tipi, Ethernet için 1 değerini alır. Protokol Adres Tipi olarak IP için 0x0800 verilir. Operasyon alanı donanım adresi isteği için 1, cevabı için 2 değerini alır. Bir istek mesaji gönderilirken Varış Donanım Adresi’nin tamamı sıfır yapılır. Bir ARP mesaji gönderileceği ağın çerçevesinin veri alanına yerleştirilir (Şekil 10.3’deki gibi). Ethernet ortamında bu bir Ethernet çerçevesidir. ARP Mesajı Çerçeve Başlığı Çerçeve Veri Alanı Son ek Şekil 10.3 Bir ARP mesajının yerel alan ağı çerçevesi içinde taşınması Ethernet üzerinde adres çözümleme, mesajlaşma tekniği kullanılarak yapılır. ARP istek mesajının Ethernet ağı üzerinde yayılması ve ilgili bilgisayardan cevap mesajının gelmesi Şekil 10.4’te gösterilmiştir. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ A B C D C D C D (a) A B (b) A B (c) Şekil 10.4 Ethernet’te mesajlaşarak donanım adresinin öğrenilmesi 10.4 Bir ARP Mesajının İşlenmesi Mesajlaşarak adres çözümlemesi nedeniyle, bir IP datagramını göndermeden önce Ethernet ağlarında iki paket daha aktarılır ve datagram’ın gönderileceği düğümün fiziksel adresi bulunur. Bu işlemi aynı varış düğümüne gidecek datagramlar için tekrar tekrar yapmak anlamsızdır. Bu nedenle bir IP_adresi-Donanım_adresi eşlemesi (binding) yapıldığında bu bilgi bir süre ARP cep belleğinde tutulur. Belli bir süre kullanılmamış adresler, bellekte yer sorunu varsa silinir. Bir ARP mesajı alan düğüm aşağıdaki işlemleri gerçekleştirir: 1) Mesaji gönderenin IP ve donanım adreslerinin ARP cep belleğinde bulunup bulunmadığı kontrol edilir. Varsa eski donanım adresinin yerine gelen mesajdaki donanım adresi yazılır. 2) Mesajın operasyon bölümüne bakılır: • İstek mesajı ise bir cevap mesajı hazırlanır. Cevap mesajında, gelen mesajdaki gönderen ve varış adreslerinin yerleri değiştirilir. Gönderen donanım adresi bölümüne mesajı hazırlayan bilgisayarın donanım adresi yazılır. Operasyon alanına 2 değeri verilir. • Cevap mesajı ise daha önce istek gönderilmiştir. Gelen bilgiler cep belleğe eklenir. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Yayın yolu ile Ethernet ağına gönderilmiş ARP çerçevelerini bütün bilgisayarlar okuyabilirler ve içlerindeki protokol ve donanım adreslerine erişebilirler. Ancak yayınlanan tüm ARP mesajlarındaki verilerin ARP cep belleğine konması cep belleğin kısa sürede dolmasına neden olur. Bu nedenle, bilgisayarlar sadece kendilerini hedef alan ARP mesajları ile ilgilenirler. 10.5 Ters ARP (RARP, Reverse Address Resolution Protocol) RARP yeni çalıştırılmış (new-booted) bilgisayarların Ethernet adreslerini ağa duyurması ve kendi IP adreseini sormasını sağlar. Bunlar disksiz bilgisayarlardır. RARP sunucusu bu sorulara cevap verir. IP adres istekleri yerel alan ağı dışına çıkamadığı için isteklerin oluştuğu yerel alan ağlarında bir RARP sunucusu olması gerekir. Bu sorunu çözmek için alternative bir başlangıç protokolü (bootstrap) önerilmiştir: BOOTP. BOOTP UDP mesajları ile haberleşir bu nedenle yerel alan ağlarını geçebilir. BOOTP gerekli adresleri ve maskeyi disksiz bilgisayara bildirir. BOOTP’nin detayları RFC 951, 1048 ve 1084’te verilmiştir. BOOTP’nin dezavantajı IP ve Ethernet address eşlemesinin manuel olarak yapılmasıdır. Daha sonra önerilen DHCP (Dynamic Host Configuration Protocol) ile hem RARP’nin hem de BOOTP’nin yarattığı sorunların çözülmesi amaçlanmıştır. Şekil 10.5’te görüldüğü gibi, DHCP sunucusu olmayan yerel alan ağlarında DHCP aktarım ajanları (DHCP Relay Agents) bulunur. Şekil 10.5 DHCP’nin çalışması Yeni çalışan bilgisayar DHCP DISCOVER mesajı yayar. Bu mesaj DHCP aktarım ajanı tarafından alınır ve DHCP sunucusuna gönderilir. IP adresi otomatik olarak DHCP sunucusundan verilir. Verilen adresin ne süre ile aktif olacağı önemlidir. Burada kiralama (leasing) yöntemi kullanılır. Belli bir süre için verilen IP adreslerinin kullanım süresini uzatmak için kullanıcı bilgisayardan yenileme (renewal) isteği gitmelidir. Aksi halde süre bittiğinde bu adresler başka bilgisayarlara kiralanabilir. 10.6 IP Datagramlarının Kapsüllenmesi İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Yaratılan IP datagramları geçtikleri fiziksel ağlarda o ağın çerçevesi içinde taşınırlar. Bu işleme kapsülleme denir. Şekil 10.6’da gösterildiği gibi kapsüllenen bir datagram ilgili çerçeve yapısında çerçeve verisi bölümüne yerleştirilir. Çerçevelerin başlığı vardır ancak sonek bazı çerçevelerin yapısında bulunmayabilir. Çerçeve uzunluğu ve yapısı ağdan ağa değişim gösterir. Datagram Çerçeve Başlığı Çerçeve Veri Alanı Son ek Şekil 10.6 IP datagramlarının kapsüllenmesi Kapsülleme işlemi Şekil 10.7’de da gösterildiği gibi varış düğümüne ulaşana kadar geçilen her fiziksel ağda tekrarlanır. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 10.7 Pek çok altağ üzerinden geçen bir datagramın kapsüllenmesi 10.7 MTU (Maksimum Transmission Unit) Fiziksel bir ağın çerçevesindeki veri bölümünde taşıyabileceği en fazla veri miktarı bellidir. Bu miktara MTU (Maksimum Transmission Unit) denir. MTU değeri ağdan ağa değişebilir. Şekil 10.8’de farklı MTU değerlerine sahip bir altağ grubu gösterilmiştir. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 10.8 Farklı MTU’lara sahip altağlar 10.8 Parçalama ve Birleştirme Şekil 10.8’deki altağların MTU değerleri sırası ile 1500, 1000 ve 2000 sekizlidir. Bu durumda A düğümünden gönderilen 1500 sekizli uzunluğundaki bir datagram, Ağ2’nin MTU değeri 1000 sekizli olduğu için Y1 yönlendiricisi tarafından parçalanacaktır. Ancak datagramın DF (Don’t Fragment) alanı bir değerine sahip ise datagram parçalanmaz. Parçalama (fragmentation) işlemi Şekil 10.9’da gösterildiği gibi yapılır. Datagram Veri Alanı IP Başlığı IP Başlığı1 Veri 1 IP Başlığı2 Veri 2 IP Başlığı3 Şekil 10.9 Bir IP datagramının parçalanması Parçalanan datagramdan oluşan parçalara orijinal datagramın IP başlığı kullanılarak yeni başlıklar hazırlanır. Bu başlıklar yardımı ile datagramın parçalandığı ve parçaların numaraları gösterilir. Son parça, MF alanına yazılmış sıfır değeri ile gösterilir. Parçalanmış paketlerden orijinal datagramı oluşturmaya birleştirme (reassembly) denir. Parçalanmış bir datagramın varış noktasından önce birleştirilmesi mümkün değildir. Veri 3 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Varış noktasında, parçalanmış datagram, tanıtıcı alanı (identification) ve parça numaraları (fragment offset) yardımı ile birleştirilir. Bir datagramın parçaları varış noktasına sıraları bozulmuş olarak ulaşabilir. Çünkü parçalar farklı yolları takip edebilir. Bu durumda parçalar sıralanır. Parçalanmış bir datagramın parçaları varış noktasına ilerlerken tekrar parçalanabilir. Bir datagram ancak tüm parçaları geldiğinde birleştirilir. Varış düğümüne parçalanmış bir datagramın bir parçası geldiğinde bir sayaç (timer) çalıştırılır. Eğer sayacın süresi dolmadan tüm parçalar gelirse datagram oluşturulur. Aksi halde gelen parçalar yok edilir ve datagram oluşturulamaz. IP’de kaybolan parçaların tekrar gönderilmesi mümkün değildir. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 11: HATA RAPORLAMA PROTOKOLÜ ve IPv6 Türkçe (İngilizce) karşılıklar Sürüm (Version) Trafik sınıfı (Traffic class) Akış etiketi (Flow label) Veri uzunluğu (Payload length) Sonraki başlık (Next header) Sekme limiti (Hop limit) Asıllama (Authentication) Bölüm Hedefi Bu bölümü bitirdiğinizde • Hata raporlama mekanizması nedir • ICMP (Internet Control Message Protocol) • IPv6 • IPv6’da adresleme ve paket yapısı nedir • Uzatma başlığı nedir öğrenmiş olacaksınız. 11.1 Hata Raporlama Mekanizması Internette beklenmeyen bir durum ortaya çıktığında, bu durum ICMP (Internet Control Message Protocol) mesajları kullanılarak bildirilir. Beklenmedik durumlar olası bir hatayı ya da sorunu ifade eder çoğu kez. ICMP mesajları bu sorunları bildirmek ya da algılamak için kullanılır ve çoğunlukla yönlendiriciler tarafından yaratılırlar. ICMP mesaj tiplerinden bazıları aşağıda gösterilmiştir: Varışa Ulaşılamaz (Destination Unreachable) Zaman Aşımı (Time Excedded) Parametre Problemi (Parameter Problem) Kaynak Yavaşlatma (Source Quench) Yeniden Yönlendir (Redirect) Eko (Echo) Eko Cevabı (Echo Reply) Adres Maskesi İsteği (Address Mask Request) Adres Maskesi Cevabı (Address Mask Reply) Zaman İsteği (Timestamp Request) Zaman Cevabı (Timestamp Reply) Varışa Ulaşılamaz ICMP mesajı, IP datagramında belirtilen ağ ya da düğüm adresinin yeri belirlenemediğinde ya da başlıktaki DF biti seçilmiş olduğu için parçalanması gereken bir datagramın parçalanamaması durumunda yaratılır ve datagramın kaynağı olan düğüme gönderilir. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Zaman Aşımı ICMP mesajı, iki durumda yaratılır: 1) Datagram üzerindeki yaşam-süresi alanı (Time-to-Live) sıfıra ulaştığında datagram hala varış adresine ulaşmadıysa. Bu durumda datagram yok edilir. 2) Parçalanmış bir datagramın parçaları birleştirilirken birleştirme süresi aşılırsa. Bu durumda da gelen parçalar yok edilir. Parametre Problemi ICMP mesajı, başlıktaki parametrelerle ilgili bir sorun varsa yaratılır. Sorun, kaynaktan ya da geçilen bir yönlendiriciden dolayı oluşmuş olabilir. Trafiğin yoğunlaştığı, IP datagramlarının çoğaldığı bir ortamda tampon bellek alanlarının dolması sonucu, datagramlar yokedilebilir. Bu durumda Kaynak Yavaşlatma ICMP mesajı, yokedilen paketleri yaratan kaynak düğümleri hızlarını düşürmeleri konusunda uyarmak için yaratılır. Yeniden Yönlendir ICMP mesajı, yanlış yönlendirildiğinden kuşku duyulan bir datagram ile karşılaşıldığında kaynak düğümü bilgilendirmek için kullanılır. Eko/Eko cevabı ICMP mesajları verilen bir IP düğümüne erişilip/erişilmediğini kontrol etmek için kullanılan mesajlardır. Adres Maskesi İsteği/Cevabı ICMP mesajları, bir düğümün bulunduğu ağın adresini bilmemesi durumunda kullanılır. Zaman İsteği/Cevabı ICMP mesajları, eko mesajlarına çok benzerler. Ek olarak burada, istek mesajının geliş ve cevap mesajının ayrılış zamanları da bildirilir. 11.1.1 Bir ICMP mesajının iletimi ICMP mesajları IP paketleri tarafından kapsüllenerek taşınır. Bu IP paketleri daha sonra onları taşıyan alt ağlarda kullanılan çerçeveler tarafından kapsüllenir. ICMP başlığı IP başlığı Çerçeve başlığı IP veri alanı Çerçeve veri alanı Şekil 11.1 Bir ICMP mesajının iletimi ICMP veri alanı İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ ICMP mesajlarını taşıyan datagramların önceliği yoktur! Eğer ICMP mesajı taşıyan bir datagramda hata olursa, başka bir hata mesajı (ICMP mesajı) gönderilmez. Bunun nedeni hata mesajları ile ağdaki trafiği yoğunlaştırmamaktır. 11.1.2 ICMP Mesajlarının Hayatımızı Kolaylaştırması ICMP mesajlarını sadece hata durumunda değil ağ hakkında bilgi sahibi olmak için de kullanabiliriz. Bu konudaki birkaç örnek aşağıda verilmiştir: • • • Eko mesajları kullanılarak belli bir düğüme erişilip erişilemeyeceği kontrol edilebilir. Bir düğüme ulaşmak için hangi yönlendiriciler üzerinden geçildiğini yine ICMP mesajları yardımı ile bulabiliriz. Bu durumda aynı varış noktasını hedef alan IP datagramlarımızın başlığındaki yaşam-süresi (time-to-live) alanına önce 1 değeri veririz ve göndeririz. Bu datagram bir sonraki yönlendirici tarafından atılacak ve Zaman Aşımı ICMP mesajı yaratılacaktır. Daha sonra benzer bir IP datagramını başlığındaki yaşam-süresi alanını 2 yaparak göndeririz. Bu durumda datagram yol üzerindeki ikinci yönlendirici tarafından yok edilecek ve Zaman Aşımı ICMP mesajı gönderilecektir. Bu işlemi datagramımız varış düğümüne ulaşana kadar tekrarlarız. Böylece yol üzerindeki tüm yönlendiriciler ICMP mesajı yaratacakları için datagramların geçtiği yol (yani varış düğümüne gitmek iöçin kullanılan yol) belirlenebilir. Ancak, unutulmaması gereken bir nokta: IP ortamında datagramların takip ettikleri yolların statik olmamasıdır. Ortamdaki hatalara (hat kopması, yönlendirici bozulması) bağlı olarak kullanılan yollar zaman içinde değişim gösterebilir. ICMP mesajları geçilecek yoldaki MTU değerinin bulunması için de kullanılabilir. Burada Varışa Ulaşılamaz ICMP mesajının ve datagram başlığındaki DF alanının yardımı gereklidir. 11.2 IPv6 (IP sürüm 6) Internet ve IP’nin kullanımının artması ile bir süre sonra IP adresleri yetersiz kalmaya başladı. IPv4 planlandığında 32 bitten oluşan adresler bu alan yardımıyla adreslenebilecek kullanıcı kitlesi çok büyük görünüyordu. Ancak Internet’in günlük yaşamımıza girmesi ile bu kitlenin oluşturulması hiç de zor olmadı. Ayrıca, uygulamaların özellikleri de farklılık göstermeye başlamıştı. Gerçek zamanlı uygulamalar için planlanmamış IPv4, gerçek zamanlı uygulamalar kullanıldığında istenen başarıma ulaşamıyordu. IP datagramlarının başlığındaki servis-tipi (type-of-service) alanı servisler arasında farklılaşmayı karşılamak için yeterli değildi. Güvenlik konusuna daha çok önem verilmesi gerekiyordu. Çoğagönderim uygulamalarında artış görülüyordu. Yönlendirme tablolarının ciddi boyutlara ulaşması bu tablolar üzerindeki aramaları zorlaştırıyordu. Tüm bunları çözümlemek amacı ile IPv6 önerildi. IPv6’nın, IPv4 ile uyum içinde İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ çalışması ve IPv4’ün desteklediği protokolleri (TCP, UDP, ICMP, ...) desteklemesi planlandı. 11.2.1 IPv6’de Adresler IPv6’de adres alanı 4 sekizliden, 16 sekizliye çıkarıldı. Bu da 128 bit demekti. IPv6 adresleri dört bitlik gruplar halinde onaltılık olarak gösterildi. Onaltılık düzene göre gösterilen değerler dörder dörder gruplandı. 8000:0000:0000:0000:0123:4567:89AB:CDEF gibi Sayılar arasındaki iki nokta onaltılık düzenin kullanıldığını göstermektedir. Adreste çok miktarda sıfır varsa, sıfırları yazmamak için iki nokta çifti de kullanılabilir. Bu durumda yukarıdaki adres 8000::123:4567:89AB:CDEF şeklinde de ifade edilir. 11.2.2 IPv6’da Başlık Alanı IPv6’da başlık alanı, Şekil 11.2’de gösterildiği gibi, basitleştirilmiştir. Başlığın basitleştirilmesi ile yönlendiricilerde gerçeklenen işlemlerin de azaltılması planlandı. Gerekli durumlarda seçenekler (options) alanının daha iyi kullanılması amaçlandı ve bu alanlar uzatma başlığı (extension header) olarak adlandırıldı. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Sürüm (Version) Trafik sınıfı (Traffic class) Akış etiketi (Flow label) Veri uzunluğu (Payload length) Sonraki başlık (next header) Sekme limiti (hop limit) Kaynak adresi (source address) Varış adresi (destination address) Şekil 11.2 IPv6 datagram başlığı Sürüm alanı datagramın yaratıldığı sürüme uygun bir şekilde incelenmesini sağlar. Bu alanın en başta bulunması önemlidir. Trafik sınıfı, farklı özelliklere sahip trafiklerin birbirinden ayırt edilerek uygun şekilde taşınmasını amaçlar. Akış etiketi, şu an için deneysel olmakla birlikte, akışlara ait özel bilgiler içerir. Bu bilgiler bağlantı için önceden ayrılacak bant genişliğini içerebilir. Bir akış (flow), kaynak adresi, varış adresi ve akış numarası ile ifade edilir. Bir kaynak-varış çifti arasında aynı anda aktif olan pek çok akış olabilir. Veri uzunluğu, 40 sekizliden oluşan datagram başlığının arkasından gelen bölümün (uzatma başlıkları ve veri) uzunluğunu sekizli cinsinden verir. Sonraki başlık alanı datagram başlığını takip eden uzatma başlığının özelliğini belirtir. Uzatma başlığı yoksa verinin özelliklerini gösterir. Sekme limiti, pratikte, IPv4’teki yaşam süresi alanının görevini üstlenir. Datagramın geçtiği her yönlendiricide değeri azaltılır. IPv4’te saniyeler ile ifade edilmesi planlanmasına karşın bir sekme sayacı şeklinde çalışmaktaydı. Kaynak ve varış adreslerinin amacı zaten bilinmektedir. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ IPv6 datagram başlığında hata kontrol (checksum) alanı bulunmamaktadır. IPv4’te bu alanla ilgili olarak yapılan işlemlerin yönlendiricilerde zaman kaybına yol açtığı görülmüş ve güvenilir ağlarda azalan hata olasılığı ile birlikte bu alanın IPv6’da kullanılmaması planlanmıştır. 11.2.3 Uzatma Başlıkları Aşağıda IPv6’da, şimdilik, kullanılan uzatma başlıkları ve açıklamaları verilmiştir. Uzatma Başlığı Sekme seçenekleri (hop-by-hop options) Varış seçenekleri (destination options) Yönlendirme (routing) Parçalama (fragmentation) Asıllama (authentication) Kodlanmış güvenlik verisi (encrypted security payload) Açıklama Yönlendiriciler için bilgi içerir Varış düğümü için bilgi içerir Yönlendirme sırasında takip edilecek yol hakkında bilgi içerir Datagramların parçalanmasına yönelik bilgi içerir Gönderenin kimliğinin asıllanmasına ait bilgi içerir Kodlanmış içerik hakkında bilgi verir Gelişen teknoloji ve farklılaşan uygulamalar için yeni uzatma başlıklarının tanımlanması mümkündür. Bazı uzatma başlıklarının sabit bazılarının ise değişken uzunluğu vardır. 11.2.3.1 Örnek Bir Uzatma Başlığı Şekil 11.3 yönlendirme uzatma başlığının yapısını gösterir. Yönlendirme uzatma başlığı datagram varış düğümüne giderken geçmesi istenen düğümlerin listesini taşır. Burada, sonraki başlık, bir sonraki uzatma başlığının özelliğini verir. Uzatma başlığı uzunluğu, alt başlığın uzunluğunu sekizli cinsinden verir. Yönlendirme tipi, başlığın diğer bölümlerinin yapısı hakkında bilgi verir. Ziyaret edilmemiş bölütler alanı ise, datagram yönlendirilirken geçilmemiş bölütlerin listesini tutar. Listedeki tüm bölütler geçildiğinde bu başlığın görevi yerine getirilmiş olur. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Sonraki başlık (next header) Uzatma başlığı uzunluğu (header extension length) Yönlendirme tipi (routing type) Ziyaret edilmemiş bölütler (segments left) Tipe özel veri (type-specific data) Şekil 11.3 Yönlendirme uzatma başlığının yapısı