Bilgisayar Ağları Temelleri

Birden fazla bilgisayarin birbiriyle konusabilecek sekilde baglanmasina bilgisayar agi diyoruz. Bilgisayar aglarinin ilk amaci makinalarin kaynaklari ve yaratilan nesnelerin agdaki makinalar arasinda paylasmaktir.

Bir kullanicinin masasindaki PC-terminal-is istasyonu ile ag uzerindeki kaynaklari kullanabilmektedir. Bu ise kullaniciya makinasindan bagimsiz bir arayuz olanagi saglamaktadir. Diger bir deyisle, belirli bir programi veya veri tabanini kullanmak icin o programin yuklu oldugu makinanin basinda olmak gerekmiyor, veritabanini kullanicinin kendi makinasinda calisan bir program kullanabiliyor veya uzaktan kullanim ile (telnet, remote login) ilgili makinada program ve veritabanini kullaniyor. Dosya paylasiminin onemli yontemleri olarak Network File System (NFS), Andrew File System (AFS) ve Alex sayilabilir.

Iletisim Aglari Yapisal Modeli

OSI Referans modeli

Bilgisayarlar arasi iletisimin basladigi gunden itibaren farkli bilgisayar sistemlerinin birbirleri arasindaki iletisim daima en buyuk problemlerden birisi olmus ve bu sorunun ustesinden gelebilmek icin uzun yillar boyunca cesitli calismalar yapilmistir. 1980'li yillarin basinda Uluslararasi Standartlar Organizasyonu (International Standarts Organization-ISO) bilgisayar sistemlerinin birbirleri ile olan iletisiminde ortak bir yapiya ulasmak yonunde cabalari sonuca baglamak icin bir calisma baslatmistir. Bu calismalar sonucunda 1984 yilinda Acik Sistem Baglantilari (Open Systems Interconnection-OSI) referans modeli ortaya cikarilmistir. Bu model sayesinde degisik bilgisayar firmalarinin urettikleri bilgisayarlar arasindaki iletisimi bir standarda oturtmak ve farkli standartlar arasi uyumsuzluk sebebi ile ortaya cikan iletisim sorununu ortadan kaldirmak hedeflenmistir. OSI referans modelinde, iki bilgisayar sistemi arasinda yapilacak olan iletisim problemini cozmek icin 7 katmanli bir ag sistemi onerilmistir. Bir baska deyisle bu temel problem 7 adet kucuk probleme parcalanmis ve her bir problem icin ayri ayri bir cozum yaratilmaya calisilmistir. Bu 7 katmanin en altinda yer alan iki katman yazilim ve donanim, ustteki bes katman ise genelde yazilim yolu ile cozulmustur. OSI modeli, bir bilgisayarda calisan uygulama programinin, iletisim ortami uzerinden baska bir bilgisayarda calisan diger bir uygulama programi ile olan iletisiminin tum adimlarini tanimlar. En ust katmanda goruntu ya da yazi seklinde yola cikan bilgi, alt katmanlara indikce makine diline donusur ve sonuc olarak 1 ve 0 lardan ibaret elektrik sinyalleri halini alir. Asagidaki sekilde OSI referans modeli katmanlari ve bir yerel ag uzerindeki durumu gosterilmektedir:

OSI katmanlarinin tanimlanan temel gorevleri:

         i.                     i.            Fiziksel : Bu katman agin elektriksel ve mekanik karakteristiklerini belirler. Modulasyon teknikleri, calisma voltaji, frekansi vs. bu katmanin temel ozelliklerindendir. OSI referans modeli bir ag uygulamasi degildir. OSI sadece her katmanin gorevini tum detaylari ile tanimlar. Bu modeli bir gemi ya da ev projesine benzetebiliriz. Nasil ayni gemi planini alip farkli firmalar gemi yapabilirse OSI modeli de boyledir. Nasil ayni gemi planindan iki farkli firma gemi urettiginde en azindan kullanilan civiler farkli yerlere cakilirsa, OSI modeli de gerceklestiren firmadan firmaya farklilik gosterebilir.

       ii.                   ii.            Veri iletim : Bu katman fiziksel katmana ulasim stratejisini belirler. Fiziksel adresleme, ag topolojisi, akis kontrolu vs. bu katmanin gorevlerindendir. Kopru cihazlari bu katmanda calisir.

      iii.                  iii.            Ag : Baglantiyi saglayan ve ulasilmak istenen bilgisayara giden yolu bulan katmandir. Yonlendirme protokolleri bu katmanda calisir.

      iv.                  iv.            Tasima : Bu katman gelen bilginin dogrulugunu kontrol eder. Bilginin tasinmasi esnasinda olusan hatalari yakalar ve bunlari duzeltmek icin calisir.

       v.                   v.            Oturum : Iki bilgisayar uzerindeki uygulamalarin birbirini farkettigi katmandir.

      vi.                  vi.            Sunum : Bu katmanda gelen paketler bilgi haline donusturulur. Bilginin karakter set cevrimi veya degistirilmesi, sifreleme vs. gorevlerini bu katman ustlenir.

    vii.                vii.            Uygulama : Kullaniciya en yakin olan katmandir. Spreadsheet, kelime islemci, banka terminali programlari vs. bu katmanin parcalaridir.

Baglanti Aygitlari

Bilgisayar agi erisiminde genel olarak dort tip baglanti aygiti kullanilir: tekrarlayici (repeater), kopru (bridge), yonlendirici (router) ve gecityolu (gateway). Tekrarlayicilar tamamen protokol bagimsiz olarak fiziksel katmanda calisir ve fiziksel genisleme amacli kullanilirlar. Geleneksel kopruler ayni protokolu kullanan Yerel Aglar arasinda temel veri duzeyinde baglanti saglar. Buna karsilik, geleneksel yonlendiriciler degisik tipteki ag protokollerini idare edebilecek sekilde programlanabilirler ve boylelikle ayni genis ag alani uzerinde farkli tipteki Yerel Aglari ve bilgisayar sistemlerini destekleyebilirler. Gecityollari daha karmasik olup, islem yogunluklu protokol cevrimi yaparak uygulamalar arasinda isletilebilirligi (interoperability) saglarlar.

1.       1.       Tekrarlayici (Repeater) : Tekrarlayicilar Cizim-3’deki sekilden de gorulecegi gibi fiziksel katmanda calisan cihazlardir.

Tekrarlayicinin temel gorevi bir fiziksel ortamdaki (kablo, fiber-optik, radyo dalgasi vs.) sinyali alip kuvvetlendirip bir diger fiziksel ortama vermektir. Aglarin fiziksel buyukluk sinirlarini daha da genisletmek amaci ile kullanilan bu cihazlar ile kuramsal olarak bir bilgisayar agi sonsuza kadar genisletilebilir. Ancak cesitli bilgisayar aglarindaki tasarim sinirlamalari nedeni ile gercekte bu genisleme belli sinirlar icinde kalmaktadir. Cizim-4 tekrarlyicilarin bir ag uzerinde nasil kullanildiklarini gostermektedir.

Temelde bir agin genisletilmesi amaci ile kullanilan tekrarlayicilar cok kolay kurulmalari, cok az bakim gerektirmeleri ve fiyatlarinin ucuz olmasi sebepleri ile cok populer cihazlardir.

2.       2.       Kopru (Bridge ) : Modern, protokol-seffaf kopruler asagidaki sekilde goruldugu gibi OSI referans modelinin veri iletim (data link) katmaninda calisirlar

