Bilgisayar Ağları ve Ağ Programları - Ders Notları

Mehmet Gençer

2013

1 Dijital Çağda İletişim

b Duyularımız arasında duyma ve görme'nin kendine özgü bazı nitelikleri vardır. İki duyu da uzak mesafeden işler: sokağın ucundaki biriyle sesli iletişim kurabilir, kilometrelerce uzaktaki birinin ışık veya dumanla gönderdiği işaretleri görebiliriz. Daha da önemlisi bu iki duyu bizim 'dil' becerilerimizi kullanabildiğimiz duyular. Biri sözlü diğeri yazılı ifade aracımız. Bu yüzden iletişimimizin de temelini oluşturuyorlar.

Bu derste ifade ve iletişim kavramlarını işin içinde bilgisayarların olduğu dijital bir dünyada inceleyeceğiz. Bunu yaparken eskiden beri kullandığımız analog iletişime de göndermeler yapacağız ve benzerliklerin altını çizeceğiz.

Analog veya analoji kelimesi birebir benzerliği ifade eder. Örneğin plağa kaydedilen sesli ifade aslını oluşturan ses dalgalarını katı ve dayanıklı bir ortam'da sabitlemiştir. Orijinal ifade ile temsili birebir eşleşir: orijinal ses dalgasının her anına karşılık plağın üzerindeki çigide bir yükselti noktası vardır. İfade'den temsile (plağa kayıt) ve sonra tekrar ifade'ye geçiş (plağı çalma) analog araçlarla gerçekleşir (sesi fiziksel genliğe ve fiziksel genliği sese dönüştüren piezo-elektrik parça ve mikrofon/hoparlör kombinasyonları).

Artık bu plağı uzakta bir yere götürüp çalabilirsiniz. Analog ifadenin sabitleştirilmiş temsilini ve yeniden yaratımını sağlayan analog teknoloji size iletişimi duyu ve ifade organlarımızla yapabildiğimizden çok daha uzun mesafeler üzerinden gerçekleştirme imkanı sunmuş olur.

Önce radyo ve telefon, sonra da televizyon bu tür bir uzağa iletişimi canlı yapmaya imkan verdi. Bunlar plaktan farklı olarak temsil'i sabitlemek yerine havadan manyetik dalga veya kablodan elektrik dalgası olarak iletiyorlar. Kimi diğerinden daha karmaşık olsa da hepsi analog temsil prensibini kullanıyorlar.

1.1 Analog ortam, uzaktan iletişim, ve kodlama

Nihayetinde bütün iletişim ortamları (communication medium) analogdur. Ne var ki kendi vücudumuzla kullanabildiğimiz ortamların mesafe sınırı çok dar: sesimiz sokağın ucuna ancak gidiyor, gözlerimiz de belirli bir mesafeden detayları seçebiliyor. Bu mesafeyi uzatabileceği düşünülen bazı medyalar 19. yüzyılda keşfedildi: iletken kablolarla elektrik kullanarak ve havadan elektromanyetik dalgalarla.

Graham Bell'in icat ettiği telefon insan sesini onunla birebir aynı (frekans ve yükseklik/güç olarak) bir elektrik sinyaline dönüştürüp bunu kablo üzerinden uzak mesafelere gönderebiliyor, ve öteki uçta sinyali tekrar ses dönüştürebiliyordu. Bu sistem oldukça basitti çünkü iletilen elektrik dalgası taşıdığı sese birebir denk düşüyordu.

Bundan bir süre sonra, 20. yüzyıl başında ortaya çıkan radyo yayını ise biraz daha karmaşıktır. Radyo dalgaları bir kablo döşemeye gerek olmaksızın uzak mesafelere gönderilebilir. Buna karşılık dalga frekansları insan sesinin frekanslarına denk gelmez. Bu yüzden bir çeşit "kodlama" gerekir.

AM bu kodlama yöntemlerinden en basitidir. Bu kodlamada iletilmek istenen ses kendisinden çok daha yüksek frekanslı olan sabit frekansta bir taşıyıcı elektromanyetik dalganın sırtına dalga yüksekliği/şiddeti yüklenir (şekil?). Bu yüzden "amplitude modulation" (yükseklik kodlaması) adı verilmiştir. Bu kodlama görece düşük frekanslı taşıyıcı dalga kullanabilir. Sonuçta duyabildiğimiz sesler en fazla 20 KHz civarı olduğundan bu sesler 400 KHz ve daha yüksek frekansa sahip bir elektomanyetik dalyanın sırtına yüklenebilir. Bu görece düşük frekanslı elektromanyetik dalgalar daha yüksek frekanslı dalgalara göre daha uzak mesafelere ulaşır. Böylece örneğin İstanbul'daki bir alıcı cihazla Berlin radyosunu dinleyebilirniz. Ancak AM kodlaması havadaki başka elektromanyetik dalgalardan dolayı kolayca kirlenir ve parazit oluşur. Bu kirlilik her türlü elektrikli cihazdan kaynaklanabilir.

FM kodlaması bu kirlilik sorununa cevap verir. Bu kodlamada orijinal ses taşıyıcı elektromanyetik dalgaya yükseklik olarak değil frekansındaki değişiklik olarak yüklenir. Bu yüzden de frequencey modulation (frekans kodlaması) adını alır. Bu yöntemde örneğin 94.1 MHz frekansından bir yayını dinliyorsanız aslında taşıyıcı dalganın frekansı 94100 artı-eksi 20 KHz arasında dalgalanmaktadır. Orijinal ses bu dalganın frekansının yayın frekansından farkı olarak kodlanmıştır. Parazitler taşıyıcı dalganın yüksekliğini bozsa bile frekansı kolay kolay bozulmaz. O yüzden FM alıcıları çok daha temiz ses verir. Ama buna karşılık bu kodlama çok daha yüksek frekanslar kullanmayı gerektirir ve bu yüksek frekanslar o kadar uzak mesafelere gitmez. Olsa olsa bir metropolitan alana yayın yapılabilir.

1.2 Dijital kodlama

Dijital yani sayısal kodlamayı biraz genişletilmiş bir tanımla ele alacağız. Örneğin yazı alfabesi, müzik nota sistemi, ve mors alfabesini dijital kodlama olarak kabul edebiliriz. Bu kodlamalar ifadedeki bozulmalara dayanıklıdır. Yüzyüze konuşmada bile aksan farklılıkları ifadenin aktarılamamasına yolaçabilir. Oysa belirli bir standarda göre yazılmış bir metin veya nota orijinal ifadeyi hiç bozulmaksızın aktarır.

