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.
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.
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 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.
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'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..
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 (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
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