Kopru cihazlari temelde bagimsiz iki agin (farkli ag teknolojilerini kullanabilirler- Ethernet ve Token-Ring gibi) birbirine baglantisi icin kullanilirlar. Asagidaki sekilde iki Ethernet ve bir Token-Ring aginin birbirlerine kopruler vasitasi ile yapilan baglantisi gosterilmektedir. Bir kopru bagladigi alt aglar ustundeki tum trafigi yurutur. Her paketi okur, paketin nereden geldigini ve nereye gittigini gormek icin MAC (Media Access Control)-katman kaynagini ve yerlesim (destination) adresini inceler. Bu suzme yetenegi mesajlari yayinlamak ya da yerel veri trafiginin diger ag uzerine gecmesini engellemek icin etkili bir yol saglar. Bazi kopruler adres suzmenin ve protokol tipine bagli suzgecin de otesine gider.

Bir kopru, DECnet, TCP/IP, XNS gibi farkli iletisim protokollerini kullanarak, protokol uyumlulugunu gozonune almadan aglar arasinda fiziksel baglanti saglayabilse de, bu uygulamalar arasinda isletilebilirligini garanti etmemektedir. Bu, OSI referans modelinin yuksek katmanlarinda isleyen ve farkli islem ortamlari arasinda cevrim yapabilen standalone protokol ceviricilerini gerektirmektedir. Koprulu aglar, protokol cevrimlerinin olmadigi, guvenlik gereksinimlerinin en az oldugu ve gereken tek seyin basit yonlendirme oldugu durumlarda basarilidir.

3.       3.       Yonlendirici (Router) : Yonlendiriciler asagidaki sekilde goruldugu gibi OSI referans modelinin ag (network) katmaninda calisirlar.

Bir kopru sadece paketlerin kaynagini ve gittigi yerin adresini kontrol ederken bir yonlendirici cok daha fazlasini yapar. Bir yonlendirici agin tum haritasini tutar ve paketin gittigi yere en iyi yolu belirleyebilmek icin tum yollarin durumunu inceler.

Yonlendirici farkli fiziksel yapida olan ve farkli protokolleri calistiran yerel ya da genis alan aglarinin birbirleri ile olan baglantisinda basari ile kullanilabilir.

Bir yonlendirici, OSI referans modelinin ag katmaninda genel olarak tanimlanan protokollerle, yerel bolge aglarini genis bolge aglarina baglar. Bu ozellikleri sayesinde ornegin yonlendirici TCP/IP kullanarak bir Ethernet aginin X.25 paket agina baglamasini saglar. Eski yonlendiriciler protokol bagimli olduklarindan, kuruluslarin ag isletim ihtiyaclarini karsilamak icin birden fazla yonlendirici gerekebilir. Yeni yonlendiriciler ise, birden fazla ve degisik protokolu ayni anda idare edebilmektedirler.

Yonlendiriciler paketleri iki istasyon arasindaki en iyi yolu gosteren yonlendirme tablosuna gore ilerleterek ag uzerindeki yollari en iyi sekilde kullanirlar. Yonlendiriciler kendi yonlendirme tablolarini olusturduklarindan, ag trafigindeki degisikliklere hemen ayak uydururlar ve boylelikle veri yukunu dengelerler. Ayni zamanda, yonlendiriciler agdaki degisiklikleri tespit ederler ve asiri yuklu ve islemeyen baglantilari onlerler.

4.       4.       Gecityollari (Gateway) : Gecityollari kopru ve yonlendiricilerin yeteneklerinin de otesine gecerler. Asagidaki sekilden de gorulebilecegi gibi OSI referans modelinin ust katmanlarinda islerler.

Gecityollari sadece farkli noktalardaki aglari baglamakla kalmaz ayni zamanda bir agdan tasinan verinin diger aglarla uyumlu olmasini da garanti ederler. Bu bir server'da, minibilgisayarda ya da ana bilgisayarda bulunan protokol cevirim yazilimiyla yapilir. Internet protokolleri farkli aglar arasindaki veri iletimini, gecityollariyla bagli altaglardan olusmus otonom sistem (Autonomous System, AS) gruplarini birbirine baglayarak yapar. Yani Internet, her biri merkezi olarak yonetilen ag ya da altaglar serisi olan AS serisinden olusmaktadir. Her AS diger AS'lere baglanti saglayan gecityolu sunar. Gecityollari tum farkli aglari birlikte tutan bir yapistiricidir. Internet protokolleri altaglarin nasil birbirine bagli oldugunu ve baglanti araclarinin nasil calistigini tanimlar.

Teknik Olarak Internet

Teknik olarak Internet TCP/IP protokol ailesini kullanarak konusan bilgisayarlar toplulugu olarak tanimliyabiliriz.

Internet Mevlana Ilkesine uyar: TCP/IP konusmak kaydiyla her makina ve isletim sistemi uzerinde Internet servis ve uygulamalarini calistirmak mumkundur. Biz burda buyuk olcude Unix ortamina iliskin bilgiler verecegiz. Tum bu uygulamalar, genellikle, ilk once Unix'de gelistiriliyor, ve bizim deneyimiz Unix uzerinde oldu. Diger isletim sistemleri icinde benzeri servis ve uygulama programlari bulmak mumkundur.

nternet uzerinde verilen her servis belirli bir protokol ve belirli bir port uzerinden paketlerin degisimi yoluyla saglanir. Sunucu/istemci modeline uygun olarak istemci istegini ilgili servise ait porttan sunucu makinaya gonderir, sunucuda bir `deamon' calisir ve soz konusu porta gelen istekleri cevaplar. Ya surekli calisan (standalone) bir servis verici bir program calisir ve soz konusu portu dinler, yada inetd gelen istegi ilgili programa gecirir. Bunun icin /etc/services'de soz konusu protokol isimlendirilip ilan edilmeli ve /etc/inetd.conf'da ise isimlendirme ile servis veren program ilintilendirilmelidir. Servis veren program inetd kanaliyla calisinca baslamak icin gerekli tum dosyalari okur. ftp, telnet, phonebook gibi servisleri inetd'den calistirmak zorundasiniz. Ama web ve gopher'i kendi basina calistirmak sistemi daha az yukler ve servis daha hizli olur.

Bu tip servisleri mumkun oldugunca `root' disinda, yetkilileri sinirli kullanici kimligiyle, ya ozel kullanici yada `nobody' altinda calistirmak onerilir.

Unix ortaminda programlari kurmak (install) icin bazi oneriler: once README, INSTALL dosyalarini ve varsa baska dokumentasyoni okuyun. Bu dosyalar genellikle ne yapilmasi gerektigini belirtir. Bazan `configure', 'Configure' gibi programlari calistirip, sorulan sorulara cevap vermek gerekir. Sonra `Makefile, conf.h, config.h' gibi bazi dosyalarda bazi duzeltme ve tercihler yapilir. Daha sonra `make', `make all'. `make install' gibi komutlarla is bitebilir.

Program bir X11 uygulamasi ise `Imakefile' dosyasi uzerinde bazi tercih ve duzeltmeler yaptiktan sonra `xmkmf', `xmkmf -a' ve daha sonra `make Makefile', `make Makefiles' ve `make' gibi komutlar gerekebilir. Bu bilgi genellikle README/INSTALL dosyalarinda vardir.

Unix ortaminda programlarin davranisi, genellikle, cevresel degiskenler ve komut satirinda verilen seceneklerle degistirilebilir. Derleme sirasinda `hard coded' bazi dizin/dosya parametreleri ise `soft link' mekanizmasi ile duzenlenebilir.