Çok eski dijital kodlama yöntemlerinden biri duman veya ışıkla haberleşmedir. Belirli anlamların kodlaması üzerinde anlaştıktan sonra, örneğin bir tepedeki gözetleme noktasından kilometrelerce ötedeki başka bir noktaya ışık veya duman sinyalleriyle bir "ifade"yi aktarmak mümkün olmuştur. Benzer şekilde yazılı metinlerin güvercinler veya atlı kuryeler tarafından taşınmasıyla kodlanmış bir ifade uzağa aktarılabiliyordu. Çok uzun yüzyıllar boyunca bu kodlama biçimleri gelişmiştir. Müzik notasyon sistemleri sayesinde sözlü olanın yanısıra müziksel mesajlar da aktarılabiliyordu. Sayı sistemlerinin gelişmesiyle büyüklüklerin ve hesapların ifadesi mümkün olmuştu, vb.

Benzeri bir sistem telgrafta kullanılır. 19. yüzyılın başında geliştirilen telgraf iletken kablolar üzerinden elektrik var/yok sinyalleri göndermeye dayanıyordu. Alfabedeki harf ve rakamların elektrik var/yok sinyalleriyle nasıl temsil edileceğine dair ortak bir alfabe (Morse alfabesi) bu yöntemin temelidir. Örneğin A harfi bir kısa ve hemen ardından bir uzun "var" sinyali ile temsil edilir. Böylece çok sayıda sembolden oluşan yazılı/dijital ifadeler bu sembollerin elektrik var/yok sinyallerine kodlanması ve karşı tarafta çözülmesi sayesinde anında uzağa iletilebilmişti. Bu gerçek bir iletişim devrimi olmuştur. Telgraf kullanırken bir "kısa"nın arkasından gelen "uzun"un normalden biraz daha uzun olması, veya arada oluşacak bir miktar "cızırtı" mesajı kolay kolay bozamaz (en azından çoğu zaman). Oysa sözkonusu olan AM radyo yayınında söylenen bir arya olsaydı duyduğumuz keyif ciddi şekilde azalırdı.

1.3 İnsan deneyiminin dijitalleştirilmesi

Günümüzde söz, ses, ve görüntüleri uzağa iletme yöntemlerimizin önemli bir kısmı görsel-işitsel deneyimlerimizin önce dijital olarak kodlanmasını içerir. Hemen söyleyelim cep telefonuyla yapılan sesli görüşme, çoğu televizyon ve radyo yayını hala analog kodlama ile yapılmaktadır. Ancak dijital kodlama, özellikle ilgili teknolojilerin maliyetinin düşmesiyle beraber yaygınlaşıyor. Bunun en önemli nedeni dijital kodlanmış deneyimlerin "hatasız", yani hiç bozulmadan uzak mesafelere iletilebilmesidir.

Dijitalleştirilmiş ses ve görüntü analog temsilin (plak örneği) aksine orijinal ses ve görüntünün her anına, her noktasına karşılık gelmez. Bunun yerine bir "örneklem" kullanılır. Bu yüzden dijital ses ve görüntü ancak bir "çözünürlük" sınırı dahilinde gerçeğini temsil eder (şekil?). Öte yandan ses ve görüntü (noktaları, her bir noktanın renk değeri) sayılara dönüştürülüp kodlandığından aktarımda bozulma olmaz. Bir anlamda youtube'dan bir video izlerken çok yüksek hızlı bir telgraf sistemi ve çok karmaşık kod dönüştürmeleri yapan bir telgraf memuru kullandığınızı düşünebilirsiniz.

2 Elektronik Cihazlar Arası İletişim

Bilgisayarlar, genel olarak da elektronik ciharların telgraf memurundan önemli bir farkı var. Bir telgraf memuru hattın diğer ucundaki memurun "uzun"ları normalden biraz daha uzun tutmasına alışabilir, arada oluşacak parazitlere uyum sağlayabilir. Parazitler yüzünden mesajı çözemediyse karşı tarafa sorup tekrar göndermesine karar verebilir. Elektonik cihazlar sözkonusu olduğunda bütün bu anlaşma, uyum sağlama ve hata giderme süreçlerini sağlam temellere oturtmak gerekiyor. Bunun için hem elektrik sinyallerine dair standartlar, hem iki tarafın kodlama-çözme işlemlerine dair onay-ret-tekrarlama gibi "kontrol" işlemlerini yapabileceği "protokoller" gerekir, hem de bu protokolleri yüksek hızda gerçekleştirecek programlar. Bütün bu gereksinimler bir takım standart katmanlar ile sağlanmaktadır. Bu standartlar bir yanda genel olarak konuyla ilgili söz sahibi olan ISO (ınternational Standards Organization) ile diğer yanda bunların ilk uygulamaya geçtiği UNIX işletim sisteminin tarihinden izler taşırlar.

Bilgisayarlar arasındaki iletişimde insanlarınkinden farklı olarak sadece sayılar sözkonusudur, ve bunlar da ikilik tabanda yazıldıkları için sadece iki sembolden oluşan bir alfabe kullanılır. Bilgisayar tarafından insanlara sunulacak verilerin yazı, ses, veya görüntüye dönüştürülmesi konumuzun dışında kalıyor.

2.1 İletişim Modeli

En genel haliyle analog veya dijital iletişimin modeli aşağıdaki gibi düşünülebilir:

            -----------                        ---------
GÖNDERİCİ   | Kodlama | --> iletişim ortamı -> |Çözme  |  ALICI
            -----------     ^             ^     ---------
                            |             |
                      Gürültü-Bozulma     -
                                        Diğer alıcı/göndericiler?

Bu basit model eğer iletişim ortamı ve kodlama tekniği iki taraflı iletişime izin veriyorsa simetrik olarak bir tane daha varmış gibi düşünülebilir. Her koşulda uzağa yapılan aktarımdaki iletişim ortamı sürekli veya zaman zaman ortaya çıkan/artan bozulmalar yaşayabilir. Kodlama ve çözme teknikleri AM radyo yöntemindeki gibi basit ve analog, veya fiber optik kablodaki gibidijital olabilir. Ayrıca başta kablosuz iletişimde olmak üzere hedeflenen alıcı ve gönderici dışındaki cihazların (kötü niyetli kişilerce kullanılanlar dahil) iletişim ortamına erişimi sözkonusu olabilir.

2.2 Fiziksel katman

ISO jargonunda "fiziksel katman" adi verilen standart ver protokoller bilgisayarlar arası iletişimin alfabesini oluşturan hanelerden (yani 1 veya 0 değerini alabilen "bit"leri) oluşan dizilerin bir uçtan diğer uca nasıl iletileceği sorununu çözer. Ancak bunu yaparken hatalı hanelerin tespiti sorununa dokunmaz, onu bir üst katmana bırakır.

Bilgisayar iletişiminde birçok farklı fiziksel ortam kullanılabilir: yerel ağ kablosu, telefon/dial-up/ADSL, GSM, WiFi, uydu sinyali, ışık (fiber optik) sinyaller vb. Bu ortamlarda kodlama ve protokol standartları farklılıklar gösterecektir.

2.2.1 Yerel ağ ve kablolu ethernet