Kurumlarin temel GNU araclarini ve kardeslerini (gcc, make, bison, flex, perl, groff, python, expect, tcl/tk, safe-tcl, ghostscript, gibi) ve TeX'i tasimalarinda yarar vardir.

Adresler: Makina, Kisi ve Nesne Icin

Ag uzerinde iletisimin saglikli olmasi icin ilgili partilerin kimliklerinin cok acik bir sekilde belirlenmesi gerekmektedir. Bu nedenle Internet uzerinde her makinanin, her kullanicinin ve nesnelerin adreslenmesi standartlastirilmistir. Internet'in gelismesiyle birlikte kamuya acik nesnelere erisim icin kullanilan protokol da adreslemenin bir parcasi oldu.

Internet'de makinalarin iki tip adresi var: sembolik (domain name) ve mutlak (IP numarasi). ankara.bcc.bilkent.edu.tr, knidos.cc.metu.edu.tr, kalkan.tetm.tubitak.gov.tr, apollo.info.com.tr adresleri Bilkent, ODTU, Tubitak ve Info'da ilgili makinalari tanimlamaktadir. Burada `tr' Turkiye, `edu.tr', `gov.tr' `com.tr' Universiteleri, hukumet kuruluslarini, ve ticari kuruluslari temsil etmektedir. Ayni sekilde `bilkent.edu.tr', ve `metu.edu.tr' Bilkent ve ODTU'yu temsil etmektedir, bir diger deyisle Bilkent'teki Internet'e bagli her makinanin adresinin `bilkent.edu.tr' olarak bitmesi gerekmektedir. `ankara'in IP numarasi ise 139.179.10.217'dir.

Sembolik isimler ag yapisini aktarmasi ve hatirda kalmasi icin onemli. Ayrica makinalar baska islere kaydirilinca kullaniciyi bu degisimden yalitlar. Internet'de yonlendirme IP numaralari cinsinden olur. DNS (Domain Name Service) perde arkasinda sembolik isimler ve IP arasindaki iki yonlu donusumu saglar.

Bir kurumu cesitli alt birimlere gore alt bolumlere (domain) ayirmakda yarar var: trafigi azaltmak, guvenlik vs icin. IP atanirken bu bolunmeyi gozonune alarak, planli bir sekilde yapmak, ag uzerinde gereksiz trafigi azaltacaktir. `subnetting' bu yonde kullanilabilecek iyi bir yontemdir.

Internet'de yonlendirme calismasi icin DNS servisinin olmasi gerekir. Bu ya kurum icinden verilebilir, yada kurum disindan alinabibilir. Bu /etc/resolv.conf ve benzeri dosyalarda belirtilir. Kanimca, her kurumun kendi DNS servisini kurmasi anlamlidir. Bunu bir baskasina kurdurmak da mumkundur, ama kurulmasi onemlidir. Bu hem guvenirlilik hemde kaynak kullanimi acisindan yararlidir. `cache server' yogun internet kullanan ve kendisi DNS sunucusu olmiyan makinalar icin onemli bir secenekdir. Her kurum icin en az 2 DNS sunucu olmasi gerekir. Bu tip servisleri degisik makinalara dagitmak, dagitik hesaplamanin bir geregidir. Finger gibi servisler acisindan en ust duzeydeki domain icin bir ``A record''u koyarak bir makina tanimlamak cok kullanilan bir yoldur: bilkent.edu.tr makinasi gibi. Unix ortaminda DNS yazilimi bind'in en son surumlerinden birini alip, firma temelli yazilimlara bagimli olmamak hararetle onerilir.

Ozellikle sunucu makina isimlerini secerken kolay yazilabilen, soylenebilen, icinde ozel karakterler icermeyenleri oneririm. Internet uzerinde makina isimlerinde `invalid' kabul edilmeye basladi (Ornegin DNS tarafindan). Firma ve model reklami olan makina isimlerinden kacinmakta yarar oldugu kanisindayim.

Internet servisleri sunan makinalara servis turune gore en kisa alias yada CNAME adini koymakda yarar var. Elinizde 1 makina var ve 3 servis sunuyorsaniz, lutfen 3 alias tanimlayin. Eldeki tek makina xxxx.bim.yyy.edu.tr ise servisler acisindan, www.yyy.edu.tr, gopher.yyy.edu.tr, ftp.yyy.edu.tr, ns.yyy.edu.tr gibi aliaslar koyup o sekilde dunyaya acin. Baska birimlar icin www.cs.yyy.edu.tr gibi aliaslar secilebilirsiniz. Bu tur aliaslar DNS veri tabanina www.yyy.edu.tr. IN CNAME xxxx.bim.yyy.edu.tr. gibi bir satir ekliyerek yapilabilir.

Nesne adreslerine gelince; genellikle, protokol, makina adi, ve o makinada soz konusu protokole gore erisim yolu (path)'i icerir. Internet uzerinde evrensel adrese URL (Uniform Resorce Label) diyoruz. En genel halinde bir URL'i soyle yazabiliriz: +URL: protokol://[[user[:passwd]@]dagitici-makina[:port][/path-selection]+ burada +[..]+ olarak belirtilen kisim secimli kisimdir.

Bazi URL ornekleri:

file://localhost/ftp/ftp/pub/INFO/Turkce/Internet/inet2.tex
ftp://ftp.bilkent.edu.tr/pub/INFO/Turkce/Internet/inet2.tex
gopher://gopher.bilkent.edu.tr:70/00/bilkent/archive/INFO/.../inet2.tex
http://www.bilkent.edu.tr/ftp/INFO/Turkce/Internet/inet2.tex
wais://dagitici-makina:210/veritabani-adi
telnet://user@makina
news:news-gurup
news:makale-numarasi@makina
ftp://user:passwd@makina

Ilk 3 URL [1] nolu referansin formatindaki kopyasini belirtir. file: sadece `/ftp' diskini goren Bilkent'teki her makina icin gecerlidir, digerleri evrenseldir. Son ornek'de mosaic gibi bir programla kendi hesabiniza ftp yapmak icin kullanabileceginiz bir URL'dir.

Sayet kullanilan port standart ise :port kismina gerek yoktur. path-selection kisminda soz konusu nesneye erismek icin gerekli yol belirtilir. Telnet'de user kullanilmasi gereken kullanici adidir. Bu genellikle kullaniciya hatirlatilir ve kullanicinin bu bilgiyi girmesi beklenilir.

           Nasil Baglanabiliriz

Internet servislerinden kisiler, ozel ve kamu kuruluslari yararlanabilir. Bunun icin Internet agi uzerinde bir bilgisayarda hesabiniz olmasi gerekir. Buyukce kuruluslar, kendileri bir ag uzerinde bir dugum olup kendi yerel agindaki tum kullanicilara internet servislerini sunabilirler. Ozellikle, dis dunyaya servis vermek isteyen kuruluslar icin dugum olmak tek yoldur.

Bunun icin once TR-NET gurubundan bir miktar Internet numarasi alinmasi ve kurum adinin Internet isim uzayinda kayit olunmasi gerekir. Bu su anda Internet'e baglamayi dusunmuyorsanizda yapmanizda yarar olan bir asama. Telekominukasyon baglantisini X.25 Turpak, leased-line veya dial-up SLIP/PPP olarak yapabilirisiniz.

Donanim olarak iyi kalite bir modem, bir yonlendirici, ve bir Unix turevi makina kurum olarak baglanmanizi daha kolay halletmenizi sagliyacaktir. Kurum olarak baglanmak once size yerel ag uzerindeki her kullaniciya alistigi dogal bilgisayar ortaminda, internet'in tum nimetlerini sunma olanagi verecektir. Boylece tum calisanlariniza Internet kutuphanesinden yararlanma ve dunya elektronik toplulugunun bir uyesi olma sansi veriyorsunuz.

Bununda otesinde, kurum olarak Internet dunyasina katkida bulunma, elektronik yayin yapma, kendi tabelanizi asma, kendi urunlerinizi pazarlama, musterilerle hizli kolay bir iletisim olanagi sunmaktadir.

Internet'le ilgili her turlu bilgiyi ve TR-NET dokumanlar icin (312) 468 5300/4400-4401 nolu telefon ve (312) 467 7264 nolu fax'da Tubitak Internet gurubuna basvurabilirsiniz

İnternet Nasıl Çalışır?

İnternet'in yaygınlaşmasıyla birlikte TCP/IP kısaltmasını çok sık duymaya başladık. Bu kısaltmanın bir bilgisayar ağı protokolü olduğu, İnternet'in bu protokol üzerine kurulu olduğu hep tekrarlandı. Buraya kadar anladık. Ama hiç kimsede çıkıp bu TCP/IP'yi doğru düzgün anlatmadı. Internet'e bağlanırken girdiğimiz değerler (IP, Subnet Mask, Default Gateway vs. vs.) ne anlama geliyor. Bunları yanlış girince niye İnternet'e çıkış yapamıyoruz, kısacası nasıl oluyor da oluyor, hiç bilemedik. Ama artık yeter. Size bu yazıda TCP/IP'nin ne olduğunu bir bir anlatacağım. Artık gerçekler karanlıkta kalmayacak. TCP/IP, Transmission Control Protocol/Internet Protocol ifadesinin kısaltması. Türkçesi, İletim Kontrolü/İnternet Protokolü oluyor. Protokol belli bir işi düzenleyen kurallar dizisi demek.. Örneğin, devlet protokolü devlet erkanının nerede duracağını, nasıl oturup kalkacağını düzenler. Ağ protokolleri de bilgisayarlar arası bağlantıyı, iletişimi düzenliyor. TCP/IP'nin adına bakıp tek bir protokol olduğunu düşünmeyin. TCP/IP, bir protokoller kümesi. Herbiri değişik işler yapan bir yığın protokolden oluşuyor.

TCP/IP'nin kökleri, 1960'ların sonunda 1970'lerin başında Amerikan Savunma Bakanlığı'na bağlı İleri Araştırma Projeleri Ajansının (Advanced Research Projects Agecncy, ARPA) yürüttüğü paket anahtarlamalı ağ deneylerine kadar uzanır. TCP/IP'nin yaratılmasını sağlayan proje ABD'deki bilgisayarların bir felaket anında da ayakta kalabilmesini, birbirleriyle iletişimin devam etmesini amaçlıyordu. Şimdi baktığımız zaman projenin fazlasıyla amacına ulaştığını ve daha başka şeyleri de başardığını görüyoruz.

Bu projenin ilk aşamasında, 1970'de ARPANET bilgisayarları Network Control Protocol'ünü kullanmaya başladılar. 1972'de ilk telnet spesifikasyonu tanımlandı. 1973'de FTP (File Transfer Protocol) tanımlandı. 1974'te Transmission Control Program ayrıntılı bir şekilde tanımlandı. 1981'de IP standartı yayımlandı. 1982'de Defence Communications Agency (DCA) ve ARPA, TCP ile IP'yi TCP/IP Protokol suiti olarak tanımladı. 1983'de, ARPANET NCT'den TCP/IP'ye geçti. 1984'de Domain Name System (DNS) tanıtıldı.

Yukarıda kısaca verdiğimiz tarihçe aynı zamanda Internet'in tarihçesidir. Internet ile TCP/IP ayrılmaz kardeşlerdir. TCP/IP, İnternet'in temelidir.

Bu kısa tarihçeden sonra, bir yerel alan bilgisayar ağı üzerinde TCP/IP'yi anlatmaya geçelim. Burada anlatılanlar İnternet üzerinden de geçerlidir. TCP/IP ile kurulan bir bilgisayar ağında bir bilgisayarı üç parametre ile tanımlarız. Bu parametreler bilgisayarın adı, IP adresi ve MAC adresidir. TCP/IP protokoller kümesi bu 3 parametreyi kullanarak bilgisayarları birbirine bağlar.

Bilgisayar adı kullanıcı tarafından İşletim Sistemi yüklenirken bilgisayara verilen addır. (Bilgisayarlara MUHASEBE, SATIS, ye da AHMET gibi açıklayıcı ve kolay adlar verilmelidir.). MAC (Media Access Control, Ortama Erişim Kontrolü) adresi, bilgisayrların ağ kartının ya da benzer ağ cihazlarının içine değiştirilemez bir şekilde yerleştirilmiş bulunan bir adrestir. (0020AFF8E771 örneğinde olduğu gibi onaltılı düzende rakamlardan oluşur). MAC adresine donanım adresi de denir. IP adresi ise 131.107.2.101 örnek adresinde olduğu gibi, 4 bölümden oluşan bir adrestir. Nokta ile biri diğerinden ayrılan bu bölümlerin her biri 0 ile 255 arasında değer alabilir.

IP adresinin ilk bölümü adresinin gösterir. IP adresleri kabaca 3 sınıftır: Bu sınıflar A, B ve C olarak sınıflandırılır. A sınıfı adreslerin ilk bölümü 1 ile 126 arasında bir değer alabilir. B sınıfı adreslerin ilk bölümü ise 128 ile 191 arasında yer alır. C sınıfı adresler 192 ile 233 arasında bulunur. 223'ten sonrası ne oldu diye sorabilirsiniz. 223'ten sonrası bizi hiç ilgilendirmeyen işler için ayrılmıştır.

Dikkatli okuyucu arada 127 ile başlayan adreslerin kayıp olduğunu farketmiştir. 127 ile başlayan adresler özel işler için ayrılmıştır. Bu adreslerin bir tanesi bizi ilgilendirir ve sık sık kullanmamız gerekir. Bu adres 127.0.0.1'dir ve kendi bilgisayarımızı gösterir. İşlerin yolunda gidip gitmediğini öğrenmek için ilk önce bu adresi kullanırız.

İnternette A sınıfı adresler çok değerli adreslerdir ve büyük ağlardaki bilgisayarlar için ayrılmıştır. Örneğin IBM'in adresleri A sınıfı adreslerdir. Şu anda İnternette A sınıfı adres tükenmiştir, kimseye verilmemektedir. A sınıfı adres alan bir işletme yaklaşık 16 milyon adres tanımlayabilir. İnternet'te B sınıfı adresler de şu anda tükenmiştir. Bir B sınıfı adreste yaklaşık 65000 bilgisayar tanımlanabilir. Örneğin, Microsoft'a bir B sınıfı adres alanı ayrılmıştır. C sınıfı adresler halen boldur, kullanılabilir. Ama C sınıfı bir adres alanı ile de ancak 250 küsür adres alanı tanımlanabilir. Bir yerel ağ kurarken İnternet'teki adres kısıtlamaları bizi bağlamaz. Kendi ağımız için her sınıftan bir adres verebiliriz. Burada verilen adreslerin İnternet ile bir bağlantısı yoktur. Bu noktaya dikkat ediniz. TCP/IP'yi anlamak için kendimizi bir yerel, daha sonra dageniş bir ağ ile ksıtlayacağız. Böyle bir ağın İnternet bağlantısı ise bambaşka bir konudur. Şimdi kendi bilgisayar ağımız için bir C sınıfı adres alanı tanımlayalım. Bilgisayarlarımıza vereceğimiz adresler 220.107.2.100 ile 220.107.2.200 arasında yer alsın. Örnek adresler:

Birinci bilgisayar için 220.107.2.100
İkinci bilgisayar için 220.107.2.101
Üçüncü bilgisayar için 220.107.2.102
..........
Sonuncu bilgisayar için 220.107.2.200

Dikkat ederseniz, bütün bilgisayarların adreslerinin ilk üç hanesi sabit: 220.107.2. Bu adrese, tam olarak söylemek gerekirse 220.107.2.0 adresine, ağ tanımlayıcısı (Network ID) denir. Yani, sizin ağınızın adresi nedir derlerse 220.107.2.0 diyebiliriz. Buradan çıkaracağımız ilk sonuç şu: Hiç bir bilgisayara, sonu 0 ile biten bir adres veremeyiz. Sonu 0 ile biten adresler ağı tanımlar.

Bilgisayarımıza veremeyeceğimiz ikinci bir adres de, sonu 255 ile biten bir adrestir. Örnek ağımızdaki bilgisayarların adresleri araasında 220.107.2.255 yer alamaz. Sonu 255 ile biten adresler broadcast adresleridir. Broadcaast yayın demektir; Aynen radyo televizyon yayınlarındaki gibi. Yani, belli bir bilgisayara değil de tüm ağa mesaj göndereceğimiz zaman sonu 255'le biten bir adres kullanırız, böylece ağa yayın yaparız. Örnek ağımızda herkese gidecek mesajın hedef adresi 220.107.2.255 olur.

Şimdi biraz toplayalım. IP adresleri iki bölümden oluşur. İlk bölüm ağın adresidir. İkinci bölüm ağ içindeki bilgisayarların adresleridir. Örneğimizdeki adreslerde "220.107.2." ifadesini içeren bölüm, ağı tanımlar. Geri kalan kısım ise (100,101,...,200 gibi) ağdaki bilgisayarların her birini tanımlar. Başka bir ağda ağ adresleri 131.107.0.0 şeklinde, bir başkasında ise 90.0.0.0 şeklinde olabilir. Ağ adresleri seçtiğimiz sınıfa bağlıdır.

Bir bilgisayar, IP adresinin hangi bölümünün ağı tanımladığını, hangi bölümünün ise bilgisayarı tanımladığını bilmek zorundadır. Bunun için Subnet Mask bilgisini kullanır. Subnet Mask'i AĞ MASKESİ şeklinde çevirebiliriz. Subnet Mask'da bir IP adresidir; Dört bölümden oluşur ve ağ adresinin hangi bölüme kadar geldiğni göstermek için kullanılır. Örneğimizde Subnet Mask 255.255.255.0'dır. Yani örneğimizde ağ adresi IP adresinin ilk üç hanesi ile tanımlanmaktadır. Bilgisayarlar kendi ağ tanımlayıcılarını bulmak için Subnet Mask'i kullanırlar. Bu yüzden Subnet Mask'in doğru bir şekilde girilmesi ağımızın çalışması açısından önemlidir. Yanlış girilen subnet mask değeri, bilgisayarın diğer bilgisayarlarla iletişimini engeller.

Bilgisayarlar ağ tanımlayıcılarını bulmak için Subnet Mask'ı nasıl kullanırlar? Şimdi örnek bilgisayarımızdaki üç bilgisayarın adres bilgilerini Şekil-1' deki gibi girdiğimizi varsayalım:

Yukarıdaki şekilde MUHASEBE ve SATIŞ bilgisayarlarının Subnet Mask'i doğru, AHMET bilgisayarının Subnet Mask'i yanlış girilmiştir. Şimdi Ahmet adlı bilgisayarın MUHASEBE adlı bilgisayara bir bilgi iletmek istedigini varsayalım. AHMET bilgisayarı MUHASEBE'nin IP adresini kullanacaktır. AHMET, bilgi göndereceği bilgisayarın, yani MUHASEBE'nin, kendi ağında olup olmadığını anlamak için şu işlemleri yapar.

Önce kendi IP adresi ile Subnet Mask'ini AND işleminden geçirir; sonuç 220.107.2.96'dır. (inanmayan bu rakamları 0 ve 1 lerden oluşan ikili düzendeki rakamlara çevirip AND işlemini kontrol edebilir.) Bu rakam ona göre, içinde bulunduğu ağın tanımlayıcısıdır.

Sonra kendi Subnet Mask'i ile MUHASEBE'nin IP adresini AND işleminden geçirir; sonuç 220.107.2.112'dir. Bu iki adres ayni olmadığı için AHMET bilgisayarı, MUHASEBE bilgisayarının başka br ağda olduğunu varsayar. Bu da yanlış bir varsayım olduğu için MUHASEBE bilgisayarına bilgi gönderemez. Bu hatanın giderilmesi oldukça basittir. AHMET'in Subnet Mask değerini diğer bilgisayarlarla aynı yaparsanız, bütün bilgisayarlar aynı ağ üzerinde bulunduklarını hesaplayıp birbirlerine bilgi gönderebilirler. Bir bilgisayar ancak kendi ağı üzerindeki bir bilgisayara bilgi gönderebilirler. Bir bilgisayar ancak kendi ağı üzerindeki bir bilgisayara bilgi gönderebilir. Başka bir ağda bulunan bilgisayarlara bilgi göndermek gerekirse, yönlendirici (ROUTER) adı verilen cihazlar kullanılır. Cihaz dedik ama, üzerinde birden fazla ağ kartı bulunan bilgisayarlar da yönlendirici görevi görebilirler.

Şekil 2'de iki ayrı ağ, yönlendirici yardımıyla birbirlerine bağlanmış. SATIS bilgisayarı MEHMET bilgisayarına bilgi göndermek isterse, daha önce anlatılan işlemleri yaparak MEHMET bilgisayarının kendi ağında olmadığını anlar. ileteceği bilgiyi G bilgisayarına gönderir. G bilgisayarında iki adet ağ kartı (ethernet) bulunmaktadır. Kartların birisi 220.107.2.0 ağına, diğeri 131.107.2.0 ağına bağlıdır. G'de çalışmakta olan işletim sistemi (Windows NT ya da Novell Netware gibi) bu iki kart arasındaki bağlantıyı sağlar.

G bilgisayarında bulunan ağ kartlarının herbirinin ayrı bir IP adresi vardır. Şekil 1 'de bu adresler 220.107.2.150 ve 131.107.2.30 şeklindedir. Bilgisayarlar karşıdaki ağda bulunan bir bilgisayara bilgi gönderecekleri zaman bilgiyi, G'nin kendi taraflarında bulunan IP adreslerine gönderirler. G bilgisayarı bu adrese gelen bilgiyi alır ve 131.107.2.0 ağına geçirir.

Peki, 220.107.2.0 ağındaki bilgisayarlar kendi ağlarında bulunmayan bir bilgisayara bilgi gönderecekleri zaman yönlendiricinin adresini nereden buluyorlar ? Eğer bilgisayarınızda bulunan TCP/IP konfigürasyon bilgilerine bakarsanız, orada "Default Gateway" şeklinde bir adres alanı görürsünüz. Default Gateway varsayılan geçit demektir ve yönlendiricinin adresini gösterir. 220.107.2.0 adresi ile tanımlanan ağdaki bilgisayarlar Default Gateway olarak yönlendiricinin kendi taraflarındaki adresini, yani, 131.107.2.30 adresini verirler.