En yaygın kullanılan bağlantı ile başlayalım: ofis ve evlerde kullanılan kablolu yerel ağ, ya da ethernet. Bu ağda kullanılan bağlantı kablosu iki çift iletken kablo çifti içerir. Her bir kablo çifti bir elektrik sinyalini taşıyabildiğinden biri bir uçtan diğer uca, diğer çift kablo ise ters yönde sinyal taşıyabilir. Yani bu kablonun iki ucuna bağlı elektronik cihazlar eşzamanlı olarak biribirine sinyal gönderebilir.

Bit'leri göndermek için ilk akla gelen " için yüksek voltaj, 0 için düşük voltaj göndermek. Ama bu durumda bir "zamanlama" sorunu ortaya çıkıyor (telgraf memurunu hatırlayın). Bir uçtaki cihazın saati diğerinden biraz yavaşsa onun gönderdiği bir haneyi, mesela 1 değerini karşı taraf iki tane arka arkaya 1 olarak anlayabilir. Buna bir çözüm ikinci bir çift kablo ile "saat sinyali" göndererek iki tarafı senkronize etmek. Ama bu gereksinimleri karmaşıklaştırıyor.

Zaman içerisinde bu probleme bulunan çözüm 1940'ların sonunda Manchester'da yapılan Mark I modeli bilgisayarın belleğinde kullanılan bşr kodlama: Manchester kodlaması. Bu kodlamada saat sinyali ve veri haneleri aynı sinyal içerisinde kodlanmıştır. Veriler 1 yerine düşük voltajdan yükseğe geçiş, 0 yerine ise tam tersi olarak kodlanır (şekil ve açıklama?)

Böyle bir kablo kayda değer hızda veri taşıyabilir (elektrik iletim hızı ışık hızına yakındır: 300.000 km/sn), ancak uzunluğu sınırlıdır.

Örnek: 50 metre uzunluğundaki bir kablodan 1 Gbps frekansta dijital veri gönderiliyor: (a) veriler karşı uca ne kadar zamanda ulaşır?, (b) herhangi bir anda kablonun üzerinde kaç bit taşınmaktadır?

Verini karşı uca ulaşması 50/300.000.000 saniye=167 nano-saniye sürer. Kablo üzerindeki bit sayısı da bu sürede kabloya enjekte edilen bit sayısıdır: \(1G*50/300.000.000=1.000.000.000*50/300.000.000=167\) bit.

2.2.2 Çoklu bağlantı sorunu

Kimi zaman ethernet kabloları, örneğin bir hub üzerinden birden fazla cihaza bağlıdır. Bu durumda birden fazla cihaz eşzamanlı olarak veri göndermeye kalkışabilir ve böyle bir iletim tamamen anlaşılmaz bir sinyalle sonuçlanır. Cihazların geri adım atıp tekrar denemeleri gerekecektir. Bunun bugün yaygın çözümü CSMA/CD (Carrier sense Multiple Access with Collision Detection) protokolüdür. Bu protokolde her cihaz ortamı dinler ve boş kalınca veri iletmeyi dener. Aynı anda beklemede olan başka bir cihaz da iletim yapar ve çakışma (collision) olursa ikisi de geri adım atar, rasgele bir süre bekler ve yeniden denerler. Ortamın aşırı yoğun kullanıldığı durumlar hariç bu basit çözüm çok iyi çalışmaktadır.

Çoklu bağlantı topolojilerinde esas sorun verinin kimden kime gittiğinin anlaşılması sorunudur. Ancak bu bir üst katmanın çözeceği bir problem.

2.2.3 Kablosuz ortamlar

Kablosuz ortamlar (WiFi veya diğer adıyla kablosuz ethernet, GSM, bluetooth) prensipte kablolu ethernet'e benzer şekilde kullanılır. Ama aynı mekanda birçok cihaz kullanıldığından çok sayıda frekans dilimi bulunur ve her cihaz varsa boş olan bir dilimi kullanır. Yine aynı şekilde çakışmalar mümkündür ve benzeri protokoller kullanılır.

Kablosuz ortamın belki en önemli farkı güvenliktir. Kablosuz iletim bir duvarla sınırlanamaz. Bu yüzden güvenlik meselesi ek olarak ele alınmalıdır. Bu da başka bir katmanın işi.

2.2.4 Telefon ve ADSL

Telefon kabloları belirli bir frekans aralığını taşımak için tasarlanmıştır. Yıllar boyunca dial-up bağlantı yöntemi bu aralıktaki en yüksek frekansı (en kaliteli şebekede 64 KHz) ethernet kablosundakine benzer bir kodlama ile kullanmıştır. Yakın zamanda geliştirilen ADSL yöntemi ise frekans aralığını küçük dilimlere böler ve her bir dilimdeki frekansı ayrı ayrı ve eşzamanlı olarak veri iletiminde işe koşar. Böylece örneğin 1-64 KHz aralığını 1'er KHz'lik dilimlere bölerseniz, ilk dilim 1kbps (kilo bir per second), ikincisi 2 Kbps, vs., ve sonuncusu 64 Mbps dijital veri taşıyabilir. Toplam 2 Mbps'den biraz fazla ediyor.

2.2.5 Optik kablo - fiber optik

Aynalanmış dış çeperi sayesinde ışığı ileten fiber optik kablolar çok daha yüksek hızda veri taşıyabilirler. Örneğin kırmızı ışığı (frekansı 4×1014 Hz) ethernet kablosundaki elektrik sinyaline benzer şekilde kullandığımızı farzedin. Bu durumda 400 Tbps civarı bir iletim hızı yakalanabilir gibi görünüyor. Tabii bir "lamba"yı bu hızda açıp-kapamak ayrı bir mesele.

Optik iletimde ADSL'e benzer prensiplerle ışık spektrumunun dilimlerini eşzamanlı kullanarak daha yüksek hızlar da elde edilebilir. Bundan da öte fiber optik kablolar elektrik iletken kablolardan daha verimlidir ve daha uzak mesafelere yüksek hızda veri iletimine uygundur. Buna karşılık uçlarda ve bağlantı noktalarında kullanılan kodlama/çözme teknolojisi daha pahalı olduğundan evlerde kullanımı pek yaygın değildir. Onun yerine şehirler-arası veya kampüs içi kampüsler-arası bağlantılarda tercih edilir.

Bu 2. katman fiziksel katmanın üstüne kurulur, ve "veri paketlerinin adresi belirli bir cihaza hatasız iletimini" sağlar. Burada yerel ağlarda kullanılan standartlara değineceğiz.

Bunu yapabilmek için hane dizilerini paketleyebilmek gerekiyor. Bu paket yapısı aşağıda gösterilmiştir:

işaret | alıcı  | gönderici | kontrol | veri uzunluğu |VERİ |  Frame Check Sequence | işaret
       |  adresi|  adresi   |         |               |     |  (32 bit CRC)         |
1 byte | 6 byte | 6 byte    |2 byte   | 2 byte        | ?   | 4 byte                | 1 byte 