Yukarıda her şey IP adresleri ile oluyor bitiyor gibi görünüyor. Gerçekte ise iletişimden hemen önce, IP adreslerinin MAC adreslerine çevrilmesi gerekir. Ağ üzerinde iletişim aslında yalnızca MAC adresleri ile gerçekleşir. Çünkü IP adresleri TCP/IP protokolüne özeldir. Başka bir protokolde, örneğin, Novell'in kullandığı IPX/SPX protokolünde IP adresi diye birşey yoktur. Her protokol. kendine göre bir adresleme şeması kullanır ama, bu şemalarda yer alan adreslerin dönüp dolaşıp MAC adreslerine çevrilmesi gerekir ki, bilgisayarlar birbirleriyle iletişime geçebilsinler.

Bir bilgisayar bir başka bilgisayarın IP adresine sahip ama, MAC adresine sahip değilse Adres Çözümleme Protokolü (Adress Resolution Protocol, ARP) adı verilen bir protokol kullanarak IP adresini MAC adresine çevirir. TCP/IP'nin bir protokol kümesi olduğunu söylemiştik. İşte ARP bu kümenin üyesi.

İletişime geçeceği bilgisayarın IP adresini bilen bilgisayar, ARP protokolü ile "Bu IP adresi kiminse bana MAC adresini söylesin" şeklinde bir mesaj oluşturur ve bu mesajı broadcast yapar, yani ağdaki tüm bilgisayarlara gönderir. Ağdaki bilgisayarların tümü bu mesajları alırlar, eğer söz konusu IP adresi kendilerine ait değilse mesajı çöpe atarlar. Mesajdaki IP adresinin sahibi olan bilgisayar ise kendi IP adresini tanır ve hemen "Bu IP adresi bana ait, benim MAC adresim şu" şeklinde bir mesaj ile yanıt verir. İlk bilgisayar artık diğer bilgisayarın MAC adresini bildiği için asıl mesajını doğrudan (broadcast yapmadan) gönderebilir.

IP adresini bildiğimiz bilgisayarın MAC adresini öğrendik, ona bilgi gönderdik. Peki, o bilgisayara tekrar bilgi göndermek istesek ne olacak? Tekrar bir ARP broadcast mesajı mı yayınlanacak? Bu sorunun yanıtı hayır, çünkü ARP ile elde edilen bilgiler bir kaşe bellekte (ARP kaşe bellği) saklanır ve bir MAC adresi gerekli olduğu zaman, ilk önce bu tampon belleğe bakılır. Eğer IP adresine karşılık gelen MAC adresi bulunuyorsa, broadcast yapmadan bu adres kullanılarak iletişime geçilebilir. Ama TCP/IP'nin her bölümünde göreceğiniz gibi, bu ARP kaşesinde tutulan bilgilerin bir ömrü vardır. ARP kaşesine eklenen kayıtların ömrü en çok 10 dakikadır. Kaşeye kayıt eklenirken ekleme zamanı da belirtilir. ve eğer eklenen adres bilgisi 2 dakika içinde yeniden kullanılmazsa otomatik olarak silinir. Adres yeniden kullanılırsa yine silinir ama 10 dakika sonra. Ayrıca ARP kaşesine ayrılan yer kısıtlı olduğu için bu süreler dolmadan eski kayıtlar silinebilir.

IP adresi bilinen bir bilgisayarın MAC adresini bulmak için broadcast mesajı oluşturulur demiştik. Yani mesaj, ağ üzerindeki bütün bilgisayarlara gönderiliyor, yayın yapılıyor. Eğer Şekil 2'deki gibi birden fazla ağ söz konusu ise, yerel ağlarda kalması gereken broadcast mesajları ağdaki trafiği etkiler, ağ performansını düşürür. Çünkü yalnızca ağın bir bölümünde anlamlı olan bir mesaj tüm ağa yayılarak bütün bilgisayarları meşgul eder. Bu durumu engellemek için yönlendiriciler, broadcast mesajlarını bir koldan bir kola aktarmazlar. Mantıklı, değil mi?

Broadcast mesajları gibi, herhangi bir şekilde yerine ulaşmayan ama serseri mayın gibi oradan oraya gidip gelen bir mesajı engelleme işini, yine yönlendiriciler yapar. Bir TCP/IP veri paketi oluşturulduğunda, pakete ilk değeri 128 olan bir yaşam süresi (ya da oyunlarda olduğu gibi "can". İngilizcesi Time-To-Live, TTL) verilir. Mesaj paketi herhangi bir yönlendiriciden geçerken "can" ı bir eksilir. Aynen oyunlarda olduğu gibi de, can değeri 0 olduğunda oyun sona erer; paket iletilemez, çöpe atılır.

Peki, bir bilgisayar IP adresini nasıl alır? Bunun iki yolu var: Ya siz bu adresi ele girersiniz ya da bir bilgisayar, belli bir adres havuzundan aldığı diğer bilgisayarlara dağıtır. Adresleri elle girmenin en büyük sakıncası adreslerin, Subnet Mask değerinin Default Gateway gibi diğer bazı bilgilerin yanlış girilmesidir. Eğer ağınızdaki bilgisayar sayısı onu aşıyorsa, adresleri elle girmek pek akıllıca değildir. Bu adresleri otomatik olarak dağıtmanın bir yolu vardır ve bu yolun adı Dinamik Bilgisayar Kontrolü (Dynamic Host Configuration Protocol, DHCP)'dür. Bu protokol ile bilgisayar DHCP sunucu (server) olarak tanımlanır ve IP adres dağıtımı bu sunucu üzerinden yapılır. DHCP'den alacağı belirtilmişse, açoldığında "Ben yeni açıldım, henüz bir IP adresim yok, eğer ortamda bir DHCP sunucu tanımlı varsa bana bir IP adresi göndersin" anlamında bir mesaj yayınlar. (broadcast eder). Eğer ortamda bir DHCP sunucu tanımlı ise bu mesajı alır "Ben bir DHCP sunucu olduğuma göre, bu mesaja yanıt vermek bana yakışır" şeklinde düşünüp kendisinde tanımlı olan IP adreslerinden boşta olanlardan birisini seçerek bilgisayara gönderir. IP adresi akan bilgisayarda artık diğer bilgisayarlar iletişim kurarken bu adresi kullanır.

DHCP sunucu ile IP adresi alan istemci bilgisayar arasındaki ilişki, bir saın alma işleminden kiralama işlemidir. İstemci bilgisayar, bir IP adresini DHCP sunucudan belli bir süretliğine "kiralar". Kira süresinin varsayılan süresi 72 saattir. Nası bir ev kiraladığınızda kira süresinin bitiminden önce kontrat tazeliyorsak, DHCP sunucudan alınan adresin de, bu süre bitmeden tazelenmesi gerekir.

Bütün DHCP istemcileri, kira sürelerinin %50'sine ulaştığında adreslerini tazelemek zorundadırlar. Kirasını tazelemek isteyen istemci, istediğini DHCP sunucusuna gönderir. Eğer DHCP sunucu ayakta ise kirayı tazeler ve bu durumu bir onay mesajı ile istemciye bildirir. İstemci onayı aldığında konfigürasyonunu günceller. Eğer istemci kirasını tazelemek istiyor da DHCP sunucusuna ulaşamıyorsa kiranın tazelenmediğine ilişkin bir mesaj alır ama, adresini kullanmaya da devam eder. Çünkü daha kira süresinin ancak yarısı geçmiştir. İstemci kira tazeleme isteğini kira süresinin yüzde %87.5'u tamalandığında tekrarlar. Eğer bu kez de yanıt alamaz ve süresi biterse istemci, IP adresini kullanmaya son verir ve yeni bir IP adres edinme sürecini başlatır.

Evet....Bir IP adresinin nasıl aldığını gördük, IP adresinin MAC adresine nasıl çevrildiğine de gördük. Şimdi "Windows 95'te ya da Windows NT'de Ağ komşuları (Network Neigborhood) 'na tıkladığımızda karşımıza IP adresleri ya da MAC adresleri yerine, yalnızca bilgisayar adları geliyor" diyebilirsiniz, haklısınız. Başta söylediklerimizi anımsayalım...

TCP/IP dünyasında bir bilgisayarı 3 şey belirler:
Bilgisayarın adı, IP adresi, MAC adresi.

Bir bilgisayarın MAC adrsini ya da IP adresini değil de adını kullanmak daha kolay değil mi? Aksi takdirde, bilgisayarların IP adreslerini, daha da kötüsü MAC adreslerini ezberlemek zorunda kalabilirdik.

Bilgisayar adını kullanmak kolayımıza geliyor ama, ağ üzerinde iletişim gerçekte MAC adresleri üzerinden gerçekleştiriliyor. O zaman bilgisayar adını önce IP adresine çeviren sonra da MAC adresine çeviren mekanizmalar, protokoller olmalı değil mi? IP adresini MAC adresine çeviren protokolü görmüştük (belleği zayıf olanlara anımsatalım; bu protokolün adı ARP idi). Peki, bilgisayar adları IP adreslerine nasıl çeviriliyor? Burada çeşitli seçenekler var. Microsoft'un önerdiği şey WINS (Windows Internet Adlandırma Servisi, Windows Internet Naming Service). Bu servis ile bir makinayı WINS sunucusu olarak tanımlıyoruz, bütün bilgisayarlar girip adlarını ve IP adreslerini bu sunucuya bildiriyorlar. (aynen yeni eve taşındığımızda hane halkının mahallenin muhtarına kaydolması gibi). Bir bilgisayar, adını bildiği bir bilgisayarın IP adresini bulmak istediği zaman, broadcast yapmak yerine bu sunucuya gidiyor "Şu addaki bilgisayarın IP adresi ne olaki?" şeklinde bir soru soruyor. WINS sunucu da kendi veritabanına bakıp soruyu yanıtlıyor. Bu aşamadan sonrasını biliyoruz. (ARP ile IP adresi MAC adresine çeviriliyor).

İyi güzel de, bilgisayarlar ortamda bir WINS sunucunun var olup olmadığını ve varsa adresini nereden bilebiliyorlar?

Yukarıda DHCP'yi anlatırken, DHCP sunucunun IP adreslerinin yanı sıra başka bilgileri gönderebileceğini söylemiştik. İşte bu bilgilerden birisi de WINS sunucunun adresi. Eğer biz tanımlarsak, DHCP sunucudan IP adresi alan bilgisayarlar ortamdaki WINS sunucunun adresini de öğreniyorlar ve gidip kendilerini kaydettiriyorlar. Bu işlem otomatik olarak, el değmeden, son derece fenni yöntemlerle gerçekleşiyor.

Son cümleyi biraz abarttık değil mi? Ama bunun da bir nedeni var: WINS, Microsoft tarafından bulunan ve kullanılan bir yöntem. İnternet'te ad IP eşleştirmeleri başka bir yöntem kullanılıyor: DNS (Domain Name System). Bu sistemde bilgisayar adları ve IP adresleri DNS sunucu olarak konumlandırılan bilgisayarlara "elle" kaydediliyor. Bir bilgisayar, adını bildigi bir bilgisayarın IP adresini öğrenmek isterse DNS sunucuya gidiyor ve adresi soruyor.

DNS sisteminin kötülüğü, bilgilerin elle girilmesinde ve statik olmasında. Bilgisayar adlarının ve IP adreslerinin elle girilmesi ve değiştirilmesi gerekiyor.

Windows NT 4.0 versiyonuna kadar bir DNS sunucu fonksiyonu bulunmuyordu. 4.0 ile birlikte DNS sunucu fonksiyonu da eklendi. Üstelik Microsoft DNS'i WINS'e bağlamayı başardı. 4.0'da DNS sunucu bir kayıdı kendi veritabanında bulamazsa ortamdaki bir WINS sunucuya sorabilir ve ondan aldığı yanıtı iletebilir. Güzel bir olanak; hem Microsoft'un cözümünü koturyor hem de DNS sunucu isteklerini karşılıyor.

Evet birazcık karmaşa gibi görünse de aslında kolay bir mantığı olan yerel ağların ve internetin çalışma prensibi de böyle..

Web - Dünyayı Saran Hipertext Ağı

Avrupa Nukleer Arastirma Merkezi CERN'de Yuksek Enerji Fizikcileri icin baslatilan bir proje olan World Wide Web, Gopher, Wais, ftp, Archie, News'un uzerine HyperText'i koymustur; ve simdilerde coklu media'ya da olanak vermektedir. Kisaca WWW yada Web olarak da bilinir.

Ornegin, bazi dokumanlari okumak ve ya dinlemek seceneginiz var; ses kutuklerini ve `mpeg' film nesnelerini eylem halinde algilamaniz mumkun. Bunun icin tabii, yenetekli bir is istasyonu yeterli olmaktadir. Dokumanlar, HyperText Markup Language (HTML) ile isaretlenmis durumdadir; bir dugmeyi secince, onun isaret ettigi dokumana, dunyanin neresinde olursa olsun hemen baglaniyorsunuz. CERN'de bulunan bir dokumani okuyamaya baslayip, oradan Avustralya'ya gecip, oradan Illinois'a gecmek cok kolay olan bir sey. Web server programlari HTTP protokolune gore calisiyorlar.

Uygun bir makina, `client' ve hizli hat bilesiminde ekraniniz bir kitap yada basili dokuman kadar yeteneklidir, ayrica ses ve film yetenekleri caba. Okudugunuz dokumandaki tablolar, sekiller, resimler, hareketli resimler ve sesi algilayabilirsiniz.

Istemci olarak Mosaic ve turevleri (Netscape, ..), arena, tkWWW, viola, chimera, cello, winweb, ve lynx, Albert, www'yi sayabiliriz. Kansas Universitesi tarafindan gelistirilen lynx, Campus Wide Information System (CWIS) amacli gelistirildigi icin vt100 terminallerinde ve ustunde calismaktadir. Gopher'a baglanabildigi gibi, gopher'da Web ajani olarak da calismaktadir.

Web kullanarak ftp, gopher, wais vs'yi kullanabiliyorsunuz. Ornegin, lynx ftp://ftp.x.org sizi X konsorsiyomun arsivine baglar, ve lynx gopher://gopher.loc.gov ise ABD Kongre gopher'ina baglar. lynx . ise icinde bulundugunuz dosyadaki nesneleri incelemenizi saglar. Web-istemci URL seklinde bir komutla her hangi bir URL'e ilke olarak erisebilirsiniz. Bazan bu is icin bir gecit gerekebilir. Lynx'i dogrudan wais erisimi icin derlemek mumkundur.