Her paketin başı ve sonu başka hiçbir yerde ortaya çıkmayacak bir bit dizisi ile işaretlenmiştir: 01111110. Eğer işaret dışında bir yerlerde bu sayının geçmesi gerekirse diye her ardışık 5 adet 1'den sonra bir 0 konulur, ve karşı tarafta da bu sıfır alınınca silinir. Dolayısıyla ardarda 6 tane 1'in geçtiği tek yer paket başlama ve bitiş işaretleridir. Böylece katman'ın görevlerinden "paketleme" kısmı hallolur.

Pakette alıcı ve gönderici adresi paketi gönderen cihazın ve hedef cihazın adresidir. Bu adreslerin çakışmaması için tüm dünyadaki cihaz üreticileri her cihaza kendilerine tahsis edilmiş aralıktan farklı bir adres verirler. Bu adresler 6 byte'tan oluşur. Gönderici adresi her zaman bellidir, ama bazen alıcı adresi sadece 1'lerden oluşabilir: mesela yerel ağınızda belirli özellikte bir cihazı arıyorsanız ve adresini bilmiyorsanız herkese sormak için böyle bir adresleme yapılabilir (örneğin yeni açılan bir bilgisayar DHCP servisini ararken). Bu adresleme standardı ile adresleme sorunu da hallolur.