Unix ortaminda kullanabileceginiz Web sunucusu Cern, NCSA, plexus, einet, gn, wn ve ticari olarak Netsite wardir. Bunlarin en yaygini NCSA sunucudur. tar.gz dosyasini alip, i) /usr/local/etc altinda acip, ii) ortaya cikan dizini `httpd' olarak adlandirip, iii) conf/ altindaki srm.conf, httpd.conf, access.conf dosyalarini srm.conf-dist v.b.'inden kopyalayip, iv) htdocs/ dizinini yaratip icine istediginiz HTML dosyalarini koyduktan sonra `httpd' programini calistirabilirsiniz. Dokumanlar httpd/htdocs dizininde beklenir, ve kullanicilarin kendi `home' dizinlerinde publichtml/ altina koyduklari dokumanlara, http://server-makinasi/sername/ URL'i ile erismek mumkundur. conf/ dizinindeki dosyalari degistirerek web sunucusunun yerini ve davranisini uyarlayabilirsiniz. `httpd' programini calistirirken httpd dizinini nerede oldugunu komut satirinda belirterek, istediginiz yere tasiyabilirsiniz.

NCSA http sunucusu kurulsu ve CGI konularinda web uzerinden yardim almak mumkun: http://hoohoo.ncsa.uiuc.edu/, ve buradaki dokumanlar Bilkent Mirror'lar altinda bulunabilir. Dut-Net kullanicilarinin bu dokumanlari Dut-Net'deki arsivden almalari daha kolay olacaktir. Web konusunda yardim, `WWW Handbook'dan da alinabilir. Bilkent baslangic sayfasinda bu konuda bilgi bulunabilir.

Cern yazilimi ayrica yeniden yonlendirme (`redirect') yetenegine sahiptir. Buna paralel olarak da `proxy' ve `cache' yetenegi vardir. Bu mekanizmalari kullanarak, iki ayri kullanicinin arka arkaya ayni nesneyi tasimasini onleyebilirsiniz ve kullanici bunu farketmez.

Plexus Perl temelli bir programdir, yani derlemek gerekmez. Gecit gerektiren bazi isler icin daha uygundur. Einet yazilimi `binary' olarak belirli platformlar icin bulunabilir.

GN ayni anda gopher ve web sunucusu olarak kullanilabilir. Tarama yetenekleri gucludur. GN ve WN'de sunulan her dokuman ilgili dosyada acikca belirtilir. WN tarama yetenekleri cok gelismis, yeni bir Web sunucu programidir.

Muhtemelen teknik olarak en gelismis sunucu Netsite'dir. NCSA ve Cern sunucularini gelistiren ekibin ticari bir ortamda yaptiklari bir istir. Kritik uygulamalar icin soz konusu olabilir.

CGI (Common Gateway Interface) size web icinden baska uygulama sonuclarini sunmak mumkundur: phonebook, finger, `sensitive map', hytelnet, web istatistik analizleri gibi. Ornegin NT'deki sunucudan excell'i cagirmak gibi.

FTP - Nesne Degisimi

FTP (File Transfer Protocol) Internet uzerindeki iki makine arasinda, isletim sistemi ve mimariden bagimsiz olarak dosya transferi saglar. A makinesinden B makinesine baglanilmakta; B'de server, sunucu ya da deamon programiyla, A'daki uygulama yada istemci (client) programi FTP protokolune gore konusmakta, A ile B arasinda dosya degisimi olmaktadir. Tabii ki bunun icin degisimi yapan kisinin A ve B makinalarinda hesabi olmasi gerekir.

Unix ortaminda ftpd normal olarak /usr/etc/in.ftpd olarak vardir ve inetd denetiminde calismaktadir. Anon-ftp sunucu kurmak icin man ftpd'de belirtilenleri temel almak gerekir. Bu ise, ftp isimli bir kullanici hesabi acmak ve onun `home' dizinide anon-ftp'nin basladigi yerdir. O dizinde bin, etc gerekir. bin/ altinda ls ve etc/ altinda passwd ve group dosyalarinin olmasi gerekir. Bunlarin sadece root, ftp ve arsivi yoneten kisilere ait bilgileri icermelidir. Sifre alaninin sadece icermesinde yarar vardir. Sayet ls dinamik `lib'leri kullaniyorsa bazi .so'lari kopyalamak, /dev/zero'yu yaratmak gerekebilir.

incoming/ ve ub/incoming/ getirdigi bazi tehlikeler var: calinti yazilimlarin degis tokus alani olabilir, ve sorumsuz bazi kisiler anon-ftp'nin oldugu disk parcasini doldurup sistemi cokertebilir.

Isletim sistemiyle gelen ftpd anon-ftpd icin pek uygun degildir: log, kullanici sayisini, saatleri sinirlamak gibi. En az 4-5 tane anon ftp yazilimi var. Bunlarin en yaygini Washington University at St. Louis tarafinda gelistirilen wu-ftpd'dir. Bu yazilim ayrica istek uzerine

donusumlerini yapabilir. Burada `A B 'nin anlami arsivde A nesnesi var iken siz B nesnesini isteyebiliriniz ve sunucu makina gerekli donusumu yaparak istemci makinaya iletir demektir. Bu donusumler config/ftpconversions dosyasinda belirtilir. Gerekli gzip, compress, tar, zip gibi programlar tp/bin'de tutulur.

Arsivleri quote site index Key-word seklinde bir komutla adinda `Key-word'i iceren nesneleri aratmak mumkundur. Arsive yeni konan nesneleri dizin temelinde uye olan kullanicilara belirili araliklarla gonderen notifier programlari vardir. Bir arsivi bir baskasinin tam yada kismi kopyasi yapmaya yonelik mirror programlari vardir. Bunlarin hemen hepsi crontab'den calisir.

Ftp'yi daha kolay bir sekilde yapabilmek icin yazilmis programlar arasinda `ftptool, batchftp, xftp, xtp, getit, xgetit, ncftp' sayilabilir. Daha sonra da belirtecegimiz gibi ftp islemini xarchie, xnetlib, alex, prespero, gopher, wais, ve www `client'lariyla yapabilirsiniz. Ama, en basit ftp'nin de tum bu yazilimlar arasinda yeri vardir. Ornegin en son konan nesneleri aramak ve almak istediginiz zaman. Universitelerimizde arsivler kurulmakta ve onemli `mirror' mekanizmalari da calismaktadir

Uzaktan Kullanım

Telnet (ya da Remote Login), gene Internet uzerindeki iki makinenin, marka ve isletim sisteminden bagimsiz olarak birindeki bir kullaniciya ikincide calisma olanagi saglayan bir emulasyon programidir. Her makine/isletim ortaminda calisan uygulama programi vardir.

VM/CMS'e baglanmak icin 3270 ve 3179 ve bunlarin X surumleri vardir. Telnet hesabiniz olan baska bir makinede calismaniza olanak verir. Yine sunucu/istemci ya da deamon/client turu bir baglanti soz konusudur.

Rlogin ve Telnet birbirine benzer olmakla birlikte farkliliklar gosterirler. Bir Unix sisteminde bir makinadan otekine rlogin komutuyla kullanici adi ve sifre vermeden girebilirsiniz. Ote yandan, Telnet'le bir makinanin belirli bir `port'una baglanabilirsiniz. Bu yolla mail gonderebilirsiniz, veya bazi seyleri `test' edebilirsiniz. telnet info.bilkent.edu.tr 2000 komutu size Bilkent Mail Server'ini etkilesimli kullanim olanagi vermektedir. Bu sekilde kullanicilara `login' yapmadan sinirli bir sekilde belirli programlara kullanim hakki veriyorsunuz. `motd'yi vs kullanici gormuyor. Bu tip erisim inetd kanaliyla olmaktadir