Paketin kalan kısmında diğer parçalardan çok daha uzun olan (1500 byte kadar) veri bloğu var. Bu bloğun uzunluğu hemen önündeki iki byte'lık kısımda verildiğinden veri bloğunun başı sonu bellidir. Onun arkasından ise 32 bitlik bir paket kontrol kısmı gelir. Buraya yazılı olan sayı paketin oraya kadar olan kısmındaki byte'ların tamamının toplamıdır (bu toplam 32 byte'tan daha büyükse en soldaki fazla haneler atılır). Paket alan cihaz da aynı toplamı hesaplayıp FCS/CRC ile karşılaştırdığında paketin herhangi bir biti parazit vb. yüzünden bozulduysa anlayabilecektir. Bu bize hataları tespit etme imkanı sağlar.

"Kontrol" kısmında bir yerde taşınan verinin cinsi belirtilir. Örneğin veri bir Internet Protocol (IP) verisi taşıyorsa karşı tarafta buna göre bir veri yapısı çözümlemesi yapılabilmesi için bu bilgi gerklidir.

Öte yandan tespit edilen hataların giderilmesi daha karmaşık bir işlemdir ve "akış kontrolü" protokolünün bir parçasıdır. Pakette "kontrol" diye işaretlenmiş 16 bitlik kısmın büyük bölümü bu işi yapmak için gerekli verileri taşıyor. Hata düzeltmesi yapabilmek için cihazlar her muhatap cihazla ayrı olmak üzere gönderdikleri paketlere paket numarası verirler. Bir paket hatasız alındıysa karşı tarafa paket numarası belirtilerek ACK (acknowledgement, onay) veya hata tespit edildiyse NACK(not acknowledgement) bilgisi gönderilir. Bütün bunlar "kontrol" kısmına kodlanır. Paket numaraları sayesinde, örneğin karmaşık topoljiye sahip bir yerel ağda, paketler karışık sırada gelsede doğru sıraya sokulabilir.

Akış kontrolüne geçmeden önce bu ek verilerin getirdiği yüke göz atalım. Paketin ne kadarı veri taşımaktadır? Buna protokol verimliliği diyeceğiz. Protokol verimliliğini hesaplamak için veri alanının ortalama (vey sabit) uzunluğu ile veri dışındaki alanların (protocol overhead) uzunluklarını kullanırız. Yukarıda gördüğümüz paket yapısını esas alırsak overhead 22 byte'tır. "veri" kısımlarının ortalama uzunluğuna \(n\) byte dersek:

protokol verimliliği = n / (n+22)

olarak hesaplanabilir. Öte yandan n sayısını fazla da arttıramayız çünkü o zaman da paketlerin hatalı çıkma oranı artacaktır.

Örnek Bir iletim ortamında herhangi bir bitin hatalı olma olasılığı \(10^{-4}\) olsun. 1500 byte'lık bir pakette en az bir bitin bozuk olma olasılığı nedir?

Bunu bir Bernoulli denemesi, ve \(p\) olasılık değerini \(p=10^{-4}\) olarak düşünürsek aradığımız cevap: \(P=1- (1-p)^{1500}\), yani \(P=1-0.86=0.14\). Bu hiç te iyi görünmüyor!

2.3.1 Akış kontrolü

En basit akış kontrolü "stop-and-wait", dur-ve-bekle protokolüdür. Bu yöntemde bir cihaz diğer tarafa paket gönderdikten sonra paketin hatasız teslim alındığına dair onay bekler, ancak sonra diğer paketi gönderir. Eğer paket hatalı cevabı alır veya önceden anlaşılmış bir süre (timeout) boyunca hiç cevap alamazsa son paketi yeniden gönderir (paketin başı-sonu, gönderici adresi, veya paket numarası okunamadıysa timeout'a düşebilir!). Basitliğine rağmen önemli bir dezavantajı iletim ortamının uzun aralıklar boşta kalmasıdır. Bunun tam değeri, yani "iletim verimliliği", "net veri akış hızı" ile ortamın "iletim hızı" karşılaştırılarak bulunabilir.

iletim verimliliği = net veri akış hızı / ortam iletim hızı

Örnek 1000 m uzunluğunda bir kablo ile 1 Gbps hızında veri iletimi yapılıyor. Ortalama veri bloğu boyutu 900 bit ve paket verimliliği 90% olsun. Eğer dur-ve-bekle protokolü kullanılıyorsa net veri akış hızı ne olur.

Paket verimliliğine ve veri bloğuna bakılırsa tüm paketin ortalama boyu 1000 bit olmalı. Bu paketin bir uçtan çıkması \(\frac{1000}{1G}=10^{-6}\) saniye alır. İletim hızını 300.000 km/s olarak kabul edelim (bu çok kaliteli bir kablo kullanılıyor demektir!). Bu durumda paketteki son bitin karşıya ulaşması \(\frac{1.000}{300.000.000}=0,33.10^{-6}\) saniye sürer. Yani toplam paketin karşı tarafa iletimi 1.33 mikrosaniye sürdü. Cevap paketi oldukça kısa olacaktır (veri bloğu içermez), o yüzden onun gelme süresine 0.33 mikrosaniye diyelim. Bu arada karşı tarafın paketi kontrol etmesinin anlık gerçekleştiğini varsaydık. Sonuçta 900 bitlik veriyi toplam 1.66 mikrosaniyede sağsalim teslim etmiş olduk ve ancak o zaman ikinci paketi gönderebileceğiz. Dolayısıyla bir saniye içerisinde göndereceğimiz bit sayısı: \(\frac{1}{1.66.10^{-6}}.900\), yani 542 Mbps. Dolayısıyla 1 Gbps kapasiteli iletim ortamını yaklaşık yarı verimlilikte kullanabilmiş olduk.

Üstelik bunları hesaplarken arada bazı paketlerin bozulacağını hiç hesaba katmadık. Aynı örneği her bitin bozulma olasılığını \(p=10^{-4}\) olarak alıp tekrarlayabilirsiniz. Bunu yaparken timeout süresi olarak 100 milisaniye alın, ve her 10 bozuk paketten birinin timeout'a düzeceğini, diğer 9'unun ret cevabı alacağını farzedin. Yeniden gönderilen paketlerin hiçbirinin bozuk olmayacağını varsayın.

İkinci akış kontolü "sliding window", "kayan pencere" yöntemi. Bu yöntemde "pencere" geriye doğru belirli sayıda (ve birden fazla) paketi içeren ve dikkatin yoğunlaştığı bölge anlamına geliyor. Bu yöntemde örneğin onay/ret cevabı beklemeden 10 paket gönderiyoruz. Tabii bu arada 10 önceki paketin onayı gelivermiş olabilir, bu durumuda pencereyi kaydırırız, ve bir paket daha gönderme hakkımız ortaya çıkar. Sonuçta pencere dahilindeki eski paketlere onaylar geldikçe pencereyi kaydırıp açılan haktan yararlanıp yeni paketler gönderebiliriz. Ret cevabı veya timeout yine olabilir.

Bu protokol ve yöntemler fazla değiştirilmeden kablosuz ağlarda da kullanılmaktadır. Ancak kablosuz sistemlerde ek olarak güvenlik ve şifreleme protokolleri vardır. Telefon ve ADSL'de ise hatta bağlı sadece iki cihaz olduğundan adresler gereksizdir. Öte yandan GSM'de dijital veri aktarımı tamamen farklı bir adresleme ve protokol gerektirir.

2.3.2 2. katman trafik kontrolü

  1. katman switch'ler: bunlar MAC adreslerine göre trafiği sınırlama ve yönlendirme için kullanılır. Ayrıca hub'lardan farklı olarak çakışmaları engeller ve akış verimliliğini arttırır.

2.3.3 Yüksek hızda iletişim

15 milyonluk bir kentin yüksek hızlı dijital veri arterleri yukarıdakinden çok farlı kriterlerle tasarlanmıştır. "Frame relay" ve benzeri protokollerin kullanıldığı bu tasarımların bizim gördüğümüzden temel farkı paketlerin sabit büyüklükte olmasıdır. Bu sayede paketin başının-sonunun tespit edilmesi ihtiyacı ortadan kalkar. Paketler sabit zamanda geçtiğinden bu zaman aralıklarına göre optimize edilmiş yüksek verimli elektronik devreler kullanılır. Ayrıca hata kontrolü yapacak zaman yoktur. Bu yüzden daha üst katmanların (örn. IP: Internet Protocol) tekrardan hata tespit ve giderme işlemi yaptığını göreceğiz.

2.4 Problemler

Problem 1 500 metre uzunluğundaki bir kablodan 2 Gbps frekansta dijital veri gönderilmektedir. Ayrıca her bir bitin bozulma ihtimali \(10^{-4}\)'tür. (a) veriler karşı uca ne kadar zamanda ulaşır?, (b) herhangi bir anda kablonun üzerinde kaç bit taşınmaktadır? (c) \(n\) bitlik bir veri dizisinde hiçbir bitin bozulmamış olma ihtimali nedir? ve (d) c şıkkında hangi \(n\) sayısı için dizinin sağlam olma ihtimali %70 veya daha yüksektir.

** Çözüm **

Problem 2 1. problemdeki sistemde herbiri 1000 bitlik veri içeren ve yukarıda verilen paket yapısına sahip paketler gönderilmektedir. Ayrıca dur-ve-bekle akış kontrolü kullanılmaktadır. (a) protokol `overhead' ne kadardır? (b) protokol verimliliği ne kadardır? (c) hatalar gözardı edilirse net veri akış hızı nedir (ACK/NACK paketlerindeki veri bloğunun boyutunu 0 olarak alabilirsiniz)? (d) c şıkkındaki sonuca göre iletim verimliliği nedir?

** Çözüm **

Problem 3 Problem 2'de akış kontrolü kayar-pencere olarak değiştirilir ve pencere genişliği 16 paket ise c ve d şıklarına verdiğiniz cevaplar nasıl değişir?

** Çözüm **

3 Ağlar arası ağ: İnternet'in işleyişi

`Veri Bağlantı Katmanı'nın işlevini "veri paketlerinin adresi belirli bir cihaza hatasız iletimi" olarak tanımlamıştık. Sözkonusu katman bu işlevi ancak hepsi aynı fiziksel ortama bağlı cihazlar arasında gerçekleştirebilir. Böyle bir durum görece küçük bir fiziksel alan içerisinde aynı kabloya bağlı veya kablosuz bir ortamdan haberleşen cihazlar arasında, başka bir deyişle "yerel ağ" içerisinde mümkündör. Ancak Dünya çapında bir iletişim imkanı sağlamaz. Global bir iletişim sistemi veri bağlantı katmanı'nın üzerine inşa edilen "ağ katmanı" ile mümkün olur. Bunun günümüzdeki karşılığı da "İnternet"tir.

Daha önce bahsettiğimiz türden standart ve protokoller İnternet'in işleyişinde daha da önemli olur. İletişimin her biçiminde olduğu gibi iki bilgisayarın iletişiminde de en başta bir ortak dil gereklidir. Ağ protokolleri işte bu ortak dili sağlar. Telin iki ucundaki bilgisayarlar ne kadar farklı model ve işleyişte olsalar da aynı protokolü (ya da protokolleri) konuştukları sürece iletişim mümkündür. İnternet sözkonusu olduğunda cihaz çeşitliliği çok fazla ve öngörülemez olduğundan protokoller daha da önem kazanır.

Bu protokoller uluslararası araştırma komisyonları tarafından biçimlendirilir ve son şekli verilir. Bir protokol bir kez kullanılmaya başlandı mı hem ağı oluşturan elektronik cihazlar ve bilgisayar parçaları, hem de bunları kullanan bilgisayar programları buna uygun yapılır. Bu yüzden de protokolde değişiklik yapmak çok zordur! Ağ protokollerinin geliştirilmesi ve standartlaşmasında etkili olan kurumlar arasında IEEE (Elektrik ve Elektronik Mühendisleri Enstitüsü), ISO (Uluslararası Standartlar Örgütü), IETF (Internet Engineering Taskforce), ISC(Internet Standards Consortium) sayılabilir. Geliştirilen bu standartlar RFC adı verilen dökümanlarda resmi halleriyle yayınlanır. Burada adı geçen RFC'lerin tamamına IETF web sitesinden(http://www.ietf.org/rfc.html) ulaşabilirsiniz.

Aynı ilk bilgisayarın yapımında, Alan Turing ve arkadaşlarının 2. Dünya savaşı sırasında askeri istihbaratla ilgili olarak yaptıkları araştırmaların öncü olması gibi, bilgisayar ağları da askeri savunma amacıyla 70'lerde yapılan araştırmalardan etkilenmiştir. Bugün tüm internet iletişiminde kullanılan temel protokol olan IP (Internet Protocol) bu yıllarda gelişmeye başlamış, sonrasında sivil iletişimde de yaygın olarak kullanılmıştır. Bilgisayar ve internet'in hızla yaygınlaşmaya başladığı 90'lı yıllara gelinene kadar bu protokol defalarca yenilenmiş ve dördüncü versiyonu (IP4) yaygın olarak kullanılmaktadır (bakınız RFC 791). Bu versiyon küçük eklentilerle ihtiyaçlara uydurulmuş ama esasen gücünün sınırlarına dayanmıştır. Örneğin IP4 protokolü tüm dünyada 2 milyar civarı bilgisayara adres verilmesine izin vermektedir. Ancak kişisel bilgisayarlar ve ağa bağlı diğer cihazların sayısındaki artış bu sınırı çoktan zorlamaktadır. Bu ve diğer sorunlara cevap olarak IP'nin altıncı versiyonu geliştirilmiştir. Çok yaygın ve belirleyici bir standart olduğundan bu protokolün yeni versiyonuna geçilmesinde güçlükler vardır. Bugün yeni üretilen ağ cihazları ve programları protokolün hem 4. hem de 6. versiyonlarını aynı anda desteklemekte ve bu sayede geçiş yavaş ta olsa gerçekleşmektedir.

3.1 Global iletişim yöntemleri: Paket ve Hat Anahtarlaması Ayırımı

Bilgisayar ağlarından önce varolan iletişim yöntemleri posta, telefon ve telgraf idi. Bilgisayarlı iletişim ışık/elektrik hızında olması dışında bunlarda yakın benzerlikler gösterir.

Bu yöntemleri iki sınıfa ayırabiliriz: paket anahtarlamalı yöntemler ve devre anahtarlamalı yöntemler. Posta sistemi birinciye, telgraf ve telefon ise ikinciye örnektir. Devre anahtarlaması yöntemi daha az karmaşık olduğundan hızlı iletişimde ilk kullanılan yöntem olmuştur. Bir kablolu telefon görüşmesini ele alalım. Eyüp'teki bir evden Ankara Bahçelievler'deki bir evi aramak istiyoruz. Bunun için birkaç tane telefon hattının ucuca eklenmesi gerekir. Eyüp'teki evden Kağıthane yerel telefon merkezine bir hat, oradan İstanbul telefon merkezine bir hat, oradan Ankara merkeze, oradan Bahçelievler yerel merkeze, ve nihayet oradan arkadaşımızın evine. İstanbul ve Ankara arasında mevcut binlerce hattan biri müsaitse bu hatların hepsi birbirine eklenir ve evimizden arkadaşımızın evine bir kablo çekilmiş etkisi yaratır. Bu kabloyu oluşturan hatlar konuşmamız bitene kadar bize tahsis edilmiştir. Eskiden santral memurlarının elle yaptığı bu hat birleştirme işlemini artık dijital anahtarlama cihazları çok hızlı olarak yapıyor.

Bu tür bir hat anahtarlaması sisteminin en önemli avantajı oluşan hattın tüm veri kapasitesinin bize tahsis edilmiş olmasıdır. Bu yüzden ses veya görüntü iletimi kesilme veya yavaşlama olmadan, belirli bir kapasite garantisiyle yapılabilir. Öte yandan çok ciddi dezavantajları vardır. Geçişlerden herhangi birinde mevcut hatlar o anda başkaları tarafından kullanılmaktaysa bir hat oluşturulamaz. Ayrıca veri iletim kapasitesini değerlendirmeyen hatların kapasitesi başkalarının iletişimine aktarılamaz.

Buna alternatif olarak gelişen paket anahtarlaması ise iletilecek verilerin paketlere bölünüp müsait hatlardan geçerek karşı tarafa iletilmesine dayanır. Bu yöntemde hiçbir hat sürekli olarak meşgul edilmediğinden toplam trafik müsait hatlara dağılarak karşı tarafa doğru akar. Ancak kullanımın yoğu olduğu anlarda veri paketlerinin trafiğe takılıp gecikme riski vardır. Yine de böyle bir sistemde kapasiteyi yönetmek (yapımı ve çalışması daha karmaşık olsa da) çok daha kolay olmaktadır.

Paket tabanlı yönteme örnek olarak posta sistemini gösterebiliriz. Posta sistemi yüzyıllar boyunca gelişerek karmaşık ve iyi çalışan bir paket anahtarlama sistemine dönüşmüştür. Bunun nasıl çalıştığını soyutlamak için bir mektubu ele alalım. Zarf üzerinde gönderici adı ve adresi, alıcı adı ve adresi, bir de postaya verildiği tarih bulunur. Zarfın içine sığacak sayfa miktarı sınırlıdır. Bu zarf postaneye teslim edildikten sonra birçok elden geçecek ve her seferinde alıcı adresine bakılarak o yöndeki posta merkezine doğru ilerleyecektir. Verilen adreste alıcı bulunamaz yada belirli bir süre içerisinde zarf teslim edilemez ise geri döner (ya da PTT'de kaybolur!).

3.2 İnternet Protokolüne bir bakış

İnternet'in temeli olan IP (Internet Protocol) iletişimi de paket tabanlı olup tamamen zarf örneğine benzer. Basitleştirilmiş bir IP paketine göz atalım:

Gönderici: TCP:2056 
Gönderici adresi: 194.27.145.72 

(Gönderme Tarihi yerine) yaşam süresi: 10 

Alıcı: TCP:25 
Alıcı adresi: 212.175.10.5 

İçerik: 
    RFC822 uyumlu eposta gönderisi: 
    konu: önemli duyuru 
        ekler 
        vesaire... 

Burada alıcı ve gönderici adresleri birer bilgisayara aittir, ve internet sisteminin postacıları olan 'router'lar (yönlendiriciler) bu sayılara bakarak paketi bilgisayara ulaştırırlar. Bu adreste (bilgisayarda) çalışan pekçok program arasından biri, pakette TCP:25 olarak belirtilen alıcıdır. Eğer gerçekten böyle bir alıcı program mevcut ise paket yerine ulaşır, aksi takdirde göndericiye cevap olarak hata mesajı taşıyan bir başka IP paketi gidecektir. Posta sistemindeki tarih damgası yerine IP paketlerinde yaşam süresi (TTL: Time To Live) sayacı bulunur. Paketin geçtiği her router bu sayacı bir eksiltecek ve sayaç sıfıra dayanınca paketin hedefine ulaşamayıp ortalıkta kalabalık yarattığına kanaat getirilip çöpe atılacaktır. Bazı paketler kaybolabilir veya bir zarfa sığmayabilir. Bir başka sorun da aynı göndericiden aynı alıcıya gönderilen birsürü paketten, sonra gönderilenin ilk gönderilenden önce yerine ulaşması durumudur. Dinamik ve karmaşık bir sistem olan internette bu son derece mümkündür.

Interneti oluşturan elektronik sistemler paket tabanlı bir ağ iletişimi kullanmaktadır.Özünde bu sistem devre tabanlı, sıralı iletişimi desteklemez. Bu desteği sağlayan TCP protokolüdür (Transmission Control Protocol, RFC 793). Bu protokol IP'nin sağladığı imkanları kullanarak iki iş görür: (i) Büyük verilerin IP zarflarına sığacak parçalara ayrılıp parçaların numaralanması, ve (ii)Karşı uçta sırası karışan parçaların düzenlenmesi, kaybolan parçaların göndericiden yeniden istenmesi ve nihayet doğru sırada alıcıya teslimi.

Yukarıdaki örneğimizdeki alıcı adı TCP:25 idi. Buradaki sayı TCP port numarasıdır. IP'nin üstünde, ondan servis alan protokoller olarak TCP ve UDP standartları bu port numaraları ile "bilgisayar içi" bir adresleme yaparlar. TCP/UDP bu şekilde 2**16 (65536) adet port kullanımına imkan verir. Yani aynı adreste çok sayıda programın sunucu ya da istemci olarak çalışması mümkündür. Herbiri kendi portunu kullanır. Birçok port numarasıözelleşmiş uygulamalara tahsis edilmiştir. Örneğin 25 numaralı port her zaman eposta sunucusuna aittir. Bu sunucuya gönderilen verilerin, epostaların formatını belirleyen RFC822 standardına uygun olması beklenir. Benzer şekilde web sunucusu da 80 numaralı portu kullanır ve anladığı dil HTTPdir (HyperText Transfer Protocol, RFC2616). Hangi portun hangi işleve tahsis edildiği IANA (Internet Assigned Numbers Authority) tarafından belirlenir. IP'nin üstüne inşa edilen protokoller silsilesi kısaca şekilde gösterilmiştir (kaynak RFC 791):

             +------+ +-----+ +-----+     +-----+
             |Telnet| | FTP | | TFTP| ... | ... |
             +------+ +-----+ +-----+     +-----+
                   |   |         |           |
                  +-----+     +-----+     +-----+
                  | TCP |     | UDP | ... | ... |
                  +-----+     +-----+     +-----+
                     |           |           |
                  +--------------------------+----+
                  |    Internet Protocol & ICMP   |
                  +--------------------------+----+
                                 |
                    +---------------------------+
                    |   Local Network Protocol  |
                    +---------------------------+

                     Protocol Relationships

Standartlarla ilgili yukarıda bahsettiğimiz kısıtlamalar sadece bir kurum içinde kullanılan yerel ağlarda bu kadar sert değildir. Yerel iletişime dahil olan ve internetle ilişkisi olmayan bilgisayarlar kurumun sistem yöneticisi tarafından birbirine uyumlu şekilde ayarladığı sürece, standart dışı protokoller kullanılabilir. Hem bu açıdan hem işleyiş açısından yerel ağlarda daha geniş bir hareket ve konfigürasyon serbestisi vardır. Bu ağlara LAN (Local Area Network) ya da Intranet diyoruz. Adından anlaşılacağı üzere IP, internet'in standart protokolüdür. Yerel ağlarda da kullanılır ama temel bazı farklar olabilir.

Eğer evinizde kablonet ya da telefon modem bağlantısı kullanıyorsanız doğrudan bir internet adresine sahip olursunuz. Bağlantı kurduğunuzda servis sağlayıcınız (Türk Telekom ya da Superonline) size kendisine ayrılmış IP adreslerinden birini tahsis eder ve bağlantıyı kesene kadar bu adresi kullanırsınız. Daha sonraki bir zaman aynı adres başka bir müşteriye tahsis edilebilir. Buna dinamik IP adreslemesi diyoruz. Kurumsal kullanıcılar ise bunun yerine statik IP kullanır. Adresleri her daim sabittir. Statik IP'nin avantajı sunucu uygulamalarında ortaya çıkar. Örneğin bir eposta sunucusu çalıştırmak için statik IP adresine ihtiyacınız olacaktır. Öyle ki adresiniz internet adres rehberlerinden bulunabilsin. Sürekli adres değiştiren birine posta göndermek imkansızdır!

Adres rehberinden kastımız DNS sistemidir (Domain Name System). Bu sistem özünde nümerik ve hatırlaması zor IP adresileri yerine anlamlı isimler kullanmamıza olanak verir. Siz 'cs.bilgi.edu.tr' ya da'ttnet.gov.tr' adresini verdiğinizde ona karşılık gelen IP adresi DNS sunucularına(NIC:network Information Centre) sorarak bulunur. Eğer web sunucusu ya da eposta sunucusu çalıştırmak isteyen bir kurumsanız, sizin de Türkiye DNS koordinasyon merkezi olan Orta Doğu Teknik Üniversitesi'nden (www.nic.tr) bir alan adı satın almanız gerekecektir.

Bilgisayarınızın DNS sisteminden yararlanması için bu servisi hangi sunucudan alacağını bilmesi gerekir. Kablonet kullanırken bilgisayarınız bu bilgileri, IP adresiyle beraber otomatik olarak servis sağlayıcının sunucusundan edinir ve kullanır. Modem ve telefon hattı kullananların ise bunları sisteme tanımlaması gerekir. Günümüzde internet erişimi için kullanılan teknolojiler çeşitlenmiştir. Bir cep telefonu, telsiz modem, ya da amatör radyo ekipmanı ile de internete bağlanmak mümkündür. Telsiz yöntemlerin tek farkı iletişimin bir başkası tarafından dinlenmesi tehlikesidir. Ancak bu tehlike bütün yöntemlerde mevcuttut. IP paketlerinizin dolaşımı esnasında istenmeyen kişilerin eline geçmesi tehlikesi her zaman vardır. Bu yüzden erişim için kullanılan ekipman ne olursa olsun doğrudan internete bağlı kullanıcılar için güvenlik riskleri vardır. Bu sorunu gidermek için pek çok program şifreleme yöntemlerinden yararlanır.

3.2.1 Yerel ağ (Intranet)

Yerel ağlardaki durumu internet'ten ayıran temel bazı unsurlarışöyle sıralayabiliriz:

  1. Daha güvenli bir ortam sözkonusudur. Kurum içindeki (üniversite, şirket ya da internet kafe) bilgisayarlar sistem yöneticisinin kontrolü altındadır ve kullanıcılardan düşmanca davranış beklenmez.
  2. Yerel ağlarda IP protokolü kullanılmasına rağmen IP adreslerinin sadece kurum içinde bir anlamı olması yeterlidir. İnternete doğrudan bağlı bilgisayarlarda olduğu gibi bu adreslerin yetkili kurumlar (servis sağlayıcılar) tarafından tahsis gerekmez. Ancak bu bilgisayarların internete erişmesi gerektiğinde internete bağlı olan tek bir bilgisayar (gateway: geçiş kapısı) adres dönüştürme işlemi (NAT:Network Address Translation) yaparak karışıklığı önler.
  3. Internette IP paketleri sadece alıcısına gönderilirken, yerel ağlarda, kullanılan cihazlardan kaynaklanan farklı bir işleyiş vardır. Yayınlama (broadcast) yöntemi kullanılabilir. Bu yöntemde bir veri paketinin kopyaları kurum içindeki bütün bilgisayarlara (ya da bir grup bilgisayara) ulaşır. Alıcı adresi hangi bilgisayara uyuyorsa o bilgisayar bu paketi işler, diğerleri ise kendilerine gelen kopyaları çöpe atar. Buradaki güvenlik meselesi bir yanıyla yayınlama yöntemi ile yakından ilişkilidir. Hub adı verilen cihazlar yayınlama yöntemi kullanır. Biraz daha pahalı olan 3. katman ve 2. katman switch'ler yayınlama yapmadıklarından daha güvenlidirler. Diğer güvenlik meselesi ise internet'ten yerel ağa sızmaların engellenmesidir. Bunun için firewall (ateşduvarı) kullanılır ve internet ile yerel ağ arasında gidip gelen paketler sıkı kontrolden geçirilir. Genellikle yerel ağ ile internet arasında duran bir sunucu hem firewall işlevi görür hem de adres dönüştürme ve internete çıkış sağlar. Bu şekilde bir gateway/firewall kombinasyonu oldukça yaygındır..

Yerel ağda IP adreslerinin dağıtılması ve cihazların MAC adresleriyle IP adreslerin eşleştirilmesini otomatikleştirmek amacıyla ARP (Adress Resolution Protocol) ve DHCP(Dynamic Host Configuration Protocol) servisi kullanılır. DHCP servisi kablonet kullanıcılarına verilen servisin aynısıdır. Tek farkla ki verilen adresler sadece yerel ağda geçerlidir. Küçük ve orta büyüklükte yerel ağlarda tipik olarak DHCP servisini veren sunucu gateway/firewall sunucusudur.

Bazı durumlarda kurumun bir üyesi uzaktan bu ağa erişmek ister. Oysa ateş duvarı bu erişimi engeller. Bunun için özel düzenlemeler gerekecektir. Sıkça rastlanan bir ihtiyaç ta kurum içindeki sunuculardan birinde kurumun web sitesinin ve eposta servisinin çalıştırılmasıdır. Bu durumda da ateş duvarını adres dönüştürme servisine bu erişime izin verecek şekilde düzenlemek gerekir.

3.3 İnternet Protokolünün İşleyişi

İnternet sözcüğü inter-network yani "ağlar-arası-ağ" anlamına geliyor. Veri İletim Katmanındaki protokoller yerel ağların kurulmasına imkan verir. İnternet protokolü ise böyle yerel ağlar arasında veri iletimini sağlamak için tasarlanmıştır. Bunun için küresel bir adresleme sistemi içerir. Bu adresleme sistemi o denli kullanışlıdır ki İnternet'i yerel ağ içindeki iletişimde de adresleme için kullanıyoruz. Böylece her türlü bilgisayarlar-arası iletişim, yerel veya global, tek bir adresleme ve iletişim protokolü ile sağlanmakta ve yazılım katmanı açısından bu çok pratik olmaktadır.

Bugün 6. versiyonu tasarlanmış ve yavaş yavaş uygulamaya alınmakta olsa da İnternet protokolünün işleyişine dair şu an kullanılan 4. versiyondaki tasarım unsurları fazla değişmemiştir (bkz (Postel 1981). Bu tasarım soğuk savaş döneminde (1980'lerin başı) yapılmıştı, ve tasarımı finanse eden ABD askeri kurumlarının önceliği "kısmen tahrip olsa bile" iletişime imkan verecek dayanıklı bir iletişim ağı inşa etmekti. Bu yüzden İnternet merkezi olmayan, parçaları değişse bile yeni ağ yapısına uyum sağlayabilen bir tasarıma sahiptir. Ayrıca yine tasarlandığı dönemde yaygın ideolojik eğilimleri yansıtır biçimde erişimi herkese açık ve kısıtlanması zor bir iletişim sistemidir (tasarımdaki bu tonlama için bkz (Licklider and Taylor 1968)).

3.3.1 Adresleme

Protokolün temel amacı küresel ölçekte bir adreslemedir. Bunun için 4 byte'lık (örn. 194.27.149.195 gibi) gönderici ve alıcı adresleri kullanılır. Bu adresler blok olarak uluslararası ve ulusal ajanslar tarafından tahsis edilir. Örneğin Türk Telekom gibi büyük bir servis sağlayıcı A veya B sınıfı diye anılan \(2^{24}\) veya \(2^{16}\) farklı adres içeren bir bloğu alıp kullanıcılarına/müşterilerine tahsis edebilir. Geçerli adreslerin tahsisi merkezi olarak yapılan tek işlemdir. Bu sayede örneğin 194.x.x.x şeklinde bir adrese gidecek paketlerin Türkiye'ye doğru giden bir kabloya aktarılması gerçekleşebilir. Dolayısıyla bu adresler posta sistemindeki ülke+posta kodu gibi, coğrafi hedefi kabaca gösteren adreslerdir. Noktasal hedef bulma ise yerel ağın yerine getirmesi gereken bir görevdir.

Trafiğin işleyişine bir örnek olarak RFC 791'den uyarlanan şu senaryoya bakalım:

Application                                           Application
Program                                                   Program
     \                     ARACI (ROUTER)               /
   Internet Module      Internet Module      Internet Module
         \                 /       \                /
         LNI-1          LNI-1      LNI-2         LNI-2
            \           /             \          /
           Local Network 1           Local Network 2

Burada bir bilgisayar programı uzakta, başka bir yerel ağdaki bir bilgisayar programına veri göndermek istiyor. Bu veri önce çıkış bilgisayarındaki işletim sisteminin İnternet katmanında paketleniyor. Bu pakette gönderici, alıcı adresleri, ve iki uygulamanın değiş-tokuş etmek istediği veri var (başka birçok parçaya biraz sonra değineceğiz). Ancak bu alışverişte akıllı bir aracı (Router/Yönlendirici) gerekiyor. Bu aracının özelliği (i) birden fazla yerel ağa bağlı olması, yani yerel ağlar üstü bir konuma ve bakışa sahip olması, ve (ii) paketi alıcı adresine ulaştırmak için adrese bakarak bağlı olduğu hangi yerel ağa paslayacağını bilmesi. Bizim basit örneğimizde yönlendirici sadece iki yerel ağa bağlı, ama gerçek senaryolarda daha fazla olabilir. Yönlendiriciler ve yerel ağlar arasındaki bu bağlantıların tümü İnternet'in yapısını oluşturur. Bu yapının 1999 yılındaki halinin The Internet Mapping Project'ten alınmış bir görseli şekilde verilmiştir (kaynak: http://cheswick.com/ches/map/).