86
KAPITULLI 2-Shtresa e aplikacionit Faqe 1 KAPITULLI 2 Shtresa e aplikacion it Aplikacionet në rrjeta janë arsyeja e ekzistimit të rrjetave kompjuterike   nëse ne nuk mund të mendojmë për ndonjë aplikacion të nevojshëm, nuk do të kishim arsye pse të projektojmë  protokollet e rrjetave të mbështesin ato. Në 40 vitet e fundit, shumë aplikacione mrekullueshme janë krijuar. Këtu bëjnë pjesë aplikacionet klasike për shkrimin e teksteve që u  bënë famshme vitet 70’ dhe 80’: e -mail me tekst, çasja nga largësia e kompjuterëve, transferimi i dokumenteve, grupet e lajmeve dhe bisedat ne Chat. Këtu bënë pjesë edhe aplikacioni shkatërrues i viteve të 90’: the World Wide Web, duke përfshirë shfletimin në Web, kërkimi dhe marketingu elektronik. Gjithashtu bëjnë pjesë dhe 2 aplikacionet marramendëse të  paraqitura në fundit të mijëvjeçarit të kaluar   komunikimi instant me listë të shokëve, dhe P2P shpërndarja e dokumenteve. Këtu përfshihen dhe shumë aplikacione të suksesshme të video dhe audio`, telefoni me internet, shpërndarja dhe marrja e video dokumenteve, radio në internet, dhe televizioni me IP (IPTV). Për më tepër, rritja e gjithanshme e çasjes në internet pa kabllo (wireless) janë duke përgatitur skenën për shumë aplikacione të reja në të ardhmen.  këtë kapitull studiojmë aspektin konceptual dhe atë të implementim it aplikacioneve në rrjeta. Fillojmë duke definuar konceptet kryesore të shtresës së aplikacionit, duke përfshirë shërbimet e rrjetave që kërkohen nga aplikacionet, klientët dhe serverët, proceset, dhe ndërlidhjet e shtresës së transportit. Ne do të testojmë disa aplikacione të rrjetave në detaje, duke  përfshirë këtu Web-in, e-mail, DNS, P2P (peer-to-peer) shpërndarja e dokumenteve, dhe P2P telefonimi me internet. Pastaj do të përfshijmë dhe zhvillimin e aplikacioneve të rrjetave në TCP dhe UDP. Në veçanti, do të studiojmë soketat e API dhe do të shohim disa aplikacione të thjeshta të klient-serverit në Java. Në gjithashtu kemi përmbledhur disa detyra interesante për studentë me programim të soketave në fund të kapitul lit. Shtresa e aplikacionit është veçanërisht një vend i mirë që të fillojmë të mësojmë  protokollet,është rreth i njohur për ne. Ne jemi përballur me shumë nga aplikacionet mbështeten në protokollet që do ti studiojmë. Do ta kuptoni shumë më mire se për çka janë  protokollet dhe do të njoftohemi me shumë çështje që do ti shohim prapë kur arrijmë te  protokollet e sht resave të transportit, rrjetav e dhe linçeve. 2.1 Principet e Aplikacion eve të Rrjetave Supozojmë se keni një ide për një aplikacion të ri të rrjetave. Ndoshta ky aplikacion do të jetë një shërbim i madh për njerëzimin, apo do të kënaq profesorin tuaj, apo do të të bëjë të pasur, apo thjesht do të jetë kënaqësi që ta zhvillosh. Pa marrë parasysh motivimin, le të shikojmë se si mund ta ktheni një ide në një aplikacion të vërtetë të rrjetave.Zhvillimi i aplikacioneve të rrjetave kryesisht përqendrohet që të shkruaj programe që mund të përdoren në sisteme të ndryshme dhe që të mund të komunikojnë me njëra tjetrën përmes rrjetave. Marrim shembull Web aplikacionet, aty janë dy programe të ndryshme që komunikojnë me njëra tjetrën: programi i shfletuesit që punon tek përdoruesi ( në kompjuter, laptop, PDA, telefon mobil etj.), dhe  programi i Web serverit që punon te hosti i Web serverit. Shembull tjetër, në P2P sistemet është

2_Kapitulli 2.pdf

Embed Size (px)

Citation preview

Page 1: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 1/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 1

KAPITULLI 2

Shtresa e aplikacionit

Aplikacionet në rrjeta janë arsyeja e ekzistimit të rrjetave kompjuterike — nëse ne nuk mund tëmendojmë për ndonjë aplikacion të nevojshëm, nuk do të kishim arsye pse të projektojmë

 protokollet e rrjetave që të mbështesin ato. Në 40 vitet e fundit, shumë aplikacione të

mrekullueshme janë krijuar. Këtu bëjnë pjesë aplikacionet klasike për shkrimin e teksteve që u

 bënë të famshme në vitet 70’ dhe 80’: e-mail me tekst, çasja nga largësia e kompjuterëve,

transferimi i dokumenteve, grupet e lajmeve dhe bisedat ne Chat. Këtu bënë pjesë edhe

aplikacioni shkatërrues i viteve të 90’: the World Wide Web, duke përfshirë shfletimin në Web,

kërkimi dhe marketingu elektronik. Gjithashtu bëjnë pjesë dhe 2 aplikacionet marramendëse të

 paraqitura në fundit të mijëvjeçarit të kaluar  — komunikimi instant me listë të shokëve, dhe P2P

shpërndarja e dokumenteve. Këtu përfshihen dhe shumë aplikacione të suksesshme të video dhe

audio`, telefoni me internet, shpërndarja dhe marrja e video dokumenteve, radio në internet, dhetelevizioni me IP (IPTV). Për më tepër, rritja e gjithanshme e çasjes në internet pa kabllo

(wireless) janë duke përgatitur skenën për shumë aplikacione të reja në të ardhmen.

 Në këtë kapitull studiojmë aspektin konceptual dhe atë të implementimit të aplikacioneve në

rrjeta. Fillojmë duke definuar konceptet kryesore të shtresës së aplikacionit, duke përfshirë

shërbimet e rrjetave që kërkohen nga aplikacionet, klientët dhe serverët, proceset, dhe

ndërlidhjet e shtresës së transportit. Ne do të testojmë disa aplikacione të rrjetave në detaje, duke

 përfshirë këtu Web-in, e-mail, DNS, P2P (peer-to-peer) shpërndarja e dokumenteve, dhe P2P

telefonimi me internet. Pastaj do të përfshijmë dhe zhvillimin e aplikacioneve të rrjetave në TCP

dhe UDP. Në veçanti, do të studiojmë soketat e API dhe do të shohim disa aplikacione të

thjeshta të klient-serverit në Java. Në gjithashtu kemi përmbledhur disa detyra interesante për studentë me programim të soketave në fund të kapitullit.

Shtresa e aplikacionit është veçanërisht një vend i mirë që të fillojmë të mësojmë

 protokollet,është rreth i njohur për ne. Ne jemi përballur me shumë nga aplikacionet që

mbështeten në protokollet që do ti studiojmë. Do ta kuptoni shumë më mire se për çka janë

 protokollet dhe do të njoftohemi me shumë çështje që do ti shohim prapë kur të arrijmë te

 protokollet e shtresave të transportit, rrjetave dhe linçeve.

2.1 Principet e Aplikacioneve të Rrjetave

Supozojmë se keni një ide për një aplikacion të ri të rrjetave. Ndoshta ky aplikacion do të jetë

një shërbim i madh për njerëzimin, apo do të kënaq profesorin tuaj, apo do të të bëjë të pasur,apo thjesht do të jetë kënaqësi që ta zhvillosh. Pa marrë parasysh motivimin, le të shikojmë se si

mund ta ktheni një ide në një aplikacion të vërtetë të rrjetave.Zhvillimi i aplikacioneve të

rrjetave kryesisht përqendrohet që të shkruaj programe që mund të përdoren në sisteme të

ndryshme dhe që të mund të komunikojnë me njëra tjetrën përmes rrjetave. Marrim shembull

Web aplikacionet, aty janë dy programe të ndryshme që komunikojnë me njëra tjetrën: programi

i shfletuesit që punon tek përdoruesi ( në kompjuter, laptop, PDA, telefon mobil etj.), dhe

 programi i Web serverit që punon te hosti i Web serverit. Shembull tjetër, në P2P sistemet është

Page 2: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 2/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 2

një program në secilin host që merr pjesë në komunitetin e shpërndarjes se dokumenteve. Në

këtë rast, programet në host-a të ndryshëm mund të kenë programe të ngjashme ose

identike.Mirëpo, gjatë zhvillimit të aplikacionit të ri, ju duhet të shkruani një program që mund

të punoj në lloje të shumta sistemesh. Ky program mund të shkruhet psh në gjuhën C, Java apo

Python.

Mbani mend që nuk ju duhet të shkruani programe për pajisje të rrjetave si psh. router aposwitch. Edhe nëse duhet të shkruash programe për këto pajisje, ju nuk mund ta bëni atë. Siç

mësuam në kapitullin e parë, dhe siç mund të shihni në fig 1.24, pajisjet e rrjetave nuk hyn në

 punë në shtresën e aplikacionit, por më poshtë, më specifikisht te shtresa e rrjetit dhe më poshtë.

Ky dizajn ,i cili i lidh programet e aplikacioneve me sistemet që i përdorin (siç shihet në fig.

2.1), e ka bërë më të lehtë zhvillimin e shpejtë dhe shpërndarjen të një grupi të gjerë

aplikacionesh të rrjetit.

2.1.1 Arkitektura e Aplikacioneve të Rrjetave

Para se të hyjmë në shkrimin e kodit të programit, ju duhet të keni një plan te gjerë arkitektural

 për aplikacionin tuaj. Mbani në mend se arkitektura e një aplikacioni dallon shumë nga ai iarkitekturës së rrjetave (psh. Arkitektura prej pesë shtresave e Internetit që diskutuam në

Kapitullin 1).Nga perspektiva e zhvilluesit të aplikacionit, arkitektura e rrjetave e caktuar dhe na

siguron një grup specifik shërbimesh për aplikacione.

Page 3: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 3/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 3

Figura 2.1 Komunikimi për aplikacione të rrjetës vendoset në mes të end system-it në

shtresën e aplikacionit.

Arkitektura e aplikacionit, në anën tjetër, bëhet nga zhvilluesi i tij dhe na dikton se sa

aplikacioni është i strukturuar nëpër llojet e ndryshme të sistemeve. Në përzgjedhjen e

arkitekturës së aplikacionit, një zhvillues i aplikacionit në të shumtën e rasteve do të vizatojënjërin nga dy modelet dominuese arkitekturale : arkitektura klient-server dhe arkitektura peer-to-

 peer (P2P).Në arkitekturën klient-server, është një host që rri gjithë i ndezur që quhet server dhe

kryen shërbimet që i kërkon cilido host tjetër që quhet klient. Hosti i klientëve mund të qëndrojë

gjithë i ndezur por mund të jetë edhe i ndalur. Një shembull klasik është aplikacioni i Web-it,

tek i cili Web serveri është gjithë i ndezur që të pranojë kërkesa nga shfletuesit që përdorin

 postat klient. Kur një Web server pranon një kërkesë për një objekt nga një host klient, i

 përgjigjet duke ia dërguar objektin e kërkuar hostit klient. Vini re se në arkitekturën klient-

Page 4: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 4/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 4

server klientët nuk komunikojnë direkt me njëri tjetrin, psh në një Web aplikacion dy shfletues

nuk komunikojnë direkt me njëri tjetrin. Një karakteristikë tjetër e arkitekturës klient-server 

është se serveri ka një adresë fikse që e dimë të gjithë, që quhet IP adresa (për të cilën do të

flasim pak më vonë). Pasi që serveri ka një adresë të njohur dhe fikse, dhe për shkak që është

gjithë i ndezur(ON), klienti mund të kontaktoj gjithë me serverin duke ia dërguar një paketë në

adresën e serverit. Disa aplikacione tjera të njohura me arkitekturë klient-server janë : Web,FTP, Telnet, dhe e-mail. Arkitektura klient server shihet në figurën 2.2(a).Shpesh në

arkitekturën klient-server, një host i vetëm server nuk mund të merret me të gjitha kërkesat e

klientëve. Shembull, një faqe e njohur në internet mund shpejtë të bllokohet nëse ka vetëm një

server që i kryen kërkesat e saj. Për këtë arsye, një grumbull i madh hostash - të cilës nganjëherë

i referohemi si qendër  e të dhënave - përdoret shpesh për të krijuar një server virtual të

fuqishëm të arkitekturës klient-server. Shërbimet e aplikacioneve që bazohen në arkitekturën

klient-server janë shpesh infrastrukturë intenzive, ngaqë ua kërkojnë shërbyesve të ndryshëm

që të blejnë, instalojnë dhe mirëmbajnë ferma serveri.

Si pasojë e kësaj, këta shërbyes duhet të paguajnë dhe shfrytëzimin e Internetit për pranimin dhe

dërgimin e të dhënave në internet. Disa shërbyes të njohur si makinat kërkuese (Google),

marketingu në internet (Amazon, E-bay), shpërndarësit e videove (YouTube), e-mail i bazuar 

në Web( Yahoo Mail) dhe rrjetet sociale (Facebook, MySpace) janë infrastruktura intenzive dhe

me kosto të lartë.

 Në arkitekturën P2P, ka siguri minimale (ose s’ka fare) në serverët që janë gjithë të ndezur. Në

vend të kësaj, aplikacioni përdor një lidhje direkt ndërmjet palëve të postave që janë të lidhura

 pandërprerë, që quhen peers(pal ë). Këto peers nuk janë pronë e asnjë shërbyesi, por e laptopave,

desktopave që i takojnë përdoruesve, shumë nga të cilat gjenden në shtëpi, universitete, dhe

zyra. Pasi që këto peers komunikojnë pa kaluar nëpër ndonjë server, arkitektura quhet peer-to-

 peer.

Shumë nga aplikacionet më të njohura të kësaj kohe bazohen në arkitekturën P2P. Këtu

 përshihen dhe aplikacionet për shpërndarje të dokumenteve (BitTorrent, LimeWire, eMule),

telefonia me internet (Skype) dhe IPTV (PPLive). Këtë arkitekturë e keni në figurën 2.2(b). Disa

aplikacione kanë arkitekturë të përzier (hibride), duke përzier elementet e që të dy arkitekturave.

Page 5: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 5/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 5

Figura 2.2 (a) Arkitektura klient-server ; (b) Arkitektura P2P

Shembull, shumë aplikacione të komunikimit instant, serverët përdoren për gjetur gjurmët e IP

adresave të klientëve, ndërsa klientët komunikojnë direkt me njëri tjetrin ( pa kaluar nëpër 

serverë). Një nga vetitë më interesante të P2P arkitekturave është vetia e vetë-skalimit të tyre.

Shembull, në një aplikacion për shpërndarjen e dokumenteve, edhe pse secila peer shton sasi të

 punës duke kërkuar dokumente, ato gjithashtu i rrisin kapacitetin e shërbimit sistemit, duke

shpërnda dokumente për peers të tjerë. Arkitektura P2P ka kosto më të ulët, për shkak se nuk 

kërkon infrastrukturë reale të serverit, dhe nuk paguan as për internet. Në mënyrë që të ulen

çmimet e produkteve të tyre, disa shërbyes (si MSN, Yahoo dhe shumë të tjerë) janë shumë e më

shumë të interesuar të përdorin arkitekturën P2P për aplikacionet e tyre (Chuang 2007). Mirëpo,aplikacionet e të ardhmes me P2P do të ballafaqohen me tri probleme kryesore:

1.   ISP Friendly. Shumë ISP shtëpiake(këtu përfshijmë DNS dhe ISP kabllor) janë

dizajnuar për përdorim “asimetrikë” të rrjetit, kjo sepse, më shumë përdoret shkarkimi

nga rrjeti se ngarkimi i të dhënave në rrjet. Por te shpërndarja e videove me P2P dhe

aplikacionet për shpërndarje të dokumenteve, ngarkimin e të dhënave në rrjet që duhet ta

 bëjë një server, bëhet në ISP shtëpiake duke i bërë stres ISP-ve. Aplikacionet e ardhshme

me P2P duhet të dizajnohen ashtu që të jenë më të sjellshme ndaj ISP-ve (Xie 2008).

2.  Siguria. Duke u nisur nga natyra e tyre tepër e hapur, P2P aplikacionet mund të jenë një

sfidë për siguri ( Doucer 2002, Yu 2006, Liang 2006, Naoumov 2006, Dhungel 2008).3.  Simulimi. Suksesi i P2P aplikacioneve të së ardhmes gjithashtu varet edhe nga aftësia e

 bindjes së përdoruesve që vullnetarisht të ndajnë nga pak hapësirë dhe rrjet për 

aplikacionet, e cila është dhe sfida e dizajnëve simuluese [Feldman 2005, Piatek 2008,

Aperjis 2008].

2.1.2 Proceset e komunikimit

Page 6: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 6/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 6

Para se të ndërtojmë aplikacionin tonë për rrjet, gjithashtu ju nevojitet dituria themelore për atë

se si programet, duke vepruar në sistemet skajore të shumëfishta, komunikojnë me njëra tjetrën.

 Në zhargonin e sistemeve operuese, në të vërtetë nuk janë programet ato që komunikojnë por 

 janë proceset. Procesin mund të paramendojmë si program i cili funksionon përbrenda sistemit

skajor. Kur proceset funksionojnë në të njëjtin sistem skajor, ata mund të komunikojnë me njëri

tjetrin me komunikim ndërprocesor, duke përdorur rregullat të vendosura nga sistemi operativ isistemit skajor. Por në këtë libër ne nuk jemi të interesuar pikërisht në atë se si komunikojnë

 proceset e të njëjtit host(nikoqir), por në vend të saj na intereson se si proceset që funksionojnë

në hostat e ndryshëm (potencialisht me sisteme të ndryshme operuese), komunikojnë mes

vetes.Proceset në dy sisteme të ndryshme skajore komunikojnë me njëri tjetrin përmes

shkëmbimit të mesazheve ndërmjet rrjeteve kompjuterike. Procesi dërgues krijon dhe dërgon

mesazhet në rrjet; procesi pranues i pranon këto mesazhe dhe mundësisht përgjigjet duke

dërguar mesazhet prapa. Fig. 2.1 ilustron se proceset komunikojnë me njëra tjetrën duke

shfrytëzuar shtresën e aplikacionit të protokolit të stakut (pirgut) pesë-shtresor.

Proceset Klient dhe Server

Aplikacioni i rrjetit përbëhet prej palëve të proceseve ku dërgojnë mesazhet njëri tjetrit ndërmjet

rrjetit.P.sh.Në Web aplikacione procesi i shfletuesit të klientit shkëmben mesazhe me procesin e

një Web serveri. Në sistemin P2P të shpërndarjes së fajllave, një fajll transferohet nga një proces

në një Peer në një proces tjetër tek Peer tjetër. Për të gjitha palët e proceseve të komunikimit

thjesht njërën nga proceset emërojmë si klient dhe procesin tjetër si server. Në web, browseri

është procesi klient kurse web serveri është procesi server. Me shpërndarjen e fajllave me

sistemin P2P, peer i cili downloadon(shkarkon) fajllin e emërojmë si klient, kurse peer i cili

uploadon(ngarkon) fajllin e emërojmë si server.

Ju mund ta keni vërejtu se në disa aplikacione, si sistemi P2P për shpërndarjen e fajllave, një

 proces mund të jetë edhe klient edhe server. Në fakt një proces në sistemin P2P të shpërndarjes

së fajllave njëkohësisht mun të uploadojë dhe downloadojë fajllat. Sidoqoftë, në kontekstin e

cilitdo sesion komunikimi mes procesit të palëve të proceseve, ne ende mund të shënojmë njërin

 proces si klient dhe tjetrin si server. Ne mund të definojmë proceset klient dhe server si në vijim.

 Në kontekstin e sesionit të komunikimit në mes të palëve të proceseve, procesin i cili

 fillon(inicon) komunikimin (i cili fillimisht kontakton tjetrin në fillim të sesionit) shënohet si

KLIENT . Procesi i cili pret që të kontaktohet për të filluar sesionin është SERVERI .

 Në web, procesi browser inicon kontaktin me procesin e web serverit, për këtë arsye procesi i

 browserit është klient dhe procesi server i web-it është serveri. Në P2P, kur peer A kërkon nga

 peer B ti dërgoj fajllin specifik, peer A është klient, dhe peer B është server në kontekstin e këtij

sesioni specifik të komunikimit. Kur këtu nuk ka konfuyion, ne ndonjëherë, gjithashtu e

 përdorim terminologjinë “ana e klientit dhe ana e serverit të aplikacionit”. Në fund të këtij

kaputlli ne do të spjegojmë përmes kodeve të thjeshta për anët e klientit dhe të serverit të

aplikacioneve të networkut.

Interfejsi në mes të Procesit dhe Rrjetit kompjuterik 

Page 7: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 7/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 7

Siq është cekur më lartë, shumica e aplikacioneve përbëhen nga palët e komunikimeve të

 proceseve, nga 2 procese në çdo palë dërgojnë mesazhe njëri tjetrit. Çfarëdo mesazh që dërgohet

nga një proces së pari duhet të kalojë nga një rrjet themelor. Një proces dërgon mesazhe, pranon

mesazhe, nga një rrjet me anë të një interfejsi softverik të ashtuquajtur  – socket-. Të konsidojmë

një analogji për të kuptuar proceset dhe soketët. Procesi është i ngjashëm me shtëpinë kurse

soketi i tij është i ngjashëm me derën e shtëpisë. Kur një proces dëshiron të dërgoj një mesazh

në një proces tjetër në një host tjetër ai e shtyn mesazhin jashtë derës(soketit) të tij. Ky proces idërgimit supozon se ekziston një infrastrukturë të transportit në anën tjetër të derës që do të

transportoj mesazhin në destinacionin e derës së procesit tjetër. Pasi që mesazhi arrin tek 

destinacioni i hostit mesazhi kalon nga soketi i procesit pranues pastaj procesi përpunon

mesazhin.Fig. 2.3 ilustron komunikimin e dy proceseve, të lidhura përmes internetit, me anë të

soketëve.(Fig. 2.3 supozon se protokoli themelor të transportit që përdoret nga procesi është

TCP protokoli i Internetit). Siq paraqitet në këtë fig. Soketi është ndërmjetsuesi në mes të

shtresës së aplikacionit dhe shtresës së transportit në host.

Figura 2.3 Proceset e aplikacionit,socket-at dhe protokolli i transportit

Ajo gjithashtu i referohet si: Application Programming Interface(API)(Programimi i

interfejsit të aplikacionit) ndërmjet aplikacionitdhe rrjetës, pasi që soketi është programimi i

interfejsit me anë të cilit aplikacionet të bazuara në rrjet janë të ndërtuara. Zhvilluesi i

aplikacionit posedon kontroll të plotë në anën e shtresës së aplikacionit të soketit por ka pak 

kontroll në anën e shtresës së transportit të soketit.Kontrolla e vetme që zhvilluesi posedon në

anën e shtresës së transportit është:1) zgjedhja e protokolit të transportit, 2) dhe ndoshta

mundësia për të ndrequr disa parametra në shtresën e transportit si p.sh. baferi maksimal, dhe

madhësia maksimale të segmentit(në kapitullin e 3 do të përfshihen). Pasi zhvilluesi iaplikacionit përzgjedh protokolin transportues(nëse ka mundësi të zgjedhjes), aplikacioni

ndërtohet duke shfrytëzuar servisin e shtresës së transportit, që ofrohet nga ai protokol. Ne do të

hulumtojmë disa detale të soketëve në pjesën 2.7 dhe 2.8.

2.1.3 Shërbimet transportuese në dispozicion për aplikacione

Page 8: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 8/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 8

Përkutohuni që soketi është ndërmjetsues mes procesit të aplikacionit dhe shtresave

transportuese të protokolit. Prej anës dërguese, aplikacioni shtyn mesazhet përmes soketit. Në

anën tjetër të soketit protokoli shtresor transportues ka përgjegjësi për marrjen mesazhit në

“derën” e soketit pranues.Shumë rrjeta duke përfshirë edhe Internetin, ofrojnë më shumë se një

 protokol shtresor transportues. Kur ju zhvilloni një aplikacion, ju duhet të zgjedhni një nga

 protokolet shtresore transportuese. Si do ta bëni këtë zjedhje.sipas të gjitha gjasave ju do tëstudjoni shërbimet të cilat janë ofruar nga protokolet e disponueshme shtresore transportuese,

dhe do të zgjedhni protokolin me shërbimet që përputhen me nevojat e aplikacionit tuaj. Është e

ngjashme si me përzgjedhjen e aeroplanit apo trenit për të udhëtuar nga një qytet në tjetrin. Ju do

ta zgjedhni njërin prej tyre dhe secili lloj transporti ju ofron shërbime të ndryshme(p.sh. treni

ofron hipje dhe zbritje në qendër të qytetit, përderisa aeroplani ofron udhëtim me kohëzgjatje më

të shkurtë).Cilat janë shërbimet të cilat protokoli shtresor transportues mund të ofroj që të

mbështes aplikacioni? Ne mund të klasifikojmë shërbimet e mundshme gjerësisht në katër 

dimensione: transferi i besueshëm i të dhënave, throughput, kohëzgjatja dhe siguria.

Transferi i besueshëm i të dhënave

Siq edhe e diskutuam në kapitullin 1, pakot mund të humben brenda rrjetit të kompjuterit. P.sh.

 pakoja mund të tejkaloj baferin në ruter, ose mund të refuzohet nga hosti apo ruteri pasi që të

ketë disa bita të korruptuar. Për shumë aplikacione si posta elektronike, transferi i fajllave, qasja

remote e hostit, transfere dokumentesh në Web dhe aplikacione financiare, humbja e të dhënave

mund të ketë pasoja shkatërruese(si për bankën, ashtu edhe për klientin!). Pra, për të mbështetu

këto aplikcione duhet bërë diçka për të garantuar që të dhënat e dërguara nga njëra anë e

aplikacionit, të dorëzohet komplet dhe korrekt në anën tjetër të aplikacionit. Nëse protokoli

ofron shërbim dorëzues të garantuar atëhere thuhet se ofron TRANSFER TË BESUESHËM TË

TË DHËNAVE. Një shërbim i rëndësishëm që protokoli shtresor transportues potencialisht

mund t’ia ofroj aplikacionit është transferi i besueshëm i të dhënave nga procesi në proces. Kur 

 protokoli transportues ofron këtë shërbim, procesi i dërgimit mund të dorëzoj të dhënat e tij në

soket dhe me konfidencë totale e di se të dhënat do të arrijnë pa gabime në procesin e pranimit.

Kur protokoli shtresor transportues nuk ofron transfer të besueshëm, të dhënat e dërgueara gjatë

 procesit të dërgimit, mund të mos arrijnë fare te procesi i pranimit. Kjo mund të jetë e

 pranueshme për aplikacionet TOLERANTE NDAJ HUMBJES, më së shpeshti vërehet tek 

aplikacionet multimediale si Real-time audio/video të cilat mund të tolerojnë humbjen e një

 pjese të të dhënave. Në këto aplikacione multimediale, humbja e të dhënave mund të rezultoj me

glitch(gabime) të vogla në pjesën audio/video që luhet- një dëmtim jo krucial.

Throughput

 Në kapitullin 1 ne prezantuam konceptin e throughput-ëve në dispozicion, të cilët në kontekstin

e sesionit (seancës) komunikuese mes dy proceseve përgjatë shtegut të rrjetit është rate(vlerë) në

të cilën procesi dërgues mund të dorëzoj bit-at në procesin e

 pranimit. Për shkak se sesionet tjera mund të shkëmbejnë bandwidth(kapaciteti i linjës) përgjatë

shtegut të rrjetit si dhe për shkak se këto sesione do të vijn dhe shkojnë, throughput-i mund të

Page 9: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 9/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 9

 pësojë luhatet me kohë. Këto vrojtime qojnë te shërbime tjera natyrore të cilat protokoli shtresor 

transportues mund të ofroj, të emërtuar, throughput të garantuara të disponueshme në një ratë të

specifikuar. Me këtë lloj shërbimi aplikacioni mund të kërkoj throughput të garantuar të r 

 bit/sekokndë dhe protokoli transportues atëherë mund të siguroj se throughput i disponueshëm

është gjithnjë bile r bite/sekondë.Një shërbim i tillë i throughputit të garantuar mund të apeloj

tek shumë aplikacione. P.sh. nëse një aplikacion telefonik i Internetit, enkodon zërin në 32 kbps,

atij i nevojitet të dërgoj të dhëna në rrjet dhe të ketë të dhëna të dorëzuara tek aplikacioni pranues në këtë ratë. Nëse protokoli transportues nuk mund të ofroj këtë throughput, aplikacioni

duhet të enkodoj në ratë më të ulët(dhe pranon throughput të mjaftueshme të mbështes këtë ratë

të ulët enkoduese) ose duhet të heq dorë, pasi pranimi i gjysmës së throughputëve të duhur është

i vogël apo i padobishëm për këtë aplikacion telefonike të Internetit. Aplikacionet që kanë

kërkesë për throughput, thuhet të jenë Aplikacion të Ndjeshëm-për-Bandwidth. Shumë

aplikacione aktuale janë ndjeshëm ndaj bandwidth, edhe pse disa aplikacione multimediale,

mund të shfrytëzojnë teknika kodike adaptuese për të enkoduar në ratë që përputhet me

throughputet aktualisht në dispozicion.

Përderisa aplikacionet e ndjeshëm ndaj bandwidth-it kanë kërkesa specifike të throughput,

aplikacionet elastike mund të përdorin sado pak a shumë, që throughput të jetë edisponueshme. Posta elektronike, transferi i fajllave dhe web transferet janë që të gjitha

aplikacione elastike.

 Natyrisht sa më shumë throughput, aq më mirë. Ekziston thënja se askush nuk mund të jetë tepër 

i pasur, tepër i dobët apo të ketë tepër throughput-a.

Kohëzgjatja

Protokoli shtresor-transportues gjithashtu mund të jap garancione kohore. Ashtu si throughput

garancionet, edhe garancionet kohore mund të jetë në forma të ndryshme. Një shembull garancie

mundtë jetë ajo se secili bit që dërguesi e pompon në soket arrin në soketin e pranuesit jo më

vonë se 100msek. Ky lloj shërbimi mund të apeloj në real-time aplikacionet, si telefonia e

Internetit, ambientet virtuale, telekonferencat dhe lojërat me më shumë lojtarë, të gjitha këto që

kërkojnë kufizime strikte kohore me qëllim që të jenë efektive(kapitulli 7, [Gauthier 1999;

Ramjee 1994].) Vonesat e gjata në telefonin e Internetit, për shembull, rezulton në pauza

 jonatyrale në bisedë; në lojërat me shumë lojtar apo ambient virutal interaktiv, vonesë e gjatë

mes veprimit dhe përgjegjes që vjen nga ambienti(p.sh. nga lojtari në fund të lidhjes end-to-

end(skaj-më-skaj)) bën që aplikacioni të ndjehet më pak real. Për aplikacionet non-real-

time(kohën jo reale), vonesa e ulët është më preferueshme se vonesat e larta, por nuk janë të

vendosura kufizimet të strikte në vonesat end-to-end.

2.1.4 Shërbimet transportuese të ofruara nga Interneti

Deri më tash, ne konsideruam shërbimet transportuese se çfarë ofron rrjeta kompjuterike në

 përgjithësi. Tani të jemi më specifik dhe të studjojmë llojin e mbështetjes së aplikacioneve të

ofruara nga Interneti. Interneti(dhe në përgjithësi TCP/IP rrjetat) krijojnë dy protokole të

disponueshme tek aplikacionet, UDP dhe TCP. Kur ju(si zhvillues i aplikacioneve) krijoni një

aplikacion të ri për rrjeta për Inter, një nga vendimet e para që duhet të mirren është se a të

Page 10: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 10/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 10

 përdorësh UDP apo TCP. Të gjitha këto protokole ofrojnë sete të ndryshme të shërbimeve për 

forcimin e aplikacionit. Fig. 2.4 tregon kërkesat e shërbimit për disa aplikacione të përzgjedhura.

TCP shërbimet

Modeli i shërbimeve TCP përfshin shërbimin e orientuar-në-lidhje dhe shërbim të transferit të besueshëm të të dhënave. Kur një aplikacion nxit TCP si protokol transporti, aplikacioni pranon

të dyja këto shërbime nga TCP-ja:

  Shërbimi i orientuar-në-lidhje. TCP ka informatën kontrolluese të shkëmbimit

transportues-shtresor mes klientit dhe serverit me të dyjat  para se të fillojë të rrjedhë

mesazhet në nivel-të-aplikacionit.

Figura 2.4 Kërkesat e selektuara të aplikacioneve të rrjetës

Kjo e ashtuquajtura procedura duarshtrëngim tërheq vërejtjen e klientit dhe serverit,duke u lejuar atyre të përgatiten për ndarjen e paketeve. Pas fazës së duarshtrëngimit,

Lidhja TCP thuhet se ekziston në mes të soketëve të dy proceseve. Lidhja është lidhje

full-dupleksnë atë se dy proceset mund të dërgojnë mesazhe njëra tjetrës përmes lidhjes

në të njëjtën kohë. Kur aplikacioni përfundon me dërgimin e mesazheve, duhet të

shkëput lidh jen. Shërbimi referohet në shërbimin “orientuar në lidhje” më parë se në

shërbimin “e lidhjes” sepse të dy proceset janë të lidhura në një mënyrë shumë të lirë.

 Në kapitullin 3 ne do të diskutojmë shërbimet të orientuara në lidhje më detalisht dhe të

studjojmë se si implementohet.

  Shërbimi i transferit të besueshëm të të dhënave. Proceset komunikuese mund të

mbështeten në TCP për të dorëzuar të gjitha të dhënat e dërguara pa gabime dhe merradhitje të duhur. Kur njëra anë e aplikacionit përcjellë rrjedhën e bajtave në soket,

mund të llogaris në TCP që do të dorëzoj të njëjtën rrjedhë të bajtave në soketin

 pranues, pa bajta të mangët ose të dyfishuar. 

TCP gjithashtu përfshin mekanizmin e kontrollit të ngatërrimeve, shërbim për mirëqenien e

 përgjithshme të Internetit më parë se sa për dobinë direkte të proceseve të komunikimit.

Mekanizmi për kontrollin e ngatërrimit e TCP përmbys një proces të dërgimit(klientit ose

Page 11: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 11/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 11

serverit) kur rrjeta është i mbushur ndërmjet dërguesit dhe pranuesit. Si do të shohim në

kapitullin 3, kontrolli për mbushjen e TCP gjithashtu tenton për të limituar çdo TCP lidhje

në pjesën e bandwidthit të tij. Përmbysja e ratës së transmetimit mund të ketë një efekt

dëmtues në real-time audio dhe video aplikacione që kanë kërkesa minimale të throughput-

it. Për më tepër, real-time aplikacionet janë tolerant-ndaj-humbjes dhe nuk i nevojitet një

shërbim transporti komplet të besueshëm. Për këto arsye, zhvilluesit e real-time

aplikacioneve më shpesh zgjedhin të startojnë aplikacionet e tyre me UDP se me TCP.

Sherbimet UDP

UDP eshte nje no-frill,protokoll i lehte transporti, qe siguron sherbimet minimale.UDP eshte nje

lidhje e ulet,keshtu qe nuk ka ``duarshtrengime`` perpara se te dy proceset te fillojne

komunikimin.UDP ofron nje sherbim te transmetimit te te dhenave te pabesueshem-qe eshte, kur 

nje proces dergon nje mesazh brenda nje baze te UDP. UDP nuk jep asnje garancion qe mesazhi

do të arrije ta kryeje procesin e marrjes.Per me

teper, mesazhet qe nuk arrijne ne procesin e marrjes mund të arrijne jashte rendit.

UDP nuk perfshin nje mekanizem te kontrollit-ngjeshes, keshtu qe ne anen e dergimit UDPmund te bej shtypjen e te dhenave ne shtresen e poshtme( shtresen e rrjetit) e qe ne cdo rast te

kenaq.

(Shenojme, megjithate, se ne fund aktuale per t`i dhene fund xhiros mund te jete me pak se kjo

norme per shkak te gjersise se shiritit i cili eshte i kufizuar ose per shkak te mbingarkeses).Sepse

ne kohe reale kerkesave shpesh mund te ju tolerohen humbje, por kerkojne nje norme minimale

qe te jete efektive, zhvilluesit e aplikacioneve ne kohe reale nganjehere zgjedhin per te drejtuar 

kerkesat e tyre mbi UDP, duke i shmangur TCP-se mekanizmin ngjeshes-kontrollues dhe pakon

e shpenzimeve me fletengarkese.Nga ana tjeter, per shkak se jane konfiguruar firewalls per te

 bllokuar trafikun UDP,dizajneret kanë zgjedhur gjithnje per te drejtuar multimediat dhe

aplikacionet e verteta mbi TCP.

Sherbimet te cilat nuk ofrohen nga protokollet e transportit ne internet

 Ne kemi organizuar transport te mundshem protokollesh te sherbimeve se bashku me kater 

dimensione:te dhena te besueshme , transferim te xhiros, kohen dhe sigurine.Secila nga keto

sherbime jane te kushtezuaranga TCP dhe UDP? Ne cdo here e kemi cekur se TCP ofron te

dhena transferuese te besueshme ne fund.Dhe ne gjithashtu dime se TCP mund te rritet lehte ne

shtresat aplikative per te ofruar sherbime të sigurta.Por ne nje pershkrim me te shkurte te TCP

dhe UDP, mungesa dukshem ishte ndonje permendje e xhiros apo koha qe garanton sherbimet e

ofruara nga protokollet e sotme nuk mbeshtesin transportin ne internet.A do te thote kjo se

aplikimet të ndjeshme ne kohe te tilla si telefonia e internetit nuk mund te kandidojne në

interentin e sotem.Pergjigja eshte e qarte se jo-interneti do të jete aplikacion i ndjeshem ne kohe

 per vite me radhe.Keto zbatime shpesh punojne mjaft mire, sepse ato kane qene te dizajnuara

 per te perballuar, per aq sa eshte e mundur, me kete mungese te garancise.

 Ne do të hetojme disa prej ketyre dizajn mashtrimeve ne kapitullin e 7.Megjithate, dizajni i

zgjuar ka kufizimin e tij kur vonesa eshte e tepruar, sic ndodh shpesh ne internetin publik.Ne

 përmbledhje te gjithe kesaj, sot interneti shpesh mund

Page 12: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 12/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 12

te jape te dhena te kendshme te kerkesave te ndjeshme ne kohe, por kjo nuk mund te jape ndonje

siguri per kohen apo per gjeresine e shiritit.

Figura 2.5 tregon transportin e protokollit te perdoruara nga disa aplikacione te popullarizuara te

internetit.Ne shohim se ajo e-mail, me qasje terminali te larget, web-i, dhe fajll transferat te

gjitha perdorin TCP.Keto zbatime i kanë zgjedhur TCP kryesisht per shkak se ofron nje sherbim

te besueshëm per transferimin e te dhenave, duke garantuar se të gjitha te dhenat ne fund do temarrin nje drejtim(destinacion).Ne gjithashtu shohim se telefonia e internetit ne menyre tipike

shkon mbi UDP.Cdo ane e kerkeses se telefonit ne internet ka nevoje per te derguar te dhenat ne

te gjithe rrjetin ne nje norme minimale(shih audion ne kohe reale ne figuren 2.4), kjo ka me

shume gjasa te jete e mundur me UDP sesa me TCP.

Gjithashtu, aplikacionet e telefonit ne internet kane nje humbje tolerante, keshtu qe ata nuk u

 besojne transferimit te sherbimeve te te dhenave qe ofrohet nga TCP.

Figura 2.5 Aplikacionet e njohura të Internetit,protokollet e tyre të shtresës së aplikacioneve dhe

 protokollet e transportit.

Adresimi i proceseve Ne diskutimin tone me larte jemi fokusuar ne sherbimet e transportit midis dy proceseve te

komunikimit. Por si mund të jete nje proces qe tregon se me cilin proces deshiron te komunikoje

me perdorimin e ketyre sherbimeve?Si nje proces dergon nje mori hostesh ne

Amherst,Massachusetts USA qe specifikon se deshiron te komunikojë me nje proces te vecante

hostesh ne Bangkok,Thailand? Per te identifikuar procesin e marrjes, 2 pjese te informacionit

nevoitet te specifikohen: (1) emri ose adresa e hostit dhe(2) nje identifikues qe specifikon

 procesin e marrjes ne destinacionin e hostit.

 Ne internet, hosti eshte identifikuar me IP adresen e tij. Ne do të pershkruajme IP adresat ne

menyre te qarte ne kapitullin 4. Per tani, e gjitha cka ne duhet të dime eshte se nje IP adrese

është me sasi 32-biteshe qe ne mund te mendojme si nje identifikimunik te hostit.(Sidoqofte, ne do te shohim edhe ne kapitullin 4, vendosjen e gjere te rrjetit te

adreses perkthyese (NATs) qe do të thote se, ne praktike, nje IP adrese 32 biteshe nuk ka nje

adrese unike te hostit).Pervec njohjes së adresës së hostit për të

cilat një mesazh është destinuar, hosti i dërguar gjithashtu duhet të identifikojë procesin e

marrjes ne drejtimin e hostit.Kjo informate eshte e rendesishme sepse hosti gjeneral mund te

drejtohet ne shumicen e aplikacioneve te rrjetit. Destinacioni ``port number``i sherben ketij

qellimi.Aplikacionet e popullarizuara kane qene te caktuara me numra portesh te vecanta.Per 

Page 13: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 13/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 13

shembull, nje web server ka qene i caktuar me numrin e portes 80. Nje mail proces server (qe

 perdor SMTP protokoll) eshte caktuar me numrin e portes 25.Nje liste me njohjen e mire te

numrave te porteve per te gjitha protokollet standarde ne internet mund te gjindet ne

http://www.iana.org.Kur nje zhvillues krijon nje aplikacion rrjeti te ri, aplikacionet mund te

caktohen me nje numer porte te ri.Ne kemi shpjeguar numrin e porteve ne detale ne kapitullin 3.

2.1.5 Protokollet e shtresës së aplikacionit 

 Ne kemi mesuar se procesi rrjetor mundeson komunikimin me njeri tjetrin doke derguar 

mesazhe brenda bazes. Por si jane te strukturuara

keto mesazhe? Cili eshte kuptimi i fushave te ndyshme tek mesazhet? Kur proceset i dergojne

mesazhet? Keto pyetje na sjellin brenda nje

fushe te protokolleve kerkese-shtrese. Nje Protokoll kerkese-shtrese definon si nje proces

kerkues, vepron ne mbarimin e sistemeve te

ndyshme, dergon mesazhet tek njeri tjetri.Praktikisht,nje protokoll kerkese-shtrese definon:

  Llojin e shkembimit te mesazheve, per shembull, mesazhi kerkues dhe mesazhi

 pergjegjes  Sintaksen e llojeve te ndryshme te mesazheve, te tilla si fushat ne mesazh dhe menyra

se si jane percaktuar keto fusha

  Semantiken e fushave, qe eshte , ne kuptimin e informacionit te fushes

  Rregullat per determinimin kur dhe si procesi dergon mesazhe dhe pergjigjet ne

mesazhe

Disa protokolle kerkese-shtrese jane te specifikuara ne RFC dhe prandaj jane ne domenin

 publik. Per shembull, nje web protokoll

kerkese-shtrese aplikim, HTTP (HyperText Transfer Protocol) eshte ne dispozicion si nje

RFC.Ne qofte se nje zhvillues kerkimi ndjek rregllat e HTTP RFC, kerkuesi do te jete ne gjendje

te rifitoj faqet e internetit nga ndojne server i internetit qe ka ndjekur edherregullat e HTTP RFC.Shume protokolle tjera kerkese-shtrese jane te pronesuara dhe

nderkombetare e nuk jane te disponueshme ne domenin publik.Per shembull, shume sisteme

ekzistuese fajll-shperndarese P2P perdorin pronesimin ne protokollin kerkese-shtrese.Eshte e

rendesishme te behet krahasimi mes kerkeses se rrjetit dhe protokollit kerkese-shtrese. Nje

 protokoll kerekese-shtrese eshte vetem nje pjese e kerkeses se rrjetit. Le ti shohim disa cifte

shembujsh.Web-i eshte nje kerkese(aplikacion) klient-server qe i lejon perdoruesve te marrin

dokumente nga serveret mbi kerkesen. Aplikacioni web perbehet nga shume komponente, duke

 perfshire edhe nje standard

 per formate te dokumetit (qe eshte HTML), shfletuesin web (per shembull, Firefox dhe

Microsoft Internet Explorer),web server(per shembull Apache dhe serveri Microsoft) dhe protokollin kerkese-shtrese.Web-at e protokollit kerkese-shtrese, HTTP, definon formatin dhe

sekuencat e mesazheve qe jane kaluar brenda shfetuesit dhe web serverit.Prandaj, HTTP eshte

vetem nje pjese e kerkeses web. Nje shembull tjeter, nje e-mail kerkese ne internet poashtu ka

disa komponente, duke perfshire mail serveret qe

 perdorin shtepite per kuti te mail-ave; mail lexuesit qe lejojne perdoruesit te lexojne dhe te

krijojne mesazhet, nje standard per percaktimin e struktures se nje e-mail mesazhi, dhe qe

 protokolli kerkese-shtrese percakton se si mesazhet jane miratuar mes servereve, dhe si behet

Page 14: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 14/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 14

 permbajtja e pjeseve te caktuara te mail mesazhit(per shembull, nje mesazh koke-mail) dhe te

interpretimi.Aplikacioni kryesor i protokollit kerkese-shtrese per poste elektronike(mail) eshte

SMTP(Simple Mail Transfer Protocol).

Keshtu, email-a eshte protokolli kryesor kerkese-shtese. SMTP, eshte vetem nje pjese (edhe pse,

nje pjese e rendesishme) e aplikacionit e-mail.

2.1.6 Aplikacionet e rrjetit te mbuluara në kete liber

Domeni i ri publik dhe kerkesat e pronarit te internetit jane duke u zhvilluar cdo dite. Me teper 

se sa qe mbulon nje numer te madh te aplikacioneve te internetit ne nje

menyre enciklopedike, ne kemi zgjedhur qe te perqendrohemi ne nje numer te vogel te

kerkesave qe jane te dyja te perhapura dhe te rendesishme.Ne kete kapitull ne kemi perfshire 5

aplikacione te rendesishme: Web-i, fajllat transferues, mail-i elektronik,lista e sherbimeve , dhe

aplikacioni P2P. Ne se pari kemi pershkruar Web-in, jo vetem qe eshte nje aplikacion shume i

 popullarizuar, por poashtu protokolli i saj, HTTP, eshte i drejte dhe I lehte per ta kuptuar.Pas

mbulimit te web-it, shqyrtojme shkurtimisht FTP, sepse ai ofron nje kontrast te mire per HTTP.

E-mail-i eshte me kompleks se sa web-i dhe me kete kuptojme se ai ben perdorimin e jo nje por 

disa protokolleve kerkese-shtrese. Pas email-it, ne kemi mbuluar DNS, i cili ofron nje sherbim

direkt te internetit. Shumica e perdoruesve nuk nderveprojne direkt me DNS; ne vend te kesaj,

 perdoruesit e adhurojne DNS indirekte permes kerkesave tjera( duke perfshire Web-in, fajllin

transferues, dhe mail-in elektronik). DNS ilustron mire se si nje pjese funksionale e berthames

se rrjetit(perkthimi i emrit te rrjetit tek emri i adreses) mund te implementohet tek shtresat

aplikative ne internet. Ne fund, ne kemi pershkruar aplikacionin P2P, duke përfshirë

shpërndarjen e fajll-ave, shpërndarjen e databazës dhe IP telefoninë.

2.2 Web-i dhe HTTP 

Deri ne fillim te vitit 1990 Interneti ishte perdorur kryesisht nga studiuesit, akademiket dhe

studentet e universiteteve per tu qasur ne largesi ne Hostet, per te transferuar fajlle nga Hostet

lokale ne Hostet ne largesi dhe anasjelltas, per te pranuar dhe derguar lajme dhe per te pranuar 

dhe derguar mesazhe elektronike.Ndonese keto aplikacione ishin (dhe vazhdojne te jene)

ekstremisht shume te perdorura, Interneti ishte thelbesisht i panjohur jasht komunitetit të

akademikeve dhe studiueseve.

Pastaj, ne fillim te viteve te 90-ta, nje aplikacion i ri madheshtor arriti ne skene World Wide

Web (Berners-Lee 1994). Web-i ishte aplikacioni i pare i Internetit qe zuri nje vend te

rendesishem per syrin e publikut. Ai dramatikisht ndryshoi, dhe vazhdon te ndryshon, si njerezit

qe bashkeveprojne brenda dhe jashe mjedisit te tyre te punes. Interneti ishte ngritur vetem nga

nje njesi e disa te dhenave te rrjetave ne thelb nje dhe e vetmja e dhene e rrjetit.Ndoshta ankesat

me te medha te perdoruesve jane se Web-i operon ne mbi kerkesen.Perdoruesit marrin ate se cka

dëshirojne dhe kur deshirojne. Kjo eshte ndryshe nga transmetimi i radiove dhe televizioneve, e

cila i detyron me force perdoruesit per te kapur permbajtjen te cilën e leshon sherbyesi dhe qe e

ve ne dispozicion. Ne menyre per te qene ne dispozicion mbi kerkesen, Web-i ka me shume

Page 15: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 15/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 15

tipare të mrekullueshme që njerezit i deshirojne dhe favorizojne. Kjo eshte jashtezakonisht lehte

 per shume individ per te marrë informacione ne dispozicion nepermjet Web-it, cdokush mund te

 behet nje publikues me kosto jashtezakonisht te ulet. Hiperlinket dhe makinat e kerkimit na

ndihmojne neve per te naviguar ne nje oqean Web Sajte. Grafikat na stimulojne shqisat tona.

Format, programi Java, dhe pajisje tjera na mundesojne neve te interaktojme me faqe dhe sajte.

Dhe me teper, Web-i siguron nje meny per te nderlidhur nje sasi te madhe te audio dhe video

materialeve qe jane te ruajtura ne Internet- multimedia qe mund te qasemi me ane te kerkeses.

2.2.1 Pamja e pergjithshme e HTTP-se

Hyper Text Transfer Protocol(HTTP), protokolli i shtreses se programit te Web-it , eshte

zemra e Web-it .Eshte percaktuar ne (RFC 1945) dhe (RFC 2616). HTTP eshte implementuar 

ne dy programe: nje program si klient dhe tjetri si server. Klient programi dhe server programi

ekzekutohen ne sisteme te ndryshme, komunikojne ne mes vete duke shkembyer HTTP

mesazhe. HTTP percakton strukturen e ketyre mesazheve, dhe se si klienti dhe serveri

shkembjene mesazhe. Para se te gjurmojme HTTP ne detaje, ne duhet te shikojme disa

terminologji te Web-it. Nje Web Faqe (e njohur edhe si dokument) perbehet nga objektet. Nje objekt eshte thjesht nje

fajll- sic eshte HTML fajlli, JPEG imazhi, Java programi, ose nje video-klip qe adresohet nga

nje URL e vetme. Shumica e Web Faqe-ve perbehen nga baza e fajlleve HTML dhe ca objekte

te referuara. Per shembull, nese nje Web Faqe permban tekst HTML dhe 5 imazhe JPEG, pastaj

Web Faqja ka 6 objekte: baza e fajllit HTML dhe 5 imazhe. Baza HTML i referohet objekteve

tjera ne faqe me objekte URL. Secila URL ka dy komponente, Hostname e serverit që përmban

objektin dhe emrin e rrugës së objektit, psh: URL

http://www.someschool.edu/someDepartment/picture.gif  

e ka www.someschool.edu  per nje hostname dhe someDepartment/picture.gif   per emrin e

rruges. Sepse Web Shfletuesit (siq jane Internet Explorer dhe Firefox) implementojne anen e

klientit te HTTP-se, ne kontekst te Web-it, ne do ti perdorim fjalet Shfletues dhe Klient njeri-

tjetri. Web serveret, te cilet implementojne anën e serverit te HTTP-se, shtepitë e Web

objekteve, secila të adresuara me nga një URL. Web serveret e popullarizuar perfshijne Apache

dhe Microsoft Internet Information Server.

HTTP percakton se si Web klienti kerkon Web faqe nga Web server-at dhe se si serveri

transferon Web faqe te klienti. Ne do te diskutojme interaksionin ndermjet klientit dhe serverit

ne detaje më vone, por ne pergjithesi idea eshte ilustruar ne Figuren 6.2. Kur nje perdorues

kerkon nje Web faqe (psh: klikon në nje Hiperlink), shfletuesi e dergon mesazhin qe e kerkon

me HTTP per objektet ne faqet e serverit. Serveri pranon kerkesen dhe i pergjigjet me HTTP

mesazh pergjigjes qe e permban objektin.

HTTP perdor TCP si protokoll themelor transporti (me teper se drejtimi i kryesuar nga UDP).

Klienti HTTP ne fillim inicion nje lidhje TCP me serverin. Kur lidhja eshte bere me sukses,

shfletuesi dhe serveri procesojne qasjen e TCP nepermjet vrimave te interfejsit. Si e pershkruam

ne Seksionin 2.1, ne anen e klientit vrima e interfejsit eshte dera ndermjet procesit te klientit

dhe lidhjes TCP: ne anen e serverit eshte dera ndermjet procesit te serverit dhe lidhjes TCP.

Klienti e dergon HTTP kerkesen si mesazh ne vrimat e interfejsit te tij dhe e pranon HTTP

 pergjigjen nga vrimat e tij te interfejsit.

Page 16: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 16/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 16

Figura 2.6 Sjellja e HTTP kerkeses – pergjigjes

 Njejte, serveri HTTP pranon nje mesazh kerkues nga vrima e interfejsit te tij dhe dergon mesazh

 pergjigjes ne vrimen e interfejsit te tij. Njehere klienti e dergon nje mesazh ne vrimen e

interfejsit, mesazhi eshte jashte duarve te klientit dhe eshte “ne duart” e TCP. Kujtojme ngaSeksioni 2.1 qe TCP siguron nje sherbim te sigurt per transferimin e te dhenave deri te HTTP.

Kjo nenkupton qe cdo mesazh kerkues i HTTP i derguar nga nje klient procesi perfundimisht

arrin i paprekur te server: njejte, mesazhi pergjigjies HTTP derguar nga server procesi

 perfundimisht arrin i paprekur te klienti. Ketu ne shohim nje nga avantazhet e medha te

arkitektures se shtresave - HTTP nuk duhet te brengoset per humbjen e te dhenave ose detajeve

se si TCP rikthen nga te humbura ose te riurdheruara te dhenat brenda rrjetit.

Kjo eshte detyra e TCP dhe protokolleve ne shtresat me te ulta te renditjes se shtresave.

Eshte e rendesishme te shenojme qe serveri dergon fajlle kerkese te klienti pa ruajtur ndonje

informacion kryesor per klientin. Nese nje klient i vecante pyet per te njejtin objekt dy here ne

nje periudhe prej disa sekondave, serveri nuk i pergjigjet duke thene se eshte servuar objekti teklienti: por prap, serveri i ri dergon objektin, duke harruar teresisht se cka ka vepruar me pare.

Sepse nje HTTP server nuk permban informacione rreth klientit, HTTP thuhet të jete stateless

 protocol.Ne gjithashtu rimarkojme qe Web-i perdor arkitekturen e aplikacionit klient-server, siq

 pershkruhet ne seksionin 2.1. Nje Web server eshte gjithnje i ndezur, me një IP adrese fikse dhe

sherben kerkesa potencialisht nga miliona shfletues te ndryshem.

2.2.2 Lidhjet e Paqëndrueshme dhe të Qëndrueshme

 Ne shumicen e aplikacioneve te internetit, klienti dhe serveri komunikojne per nje periudhe te

gjere kohore, klienti eshte ai i cili bene kerkesa te njepasnjeshme ndersa serveri i pergjigjetseciles kërkese.Duke u varur ne aplikacion dhe ne menyren se si aplikacioni perdoret, serite e

kerkesave mund te jene te bera ne menyre(back-to-back).Kur ky bashkepunim ne mes te klientit-

serverit ze vend ne TCP, hartuesi i aplikacionit duhet te merr nje vendim te rendesishem, duhet

qe cdo pale e kerkeses/pergjigjes te dergohet ne lidhje te ndryshme te TCP, ose duhet qe te

gjitha kerkesat dhe pergjigjet perkatse te dergohen ne te njejten lidhje te TCP.

 Ne qasjen e fundit, aplikacioni duhet te përdor lidhje jo te qendrushme ndersa me vone ne qasjen

e fundit te perdor lidhje te qendrueshme.Per te arritur nje kuptim te thelle te kesaj menyre

Page 17: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 17/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 17

dizajnimi duhet te ekzaminojme avantazhet dhe te metat e lidhjeve te qendrueshme ne konteks te

nje aplikacioni specifik, te quajtur HTTP, i cili mund te perdoret ne te dy lidhjet e qendrueshme

dhe te pa qendrueshme. Megjithate HTTP perdor lidhje te qendrueshme ne menyren e vet

fillestare, klientet dhe serveret HTTP mund te konfigurohen duke perdorur me mire lidhje jo te

qendrueshme.

HTTP me lidhje te paqendrueshmeLe t’i shikojme hapat e transferimit te nje Web-faqe nga serveri te klienti ne rastin e lidhjeve te

 paqendrushme. Te supozojme se faqja permban nje fajll me baze HTML dhe 10 imazhe JPEG,

dhe te gjitha keto 11 objekte gjenden ne serverin e njejte.

Me poshte supozojme URL per fajllin me baze HTML,eshte:

http://www.someschool.edu/somedepartment/home.index 

 ja qfare ndodhe :

1) Procesi i klientit HTTP inicion nje lidhje TCP te serveri www.someschool.edu ne portin nr 

80, ky port eshte i caktuar për HTTP. Asocion me lidhjen TCP, do te jete nje vrime per 

klientin,dhe një vrime do te jete per serverin

2) Klienti HTTP i dergon nje mesazh HTTP kerkese ne serverin me ane te vrimes se tij.Mesazhi kerkues permban emrin e rruges /someDepartment/home.index (do ta diskutojme )

3) Procesi HTTP serverit pranon mesazhin kerkues me ane te vrimes se tij, nxjerr objektin

/someDepartment/home.index nga magazina (RAM-i ose Disku) e depaketon objektin ne nje

mesazh HTTP pergjigjes, dhe e dergon te klienti me ane te vrimes se caktuar.

4) Procesi HTTP serverit e udhezon TCP te mbyll lidhjen TCP. Por TCP jo ne te vertet do ta

 perfundoj lidhjen derisa te behet e sigurt se klienti e ka pranuar mesazhin pergjigjes. 5) HTTP

klienti e pranon mesazhin e pergjigjes. Lidhja TCP perfundon. Mesazhi tregon se objekti i

 paketuar eshte ne fajll HTML. Klienti e nxjerr fajllin nga mesazhi i pergjigjes, e ekzaminon

HTML fajllin dhe i gjen referencat e 10 objekteve qe jane JPEG.

6) Kater hapat e pare perseriten per cdo objekt JPEG te referuar.

Sic e pranon shfletuesi Web-faqen, ai e shfaq faqen te perdoruesi. Dy shfletues te ndryshem

mund te interpretojne(qe eshte shfaqur te perdoruesi) nje Web-faqe ne rruge te ndryshem. HTTP

nuk ka asgje per te bere se si nje Web-faqe eshte interpretuar te klienti.Specifikacionet e

HTTP(RFC1945)dhe(RFC2616) definojne vetem protokollin komunikues ndermjet programit

HTTP te klientit dhe programit HTTP te serverit.

Hapat me larte ilistruan per te perdorur lidhjet e pa qendrueshme ku cdo TCP lidhje eshte

mbyllur pasi qe serveri e dergon objektin-lidhja nuk vazhdon per objektet tjera.

Mbani mend qe cdo lidhje TCP transporton vertem nje mesazh per kerkes dhe nje mesazh.

Keshtu qe, ne ket shembull, kur nje perdorues i kerkon ne Web-faqe lidhjet TCP 11 jane

gjeneruar.Ne hapat e pershkruar me larte, ne ishim qellimisht te paqarte nese klinti i merr 10

JPEG neper 10 seriale te lidhjeve TCP. Me te vertete perdoruesi mund te konfiguroje shfletues

modern per te kontrolluar shkallen e ngjashmerise.Ne menyrat e caktuara shumica e shfletuesve

hapin 5 deri 10 lidhje TCP te ngjashme, dhe secila nga keto lidhje trajton nje transaksion

kerkese-pergjigje.

 Nese perdoruesi preferon maksimumin e lidhjeve te njejta qe mund te dergohen ne nje,

Page 18: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 18/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 18

ne secilin rast 10 lidhjet jane te vendosura serialisht. Si do te shohim ne ne kapitullin tjeter,

 perdorimin e lidhjeve te ngjashme ne kohe te shkurter.

Para se te vazhdojme, ta bejme back-of-the envelope kalkulimin per te vlersuar sasine e kohes

qe kalon nga nje klient qe kerkon nje fajll me baze HTML deri kur pranohet komplet fajlli te

klienti. Deri te fundi, ne e definojme Kohen e Udhetimit te Rundit (RTT), eshte kjo koh qe kalon

nga nje pako e vogel per te udhetuar nga klienti te serveri dhe pastaj te kthehet te klienti. RTT perfshin vonimin e shumimit te pakos, pritjen e pakos ne ndermjetsim te ruterave dhe switchave,

dhe vonesen e procesimit te pakove.(Keto vonesa jane diskutuar ne Seksionin 1.4).

Tani konsiderojme qka ndodhe kur nje perdorues klikon ne nje hiperlink. Sic shiheht ne Figuren

2.7, shkaku qe shfletuesi te inicion nje lidhje TCP ndermjet shfletuesit dhe Web serverit: kjo

involvon (three-way-handshake), klienti dergon nje segment te vogel TCP te serveri, serveri e

 pranon dhe i’a kthen me nje segment te vogel TCP, dhe perfundimisht, klienti e pranon kthimin

nga serveri. Dy pjeset e para te (three-way-handshake) bejne nje RTT.

Pas kompletimit te dy pjeseve te para te hand-shake, klienti e dergon kerkesen HTTP te

kombinuar me pjesen e tret te three-way-handashake (e pranon) ne lidhjen TCP. Njehere

mesazhi kerkues arrin te serveri, serveri e dergon fajllin HTML ne lidhjen TCP. Kjo

kerkes/pranese HTTP eshte nje tjeter RTT. Keshtu qe afersisht koha totale e pergjigijes eshte dy

RTT plus koha transmetuese te serveri i fajllit HTML.

Figura 2.7 Kalkulimi i kthimit te zarfit per kohen qe i nevojitet per te kerkuar dhe pranuar nje

HTML file

HTTP me lidhje te qendrueshme

Page 19: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 19/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 19

Lidhjet e pa qendrueshme kan disa mangesi. Ne fillm nje model i ri i lidhjes duhet te vendoset

dhe te mbaj per secilin objekt te kerkuar. Per secilen nga keto lidhje amortizimet e TCP duhet te

mblidhen dhe ndryshoret e TCP duhet te mbahen te klienti dhe serveri. Kjo mund te barte nje

 barre ne Web server, e cila mund te sherben si kerkes nga qindra klient te ndyshem njekohesisht.

Se dyti, sic e pershkruam, secili objekt shperndan nje kerkes te te dy RTT, njeri RTT qe e

krijone lidhjen TCP dhe tjetri RTT te kerkon dhe pranon nje objekt.Me lidhje te qendrueshme,

serveri e len lidhjen TCP te hapur pas dergimit te mesazhit. Kerkesa dhe pergjigjia pasuesendermjet klientit dhe serverit mund te dergohet ne lidhjen e njejt. Vecanerishte, nje Web faqe

komplet(ne shembullin e mesiperm, me baze HTML fajll dhe 10 imazhe) mund te dergohet

neper nje lidhje TCP te qendrueshme. Me teper, shume Web faqe gjenden ne te njejtin server qe

mund te dergohen nga serveri te klienti i njejt neper nje lidhje TCP te qendrueshme. Keto

kerkesa per objekte mund te behen (back-to-back) pa pritje per rikthime per te pritur 

kerkesen(pipelining). Ne menyre tipike HTTP serveri e mbyll nje lidhje kur ajo nuk perdoret per 

nje koh te gjate(a configurable timeour interval). Kur serveri e pranon kerkesen(back-to-back) ,

ai e dergon objektin (back-to-back). Menyra e konfiguruar HTTP perdor lidhje te qendrueshme

ne linje gypore. Ne do ta krahasojme ne menyr sasiore performacen e lidhjeve jo te

qendrueshme dhe lidhjeve te qendrueshme ne problemet e detyrave te shtepis ne Kapitullin 2dhe 3.

2.2.3 Formati i HTTP mesazhit

Specifikimet e HTTP-së [RFC 2616] përfshijnë definimet e formateve të HTTP mesazhit.Ka dy

tipe te HTTP mesazheve,mesazhet kërkuese dhe përgjigjëse,të dyja prej të cilave janë të

diskutuara më poshtë.

HTTP mesazhet kërkuese

Më poshtë kemi paraqitur një HTTP mesazh tipik kërkues :

GET /somedir/page.html HTTP/1.1

Host: www.aomeschool.edu 

Connection: close

User-agent: Mozilla/4.0

Accept-language: fr 

 Ne mund të mësojmë shumë nga vështrimi i këtij mesazhi të thjeshtë kërkues.Së pari mund të

shohim që mesazhi është i shkruajtur me një tekst të zakonshëm ASCII ashtu që qenia njerëzore

që ka njohuri rreth kompjuterit mund ta lexojë atë.Së dyti,shohim që mesazhi përbëhet prej pesë

rreshtave,secili i shoqëruar nga një rresht pasues.Rreshti i fundit është i shoqëruar nga një

mbartje shtesë kthyese dhe një rresht pasues.Edhe pse ky mesazh i veçantë kërkues ka pesë

rreshta,një mesazh kërkues mund të ketë shumë më shumë rreshta ose më pak vetëm një

rresht.Rreshti i parë i HTTP mesazhit kërkues

Page 20: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 20/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 20

quhet rreshti kërkues;rreshtat pasues quhen rreshtat e header-it(kokës).Rreshti kërkues ka 3

fusha:fusha e metodës,fusha e URL-së dhe fusha e versionit të HTTP-së.Fusha e metodës mund

të marrë vlera të ndryshme,duke përfshirë GET,POST,HEAD,PUT dhe DELETE.Shumica e

mesazhave kërkuese të HTTP-së përdorin metodën GET.Metoda GET përdoret kur browser-i

(shfletuesi) kërkon një objekt,me objektin e kërkuar identifikohet në fushën e URL.Në këtë

shembull,browser-i kërkon objektin /somedir/page.html.Versioni është i dukshëm,në këtëshembull browser-i implementon versionin HTTP/1.1.

Tani le të shohim rreshtat e header-it në shembull.Rreshti i header-it Host:

www.someschool.edu specifikon host-in në të cilin objekti qëndron.Ju mund të mendoni që ky

rresht i header-it është i panevojshëm,meqë tashmë ka një TCP lidhje nga vendi në host.Por siç

do të shohim në pjesën 2.2.5,informacioni i dhënë nga rreshti i header-it host është i kërkuar nga

Web proxy cache-et.

Duke e përfshirë rreshtin e header-it Connection: close,browser-i i tregon serverit që nuk 

dëshiron të ngacmohet me lidhjet e vazhdueshme;ai dëshiron që serveri të mbyll lidhjen pasi të

 jetë dërguar objekti i këkuar.Rreshti i header-it User-agent: specifikon mjetin përdorues(agjentin

 përdorues),që është ,tip i browser-it i cili bën kërkesën në server.Këtu mjeti përdorues është

Mozilla/4.0,browser i Netscape-it.Ky rresht i header-it është i dobishëm,pasi që serveri mund të

dërgojë versione të ndryshme të të njejtit objekt në tipe të ndryshme të mjeteve

 përdoruese.(Secili prej versioneve është i adresuar nga e njejta URL.)Rreshti i header-it Accept-

language: tregon që përdoruesi preferon të marr versionin Francez të objektit,nëse një objekt i

tillë ekziston në server;përndryshe,serveri e dërgon versionin e përgjithshëm(default).Headeri

Accept-language: është njëri prej header-ave me përmabjtje negociuese të përdorur në

HTTP.Tani le të shikojmë formatin gjeneral të një mesazhi kërkues të treguar në Figurën

2.8.Shohim që formati gjeneral i përafrohet shembullit të mëparshëm.Ju ndoshta keni

vërejtur,megjithatë, që pas rreshtave të header-it ka një “entitet të trupit”. Entiteti i trupit është i 

zbrazët me metodën GET,por përodret me metodën POST.Një HTTP klient shpesh përdor 

metodën POST kur përdoruesi zgjeron një formë- për shembull,kur përdoruesi kërkon fjalët në

një makinë kërkuese.Me një mesazh POST,përdoruesi ende kërkon një Web page prej

serverit,por përmabajtja specifike e Web page varet nga çka përodoruesi shkruan në fushat e

formës.

Page 21: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 21/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 21

Figura 2.8 Formati gjeneral i një HTTP mesazhi kërkues

 Nëse vlera e fushës së metodës është POST,atëherë entiteti i trupit përmban çka përdoruesi

vendos në fushat e formës.Do të ishim të pakujdesshëm nëse nuk përmendim që kërkesa e

gjeneruar me një form nuk është e nevojshme të përdor metodën POST.Në vend të kësaj,HTML

format shpesh përdorin metodën GET dhe përfshijnë të dhënat hyrëse(në fushat e formës)në

URL-në e kërkuar.Për shembull,nëse në një formë përdorë metoën GET,ka dy fusha,dhe fyrjet

në të dy fushat janë monkeys &bananas,atëherë URL do ta ketë strukturëns sikur që është

 paraqitur më poshtë: www.somesite.com/animalsearch?monkeys&bananas.

 Në shërbimet e sotme të Web-it, është e mundur të keni vërejtur URL-të të këtij lloji.

Metoda HEAD është e ngjajshme me metodën GET.Kur serveri pranon një kërkese me

HEAD,përgjigjet me një FTTP mesazh dhe e menjanon objektin e kërkuar.Zhvilluesit e

aplikacioneve shpesh përdorin metodën HEAD për rregullime të gabimeve.Metoda PUT shpesh

është e përdorur në lidhje me veglat publike të Web-it.Ai i lejon përdoruesit të ngarkoj(upload)

një objekt te një shteg specifik në një server të një Web-i specifik.Metoda PUT është përdorur 

nga aplikacionet që nevoiten të ngarkojnë objektet në Web servera.Metoda DELETE i lejon

 përdoruesit,ose një aplikacioni,të fshijë një objekt në Web server.

HTTP mesazhet përgjigjëse

Më poshtë kemi paraqitur një HTTP mesazh tipik përgjigjës.Ky mesazh përgjigjës mund të ishte

 përgjigjja e shembullit të mesazhit kërkues të sapo diskutuar.

HTTP/1.1 200 OK 

Connection: close

Date: Set, 07 Jul 2007 12:00:15 GMT

Server: Apache/1.3.0 (Unix)

Last-Modified: Sun,6 May 2007 09:23:24 GMT

Content-Length: 6821

Content-Type: text/html

Page 22: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 22/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 22

(data data data data data ...)

Le ta shikojmë me kujdes këtë nesazh përgjigjës.Ka tri pjesë:një rresht fillestar të

pozitës,gjashtë rreshta të header-it dhe pastaj entiteti i trupit.Entiteti i trupit është mesi i

mesazhit  –  përmban në vete objektin e kërkuar( i paraqitur me data data data data data

...).Rreshti i pozitës ka tri fusha: fushën e versionit të protokollit,kodin e pozitës dhe pozitën

korresponduese të mesazhit.Në këtë shembull,rreshti i pozitës tregon që serveri përdor HTTP/1.1 dhe që qdo gjë është në rregull OK(kjo do të thotë,serveri e ka gjetur dhe e ka

dërguar objektin e kërkuar).

Tani le ti shqyrtojmë rreshtat e header-it.Serveri përdor rreshtin e header-it Connection: close

 për t’i treguar treguar klientit që është duke e mbyllur TCP lidhjen pas dërgimit të

mesazhit.Rreshti i header-it Date: tregon kohën dhe datën kur HTTP përgjigjja është krijuar dhe

dërguar nga serveri.Vëreni që kjo nuk është koha kur objekti është krijuar dhe së fundi është

modifikuar; është koha kur serveri rigjen objektin prej file-it të sistemit të tij,vendos objektin

 brenda mesazhit përgjigjës dhe e dërgon mesazhin përgjigjës.Rreshti i header-it Server: tregon

që mesazhi ishte gjeneruar nga Apache Web server; është e ngjajshme me User-agent:rresht i

header-it në HTTP mesazhin kërkues.Rreshti i header-it Last-Modufied:tregon kohën dhe datën

kur objekti ishte krijuar ose së fundi modifikuar.Header-i Last-Modified:të cilin do ta

shqyrtojmë më detajisht, është kritik për keshimin e objektit,për të dy ,klientin lokal dhe rrjetën

e kesh serverave(të njohur si proxy server).Rreshti I header-it Content-Length:tregon numrin e

 byte-ve në objektin që është dërguar.Rreshti i header-it Content-Type:tregon që objekti në

entitetin e trupit është HTML tekst.(Tipi i objektit zakonisht është treguar nga header-i Content-

Type dhe jo nga ekstensioni i file-it.)Tani le të saktësojmë formatin gjeneral të një mesazhi

 përgjigjës,i cili është treguar në Figurën 2.9.Ky format gjeneral i përshtatet shembullit të

mëparshëm të mesazhit përgjigjës.Le të themi disa fjalë rreth kodit të pozitës dhe shprehjet e

tij.Kodi i statusit dhe shprehja plotësuese tregojnë përfundimin e kërkesës.Disa kode të

zakonshme të pozitës dhe shprehje përfshijnë:

  200 OK: Kërkesa dhe informacioni me sukses janë kthyer në përgjigje.

  301 Moved Permanently: Objekti i kërkuar ka qenë i bartur për një kohë të gjatë;URL e

re ështëe specifikuar në header-in Location të mesazhit përgjigjës.Klienti i software-it

automatikisht do ta pranojë UTL-në e re.

Page 23: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 23/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 23

Figura 2.9 Formati gjeneral i një HTTP mesazhi përgjigjës

  400 Bad Request: Ky ështv një gabim i gjeneruar i kodit duke treguar që kërkesa nuk ka

mundur të kuptohet nga serveri.

  404 Not Found: Dokumenti i kërkuar nuk ekziston në këtë server.

  505 HTTP Version Not Supported: Versioni i protokollit të kërkuar nuk është i

mbështetur nga serveri.Si do të kuptonit një HTTP mesazh përgjigjës?Ky është një rekomandim i lartë dhe i lehtë për ta

 bërë.Së pari Telnet në Web serverin tuaj të preferuar.Pastaj tipi i një rreshti të mesazhit kërkues

 për disa objekte që vendosen në server.Për shembull,nëse jeni qasur në command prompt ,tipi:

telnet cis.poly.edu 80

GET/~ross/HTTP/1.1

Host: cis.poly.edu

Kjo paraqet një TCP lidhje në portin 80 të host-it cis.poly.edu dhe pastaj dërgon HTTPmesazhin kërkues.Ju do ta shihni një mesazh

 përgjigjës që përfshin HTTP file-in bazë të homepage-it të profesor Ross.Nëse ju vetëm i shihni

rreshtat e HTTP mesazhit dhe nuk pranoni objektin,zëvendësoni GET me HEAD.Në

fund,zëvendësoni /~ross/ with /~banana/ dhe shikoni çfarë lloji të mesazhit përgjigjës merrni.

 Në këtë pjesë ne diskutuam një numër të rreshtave të header-it që mund të përdoren në HTTP

mesazhet kërkuese dhe përgjigjëse.HTTP specifikacioni definon shumë më shumë rreshta që

mund të vendosen nga browser-ët,Web serverat dhe serverat e rrjetës cache.Ne kemi shqyrtur 

vetëm një numër të vogel të rreshtave të header-it.Do ti shqyrtojmë disa më poshtë dhe një

numër tjetër i tyre do të shqyrtohen në Paragrafin 2.2.5.Diskutimi më gjithpërfshirës dhe më i

lartë,duke përfshirë header-at dhe kodet e pozitës, është dhënë në [Krishnamurty 2001];gjithashtu edhe [Loutonen 1998].

Si vendos browser-i cilët rreshta të header-it të përfshihen në njëmesazh përgjigjës?

Si vendos Web browser-i cilët rreshta të header-it të përfshihen në një mesazh përgjigjës?

Browser-i do të gjenerojë rreshtat e header-it si një funksion i një tipi dhe versioni të browser-it

(për shembull,një HTTP/1.0 browser do të gjenerojë ndonjë rresht të 1.1 header-it),konfigurimi I

 përdoruesit të browser-it(për shembull,gjuha e preferuar),dhe nëse browser-i aktualisht ka një

cache-im,por mundet të jetë i vjetruar,versioni i objketit.

Web serverat veprojnë ngjajshëm: Ka prodhime,versione dhe konfigurime të ndryshme,secila

 prej tyre ka ndikim cilët rreshta të header-it janë përfshirë në mesazhin përgjigjës.

2.2.4 Interaksioni Përdorues-Server : Cookie-it

Page 24: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 24/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 24

Kemi përmendur më lart se HTTP serveri është pa strukturë.Kjo e thjeshtëson dizajnin e serverit

dhe ka lejuar inxhinierët të zhvillojnë Web server të performansave të larta të cilët mund të

 bartin mijëra TCP lidhje në të njejtën kohë.Megjithatë, është e dëshirueshme për një Web site të

identifikojë përdoruesit,pasi që serveri dëshiron të kufizojë çasjen e përdoruesit ose të paraqesë

 përmbajtjen si një funksion të identitetit të përdoruesit.Për këto qëllime,HTTP-ja përdor cookie-

it.Cookie-it janë definuar në RFC 2965,i lejojnë site-ve të ruajnë gjurmët e përdoruesve.Shumicae Web site-ve komercial sot përdorin cookie-it.Siq është treguar në Figurën 2.10,teknologjia e

cookie-ve ka 4 komponente: (1) rreshti i një header-i të cookie-it në HTTP mesazhin përgjigjës;

(2) rreshti i një header-i të cookie-it në HTTP mesazhin kërkues; (3) një cookie file i ruajtur në

end system-in e përdoruesit dhe i udhëhequr nga një browser i përdoruesit; (4) një databazë e

fundme në Web site.Duke përdorur Figurën 2.10,le të shqyrtojmë një shembull se si punojnë

cookie-it.Supozoni Suzan,e cila gjithmonë çaset në Web duke përdorur Internet Explorer prej

PC së saj,lidhet në Amazon.com për të parën herë.Le të supozojmë që ajo në të kaluarën ka

vizituar eBay site.Kur kërkesa arrin në Web serverin e Amazon-it,serveri krijon një numër unik 

identifikues dhe krijon një hyrje në databazen e tij të fundme që është e indeksuar sipas numrit

identifikues.Web serveri i Amazon-it pastaj i përgjigjet browser-it të Suzan-ës,duke përfshirë në

HTTP përgjigjën header-it Set-cookie: i cili përmban numrin identifikues.Për shembull,rreshti i

header-it mund të jetë:

Set-cookie: 1678

Kur browser-i i Suzanës pranon HTTP mesazhin përgjigjës,e vëren header-in Set-

cookie.Browseri pastaj i bashkangjit një rresht të veçantë file-it të cookie-it që e udhëheq.Ky

rresht përfshin hostname-in e serverit dhe numrin identifikues në header-in Set-cookie.Vërehet

që file i cookie-it tanimë ka një hyrje në eBay,që kur Suzan e kishte vizituar atë site në të

kaluarën.

Page 25: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 25/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 25

Figura 2.10 Ruajtja e gjendjes së përdoruesit me cookie-it

Aq sa Suzan vazhdon të shfletojë Amazon site,çdo herë kur ajo kërkon një Web page,browser-i isaj e konsulton file-in e saj,ekstrakton numrin e saj identifikues për këtë site dhe e vendos një

rresht të header-it të cookie-it që përfshin numrin identifikues në HTTP kërkesën.Më

saktësisht,secila prej HTTP kërkesave të saj në serverin e Amazon-it përfshin rreshtin e header-

it:

Cookie: 1678

 Në këtë mënyrë serveri i Amazon-it është në gjendje të gjurmojë aktivitetin e Suzan-vs në

Amazon site.Megjithëse Web site-i Amazon nuk e di domosdo emrin e Suzan-ës,ai e di

saktësisht cilat faqe që përdorin 1678 janë vizituar,në cilën radhë dhe në çfarë kohe! Amazon përdor cookie-it për të pajisur shërbimin e tij të kartelës së blerjes  –  Amazon mund të ruajë

listën e të gjitha blerjeve të caktuara të Suzanës,ashtu që ajo të mund të paguaj për to

kolektivisht në fund të një sesioni.

 Nëse Suzana viziton site-in e Amazon-it,të të themi,një javë më vonëbrowser-i i saj do të

vazhdojë të vendos rreshtin e header-it Cookie: 1678 në mesazhin kërkues.Amazon gjithashtu i

rekomandon Suzanës produktet duke u bazuar në Web faqet që ajo i ka vizituar në të

kaluarën.Nëse Suzan gjithashtu regjistrohet në Amazon-duke dhënë emrin

Page 26: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 26/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 26

e plotë,e-mail,adresën,adresën postale dhe informacionin e kredit kartelës- atëherë Amazoni

mund ta përfshijë këtë informatë në databazën e tij,në lidhje me emrin e Suzan-ës dhe me

numrin identifikues të saj(dhe të gjitha faqet që ajo ka vizituar në të kaluarën!).Kjo është se si

Amazon-i dhe site-at tjerë e-commerce paraqesin “one-click shoping”-kur Suzan zgjedh të blejë

ndonjë artikull gjatë vizitës pasuese,ajo nuk ka nevojë të rishkruaj emrin e sa,numrin e kreditkartelës ose adresën.

Prej këti diskutimi shohim që cookie-it mund të përdoren për të identifikuar përdoruesin.

Për të parën herë që përdoruesi viziton një site,përdoruesi mund të ketë një identifikues(mund të

 jetë emri i tij).Gjatë sesioneve të ardhshme,browser-i e vendos header-in e cookie-it në

server,duke e identifikuar përdoruesin në server. Kështu cookie-it mund të përdoren për të

krijuar një shtresë të sesionit të përdoruesit sipër HTTP-së.Për shembull,kur përdoruesi kyçet në

një Web aplikacion të bazuar në(siq është Hotmail),dërgon informacionin e cookie-it në

server,duke i lejuar serverit të identifikojë përdoruesin përgjatë sesionit të përdoruesit me

aplikacionin.

Megjithëse cookie-it shpesh i thjeshtësojnë eksperiencën e Internet blerjes për përdoruesin,ato

 janë të diskutueshme pasi që mund të konsiderohen si ndërhyrje e privatësisë.Siq pamë,duke

 përdorur një kombinim të cookie-ive dhe informacionit mbi llogarinë(account) e

 përdoruesit,Web site mund të marr informacione të shumta rreth përdoruesit dhe e reklamon

këtë informacion.Cookie Central [Cookie Central 2008] përfshin informacion gjithpërfshirës në

diskutimin e cookie-it.

2.2.5 Web Caching

 Një Web cache – gjithashtu e njohur si server proksi – ështe një njësi rrjeti që plotëson kërkesat

e HTTP si përfaqsues e nje Web serveri origjinues. Web cache ka hapësirën e vet të ruajtjes dhe

mban kopje të objekteve më të vonshme të kërkuara në këtë hapësirë ruajtjeje. Siç shihet në

figurën 2.11, shfletuesi (browser) i përdoruesit mund të konfigurohet në mënyrë që të gjitha

kërkesat HTTP të përdoruesit së pari ti drejtohen Web cache-it. Për shembull, supozojmë se

shfletuesi kërkon objektin http://www.someschool.edu/campus.gif. Ja çfarë ndodh:

1.  Shfletuesi i vendos Web cache-it një lidhje TCP dhe i dërgon Web cache-it një kërkesë

HTTP për objektin.

Page 27: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 27/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 27

Figura 2.11 Klienti kërkon objektet përmes Web cache

2. Web cache-i kontrollon nëse ka ndonjë kopje të objektit të ruajtur lokalisht. Nëse e ka,

Web cache-i i kthen shfletuesit te klientit objektin brenda një mesazhi përgjegjës HTTP.3. Nëse Web cache-i nuk e ka objektin, Web cache-i e hap një lidhje TCP me serverin

origjinues, që ështe, ëëë.someschool.edu. Më pas Web cache-i dërgon një kërkesë HTTP për 

objektin kundrejt lidhjes TCP cache-to-server. Pas marrjes së kërkesës, serveri origjinues i

dërgon Web cache-it objektin brenda një përgjigjeje HTTP.

4. Kur Web cache-i e merr objektin, e ruan një kopje në hapësirën e vet lokale të ruajtjes

dhe ia dërgon një kopje, brenda një mesazhi përgjegjës HTTP, klientit shfletues (në lidhjen

ekzistuese TCP ndërmjet klientit shfletues dhe Web cache-it).

Duhet pasur parasysh që Web cache-i është server dhe klient në të njejtën kohë. Kur merr 

kërkesë nga shfletuesi dhe kur i dërgon përgjigje shfetuesit, është server. Kur i dërgon kërkesë

serverit origjinues dhe kur merr përgjigje nga serveri origjinues, ështe klient.Në mënyrë tipike

Web cache-i merret dhe instalohet nga një ISP. Për shembull, një universitet mund të instalojë

një cache në rrjetin e vet të kompjuterave të kampusit dhe ti konfigurojë të gjithë shfletuesit që ti

drejtohen një cache-i. Ose një ISP kryesor rezidencial (siç është AOL) mund ti instalojë një apo

më shumë cache-a rrjetit të vet, dhe ti parakonfigurojë shfletuesit e vet të dërguar që ti drejtohen

cache-ve të instaluar.Web caching është pozicionuar mirë në Internet për dy arsye. E para, një

Web cache mund ta zvogëlojë substancialisht kohën e përgjigjes ndaj një kërkese klienti,

veçanërisht nëse ngadalësimi i bandwidthit mes klientit dhe serverit origjinues është shumë më i

vogël se ngadalësimi i bandwidthit mes klientit dhe cache-it, siç është shpesh, dhe nëse cache-i e

ka objektin e kërkuar, atëherë cache-i do të mund t’ia dorëzojë shumë shpejtë objektin klientit. E

dyta, siç do ta ilustrojmë me një shembull, Web cache-at mund ta ulin substancialisht trafikun në

kyqjen e një institucioni në Internet.

Page 28: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 28/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 28

Figura 2.12 Bottleneck në mes rrejte institucionale dhe Interneti

Me uljen e trafikut, institucioni (për shembull, një kompani apo universitet) nuk do ta ketë të

nevojshme ta modernizojë bandwidthin aq shpejtë, kështuqë ulen harxhimet. Për më shumë,

Web cache-at mund ta ulin substancialisht trafikun e Rrjetit në Internet si të tërë, duke

 përmirësuar performancën për të gjitha aplikacionet.Për të përfituar njohuri edhe më të thella

mbi përfitimet nga cache-t, ta marrim në konsideratë një shembull në kontekstin e Figurës 2.12.

Kjo figurë tregon dy rrjeta kompjuterësh - rrjetin institucional dhe pjesën tjetër të Internetit publik. Rrjeti institucional është një LAN me shpejtësi të lartë. Një router në rrjetin institucional

dhe një router në Internet janë të lidhur me një lidhje 15 Mbps. Serverat origjinues janë të kyqur 

në Internet por janë të lokalizuar në gjithë globin. Supozojmë që mesatarja e madhësisë së

objektit është 1 Mbits dhe që mesatarja e raportit të kërkesës nga shfletuesit e institucioneve

ndaj serverave origjinues është 15 kërkesa për sekond. Supozojmë që mesazhet kërkues HTTP

 janë shumë të vegjël për tu marrë parasyshë dhe nuk krijojnë trafik në rrjete apo në lidhje hyrëse

(nga routeri institucional tek routeri Internetit). Gjithashtu supozojmë që sasia e kohës që merret

 prej kur routeri në anën e Internetit të lidhjes hyrëse në Figurën 2.12 shtyen para një kërkesë

HTTP (brenda datagramit të IP) deri kur ai merr përgjigje (tipikisht brenda shumë datagramësh

të IP) është mesatarisht dy sekonda. Jo formalisht, në i referohemi kësaj vonesës së fundit si“vonesë Interneti.” 

Koha e përgjithshme e përgjigjes  – që është, koha prej parashtrimit të kërkesës nga shfletuesi

 për një objekt deri kur ai pranon objektin – është shuma e vonesës së LAN-it, vonesës së hyrjes

(që është, vonesa në mes dy routerave), dhe vonesës së Internetit. Tani ta bëjmë një kalkulim të

 papërpunuar për ta llogaritur këtë vonesë. Intensiteti i trafikut në LAN (shif Seksionin 1.4.2)

është

Page 29: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 29/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 29

(15 kërkesa/sekond)*(1 Mbits/kërkesë)/(100 Mbps)=0.15

ndërsa intensiteti i trafikut në lidhjen hyrëse (nga routeri Internetit deri te routeri institucionit)

është

(15 kërkesa/sekond)*(1 Mbits/kërkesë)/(15 Mbps)=1

 Një intensitet trafiku prej 0.15 në LAN zakonisht rezulton në, më së shumti, dhjetra milisekondavonesë; kështu që, mund ta neglizhojmë vonesën e LAN-it. Megjithatë, siç është diskutuar në

Seksionin 1.4.2, përderisa intensiteti i trafikut i afrohet 1-shit (si në rastin e lidhjes hyrëse në

figurën 2.12), vonesa në lidhje bëhet shumë e madhe dhe rritet pa kufi. Pra, mesatarja e kohës së

 përgjigjes që kënaq kërkesat do të jetë në përmasa minutash, nëse jo më shumë, gjë që është e

 papranueshme për përdoruesin e institucionit. Duket qartë që diçka duhet të ndërmirret.

 Një zgjidhje e mundshme është që të rritet niveli i kyqjes nga 15 Mbps në, për shembull, 100

Mbps. Kjo do ta ulte intensitetin e trafikut në lidhjen hyrëse në 0.15, që rezulton në vonesa të

neglizhueshme në mes dy routerave. Në këtë rast, koha e përgjithshme e përgjigjes do të jetë

 përafërsisht dy sekonda, që ëshë, vonesa e Internetit.Por kjo zgjedhje gjithashtu do të thotë që

institucioni duhet ta rrisë lidhjen hyrëse nga 15 Mbps në 100 Mbps, që është një propozim ikushtueshëm.

Tani marrim parasysh zgjedhjen alternative të mos rritjes së lidhjes hyrëse por në vend të saj

instalimin e një Web cache-i në rrjetin e institucionit. Kjo zgjedhje është e ilustruar në Figurën

2.13. Shkalla e goditjes  –  fraksioni i kërkesave që janë të plotësuara nga cache-i  –  tipikisht

shtrihet nga 0.2 deri në 0.7 në praktikë. Për qëllime ilustrative, të supozojmë që cache-i furnizon

një shkallë goditjeje prej 0.4 për këtë institucion. Meqë klientet dhe cache-i janë të kyqur në të

njejtin LAN me shpejtësi të lartë, 40 përqind të kërkesave do të plotësohen gati menjëherë, të

themi, brenda 10 milisekondash, nga cache-i. Prapëseprapë, 60 përqind e kërkesave të mbetura

duhet të plotësohen nga serverat origjinues. Por me vetëm 60 përqind të objekteve të kërkuar që

kalojnë nëpër lidhjen hyrëse, intensiteti i trafikut në lidhjen hyrëse zvogëlohet nga 1.0 në 0.6.

Tipikisht, një intensitet trafiku më i vogël se 0.8 i përkon një vonese të vogël, të themi, dhjetra

milisekonda, në një lidhje 15 Mbps. Kjo vonesë është e neglizhueshme në krahasim me vonesën

dy-sekondëshe te vonesës së Internetit. Duke marrur këto në parasysh, mesatarja e vonesës është

0.4*(0.01 sekonda) + 0.6 * (2.01 sekonda)

që është shumë pak më e vogël se 1.2 sekonda.

Page 30: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 30/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 30

Figura.2.13 Vendosja e cache-it në rrjetën institucionale

Kështuqë, zgjidhja e dytë paraqet një kohë përgjigjeje edhe më të vogël se zgjidhja e parë, dhe

nuk ia imponon institucionit ta rrisë lidhjen në Internet. Kjo zgjidhje duhet, normalisht, të blej

dhe të instalojë një Web cache. Por kjo kosto është e ulët  – shumë cache përdorin softvere me

domaine publike që funksionojnë në kompjutera të lirë.

2.2.6 The Conditional GET (Kushti MERR)

Megjithëse caching mund të zvogloj user-perceived (shfletuesin e përceptuar ) në përgjigjje në

kohë,kjo paraqet një problem të ri-kopje e një objekti që jeton në cache të ndenjur.Me fjalë të

tjera,objekt të vendosur në Web server mund të ket qenë ndrryshuar që nga kopja që është kopje

e ruajtur në të klientit.Për fat të mirë,HTTP ka një mekanizëm që lejon cache për të verifikuar 

objektet e saj që janë deri më tani.Ky mekanizëm është quajtur kushti GET.Një mesazh kërkesë

HTTP është një mesazh i ashtu-quajtur kushti MERR në qoftë se (1) mesazh kërkesa përdor 

metoda GET dhe (2) mesazh kërkesa përmban një rast të ndrryshuar që nga :header line (linja në

krye).Për ta ilustruar se si kushti GET vepron,le të marrim një shembull.Së pari në emër të një

 browser (shfletues kërkues),një proxy(përfaqësues)dërgon një mesazh kërkes në një server në

Web:

GET /fruit/kiwi.gif HTTP/1.1

Host: www.exotiquecuisine.com 

Së dyti,Web server dërgon një mesazh përgjigje me objekt të kërkuar në cache: 

Page 31: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 31/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 31

HTTP/1.1 200 OK 

Date: Sat, 7 Jul 2007 15:39:29

Server: Apache/1.3.0 (Unix)

Last-Modified: Wed, 4 Jul 2007 09:23:24

Content-Type: image/gif 

(data data data data data ...)

Cache e përciell objektin te shfletues kërkuesi por gjithashtu edhe në arkën e objektit në

nivelin lokal.E rëndësishmja ,cache në datën e fundit të ndryshuar vjen së bashku me objekt në

dyqane.E treta,një javë më vonë,një tjetër browser kërkon të njëjtin objekt me anë të cache,dhe

objekti është ende në cache.Që nga atëhetë ky objekt mund të ket qenë ndryshuar në Web server 

në javën e fundit, cache kryen nje up-to-date kontrollë duke lëshuar një kusht GET. Në mënyrë

të veçantë, cache dërgon:

GET /fruit/kiwi.gif HTTP/1.1

Host: www.exotiquecuisine.com

If-modified-since: Wed, 4 Jul 2007 09:23:24

Vini re se vlera nëse ka ndryshuar që nga:header line është saktësisht e barabartë me vlerën e

fundit të ndryshuar:header line që është dërguar nga serveri një javë më pare.Ky kusht GET

është thënë në server për të dërguar objektin vetëm nëse objekti është ndryshuar që nga data e

cekur . Supozoni se objekti nuk ka qenë ndryshuar që nga 4 korrik, 2007 09:23:24.Atëherë, i

katërti, Web serveri dërgon një përgjigje mesazh cache:

HTTP/1.1 304 Not Modified

Date: Sat, 14 Jul 2007 15:39:29

Server: Apache/1.3.0 (Unix)

(empty entity body)

 Ne shohim që në përgjigje të kushtit GET ,Web serveri dërgon edhe një mesazh përgjigje,por 

nuk përfshin ne kërkim objektin në mesazh përgjigje.Duke përfshir objektin e kërkuar vetem

gjërsin e humbur dhe e rrite përgjigjen në kohë të user-perceived,  veçanërisht nëse objekti

është i madh.  Vini re se kjo përgjigje e fundit e mesazhit ka 304 jo ndryshime ne statusin e

linës, e cila i tregon cache-it se ajo mund të shkojë përpara dhe para saj kopje (cache proxy-së) e

objektit të browser-it.Kjo përfundon diskutimin ton të HTTP,protokolli i parë Internet(një

kërkes-protokoll shtesë)  që ne i kemi studiuar në detaje.  Ne kemi parë format të mesazheve

HTTP dhe veprimet e marra nga klienti Web dhe server si këto mesazhe janë dërguar dhe

 pranuar.  Ne kemi studiuar edhe pak nga infrastruktura Web-it aplikimit, duke përfshirë edhe

sasi, cookies, dhe prap në fund bazat e të dhënave,  të gjitha të cilat janë të lidhura në një farë

mënyre për protokollin HTTP.

Page 32: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 32/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 32

2.3 File Transfer: FTP

 Në një seancë tipike FTP, shfrytëzuesi është i ulur para nje host (host lokale) dhe dëshiron të

transferoj file për të ose nga një host në distancë.  Me qëllim për përdoruesin për të hyrë në

llogari të largët, përdoruesi duhet të sigurojë një identifikim të përdoruesit dhe njëfjalëkalim(user identification and a password).Pas sigurimit të autorizimit të

informacionit,perdoruesi mund te transferoj file nga file të sistemit vendor në sistemin e file-ve

në distancë dhe anasjelltas.Siç shihet në figura 2.14,  përdoruesi ndërvepron me FTP përmes një

agjent përdorues FTP. Përdoruesit të parë i ofron hostname-in e host-it ne distanc,duke bërë që

 procesi FTP klient në host lokal për të vendosur një TCP lidhje me procesin e serverit FTP ne

host ne distanc.Përdoruesi më pas ofron identifikimin e përdoruesit dhe fjalëkalimin,të cilat janë

dërguar në lidhje me lidhje TCP si pjesë e komandave FTP. Pasi serveri ka autorizuar 

 përdoruesin, kopjet e perdoruesit një ose më shumë file të ruhet në sistemin file lokal në sistem

file në distanc (ose anasjelltas). HTTP dhe FTP janë dy protokoll file transfer dhe kanë shumë

karakteristika të përbashkëta;për shembull, ata të dy të kandidojë në krye të TCP. Megjithatë, të

dy-aplikojnë shtresa protokolle që kanë dallime të rëndësishme. 

Figura 2.14 FTP lëviz file-të në mes të sistemeve file lokal dhe në distancë

Figura 2.15 Kontrolli dhe lidhjet e të dhënave

Dallimi më i spikatur është që FTP përdor dy lidhje paralele TCP për të transferuar një file, një

lidhje e kontrollit dhe një lidhje të dhënave. Lidhja e kontrollit është përdorur për të dërguar 

informacion të kontrollit midis dy host-informacionit të tillë si identifikimi user, password,

urdhëron për ndryshim directory në distancë, dhe urdhëron për "të vënë" dhe të "marrë" files.  

Lidhja e të dhënave është përdorur në fakt dërgoni një file.   Sepse FTP përdor një lidhje të

Page 33: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 33/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 33

veçantë të kontrollit,FTP është e thënë që të dërgojë informacionin e saj të kontrollit nga-e-band. 

 Në kapitullin 7 ne do të shohim se protokolli RTSP,e cila është përdorur për kontrollin

transferimin e mediave të vazhdueshme të tilla si audio dhe video, gjithashtu dërgon

informacion të saj të kontrollit nga-e-band.HTTP, siç ju kujtohet, dërgon kërkesën dhe linjat

header përgjigje në të njëjtën lidhje TCP që mbart transfer file në vetvete. Për këtë arsye, HTTP

është e thënë që të dërgojë informacionin e saj të kontrollit në grup.Në seksionin e ardhshëm ne

do të shohim se SMTP, protokoll kryesore për postën elektronike, gjithashtu dërgon informacionnë kontroll-band. lidhjet e kontrollit FTP dhe të dhënat janë ilustruar në figurën 2.15.

Kur një user fillon një seancë FTP me një mori distancë, në anën e klientit e FTP(user) fillon të

 parë një lidhje TCP kontroll me anën e serverit (host në distancë) në port server numër 21. Ana e

klientit të FTP dërgon identifikimi e përdoruesit dhe fjalëkalimi mbi këtë lidhje të kontrollit.

Ana e klientit e FTP gjithashtu dërgon, mbi lidhje të kontrollit, komanda për të ndryshuar dosjen

në distancë. Kur ana e serverit merr një urdhër për një transferim file mbi lidhjen e kontrollit

(ose për të, ose nga, host në distancë), ana server fillon një lidhje të dhënave TCP në anën e

klientit. FTP dërgon një file pikërisht mbi lidhjen e të dhënave dhe pastaj mbyllet lidhjen e të

dhënave. Nëse, gjatë seancës së njëjtë, user dëshiron të transferojë një tjetër file, FTP hap një

tjetër lidhje të dhënave.  Kështu, me FTP, lidhja e kontrollit të mbetet e hapur gjatë gjithëkohëzgjatjes së seancës së user, por një lidhje e re të dhënave është krijuar për çdo file

transferohet brenda një seancë (që është, lidhjet e të dhënave janë jo-të vazhdueshme).

Gjatë një seancë, serveri FTP duhet të mbajë shtetin ne lidhje me user. Në

veçanti, serveri duhet të shoqëroj lidhje të kontrollit me një llogari user të veçantë,

dhe serveri duhet të vazhdojë rrugën e dosjes aktuale të përdoruesit si endet user 

në lidhje me pemët në distancë dosjen. Mbajtja të këtij informacioni të shtetit për çdo

seancë të vazhdueshme të konsiderueshme user kufizon numrin e përgjithshëm të seancave që

FTP mund të mbajë në të njëjtën kohë. Kujtojnë se HTTP, në anën tjetër, është pa shtetësi-it nuk 

duhet të mbajnë gjurmët e ndonjë user-i të shtetit.

2.3.1 FTP Komandat dhe Përgjigjet

 Ne fund këtë seksion me një diskutim të shkurtër të disa nga komandat FTP më të zakonshme

dhe përgjigjet.Komanda, nga klienti në serveri, dhe pergjigjet, nga serveri të klientit,janë

dërguar në të gjithë lidhje e kontrollit në formatin 7-bit ASCII.Kështu, si komanda HTTP,FTP

komanda janë të lexueshëm nga njerëzit.

 Në mënyrë që të përcaktojë komanda të njëpasnjëshme e një kthim transporti dhe të ushqyerit e

linjës në fund të çdo komande. Çdo komandë përbëhet nga katër karaktere ASCII kapitale, disa

me argumente fakultative. Disa të komanda më të zakonshme janë dhënë më poshtë:

• USER username: Përdoret për të dërguar identifikimin e përdoruesit në server.  

• PASS password: Përdoret për të dërguar fjalkalimin e përdoruesit në server.

• LIST: Përdoret për të pyetur serverin për të dërguar të të gjithë file-ve në dosjen aktuale në

distancë.Listën e disjeve të dërguara më shumë se një (të ri dhe jo të vazhdueshëm) lidhjen e të

dhënave më tepër se sa TCP lidhjen e kontrrollit.

Page 34: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 34/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 34

• RETR filename: Përdoret për të marrë (që është,marrë)një file nga lis ta aktuale e host-it në

distancë.Kjo komand shkakton host në distancë për të nisur një lidhje të dhënave dhe për të

dërguar file-in e kërkuar pë lidhjen e të dhënave.

• STOR filename: Përdoret për të ruajtur (që është,vendosë) një file në dosjen aktuale të host-it

në distancë.

Ekziston zakonisht nje një-për-një korrespondencë mes komandës që çështjet e user dhe tëkomande FTP ta dërgoi në të gjithë lidhjen e kontrollit. Çdo komande është pasuar nga një

 përgjigje, ta dërgoi nga serveri te klienti. përgjigjet janë numra me tre shifra, me një mesazh të

mundshëm pas numrit. Kjo është e ngjashme në strukturë me kodin e statusit dhe shprehjen në

linjë statusin e mesazhit përgjigje HTTP. Disa përgjigjet tipike, së bashku me mesazhet e tyre të

mundshme, janë si vijon:

• 331 Username OK, password required(Emri i përdoruesit OK, fjalekalimin kërkohet)

• 125 Data connection already open; transfer starting(Lidhjen Data tashmë të hapur, duke filluar 

transferimi)

• 425 Can't open data connection(Nuk mund të hapen te dhënat në lidhje)

• 452 Error writing file(Gabim gjatë shkrimit të file)

Lexuesit që janë të interesuar për të mësuar në lidhje me komanda tjera FTP dhe përgjigjet janë

të inkurajuar për të lexuar RFC 959.

2.4 Posta elektronike në interent

Posta elektronike ka fillu të përdoret që nga fillimi i internetit. Ishte aplikacioni më i përhapur 

kur interneti ishte në fillimet e tij [Segaller 1998], dhe vazhdonte të bëhej gjithnjë e më i

 përpunuar dhe më i fuqishëm. Mbetet një nga aplikacionet më të rëndësishme dhe më të

 përdorura të internetit.Ashtu si me postë të zakonshme postare, e-mail është një medium i

komunikimit asinkron - ku njerëzit dërgojn dhe lexojn mesazhet kur janë të përshtatshme për ta,

 pa pasur nevojë ti koordinojnë me modelet e njerëzve të tjerë. Ndryshe nga adresat postare,

 posta elektronike është e shpejtë, e lehtë për tu shpërndarë dhe e lirë. E-mail-at kohor kanë

shumë veҫori të fuqishme. Duke përdorur listat e kontakteve , e-mail dhe spam mund të

dërgohenë te mijëra marrës përnjëherë. E-mail-at kohor shpesh përfshijnë të bashkëngjitur 

hyperlinqe, tekste HTML të formatuar, dhe fotografi.

 Në këtë seksion ne do të shqyrtojmë aplikacionet-protokollet që janë pjesët kryesore të e-mail-

ev. Para se të hyme në diskutim të thellë për këto protokolle le të marrim një pikëpamje të

nivelit të lartë, të përgjithësuar, për sistemin e adresave në internet që është një komponentë

kryesore. Figura 2.16 paraqet një pamje të nivelit të lartë të sistemit të adresave. Nga ky diagram

ne shohim se ai ka tre komponente kryesore:agjent përdoruesin(user agents), mail serverin (mail

servers) dhe çelësin:

Page 35: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 35/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 35

çelësin:

Figura 2.16 një pamje e nivelit të lartë e sistemit të e-mail të internetit

Simple Mail Transfer Protocol (SMTP). Ne tani do të përshkruajmë secilën nga këto

komponentë në kontekstin e një dërguesi, Alice, që dërgon një mesazh e-mail për pranuesin

Bob. Agjentët përdorues ju lejojnë përdoruesve të lexojnë, të përgjigjen për të, të ruajnë, dhe

të krijojnë mesazhe. (Agjentët përdorues për postë elektronike nganjëherë quhen lexues të

maileve (mail readers ), edhe pse ne në përgjithësi në këtë libër i jemi shmangur këti termi.) Kur Alice ka mbaruar kompozimin e mesazhit të saj, agjent përdoruesi i saj dërgoi mesazhe te mail

serveri i saj, ku mesazhi është vendos në mail serverin e mesazheve tw ruajtura. Kur Bob

dëshiron të lexojë një mesazh, agjent përdoruesi i i tij rinxjerr mesazhin nga kutia postare në

mail serverin e tij. Në fund të 1990-ës, “Graphical User Interface “(GUI) agjentët përdoruesë

 bëhenë të famshëm, duke i lejuar përdoruesit të shiqojnë dhe kompozojnë mesazhe

multimediale . Aktualisht, Microsoft Outlook, Apple Mail dhe Mozilla Thunderbird janë ndër 

agjentët përdorues GUI më të popullarizuarë për e-mail. 

Rast historik 

Web e-mail  Në dhjetor 1995, vetëm disa vjet pas Web-i është "shpikur", Sabeer Bhatia dhe Jack Smith

vizituanë një ndërmarrje kapitaliste interneti Draper Fisher Jurvetson dhe propozuanë 

 zhvillimin e një Ëeb sistemi të lirë për e-mail. ideja ishte për të dhënë e-mail adresë të lirë për 

të gjithë ata që dëshironin një, dhe për të bërë këto e-mail adresa të arritshme nga ëeb-i. Në 

ndryshim për 15 përqind të kompanisë, Draper Fisher Jurvetson financoi Bahtia dhe Smith, të 

cilët formuan një kompani të quajtur Hotmail. Me 3 njerëz

Page 36: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 36/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 36

që punonin me orar të plotë dhe 14 njerëz me orar të pjesshëm, të cilët punuanë për mundësitë 

e aksioneve. Ata ishin në gjendje të zhvillojnë dhe të nisin shërbimin në korrik 1996. Një muaj

 pas nisjes, ata kishin 100.000 abonentë. Në dhjetor 1997, më pak se 18 muaj pas fillimit të 

 shërbimit, hotmail kishte mbi 12 milionë abonentë, që ishin siguruar nga Microsoft, përfolet 

 për rreth 400 million $. Suksesi i hotmail-it i atribuohet shpesh "Avantazhi të parë- lëvizës" 

dhe të brendshëm "marketing viral" e-mail. (Ndoshta disa prej studentëve duke lexuar këtë libër do të jetë në mesin ndërrmarrësve të rinj të cilët krijojnë dhe zhvillojnëe shërbime të internetit 

me “ internet marketing viral”.) 

Web e-mail vazhdojn të lulëzojë, duke u bërë më i sofistikuar dhe më i fuqishëm për cdo vitë.

 Një prej shërbimeve më të popullarizuara sot është Gmail , e cila ofron gigabajt të ruajtjes të 

lirë dhe zbulimin e virusit, enkriptimin e e-mail të zgjedhur (duke përdorur SSL), mail tërheqës

nga pala e tretë e serverit të e-mail, dhe një kërkim – orientuar interface.

Mail serverët nga thelbi i infrastrukturës të e-mail. Çdo pranues, si është Bob, ka një kuti

postare që është e vendosurë në një nga mail serverët. Kutia postare(mailbox) e Bobit e

menaxhon dhe ruan mesazhet që janë dërguar për të. Mesazhi tipik fillon udhëtimin te agjent

 përdoruesi i dërguesit , udhëton për në mail server të dërguesit , dhe pastaj në mail server të

marrësit, ku është ruajtur në kutinë postara(mailbox). Kur Bobi dëshiron të përdor mesazhet në

kutinë e tij, mail serveri që përmban kutinë e tij identifikon Bobin (me username dhe passëord).

Mail server i Alice duhet të merret me dështimet në mail serverin e Bobit. Në ҫoftë se ser veri i

Alice nuk mund të dorëzojë mail tek serveri i Bobit, serveri Alice mban mesazhin në një radhë

të mesazheve( Drafts) dhe përpiҫet të dërgojë mesazhin më vonë. Reattempts shpesh kryhen

çdo 30 minuta apo më shumë: nëse nuk ka sukses pas disa ditësh, serveri heq mesazhin dhe

njofton dërguesin (Alice) me një e-mail.SMTP është një aplikacion parësor , protokoll për postë

elektronike. Përdorë shërbim të besueshëm për transferim të të dhënave TCP nga mail serveri

i dërguesit tek mail serveri i pranuesit. Si shumë aplikacione-layer  Protokolli SMTP ka dy anë:

ana e klientit, e cila ekzekuton mail serverin e dërguesit, dhe ana e serverit, që ekzekuton mail

serverin e marrësit. Edhe ana e klientit edhe e serverit të SMTP kandidojë në çdo mail server.

Kur një server dërgon mail në serverat e tjerë, ai vepron si një SMTP klient. Kur mail serveri

 pranon një mail nga serverat e tjerë, ai vepron si një SMTP.

2.4.1 SMTP

SMTP, definuar në RFC 5321, është pjesa kryesore e adresave elektronike. Siҫ e përmendëm më

lartë SMTP transferon mesazhet nga serveri i dërguesit tek mail serveri i pranuesit. SMTP është

shumë më i vjetër se HTTP (Përkatsishtë SMTP RFC daton në 1982) Edhe pse SMTP ka cilësi

të shumta, shumë të mira, siç dëshmohet nga gjithëpranimi i tij në internet, ai është megjithatë

një teknologji trashëgimi që posedon karakteristika të sigurta .Për shembull, kjo e e kufizon

 pjesën kryesore (jo vetëm headerin) e të gjitha mesazheve të thjeshtë ASCII 7-bit. Kjo pengesë 

la përshtypje në fillim të viteve 1980, kur kapaciteti i transmetimit u “trembë” dhe askush në

email nuk bashkangjite skedarë , imazhe të mëdha, audio, apo video file. Por tani në epokën e

multimedias , 7-bit ASCII përpara se të dërgohet përmes SMTP kërkon që mesazhi

korrespondues ASCII të deshifrohet ,kthehet në binar pas transportimit SMTP. Theksojmë nga

Page 37: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 37/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 37

neni 2.2 se HTTP nuk kërkon që të dhënat multimediale të kodohen në ASCII para

transferimit.Për të ilustruar funksionet bazë të SMTP, le të shohim nëpër një skenar të

 përbashkët. Supozojmë se Alice dëshiron ti dërgojë Bob një mesazh të thjeshtë ASCII.

1.Alice i kërkon agjent përdoruesit të saj për e-mail, i ofron Bobit e-mail adresën (për shembull,

 bob-someschool.edu), shkruan një mesazh, dhe udhëzon agjent përdoruesin për ta dërguar 

mesazhin.

2.Agjent përdoruesi i Alices dërgon mesazh te mail serveri i saj, ku është vendosur në një radhëmesazhesh.

3. Ana e klientit të SMTP kandidon në mail server të Alices, ku sheh mesazhin në radhë

mesazhesh. Hap një lidhje TCP për një SMTP server, kandidon në mail server të Bob-it.

Figura 2.17 Alisa i dërgon mesazh Bob-it

4.  Pas disa ritualeve fillestare SMTP, ana e klientit SMTP dërgon Alises mesazhin brenda

lidhjes TCP.

5.  Te mail serveri i Bobit, ana e serverit SMTP e merr mesazhin. Pastaj mail serveri I Bobit

vendos mesazhin ne kutinë postare.

6. Bob i kërkon agjentit përdorues të tij të lexon mesazhin në lehtësi.

Skenari është përshkruar në Figurën 2.17. Është me rëndësi që të vëzhgojmë se SMTP

normalisht nuk përdorë mail server të ndërmjetëm për dërgimin e mailave, madje edhe atëherë

kur dy mail serverë janë të pozicionuar në dy skajet e kundërta të botës. Nëse serveri i Alices

gjendet në Hong Kong dhe serveri i Bobit gjendet në St.Louis, lidhja TCP është lidhje e

drejtpërdrejt midis serverëve të Hong Kongut dhe St.Louis-it. Veçanërisht, nëse mail serveri i

Bobit është jashtë pune, atëherë mesazhi mbetet tek mail serveri i Alices dhe pret për tentimin

tjetër për dërgim – mesazhi nuk zë vend në ndonjë mail server të ndërmjetëm.Le të hedhim njëshikim më të ngushtë se si SMTP transferon mesazhin prej mail serverit dërgues deri tek mail

server pranues. Ne do të shohim se protokolli SMTP ka shumë ngjashmëri me protokolet që

 përdoren për ndërveprimin

njerëzor sy-më-sy. E para, klienti SMTP (i kyçur në host mail serverin dërgues) vendosë lidhjen

TCP në portin 25 me serverin SMTP (i kyçur në host mail serverin pranues). Nëse serveri është

 jashtë pune, klienti provon përsëri më vonë. Atëherë kur kjo lidhje vendoset, serveri dhe klienti

Page 38: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 38/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 38

kryejnë disa shkëmbime të shtresës së aplikacionit  –  ashtu siç njerëzit shpesh e prezantojnë

vetvehten para se të transferojnë informacione prej njërit tek tjetri, klientët dhe serverët SMTP

 prezantojnë vetvehten para se të fillojnë me transformimin e informacioneve. Gjatë kësaj faze të

këmbimit SMTP, klienti SMTP tregon e-mail adresën e dërguesit (personi i cili gjeneron

mesazhin) dhe e-mail adresën e marrësit. Atëherë kur klienti dhe serveri SMTP të kenë

 prezantuar vetvehten me njëri-tjetrin, klienti e dërgon mesazhin. SMTP mund të llogarisë në besueshmërinë e transferit të të dhënave me shërbimin TCP për dërgimin e mesazhit në server 

 pa gabime. Klienti pastaj përsëritë këtë proces përmes lidhjes së njejtë TCP nëse ka mesazhe të

tjera për dërgim në server; përndryshe, ai jep instruksione TCP-së për mbylljen e lidhjes.Le të

hedhim një shikim tjetër në një shembull transkripti të mesazheve të shkëmbyera midis një

klienti SMTP (C) dhe një serveri SMTP (S). Emri host (angl . hostname) i klientit është crepes.fr 

dhe emri qëndror i serverit është hamburger.edu. Linjat e tekstit ASCII që fillojnë me C: janë

saktësisht linjat nëpër të cilat klienti dërgon nëpër prizat e TCP-së së tij, ndërsa linjat e tekstit

ASCII që fillojnë me S: janë saktësisht linjat që serveri dërgon nëpër prizat e TCP-së së tij.

Transkripti në vijim fillon menjëherë sapo të vendoset lidhja TCP.

S: 220 hamburger.edu

C:HELO crepes.fr 

S:250 HELLO crepes.fr , pleased to meet you

C:MAIL FROM:<alice&crepes.fr>

S:250 alice&crepes.fr …sender ok  

C:RCTP TO: < bob&hamburger.edu>

S: 250 bob&hamburger.edu…Recipient ok  

C:DATA

S:354 Enter mail ,end with “.” On a line by itself  

C:Do you like ketchup?

C:How about pickles?

C: .

S:250 message accepted for delivery

C:QUIT

S: 221 hamburger.edu closing connection

 Në shembullin e mësipërm, klienti dërgon mesazhin (“Do you like ketchup? How about

 pickles?”) prej mail serverit crepes.fr në mail serverin hamburger.edu. Si pjesë e dialogut,

klienti lëshon pesë komanda: HELO (një shkurtesë për HELLO), MAIL FROM, RCPT TO,

DATA, and QUIT. Këto komanda janë vetë-sqaruese. Klienti gjithashtu dërgon një linjë që

 përbëhet nga një periodë e vetme, e cila paraqet fundin e mesazhit në server. (Në zhargonin

ASCII, secili mesazh përfundon me CRLF.CRLF, ku CR dhe LF janë

shkurtesa për transportin kthyes (angl . carriage return) dhe daljen e linjës (angl . line feed),

respektivisht). Serveri lëshon përgjigje për secilën komandë, me secilën përgjigje që ka

 përgjigjen kodike dhe disa (opcionale) shpjegime të gjuhës angleze. Ne përmendim këtu se

SMTP përdorë lidhje të qëndrushme: Nëse mail serveri dërgues ka disa mesazhe për të dërguar 

në mail serverin pranues, ai mund të dërgojë të gjitha mesazhet nëpër lidhjen e njejtë TCP. Për 

secilin mesazh, klienti nisë procesin me një MAIL FROM:crepes.fr të ri, dizajnon fundin e

Page 39: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 39/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 39

mesazhit me një periodë të izoluar, dhe lëshon komandën QUIT vetëm pasi të dërgohen të gjitha

mesazhet. Rekomandohet shumë që të përdorni Telnet për bartjen e një dialogu direkt me

serverin SMTP. Për të bërë këtë, lëshohet

telnet serverName 25

ku serverName është emri i mail serverit lokal. Kur ta bëni këtë, ju thjeshtë jeni duke vendosur lidhjen TCP midis hostit lokal dhe mail serverit. Pasi të shtypet kjo linjë, do duhej që ju

menjëherë të pranonit përgjigjen 220 nga server. Pastaj lëshon komandat SMTP: HELO, MAIL

FROM, RCPT TO, DATA, CRLF.CRLF, dhe QUIT në kohët e përshtatshme. Gjithashtu

rekomandohet shumë që të përdorni Programimin e Caktuar 2 në fund të këtij kapitulli. Në atë

Caktim, do të ndërtoni një agjent-përdorues të thjeshtë që implementon anën e klientit të SMTP-

së. Ai ju mundëson juve që të dërgoni një e-mail mesazh tek ndonjë marrës i çfarëdoshëm

 përmes mail serverit lokal.

2.4.2 Krahasimi me HTTP

Le ta krahasojmë tash me fjalë të shkurtëra SMTP me HTTP.Të dyja protokolet  përdoren pë të

transferuar fajlla nga njëri host në tjetrin.HTTP transferimi I  fajllave(gjithashtu i quajtur i

objekteve)nga një Web server në Web klient(tipike ështe një   browser);SMTP transferimi i

fajllave(kjo ëhtë e-mail mesazhet)nga një mail server në   mail serverin tjetër.Kur transferohen

fajllat të dyjat HTTP dhe SMTP përdorin lidhje të  qëndrueshme.Kështu që të dyja protokolet

kanë karakteristika të përbashkëta.Sidoqoftë kanë edhe ndryshime të rëndësishme.Së pari,HTTP

është kryesisht pull protokoll-  dikush ngarkon informacione ne Web server dhe përdoruesit

 përdorin HTTP për të marr informacione nga server me lehtësi.Në vecanti,konektimi TCP është

inicuar nga makina e cila to të pranojë fajlla.Në anën tjetër,SMTP është kryesisht push – dergimi 

i mail serverit i shtyn fajllat në mail serverin pranues.Në vecanti,TCP lidhjet janë të inicuara nga

makina e cila to të dërgojë fajlla.Ndryshimi i dytë,te cilën e permendëm terthorazi më

hërët,është se SMTP kërkon cdo mesazh,duke përfshirë trupin e cdo mesazhi të jetë ne formatin

7-bit ASCII.Nëse mesazhi përmban karaktere të cilat nuk janë te 7-bit ASCII(psh.karakteret në

gjuhën  frenge me theks)ose përmban të dhëna binare (sikur një fajll me fotografi),atëherë  

mesazhi duhet të enkodohet ne 7-bit ASCII.Të dhënat në HTTP nuk ta imponojnë këtë kufizim. 

 Ndryshimi i tretë i rëndësishëm përmban si është trajtuar një dokument i perbërë nga teksti dhe

fotografitë(së bashku me mundesinë e tipeve tjera të mediave).Sic e mësuam ne Seksionin

2.2,HTTP enkapsulon secilin object në mesazhin që i pergjigjet HTTP.Internet mail vendet nga

të gjitha objektet e mesazheve në një mesazh.

2.4.3 Formatet e Mail Mesazheve

Kur Alice i shkruan një leter me email te zakonshëm Bobit,ajo mund të perfshije të gjitha llojet e

hederit anësorë në informat në fillim të letrës,edhe atë adresen e Bobit,adresën e saj kthyese,dhe

Page 40: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 40/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 40

datën.Ngjajshëm,kur një e-mail mesazh dërgohet nga një person në tjetrin,hederi paraprin me

 përmbajtjen periferike dhe të trupit të mesazhit të vet.Kjo informatë periferike ka përmbajtje një

seri të rreshtave të hederit,të cilat janë të definuara në RFC 5322.Rreshti i hederit dhe trupi i

mesazhit janë të ndara me një rresht të bardhë(kjo është,nga CRLF).RCF 5322 specifikon

formatin e sakt për rreshtin e hederit sikur interpretimin kuptimor të tyre.Sikur me HTTP ,cdo

rresht i hederit përmban tekst të lexueshem,duke përfshirë cdo fjalë të shoqëruar nga një kolonëte shoqëruar me një vlere.Disa nga fjalet janë të nevojshme dhe të tjerat jo të detyrueshme.Cdo

heder duhet të kete një FROM: dhe një rresht heder me TO:; një heder mund të perfshije një

rresht SUBJECT : dikur edhe rreshtat tjerë jo të detyrueshëm.është e rëndesishme te cekim kto

rreshta të hederit janeë të ndryshme nga komandat SMTP të cilat i kemi studiuar në seksionin

2.4.1(edhe pse ato përmbajnë fjalë të përbashkëta sic janë “from” dhe “to”).Komandat në atë

seksion ishin të ndara në protokolin SMTP ;rreshtat e hederit që janë kontrolluar në këtë seksion

 janë pjesë e vet mesazhit.

Hederi i një mesazhi tipik duket kështu:

From: [email protected]  

To :  [email protected] 

Subject:Duke kërkuar kuptimin e jetës.

Pas hederit të mesazhit,e shoqëron një rresht i bardhe;atëherë e shoqeron trupi i

mesazhit ( në ASCII).Ju duhet ta përdorni Telnet’in të dergoni mesazh në një mail 

server e cila permban disa rreshta të hederit,duke përfshire rreshtin Subject:.Per ta bërë

këtë,përdor telnet serverName 25,sic është diskutuar në seksionin 2.4.1.

2.4.4.Mail Protokolet me Hyrje

 Nganjehëre pranon mesazh të SMTP nga mail server i Alice në mail serverin e Bob’it,mesazhi

është vendosur në mailbox’in e Bob’it.Gjatë gijthë ketij diskutimi në 

heshturazi kemi supozuar që Bob i lexon mail’et e tij duke u kycur ne hostin e serverit dhe pastaj

duke egzekutuar një mail lexues e cila është aktive në atë host.Deri në vitet e hershme të 1990

kjo ishte mënyra standarde psr ti bërë gjërat.Por sot,qasja në mail e perdor një arkitekturë klient-

server shfrytzuesi tipik e lexon e-mail me një klient e cila egzekutohet në sistemin e fundit të

 perdoruesit,psh,një kompjuter në zyre,një laptop ose nje PDA.Me egzekutimin e mail klientit në

kompjuter local,shfrytzuesit kënaqen me arritjen e karakteristikave,duke përfshire aftësitë për të

 parë mesazhe të multimedias dhe attachmente’e. E dhëna e Bob’it(pranuesit)egzekuton agjentin

e tij local në kompjuterin e tij,është e natyrshme të konsiderosh zëvendsimin e mail serveri’t në

lokal hostin e kompjuterit të tij.Me këtë mbërrijme,mail server i Alice do të diagolojë direkt me

kompjuterin e Bob’it.Sidoqoftë,ka një problem me këtë qasje.Kujtoj që mail server menaxhon

mailbox’at dhe egzekuton klientin dhe anën e serverit të SMTP.Nëse mail serveri Bob’it është

vendosur që të qëndrojë në kompjuterin e tij local,atëherë kompjuteri I Bob’it do të mbetet

gjithmonë mbi,dhe I lidhur me internet,në urdhërin të pranojë mail’a të rinj,të cilat mund të

mbrrijnë në cdo kohë.Kjo është jopraktike për disa shfrytzues të internetit.Në vend të kësaj,një

shfrytzues I zakonshëm përdor hyrjet në kompjuterin lokal të tij dhe mailbox’at ruhen gjithmonë

në mail servera.Këta mail servera janë të shpërndarë shfrytzuesve tjerë dhe është tipike të ruhet

nga shfrytzuesit ISP(psh,universiteti ose kompania).

Page 41: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 41/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 41

Tash le të konsiderojmë rrugën që bën një e-mail kur i dërgohet nga Alice Bobit.Ne sapo

mësuam që në një pikë gjatë rrugës e-mail mesazhi duhet të depozitohet në mail serverin e

Bobit.Kjo mund të bëhet thjesht duke pasur agjentin e shfrytzuesin e Alice's që dergon mesazh

direkt në mail serverin e Bob'it.Dhe kjo mund të bëhet me SMTP,në të vërtetë,SMTP është

dizajnuar për shtyrje te e-mail nga një host në tjetrin.Sidoqoftë,agjenti i shfrytzuesit të fundit

nuk dialogon direkt me mail serverin e pranuesit.Në vend të kësaj,sic shihet në fig 2.18, agjenti i

shfrytzuesit të Alice's shfrytzon SMTP që të shtyje e-mail mesazhin në mail serverin e saj,pastajmail serveri i Alice shfrytzon SMTP(sikur një klient te SMTP) të transmetojë e-mail mesazhin

në mail serverin e Bob'it.Pse këto dy hapa procedurë?Së pari sepse pa tranmetimin në mail

serverin e Alice's,agjenti i shfrytzuesit të Alice nuk ka asnjë adresim te një destinacion i

 paaritshëm të mail serverit.Duke pasur së pari depozitën e email'it të Alice në mail serverin e

vet,mail serveri i Alice mund vazhdimisht të provojë të dërgojë mesazhe në mail serverin e

Bob'it,të themi cdo 30minuta,derisa mail serveri i Bob'it të punojë..(dhe nëse mail serveri i

Alice's është jofunksional,atëherë ajo duhet të ankohet në sistemin administrativ të saj!) SMTP

RFC definon se si komandat SMTP mund të përdoren të transmetojnë mesazh përgjatë shumë

SMTP serverëve.

Por egziston ende një pjesë e humbur e puzzle!Si një pranues sikur Bob,e shfrytzon një agjentlokal në kompjuterin e tij, merr mesazhin e tij,të cilat janë të deponuara në mail serverin e Bobit

 pa ISP e Bobit?Vërejmë se mjeti shfrytzues i Bob'it nuk mund të perdore SMTP që të marre

mesazhin sepse marrja e mesazhit është një punë që tërheq,ndërsa SMTP eshte një protokoll

shtytes.

Figura 2.18 E-mail protokollet dhe komunikimet e tyre

Puzzle kompletohet duke futur nje mail hyrje special për protokollin që transferon mesazhe nga

 bob në mail serverin lokal te kompjuterit të tij.Jane aktualisht një numer i kerkuar i mail me

hyrje ne protokole,duke perfshirë Post Office Protocol-Version3(POP3),Internet Mail Access

Protocol(IMAP) dhe HTTP.Figura 2.18 jem një permbledhje e protokoleve te lilat shfrytzohen

 për Internet mail:SMTP përdoret të transferojë mail nga një dërgues i mail servererit te mail

serveri i pranuesit;SMTP gjithashtu shfrytzohet të transferojë mail nga një mjet i shfrytzuesit të

dërguesit në mail serverin e dërguesit.Mail me hyrje në protokol,sikur është POP3,është

 përdorur të

tranferojë mail nga mail serveri i pranuesit në mjetin e shfrytzuesit të pranuesit.

POP3

POP3 është ekstremisht një mail me hyrje në protokol i thjeshtë.është i definuar në [RFC

1939],e cila sshtë e shkurtë dhe plotësisht e lexueshme.Përshkak të thjeshtësisë është

Page 42: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 42/86

Page 43: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 43/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 43

S: .......................

S: .........blah)

S: .

C: dele 1

C: retr 2

S: (blah blah ...

S: .......................S: .........blah)

S: .

C: dele 2

C: quit

S: + OK POP3 server signing off 

Mjeti i shrytzuesit së pari e pyet mail serverin rëndësinë madhësinë e cdo mesazhi të

deponuar.Mjeti i shfrytzuesit pastaj korigjon dhe fshinë cdo mesazh nga serveri.Lajmron që pas

frazës së autorizimit,mjeti i shfrytzuesit punëson vetëm kater komanda: list,retr,dele dhe

quit.Sintaksa e këtyre komandave është definuar në RFC 1939.Pas procesimit komandaquit,serveri POP3 i fut azhurimet e frazave dhe i largon mesazhin 1 dhe 2 nga mailbox'i.

Problemi me këtë modul shkarko - dhe - fshijë është se marrësi,Bob, mund të jetë shtegtues dhe

mund të mos dojë të hyje në mail mesazhet nga një makine e shumfishtë.,psh,kompjuteri në

zyren e tij,kompjuteri në shtëpinë e tij,dhe kompjuterii bartshem i tij.Modi shkarko-dhe - fshijë e

ndan mail mesazhet e Bob'it mbi këto tri makina;në vecanti nëse Bob së pari e lexon mesazhin e

tij në kompjuterin e zyrës,ai nuk do të mund të rilexojë mesazhin në mbrëmje në shtëpine e

tij.Në modin shkarko-dhe-mbaj ,mjeti i shfrytzuesit le mesazh në mail serverin pas shkarkimit të

tyre.Në këtë rast,Bob mund të rilexojë nga makina të ndryshme;ai mund të ketë hyrje në mesazh

nga puna dhe pastaj prap një javë me vonë nga shtëpia.Gjatë sesionit POP3,mes makines së

 përdoruesit dhe mail serverit,POP3 serveri mban disa informata të gjendjes;në vecanti,i mban

gjurmet se cili shfrytzues ka etiketu dhe fshijë.Sidoqoftë, serveri POP3 nuk mban informata të

gjendjes pergjatë sesionit POP3.Kjo mungesë e gjendjes së informacionit përgjatë sesionit e

thjeshtëson shumë implementimin e POP3 serverit.

IMAP

Me hyrje në POP3,një herë Bob duhet të shkarkoje mesazhin e tij në makinen lokale,ai mund te

krijojë nje mail folder dhe të lëvize mesazhet e shkarkuara ne atë folder.Bob pastaj mund të

fshije mesazhet,të levizë mesazhet pergjat folderit,dhe të kërkoje

mesazhe(me emer të derguesit ose subjektit).Por kjo paradigmë-me emër,folderet dhe mesazhet

në makinen lokale- parashtron një problem për perdoruesit shtegtues,i cili do të preferojë te

mbaj hierarkine e folderit nga një server i largët ajo mund të jetë hyrje nga cdo kompjuter.Kjo

nuk është e mundur me POP3-POP3 protokolli nuk siguron ndonjë domethënie për shfrytzuesin

të krijoj një folder në largësi dhe ti përcaktojë mesazhet në folder.Për ta zgjidhur, këtë dhe

 problemet tjera, është zbuluar IMAP protokolli,i definuar në [RFC 3501].Sikur POP3,IMAP

është një mail protokol me hyrje.Ka me shumë tipare se sa POP3,kuptohet është edhe më

Page 44: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 44/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 44

kompleks.(Dhe kështu që klientet dhe implementimi nga ana e serverit është me

komplekse,)IMAP serveri do të lidh cdo mesazh me një folder;kur mesazhi së pari arrin në

server,është i lidhur me folderin e pranuesit INBOX.Pranuesi pastaj mund ti lëvize në një folder 

të ri të sapokrijuar,të lexojë mesazhet të fshijë mesazhet dhe ti levizë nga një folder në

tjetrin.IMAP gjithashtu siguron komanda që lejon shfrytzuesit të kërkojnë në largesi për 

mesazhet nëpër foldere duke ju pergjigjur kriteri i caktuar.Sheno këtë,i ndryshem nga POP3,njeserver IMAP mban informata të gjendjes se shfrytzuesit pergjatë sesionit IMAP-psh,emri i

foldereve dhe cili mesazh është i lidhur me cilin folder.

 Një tipar tjetër i rëndesishë i IMAP është se ka komanda që lejojnë që mjetet e sfhrytzuesit

mund të marrin vetëm hederin e mesazhit nga mesazhi ose vetem një mesazh MIME.Ky tipar 

është i shfrytzueshëm kur ka lidhje të ngadalshme-bandëith(psh,shpejtësi e vogël e lidhjes së

modemit)mes makinës së shfrytzuesit dhe mail serverit.Me lidhje të dobtë të

 bandwidth,shfrytzuesi mund të mos e dojë të shkarkojë të gjitha mesazhet në mailbox'in e

tij,vecanërisht i shmanget mesazheve të gjata të cilat mund të përmbajnë,psh,një audio ose video

klip.Ju mund të lexoni të gjitha ne faqen zyrtare të IMAP .[IMAP 2009].

E-mail i bazuar ne Web

Shume e me shume shfrytëzues sot po dërgojnë dhe po ju casen e-maileve të tyre përmes Web

shfletuesve. Hotmail-i e prezantoi qasjen e bazuar ne Web nga mesi i viteve 1990; Tani e-maili i

 bazuar në Web është gjithashtu i siguruar edhe nga Yahoo, Google si dhe nga pothuajse cdo

universitet dhe koorporate e madhe. Me këtë shërbim, agjenti shfrytëzuesi është një Web

shfletues i zakonshëm, dhe shfrytëzuesi komunikon me kutine e largët postare të tij pëmres

HTTP-se. Kur pranuesi, sikurse Bobi, dëshiron ti qaset mesazhit në kutinë postare të tij, e-mail

mesazhi është dërguar nga nga serveri postar i Bobit, tek shfletuesi që përdor HTTP protokolin

në vend të POP3 ose IMAP protokolit. Kur dërguesi, sikurse Alice, dëshiron të dërgojë nje

mesazh, ai mesazh dërgohet prej shfletuesit deri te serveri postar i saj permes HTTP ne vend te

SMTP. Serveri postar i Alicës, megjithatë, ende dërgon dhe pranon mesazhet prej serverëve tjere

 postarë që përdorin SMTP.

2.5 DNS- Shërbyesi drejtues i Internetit

 Ne qeniet njerëzore, mund të indentifikohemi në shumë mënyra. Për shembull, ne mund të

indentifikohemi me emrat që konfigurojnë në certifikatat tona të lindjes. Ne mund të

indentifikohemi nga Numrat Social të Sigurise. Mund të indentifikohemi nga numrat e lejës se

Vozitjes. Edhe pse secili nga këta indentifikues mund të përdoret për të indentifikuar njerëzit, në

një kontekst të caktuar, një identifikues mund të jetë më i përshtatshëm se një tjetër. Për 

shembull, kompjuterët në IRS( Agjensi e panjohur e tawave ne SHBA ) preferon të përdorë

 Numra Social te Sigurisë me një gjatësi fikse ne vend të certifikatave të lindjes. Në anën tjetër,

njerëzit e zakonshëm preferojnë më shumë emrat e certifikatave të lindjes sesa NSS. ( A mund

të paramendoni veten duke thënë, ‘Përshëndetje, une jam 132-67-9857. Ju lutem takohuni me

 burrin tim 178-87-1146’). 

Page 45: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 45/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 45

Sikurse që njerëzit mund të indentifikohen në shumë mënyra, ashtu munden edhe hostet në

internet. Një identifikues për host eshte emri i hostit(hostname). Emrat e

ato vështire se do të procesoheshin nga ruterat. Për këto arsye, hostet gjithashtu idnetifikohen

nga të ashtuquajturat IP adresa.Ne do ti diskutojmë IP adresat me më shumë detaje ne kapitullin

4, por është frytëdhënëse tit hemi disa fjalë për to tani. Një IP Adresë konsiston me 4 bita dhe ka

një hierarki strukturale të fortë. Një IP Adresë duket sikurse 127.7.106.83, ku secila pikë ndan

njërin nga bajtat të shprehur në formën decimale nga 0 deri në 255. Një IP Adresë ka strukturëhierarkike sepse sikurse ne mund ta skenojmë adresën nga e majta në të djathtë, në sigurojmë

shumë e më shumë informacion specific për atë se ku është i lokalizuar hosti në Internet ( kjo

dmth, përmes cilit rrjet, ne rrjetin e rrjetave ). Ngjashëm, kur ne skenojmë një adresë postare nga

 poshtë-lartë, ne sigorjmë cdo herë e më shumë informacione specifike se ku është lokalizuar 

adresa.

2.5.1 Shërbimet e siguruara nga DNS

 Ne sapo pamë se ekzistojnë dy mënyra për të identifikuar një host-nga emri i tij dhe nga IP

Adresa. Njerëzit preferojnë idnetifikues që memorizohen më lehtë, përderisa ruterat preferojnëIP Adresa te strukturuara me gjatësi fikse. Në mënyrë që të koordinohen tëto kërkesa neve na

duhet nje shërbim drejtues i cili përkthen emrat e hosteve në IP Adresa. Kjo është detyra

kryesore e Sistemit për Domen të Emrit (DNS-Domain Name System ). DNS- është (1) një bazë

e shpërndarë e shënimeve e implemetuar në një hierarki të DNS serverëve dhe (2) një protocol

aplikacion-shtresor që lejon hostet të bëjnë kërkesa ne bazën e shpërndarë të shënimeve.

Zakonisht serverët DNS janë makinat UNIW që ekzekutojnë BIND-in (Berkley Internet Name

Domain ) softuerin ( BIND 2009 ). Protokoli DNS vepron përmes UDP-se dhe shfrytëzon portin

53. DNS në mënyrë të përbashkët sfhrytëzohet nga protokolet e aplikacioneve tjera shtresore-

duke përfshirë HTTP,SMTP, dhe FTP-për të përkthyer emrat e hosteve të shfrytëzuesve ne IP

Adresa. Sa për ilustrim, konsidero qfarë ndodh kur një shfletues( që është nje klient HTTP ), që

 po vepron në hostin e ndonjë shfrytëzuesi, kërkon URL-në www.someschool.edu/indew.html.

 Në mënyrë që host ii shfrytëzuesit të jetë në gjendje të dërgojë një mesazh kërkesë për Web

serverin www.someschool.edu . Kjo bëhet kështu siq vijon

1.  Makina e njëjtë e sfhrytëzuesit ekzekuton pjesën e Klientit për nje server DNS.

2.  Shfletuesi e zgjeron emrin e hostit, www.someschool.edu, nga URL dhe dhe e kalon emrin

e hostit në anën e klientit në aplikacionin DNS.

3.  Klienti DNS e dërgon një kërkesë që përmban emrin e hostit për një server DNS.

4.  Klienti DNS eventualisht pranon një përgjigje, e cila përfshinë IP Adresën për emrin e

dhënë të hostit.

5.  Sapo shfletuesi të pranojë IP Adresën nga DNS-i, aim und të inicojë një lidhje TCP me

serverin e HTTP-së që është i okalizuar në portin ,80 me atë IP Adresë.

 Ne nga ky shembull shohim se DNS-i i shton një vonesë-ndonjëherë substanciale- aplikacionit

që e shfrytëzon atë. Për fat të mirë, sic e diskutuam më parë IP Adresa e dëhiruar zakonisht ruhet

“afer” serverit DNS, i cili ndihmon te zvogelohet trafiku ne rrjetin e DNS njejte sikurse edhe

vonesën mesatare DNS. DNS-i permban edhe disa shërbime tjera me rëndësi me tendencën për 

të përkthyer emrin e hostit në IP Adresë.

Page 46: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 46/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 46

PRINCIPE NË PRAKTIKË

DNS: FUNKSIONET KRITIKE TË RRJETAVE PËRMES MODELIT KLIENT-

SERVER 

Sikurse HTTP,FTP, dhe SMTP, protokoli i DNS-it është aplikacion-shtresor përderisa (1)

ekzekuton në mes komunikimit të sistemeve të fundit duke përdorur modelin klient-server dhe (2)

bazohet në një transport protocol shfrytëzuesIfundit-tek-shfrytëzuesiIfundit për të trasferuar të mesazhet DNS në mes të sistemve të fundit komunikuese. Në një tjetëe kuptim, roli i DNS-it është 

mjaft i ndryshëm nga a ii Web-it, transferuesi i fajlave, dhe aplikacioneve të e-mailit. Ndryshe

nga aplikacionet, DNS-i nuk është një aplikacion me të cilin shfrytëzuesi kontakton direct. Por,

 DNS-i siguron një funksion bazik të internetit-i quajtur, përkthimi i emrave të hosteve ne IP 

 Adresat e tyre, për shfrytëzuesit e aplikacioneve dhe softwerëve tjerë në Internet. Ne theksuam

ne seksionin 1.2 që shumica e kompleksitetit ne arkitekturën e Internetit është e lokalizuar në 

“siperfaqen” e rrjetit. DNS -i, i cili implementon përkthimin kritik emër-në-adresë duke

 përdorur klientat dhe serverat e lokalizuar në sipërfaqen e rrjetit, është prap një tjetër shembull 

i asaj filozofie të dizajnit.

DNS mund të përfshihet nga një aplikacion për të siguruar emrin e autorizuar të hostit për një

emer të ngjashëm hosti sikurse IP Adresa e hostit. 

  Pseudonimi postë server. Për arsye të qarta, është shumë e dëshirueshme që që e-mail

adresat të jenë të memorueshme. shembull, nëse Bobi e ka një logari në Hotmail, adresa

elektronike e Bobit mundet të jetë aq e thjeshtë si  [email protected]. Megjithatë, hosti i

serverit postar të Hotmail është më i komplikuar dhe shumë më pak mund të mbahet në

mend, jo vetëm si hotmail.com( për shembull emri i autorizuar mund të jetë dicka si

relay1west-coast.hotmail.com ). DNS-i mund të përfshihet nga një aplikacion postar për 

të siguruar emrin e autorizuar të hostit për një emër të ngjashëm hosti njëjtë sikurse IP

Adresa hostit. Në fakt, shënimi MX ( shiko më poshtë ) lejon serverin postar dhe Webserverin e kompanisë të kene emra hostesh identike ( aliased ); për shembull, Ëeb server 

i një kompanie dhe serveri postar munden të dy të quhen enterprise.com. 

  Shpërndarja e ngarkuar. DNS-i poashtu përdoret për të performuar shpërndarje të

ngarkuar përmes serverëve të kopjuar. Sajtet e ngarkuara, sikurse cnn.com, janë të

kopjuar nëpër shumë serverë, me secilin server që ekzekutohet në një end-sistem tjetër,

dhe ku secili ka një tjetëe IP Adresë. Pëe Xeb serverët e kopjuar, një bashkësi e IP

Adresave është e lidhur me një emër të autorizuar hosti. Baza e të dhenave të DNS-it

 përmban këtë bashkësi të adresave. Kur klientët bëjnë një DNS kërkesë për një emër të

 planifikuar për një bashkësi adresash, serveri përgjigjet përmes të gjithë bashkësisë së IPAdresave, por rrotullon rendin e adresave përmes secilës përgjigje. Meqenëse klienti e

dërgon kërkesën e tij HTTP tek IP Adresa që është e listuar e para në bashkësi, rotacioni

DNS e shpërndan trafikun përmes serverëve të kopjuar. Rotacioni DNS është gjithashtu

i përdorur për e-mail, kështu që serverë të shumtë postarë mund të kene emrin e njëjtë.

Së fundi, kompanitë shpërndarëse sikurse Akamai e kanë perdorur DNS-in në shumë

mënyra të sofistikuara për të siguruar shpërndarje të kënaqshme në Xeb.

Page 47: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 47/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 47

2.5.2 Mbikqyrje se si punon DNS-i

 Ne tani prezentojme një mbikqyrje të nivelit të larte, në atë se si punon DNS-i. Diskutimi ynë do

të fokusohet në shërbimin e perkthimit emerHosti-në-IP-adresë. Supozoni se një aplikacion (

sikurse Web shfletuesi ose lewuesi i postës ) duke ekzekutuar në një host të shfrytëzuesit duhet

që të përkthejë një emër hosti në një IP adresë. Aplikacioni do të përfshijë anën e klientit të

DNS-it, duke specifikuar emrin e hostit që duhet të përkthehet. ( Në shumë makina Uniw-baze,gethostbyname() është funksioni thirrës që një aplikacion thërret në mënyrë që ta performojë

 përkthimin. Në seksionin 2.7 ne do të tregojmë se si një aplikacion Java mund të përfshijë DNS-

in ). DNS-i është host ii shfrytëzuesit, që dërgon njëkërkesë mesazh në rrjet. Të gjitha kërkesat

dhe përgjigjet DNS dërgohen përmes datagrameve UDP të portit 53. Pas një vonese, që zgjat

nga disa milisekonda deri në disa sekonda, DNS-i ne hostin e sfhrytëzuesit pranon një përgjigje

DNS që siguron planifikim e dëshiruar. Ky planifikim pastaj kalon në aplikacionin e përfshirë.

Kështu që nga prespektiva e aplikacionit të përfshirë në hostin e shfrytëzuesit, DNS-i është një

kuti e zezë që siguron një shërbim përkthimi të thjeshtë dhe të drejtpërdrejtë. Por në fakt , kutia e

zezë që implementon shërbimin është e komplikuar, e mbushur me numra të mëdhenj të

seerverëve DNS të shpërndarë përreth Globit, sikurse një protocol in je aplikacioni-shtresor qëspecifikon se si serverët DNS dhe hostet kërkuese komunikojnë.Një dizajn i thjeshtë për DNS

do të kishtë një server DNS që e bën të gjithë planifikimin. Në këtë dizajn të centralizuar,

klientët thjeshtë i drejtojnë të gjitha kërkesat në serverin e vetëm DNS, dhe DNS i vetem u

 përgjigjet direct kërkesave të klientëve. Edhe pse thjeshtësia e këtij dizajni është atraktiv, është e

 papërshtatshme për Internetin e sotëm, me numrin e pafundëm( në rritje e sipër ) të hosteve.

Problemi me një dizajn të centralizuar përfshinë: 

  Një pikë e vetme dështimi.  Neë server i DNS-it bjen, fat i njëjtë e prêt edhe tërë

Internetin! 

  Volumi në trafik. Një server i vetëm DNS do të duhej të përballonte të gjitha kërkesat e

DNS-it ( për të gjitha kërkesat HTTP dhe e-mail mesazhet të gjeneruara nga qindramijëra miliona hoste). 

  Baze e largët qëndrore e të dhenave.  Një server i vetëm DNS nuk mund të “mbyllet

ndaj” të gjithë klientëve kërkues. Nëse ne e vendosim DNS serverin e vetëm në New

York, të gjitha kërkesat nga Australia duhet të udhetojnë në anën tjetër të globit, ndoshta

nëpër linja të ngadalshme e të mbushura. Kjo mund të dërgojë deri tek vonesa të

dukshme. 

  Mirëmbajtja. DNS server ii vetëm do të duhej të mbante shënime për të gjitha hostet e

Internetit. Jo vetëm që kjo Baze qëndrore e të dhënave do të ishte shumë e madhe, por 

edhe do të duhej të azhurohej në mënyrë të vazhdueshme për të shënuar secilin host të

ri.  Në përmbledhje, një Bazë qëndrore e të dhënave në një DNS të vetëm thjesht nuk funksionon. Si

 pasojë, DNS-i është sipas dizajnit i shpërndare. Në fakt, DNS-i ështe një shembull fantastic se si

një Bazë e shpërndarë e shënimeve mund të implementohet në Internet.

Databazë e shpërndarë dhe e organizuar në mënyrë hierarkike

Page 48: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 48/86

Page 49: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 49/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 49

 paraqitur një hartë e këtyre serverev Fig.2.20; një list e tanishme e DNS serverave

rrënjë është në dispozicion në [Root-servers 2009]. Edhe pse jemi referuar për secilin

nga 13 DNS serverët rrënjë sikur të ishte një serveri i vetëm, çdo server është në fakt

një grup serverësh të replikuar , për dy qellime: siguri dhe besueshmëri.

  Serverët e domeneve të nivelit të lartë (TLD). Këta server janë përgjegjës për domene

të nivelit të lartë si: com, org, net, edu, dhe gov si dhe për të gjitha top domenet e

shteteve si uk, fr, ca, jp. Kompania Network Solutions mirëmban TLD serveret për comtop domenin, kurse kompania Educause mirëmban TLD serveret për atë të edu.

  Autoritativ DNS serverat. Çdo organizat me çasje publike (si Web serveret dhe mail

serveret) duhet të lejojn qasje publike në DNS të dhënat që lidhin emrin e hostave me

IP adresën.Organizatat e DNS servereve autoritativ i mbajnë këto DNS të dhena.

Organizatat mund të zgjedhin që të kenë DNS serverin autoritativ personal që t’i

mbajë këto të dhëna; apo ato mund të paguajnë që këto të dhëna të ruhen në një DNS

server autoritativ të një kompanie që ofron këtë shërbim. Shumica e universiteteve dhe

kompanive të mëdha kanë dhe ruajn backupin e tyre në DNS serverin autoritativ

 personal.

Rrënjë, TLD dhe autoritativ DNS serveret i përkasin hierarkisë të DNS serverve, të treguar në

fig. 2.19. Një lloj tjetër i rëndesishëm i DNS servereve është edhe lokal DNS serveri. Lokal

DNS serveri jo rreptësisht i përket hierarkisë të servereve por megjithatë është qendra e DNS

arkitekturës. Çdo ISP – si universitetet, departamentet akademike, kompani punonjësve, apo një

residenciale ISP- ka një DNS server lokal. Kur një host

lidhet me një ISP, ISP i siguron hostiti IP adresa të marra nga një apo më shumë DNS serveret

lokal të saj (në mënyrë tipike me anë të DHCP, për të cilen është diskutuar në kapitullin 4).Ju

lehtë mund të përcaktoni IP adresën e DNS serverit tuaj lokal duke hyrë në dritaren e statusit të

rrjetit në Windows ose UNIX. Hosti i DNS serverit lokal zakonisht është “afër” hostit. Për njëISP institut, DNS serveri lokal mund të jetë në të njejtin LAN si dhe hosti; një ISP banesore

është e ndarë në mënyrë tipike nga hosti vetëm nga disa rutera. Kur një host benë një DNS

 pyetje(query), pyetja dergohet tek një DNS server lokal, i cili sillet si përfaqësues, duke e

 parashtruar këtë pyetje në DNS server hierarkin, e shpjeguar në detaje më poshtë.

Le ta shikojmë një shembull të thjeshtë. Supozojmë se hosti cis.poly.edu dëshiron IP

adresen e gaia.cs.umass.edu. Po ashtu supozojmë se Polytechnic’s DNS serveri lokal quhet

dns.poly.edu dhe se autoritativ DNS serveri për gaia.cs.umass.edu quhet dns.umass.edu. Siç

tregohet në fig.2.21, hosti cis.poly.edu se pari DNS mesazh pyetjen e dergon në DNS serverin

lokal të tij, dns.poly.edu. Mesazh pyetja përmban host emrin i cili duhet përkthyer,dmth,

gaia.cs.umass.edu. DNS serveri lokal përcjell mesazhin tek një rrenjë DNS server. Rrenjë DNSserveri e merr parasysh prapashtesën edu dhe kthen tek DNS serveri lokal një listë me IP adresa

 për TLD serveret përgjegjës për edu. DNS serveri lokal atëherë ridërgon mesazh pyetjen tek një

nga këta TLD servera. TLD serveri merr parasysh prapashtesën umass.edu dhe përgjigjet me IP

adresën e DNS serverit autoritativ për Universitetin e Masaçusets, dmth, dns.umass.edu. Dhe në

fund, DNS serveri lokal ridërgon mesazh pyetjen direkt te dns.umass.edu, i cili përgjigjet me IP

adresën e gaia.cs.umass.edu. Duhet theksuar se në këtë shembull, në mënyrë që të marrim

 planifikimin(mapping) për një host emër, janë dërguar tetë DNS mesazhe: katër mesazh pyetje

Page 50: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 50/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 50

dhe katër mesazh përgjigje. Së shpejti do të shohim se si DNS caching zvogëlon këtë trafik 

 pyetjesh.

 Në shembllin tonë të mëprashëm është supozuar se TLD serveri e dinë autoritativ DNS

serverin për host emrin. Në përgjithësi kjo nuk është gjithmonë e vërtetë. Në vend të kësaj, TLD

serveri mund të dijë një DNS server të ndërmjetëm, i cili nga ana e vetë mund të di autoritativ

DNS serverin për host emrin. Për shembull, supozojmë se Universiteti i Masaçusets ka një DNSserver për vete të quajtur dns.umass.edu.

Fig.2.21 Ndërveprimi në mes DNS serverve të ndryshëm

Po ashtu supozojmë se,çdo departament në Universitetit të Masaçusets ka DNS serverin e vet,

dhe çdo DNS server i departamentit është autoritativ për çdo host në atë departament. Në këtë

rast, kur DNS serveri i ndërmjetëm, dns.umass.edu, pranon një pyetje me host emër qe mbaron

me cs.umass.edu, kthen IP adresen për dns.cs.umass.edu tek dns.poly.edu,e cila është

autoritative për të gjithë host emrat që mbarojnë me cs.umass.edu. DNS serveri lokaldns.poly.edu pastaj dërgon pyetjen tek autoritativ DNS serveri, i cili kthen hartën e kërkuar të

DNS serverit lokal, e cili më pas kthen hartën e hostit të kërkuar. Në këtë rast, 10 DNS mesazhe

 janë derguar !Shembulli i treguar në Fig. 2.21 benë përdormin e pyetjeve

rekursive(ripërsëritëse) dhe atyre iterative(përsëritëse). Pyetja e dërguar nga cis.poly.edu te

dns.poly.edu është një pyetje rekursive, sepse ajo kërkon që dns.poly.edu të marrë hartën në

emër të saj. Por tri pyetjet pasuese janë iterative pasi që të gjitha përgjigjet janë kthyer direkt

tek dns.poly.edu. Në teori,çdo DNS pyetje mund të jetë iteraktive ose rekursive. Për shembull,

Page 51: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 51/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 51

në Fig.2.22 tregohet një zinxhir DNS pyetje për të cilat të gjithat përgjigjet janë rekursive. Në

 praktikë pyetjet zakonisht ndjekin modelin si në Fig.2.21. Forma e pyetjeve të kërkuar nga hosti

 për DNS serverin lokal është rekursive, kurse pjesa tjetër e mbetur e pyetjeve janë iterative.

Fig. 2.22 Pyetjet rekursive në DNS

DNS Caching

 Në diskutimin tonë deri më tani kemi injoruar DNS caching (ruajtjen e kopjes), një tipar shumë i

rëndesishëm për DNS sistemin. Në të vërtetë DNS-i shfrytëzon gjerësisht DNS ruajtjen e kopjes,

në mënyrë që të përmirësoj vonesat dhe të zvogëloj numrin e DNS mesazheve ripërseritëse në

internet. Ideja prapa DNS ruajtjes së kopjes është shumë e thjeshtë. Në një zinxhir pyetje, kur 

një DNS server merr një DNS përgjigje (që përmbanë, për shembull një hartë nga një hostname

 për një IP adresë) ai mund të bejë kopje (cache) hartën në kujtesën lokale. Për shembull, në

figurën 2.21 çdo herë kur DNS serveri dns.poly.edu merr një përgjigje nga ndonjë DNS server 

tjetër, mund të bejë kopje cilendo nga informatat që gjinden në atë përgjigje. Në qoftë se njëhostname / ip adresë është kopje e rujatur në DNS server dhe një pyetje tjetër arrin në atë DNS

server për të njejtin hostname,DNS serveri mund të sigurojë IP adresën e dëshiruar, edhe pse

nuk është autoritativ për atë hostname. Për shkak se hosti dhe hartat në mes të hostname dhe IP

adresave nuk janë të përhershme, DNS serverat i hedhin kopjet pas një periudhe kohe (zakonisht

 pas dy ditëve). Për shembull, supozojmë që hosti apricot.poly.edu pyet dns.oply.edu për IP

adresën e hostname cnn.com. Më pas supozojmë se pas disa orëve , një tjetër Polytechnic

University host, psh, kiwi.poly.fr, pyet dns.poly.edu për të njëjtin hostname. Për shkak të

Page 52: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 52/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 52

ruajtjes së kopjes(caching), DNS serveri lokal është në gjendje që menjëherë të kthej IP adresën

e cnn.com për hostin e dytë kërkues pa patur nevojë që të pyes DNS serverat tjerë. DNS serveri

lokal mund të bejë kopje IP adressat e TLD serverëve, duke lejuar DNS serverin lokal të

anashkalojnë rrenjë DNS serverët në zinxhir pyetjet (gjë që ndodh shpesh).

2.5.3 DNS të dhënat dhe mesazhet

Serverat e DNS që përbëjnë bazen e shpërndarë e të dhënave DNS ,ruajnëresource

records(shq.të dhënat nga baza) ose RR s,duke përfshirëRR s tregojnë mënyrën se si janë

organizuar(ang.mapping) të dhënat si  Emri_Hostit  –  IpAdresa.Secili mesazh kthyes DNS

 përmban një ose më shumëresource records.Në këtë dhe pjesën e ardhshme do të spejgojmë

shkurt DNS dhe resource records , më shumë detaje mund të gjeni në[Abitz 1993] ose në DNS

RFCs [RFC 1034;RFC 1035].

 Njëresource record përbëhet nga katër rreshta të cilët kanë këto fusha :

(Emri ,Vlera , Tipi ,TTL)

TTL ështëtime to live për resource record  (të dhënave në bazë) pra përcakton kohën kur një e

dhënë duhet të largohet nga kesh memoria.Në shembujt e mëposhtëm ne injorojm fushën e TTL

.Kuptimi i Emrit dhe Vlera varet nga Tipi :

   Nëse Tipi=A,atëherë Emri është emri i hostit(hostname) dhe vlera është IP adresa për 

atë host.Kështu Tipi A i të dhënave jep informatat standarde emri i hostit  – Ip adresa.Si

shembull (relay1.bar.foo.com,143.37.93.126,A) është një e dhënë e tipit A.

   Nëse Tipi =NS ,atëherë emri është domeni(sikur foo.com) dhe vlera është emri i hostit

të një serveri autoritativ DNS i cili din si të merr IP adresat për hostat në domen.Kjo e

dhënë përdoret gjatë rrugëtimit të pyetësorëve DNS në zingjirin e këtyre të fundit.Si

shembull (foo.com,dns.foo.com,NS) është tip NS i të dhënave.

   Nëse Tipi=CNAME ,atëherë Vlera emri i plotë i hostit ndërsa akronimi i këtij emri tëhostit ruhet në fushën Emri.Kjo formë pra jep emrin kanonik të hostit për pyetësorët.Si

në shembull ,(foo.com , relay1.bar.foo.com , CNAME) është një e dhënë CNAME.

   Nëse Tipi=MX , atëherë Vlera është emri kanonik të mail serverit(angl.mail-postë) i cili

ka një shkurtesë të tij që vendoset në fushën Emri. Si shembull është (foo.com.

mail.bar.foo.com,MX) është një e dhënë e tipit MX.Të dhënat MX lejon që emrat e

hostave t’i shënojmë përmes shkurtesave të thjeshta.Kështu me anë të dhënave MX një

kompani mund të përdorë një shkurtesë të tillë për mail serverat dhe për një nga serverët

e saj të tjerë(sikur ëeb serverat).Për me marr emrin e plotë,kanonik të një mail serveri

një klient duhet të kërkojë për një të dhënë MX ndërsa për serverin tjetër duhet të

kërkojë për një të dhënë të tipit CNAME.

 Nëse një server ka autoritetin për një emer të caktuar të hostit atëherë serveri tillë do të ketë një

Tip A të dhnëave për emrin e hostit.(Edhe nëse serveri nuk e ka autoritetin e duhur për një emër 

të caktuar hosti ai prap mund të përmbajë të dhëna të Tipit A në kesh).Nëse server nuk është

autoritativ për atë emër të hostit,atëherë serveri do të përmbajë të dhëna të Tipit NS për domenin

që përfshin edhe emrin e hostit,gjithashtu do të përmbajë një të dhënë të Tipit A i cili tregon Ip

adresën e serverit DNS që ruhet në fushën për Vlerë në rekordin Tipit NS .Si shembull një

Page 53: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 53/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 53

server edu TLD nuk është përgjegjës për hostin gaia.cs.umass.edu.Atëherë ky server do të

 përmbajë të dhënat për domenin i cili përfshinë hostin :

gaia.cs.umass.edu psh.(umass.edu,dns.umass.edu,NS).Serveri eduTLD gjithashtu një të dhënë

tipit A e cila i shoqëron serverit DNS server.dns.umass.edu një IP adrese

 psh.(dns.umass.edu,128.119.40.111,A).

DNS Mesazhet

 Në kapitujt e mëhershëm ne pamë DNS pyetësorët dhe mesazhet si përgjigje të këtyre

mesazheve.Këto janë dy llojet e vetme të DNS mesazheve gjithashtu këto janë në format të

njejët sikur tregohet në figurën 2.23.Semantika e fushave në një mesazh DNS është si në vijim:

  12 bajtat e parë janë në pjesën e headerit  që tregojnë numrin e fushave.Fusha e

 parëështë një numër 16 bita që identifikon këtë pyetësor.Ky identifikues kopjohet në

mesazhet përgjigjëse për pyetësorët e ndryshëm , duke i lejuar klientit me i pranu

 përgjigjet e kërkuara.Janë një numër i  flamujve (angl.flags) në fushën për flamuj.Një

flamur një bit pytësor/përgjigje tregon nëse mesazhi është pyetësor(0) apo

 përgjigje(1).Një flamur 1 bit i quajtur autoritativ tregon nëse serveri është autoritativ për 

emrin e kërkuar në pyetësor.Një flamur 1 bit rekursiv vendoset nëse klienti (hosti apo

serveri DNS) dëshiron që serveri të kryej kërkim rekurziv nëse nuk ka ndonjë të

dhënë.Një bit rekursiv vendoset edhe në përgjigje dhe tregon se serveri përkrahë

rekursionin.Në header  janë gjithashtu katër numra të fushave .Këto fusha tregojnë llojet

e katër tipeve të dhënave që mund të jenë në header .

Figura 2.23 Formati i DNS mesazhit

  Pjesa e pyetjes përmbanë informata për pyetësorin i cili kërkohet.Ky sektorë përmban

(1)një fushë për emrin që përmbanë emrin i cili kërkohet nga pyetësori dhe (2) një fushë

të tipit që përmbanë tipin e pytjes që pyet për emrin  – psh. një adresë të hostit që lidhet

me emrin (Tipi A) ose mail serverin për emrin (Tipi MX).

  Pjesa e përgjigjes nga DSN serveri përmbanëresource records për emrin e kërkuar .Siç e

 pamë në çdoresource record  kemi Tipin(psh. A,NS,CNAME dhe MX),pastaj Vlerën

Page 54: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 54/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 54

dhe TTL.Mesazhi mund të kthejë shumë RRs në përgjigje pasi emri i hostit mund të

ketë shumë IP adresa(psh. për ëeb serverët e replikuar siç është përmendur më herët në

këtë kapitull)

  Pjesa e autoritetit ruan të dhënat për serverët e tjerë autoritativ.

  Pjesa shtesë ruan të dhëna tjera shtesë.Si shembull,fusha e përgjigjes në një pyetësorë

MX përmbanëresource records të cilët ruajnë emrin kanonik të hostit të një mailserveri.Pjesa shtesë përmbanë një të dhënë të Tipit A e cila ka IP adresën për emrin

kanonik të hostit të një mail serveri.

Si do të dëshironit ju të dërgonit një DNS mesazh direkt nga hosti që jeni duke punuar në një

DNS server? Kjo lehtë mund të realizohet me një nslookup program i cili gjendet në shumicën

e platformave Ëindoës apo UNIX.Psh. një host nëËindoës përmes Command Prompt mund të

qaset direkt nënslookup   programin thjeshtë duke shënuar “nslookup”.Pasi të keni thirrur 

nslookup mund të dërgoni DNS mesazhe secilit DNS server(rrënjë,TLD apo autoritativ).Pasi të

ketë pranuar mesazhin nga DNS serveri, nslookup do të shfaqë informatat e pranuara në një

formë të lexueshme për njeriun.Alternativa tjera përveq nslookup janë edhe shumëëeb faqe të

cilët lejojnë përdorimin nga largësia nslookup.(Vetëm shëno “nslookup” në makinën kërkuese

dhe do të drejtoheni për një nga këto faqe).

Insertimi i të dhënave në një bazë të dhënave DNS

Pjesa e mësipërme më shumëështë marrë me mënyrën se si të dhënat merren nga një bazë e të

dhënave DNS.Mund të pyesni se si janë vendosur të dhënat në një bazë të tillë të

dhënave.Shikojmë se si kjo realizohet me një shembull specifik.Supozoni se ju keni themeluar 

një kompani të quajtur Network Utopia.Gjëja e parë që do të bënit do të ishte regjistrimi i emrit

të domenit networkutopia.com në njëregistrar i cili është një grup komercial i cili verifikon nëse

domeni është unik dhe e ruan këtë emër të domenit në një bazë të dhënave DNS(siç do tëdiskutohet më poshtë) dhe për këtë shërbim kërkon një shumë të vogël të parave.Prej vitit 1999

njëregistrar  i quajtur Network Solutions ka pasur monopolin për regjistrimin e domenëve në

.com , .net , .org domenët.Por në ditët e sotit ka shumëregistrar të tillë të cilët akreditohen nga

Internet Corporation for Assigned Names and Numbers(ICANN).Një listëkomplete të e

registrar  të akredituar mund të gjendet nëhttp://www.internic.net .Kur regjistroni emrin e

domenit netëorkutopia.com në njëregistrar  duhet të njoftoni këta të fundit me emrat dhe IP

adresat e DNS serverët autoritativ primar dhe sekondar.Supozojmë se emrat dhe IP adresat janë

dns1.networkutopia.com,dns2.networkutopia.com, 212.212.212.1 dhe 212.212.212.2.Për secilin

nga këta DNS serverëregistrar do të përkujdeset se të dhënat Tipi NS dhe Tipi A të vendosen në

TLD com serverët.Më saktë për serverin autoritativ primar për netëorkutopia.com registrar do tëvendosë në DNS bazën e të dhënave këto informata:

(networkutopia.com, dns1.networkutopia.com, NS)

(dns1.networkutopia.com, 212.212.212.1, A)

Gjithashtu duhet që të sigurohemi të dhënat e Tipit A për web serverinwww.networkutopia.com 

dhe Tipi MX pra të dhënat për mail serverin shënohen në DNS serverin e juaj.(Deri vonë

 përmbajtja e secilit DNS server është ndryshuar në mënyrë statistikore psh. nga një fajll

Page 55: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 55/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 55

konfigurimi i krijuar nga menaxheri i atij sistemi.Ndërsa në kohët e fundit është shtuar opsioni

UPDATE në DNS protokollin i cili mundëson shënimin dhe ndryshimin e të dhënave direkt

 përmes mesazheve DNS.[RFC 2136J dhe IRFC 3007 J tregojnë për këto azhurime dinamike ).

Fokusi në siguri

Pikat e dobëta të DNS

 Kemi parë se DNS është një komponentë shumë e rëndësishme e infrastrukturës së Internetit që ofron shumë shërbime të rëndësishme duke përfshirëËeb dhe email të cilat pra shkurt nuk mund 

të funksionojnë pa të.Prandaj ne mund të pyesim veten si mund të “sulmohet” DNS?A është i

 sigurtë DNS duke parë se në rast të ndonjë sulmi të gjitha aplikacionet në Internet nuk do të 

mund të përdoreshin.Sulmi i parë te i cilin mund  t’a mendojmëështëDDoS bandwidth flooding 

(shiko pjesën 1.6) kundër serverave të DNS.Për shembull një sulmues mund të dërgojë një 

numër shumë të madh të paketave një serveri DNS aq shumë sa shumica e tyre nuk do të mund 

të marrin përgjigje nga serveri.Një sulm i tillë I përmasave të mëdha ndodhi më 21 tetor 

2002.Në këtë sulm u përdorëbotnet për të dërguar numër shumë të madh të ICMP ping 

mesazheve secilit prej 13 DNS serverave kryesor.(ICMP mesazhet spjegohen në kapitullin 4 për 

tani mjafton të dijmë se ICPM paketat janë një lloj i veçantë i IP datagramëve.)Fatmirësisht një  sulm i tillë nuk solli dëme të mëdha dhe pati shumë pak ndikim në shfrytëzuesit e

 Internetit.Sulmuesit arritën të dërgojnë një numër shumë të madh të paketave në serverat 

kryesor por ata ishin të mbrojtur mirë nga filterët për paketa të cilët ishin të modifikuar ashtu që 

të bllokojnë gjithë ICPM ping mesazhet të cilat kishin si destinacion serverat kryesor.Kështu

këta servera ishin kursyer nga sulmi dhe mund të vazhdonin punën pa problem.Për më shumë 

 shumica e DNS serverave ruajtën IP adresat e serverave kryesor dukë mundësuar që procesi i

 përgjigjes së pyetësorëve të bartet direkt në këta serverë kryesor.Një sulm më i dëmshëm DDoS 

kundër serverave të DNS me siguri do të ishte dërgimi i një numri të madh të kërkesave DNS 

 serverëve kryesor psh të gjithë serverave kryesorë të cilët merren me domenin .com.Do të ishte

më i vështirë filtrimi i këtyre kërkesave të cilat janë drejtuar DNS serverëve por prapë në 

 serverët kryesor(top level) nuk mund të qasemi aq lehtë sikur nëroot serverët.Por një sulm i tillë 

mund të mos jetë aq serioz për shkak tëcaching në serverët lokal.

 Ka edhe metoda tjera për të sulmuar një DNS .Sikur sulmi man-in-the-middle ku sulmuesi merr 

 pyetësorët nga hosti dhe kthen  përgjigje të zbrazëta.Në “helmimin e DNS” sulmuesi dërgon

 përgjigje në formë të mesazhe të tilla të ndryshme DNS serverëve duke i mashtruar ata dhe

duke bërë që ata të mbushen me të dhëna të tilla , të panevojshme.Secili nga këto sulme mund të 

 përdoret për të drejtuar një shfrytëzues tëweb në një faqe të caktuar të cilën sulmuesi

dëshiron.Megjithatë këto sulme vështirë mund të realizohen sepse duhet të merren paketat ose

duhet përmes throttling [Skoudis 2006].

 Një sulm tjetër DNS i cili sulmon infrastrukturën e DNS në vend të shërbimeve të tij për të 

inicuar një sulm DDoS kundër hostëve të caktuar(psh. mail serverit të universitetit).Në këtë lloj

 sulmi , dërgohen një numë i madh i kërkesave shumë serverëve autoritativ ku secila nga këto

kërkesa do të ketë një adresë të rreme nga hosti.Kështu DNS serverët i dërgojnë përgjigjet hostit 

tësulmuar.Nëse pyetësorët krijohen në atë mënyrë ashtu që përgjigjia të jetë shumë më e madhe

(në bajta) se kërkesa(i ashtuquajturi amplifikim) atëher sulmuesi mund të “pushtoj” një host të 

caktuar pa pasur nevoj që vetë të ngarkojë trafikun e rrjetit.Por edhe ky sulm nuk ka pasur edhe

aq sukses,deri sot [Mirkovic 2005] .

Page 56: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 56/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 56

 Pra në përgjithësi DNS çuditërisht është treguar mjaftë e fuqishme ndaj sulmeve të ndryshme të 

cilat janë kryer kundër saj.Deri sot nuk ka pasur një sulm i cili do të pengonte shërbimet e

 sistemit DNS edhe pse ka pasur sulme të shumta por të gjitha këto janë evituar me sukses nga

konfigurimi mjaft i mirë i DNS serverëve.

Pasi këta hapa të jenë përfunduar vizitorët mund të shikojnë faqen tonë apo ju mund të dërgoniemail punëtorëve në kompanin tuaj.Të mbyllim diskutimin për DNS duke vërtetuar këtë fjali.Ky

vërtetim na përforcon atë që vetëm e kemi mësuar për DNS.Supozojmë se Alice e cila është në

Australi dëshiron të shohëëeb faqen www.networkutopia.com. Sikur është përmendur edhe më

herët hosti i saj fillimisht i dërgon mesazh DNS serverit lokal.Pastaj ky server lokal do të lidhet

me një TLD com server.(Serveri lokal do të duhej të kontaktonte DNS serverin root(kryesor)

nëse adresa e TLC com serverit nuk është e ruajtur në kesh).Ky TLD server ruan të dhënat e

Tipit NS dhe Tipit A pasi registrar i vendoste këto të dhëna në të gjithë TLD com serverët.TLD

com serveri i kthen përgjigjen DNS serverit lokal të Alice,përgjigje e cila përmbanë dy të dhëna

nga baza(resource records).Serveri lokal DNS pastaj dërgon një DNS pyetësor në 212.212.212.1

duke kërkuar Tipin A të dhënave që i përgjigjet www.networkutopia.com. Kjo e dhënë ka IP

adresën e ëeb serverit të dëshiruar psh. 212.212.71.4 të cilin serveri lokal DNS ia kthen prapa

hostit të Alice.Tani shfletuesi i Alice mund të realizojë një TCP lidhje në hostin 212.212.71.4

dhe të dërgojë një kërkesë HTTP përmes kësaj lidhje.Uhh Ka shumë gjëra që ndodhin në

 prapaskenë gjatë shfletimit të njëweb faqeje. 

2.6 Aplikacionet PEER-TO-PEER 

Aplikacionet e përshkruara në këtë kapitull deri më tani – duke perfshirë web, e-mail dhe DNS –  

të gjitha me arkitekturen klient-server me besim të madh në infrastrukturen e serverave

gjithmonë në shërbim. Rikthim nga seksioni 2.1.1 që me arkitekturën P2P, besimi nëinfrastrukturën e serverave gjithmonë në shërbim është minimal (apo fare). Përndryshe, palët që

lidhen, të quajtur peers (shokë), komunikojnë direkt me njëri tjetrin. Shokët (peers) nuk janë

 pronësi e ndonjë servis provajderi, por janë kompjuterë dhe llaptopë të kontrolluar nga

shfrytëzuesit.

 Në ketë seksion ne do të egzaminojmë tri aplikacione të ndryshme që janë veçanërishtë

të përshtatshme për dizajn P2P. E para është shpërndarja e fajllave, ku aplikacioni shpërndanë

ndonjë fajll nga një burim në një numër të madh të shokëve (peers). Shpërndarja e fajllave është

një vend i mirë të fillojmë investigimet e P2P, pasiqë ekspozohet qartë arkitektura e P2P. Si

shembull specifik për shpërndarjen e

fajllave, ne përshkruajmë sistemin e njohur BitTorrent. Aplikacioni i dytë në P2P që do të

egzaminojmë është një databazë e shpërndarë nëpër një komunitet të madhë të shokëve (peers).

Për këtë aplikacion ne do të eksplorojmë konceptin e “Distributed Hash Table (DHT)”.

Përfundimisht për aplikacionin tonë të tretë, ne do të egzaminojmë Skype, një aplikacion

fenomenalisht i suksesshëm në telefoninë në internet P2P.

Page 57: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 57/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 57

2.6.1 Shpërndarja i fajllave P2P

 Ne fillojmë zhvillimin në P2P duke konsideruar si një aplikacion shum natyral, duke shpërndarë

një fajll të madhë nga një server në një numër të madhë të shokëve (peers).

Fajlli mund të jetë një version i ri i sistemit operativ Linux, një softver për ndonje sistem

operativ egzistues ose aplikacion, një fajll muzike MP3, ose nje video fajll MPEG. Në

shpërndarjen klient-server, serveri duhet të dërgoje një kopje të fajllit në setcilin prej shokëve

(peers)  –  duke ngarkuar shumë serverin dhe konsumuar një sasi të madhe të kapacitetit tëserverit. Në shpërndarjen e fajllave P2P, setcili nga shokët mund të rishpërndajë cilëndo pjesë të

fajllit që i ka arritur tek ndonjë shok tjeter, kështuqë ndihmojnë serverin në shpërndarje të

fajllave. Nga ky shkrim (Vjeshtë 2009), protokolli më i popullarizuar në shpërndarjen e fajllave

P2P është BitTorrent [BitTorrent 2009]. Zhvilluar origjinial nga Bram Cohen (shikoni

intervistën me Bram Cohen në fund të këtij kapitulli), tashmë janë shumë klientë të pavarur 

BitTorrent në përputhje me protokollet e BitTorrent, sikurse janë një numer e klientëve me

shfletues të Web-it që janë në perputhje me protokollet HTTP. Në këtë nënseksion, ne fillimisht

egzaminojmë vetë-shkallëzimin e arkitekturës P2P në kontekstion e shpërndarjes së fajllave. Ne

 pastaj përshkruajmë BitTorrent në detaje.

Shkallëzimi i arkitektures P2P

Për të krahasuar arkitekturën klient-server me arkitekturën peer-to-peer, dhe për të ilustruar 

trashigiminë e vetë-shkallëzimit të P2P, ne tani marrim në konsideratë një model të thjeshtë

sasior për të shpërndarë një fajll në një set të caktuar shokësh (peers) për të dy llojet e

arkitekturave. Siq është paraqitur në figurën 2.24, serveri dhe shokët (peers) janë të lidhur në

internet. Është paraqitur shkalla e ngarkimit të serverit (U s), shkalla e ngarkimit të I-shokësh

(U), dhe shkalla e shkarkimit të I-shokësh (di). Gjithashtu është paraqitur madhësia e fajllit që

shpërndahet (në bit) – F, dhe numri i shokëve që duan të marrin një kopje të fajllit (N). Koha e

shpërndarjes është koha për të marrë një kopje të fajllit në të gjithë N-shokët. Në analizën tonë

mëposhtë të kohës së shpërndarjes, për të dy arkitekturat klient-server dhe P2P, ne bëjmë

supozim të thjeshtë që berthama e internetit ka mjaft kapacitet, duke lënë të kuptohet se të gjitha

 pengesat janë në qasje të rrjetit.

Page 58: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 58/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 58

Figura 2.24 – Një ilustrim i problemit të shpërndarjes së fajllit

 Ne poashtu supozojmë se serveri dhe klientët nuk bashkpunojnë në asnjë aplikacion tjetër të

rrjetave, për këtë arsye i gjith kapaciteti i ngarkimit dhe shkarkimit mund të shfrytëzohet për 

shpërndarje të këtij fajlli.

Së pari të përcaktojmë kohën e shpërndarjes për arkitekturën klient-server, të cilën e

 paraqesim me Dcs. Në arkitekturen klient-server, asnjë nga shokët nuk ndihmon në shpërndarje

të fajllit. Ne bëjmë këto vëzhgime:

  Serveri duhet të dërgoj një kopje të fajllit në setcilin prej N-shokëve. Ashtuqë serveri

duhet të dërgoje NF bita. Prej që shkalla e ngarkimit të serverit është Us, koha për 

shpërndarjen e fajllit duhet të jetë të paktën NF/Us.

  Le të jetë dmin  për shkallën minimale të shkarkimit të shokut (peer),

dmin = min{d1, d p, …, dn}. Shoku (peer) me shkallen e shkarkimit minimale nuk mund ti

 përvetësoj të gjithë F-bitat të fajllit në më pak se F/dmin sekonda. Ashtuqë koha

minimale e shpërndarjes është të pakten F/dmin.

Duke bashkuar këto dy vëzhgime ne fitojmë

{ } 

Page 59: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 59/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 59

Kjo të jep një kufi më të vogël në kohën minimale të shpërndarjes për arkitekturën klient-server.

 Në problemet në detyrat e shtëpisë ju do të tregoni se serveri mundet organizoj dergimin ashtuqë

kufiri i vogël të arrihet. Pra le të marrim kufirin e vogël si kohën e shpërndarjes aktuale, ajo

është,

(2.1)

 Ne shohim nga ekuacioni 2.1 se për N madhësi të caktuar, koha e shpërndarjes klient-server 

është dhënë nga NF/us. Kështuqë, koha e shpërndarjes rritet linearisht me numrin e shokëve N.

Pra, për shembull, nëse numri i shokëve prej një jave në tjetrën rritet për mijëra-herë nga njëmije

në njëmilion, koha e duhur për shpërndarje të fajllit tek të gjithë shokët rritet për 1000.

Le të shohim tani analizën e ngjashme për arkitekturën P2P, ku qdo shok mund të

ndihmojë serverin ta shpërndajë fajllin. Në veçanti, kur një shok pranon disa të dhëna nga fajlli,

ai mund të përdorë kapacitetin e vetë të ngarkimit që të shpërndajë të dhënat tek të tjerët shokë.

Për të kalkuluar kohën e shpërndarjes për arkitekturën P2P është disi më e komplikuar se sa për 

arkitekturën klient-server, pasiqë koha e shpërndarjes varet se si qdo shok shpërndanë pjesët e

fajllit tek shokët e tjerë. Megjithatë, një shprehje e thjeshtë për kohën minimale të shpërndarjesmund të përcaktohet. Për ta caktuar, fillimisht ne bëjmë këto vëzhgime:

   Në fillim të shpërndarjes, vetëm serveri përmbanë fajllin. Për ta marre atë në

komunitetin e shokëve, serveri duhet të dërgojë qdo bit të fajllit të paktën njëherë në

lidhjen e tij. Ashtuqë koha minimale e shpërndarjes të jetë të paktën F/u s. (Përndryshe

nga skema klient-server, një bit i dërguar një herë nga serveri nuk mund të dergohet nga

serveri prap, ndërsa shokët mund të shpërndajnë këtë bit në mes vete.)

  Sikurse në arkitekturën klient-server, shoku me shkallën më të vogël të shkarkimit nuk 

mund të marr të gjith F bitat e fajllit në më pak se F/dmin sekonda. Ashtuqë kohaminimale e shpërndarjes ështe të paktën F/dmin.

  Përfundimisht, kapaciteti total i ngarkimit të sistemit është i barabartë me shkallën e

ngarkimit të serverit plus shkallët e ngarkimit të setcilit shok në vete, kjo është, utotal = us 

+ u1 + ... + un. Sistemi duhet të ngarkojë F bita të setcilit prej N-shokëve, ashtuqë të

dergoj total NF bita. Kjo mund të bëhet me një shkallë më të madhe se u total. Ashtuqë

koha minimale e shpërndarjes është gjithashtu të paktën NF/(us + u1 + ... + un).

Duke bashkuar këto dy vëzhgime, ne fitojmë kohën minimale të shpërndarjes për P2P

} (2.2)

Ekuacioni 2.2 jep kufi më të vogël për kohen minimale të shpërndarjes për arkitekturën P2P. Del

se nëse ne imagjinojmë se setcili shok mund të shpërndajë një bit menjëherë pasi që e pranon një

 bit, atëhere kemi skemen e shpërndarjes që aktualisht arrin këtë kufi të vogël. (Ne do të

Page 60: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 60/86

Page 61: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 61/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 61

Figura 2.25 – Koha e shpërndarjes per arkitekturat P2P dhe klient-server 

BitTorrent

BitTorrent-i është një P2P(Peer to Peer) protokol për shpërndarjen e fajllave[BitTorrent 2009].

 Në gjuhën e BitTorrent-it, koleksioni i te gjithë peer-save që marrin pjesë në shpërndarjen e një

fajlli të caktuar quhet torrent . Peer-sat në torrent shkarkojnë pjesë(chunks) të barabarta nga fajlli

 prej njëri-tjetrit, me një madhësi tipike të këtyre pjesëve prej 256 Kb. Kur një peer se pari kyqet

në një torrent, ai nuk ka pjesëza(chunks). Me kohë ai mbledh shumë pjesëza. Përderisa ai

shkarkon pjesë njëkohësisht transferon(uploads) pjesë tek peer-sat tjerë. Kur një peer arrin të

marr komplet fajllin, ai mund të shkëputet nga torrent-i(egoist) ose mund të qëndroj në torrent

dhe të vazhdoj të transferoj pjesë peer-save tjerë(altruist).Gjithashtu, çdo peer mund të largohet

nga torrent-i në çdo kohë me vetëm disa pjesë dhe më vonë mund të kthehet prapë në torrent tëvazhdoj të shkarkoj pjesën e mbetur.Të vështrojmë tani për së afërmi se si operon BitTorrent-i.

Pasiqë BitTorrent-i është një sistem dhe protokol i komplikuar, ne do të përshkruajmë

mekanizmat e tij kryesor,duke fshehur disa detaje, në këtë mënyrë do të koptojmë më qartë

operimin e Bittorrent-it.Çdo torrent ka një (infrastructure node) që quhet gjurmues(tracker). Kur 

një peer i bashkangjitet një torrent-i, e regjistron vetveten me anë të gjurmuesit dhe periodikisht

e informon atë se ende ndodhet në torrent. Në këtë mënyrë, gjurmuesi mban gjurmë për peer-sat

që marrin pjesë në torrent. Në torrent mund të ketë më pak se dhjetë ose më shumë se mijëra

 peer-sa që marrin pjesë në të njëjten kohë. Siq shihet në figurën 2.26, kur një peer-s i ri, Alice, i

 bashkohet torrent-it, gjurmuesi kuturu(randomly) përzgjedh një nënbashkësi të peer-save(p.sh.

50) nga bashksia e peer-save pjesëmarrës dhe i dergon Ip adresat e këtyre 50 pjesëmarrësve tek 

Alice. Duke poseduar listen e peer-save, Alice tenton të vendos konektime TCP konkuruese me

të gjithë peer-sat në këtë list. Le ti quajmë të gjithë peer-sat me të cilët Alice i a del që të vendos

lidhje peer-sat fqinj(“neighboring peers”) (Në figuren 2.26, Alice shihet të ketë vetëm tre peer -

sa fqinj. Normalisht do duhej tkishte shumë më shumë). Me kalimin e kohës disa nga ata peer-sa

mund të largohen dhe peer-sa të tjerë(jashtë atyre 50 të parëve) tentojnë të vendosin lidhje TCP

me Alice. Kështu peer-sat fqinj të peer-sit do të ndryshojnë me kohë. Në çdo kohë , secili peer 

do të ketë një nënbashkësi nga fajlli, dhe peer-sa të ndryshëm që kanë nënbashkësi të ndryshme.

Page 62: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 62/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 62

Periodikisht, Alice do t’i pyes secilin nga peer -sat fqinj(përmes lidhjes me TCP) pë listën e

 pjesëve që i kanë. Nëse Alice ka L peer-sa fqinj ajo do të përmbaj L lista të pjesëve. Me këtë

njohuri, Alice do të dergoj kërkesat për pjesët që nuk i ka. Kështu në çdo kohë, Alice do të ketë

një nënbashkësi të pjesëve dhe do të dijë se cilat pjesë i kanë fqinjët e saj.Me këto informata,

Alice do të marr dy vendime kryesore. Së pari, se cilat pjesë duhet ti kërkoj nga nga fqinjët e

saj? Dhe se dyti cilit nga fqinjët e tu duhet dergojë kerkesen për pjesëza? Që të vendos se cilën pjesë ta kërkoj, Alice përdor një teknik që quhet Rarest first(më e ralla e para).

Figura 2.26 Shpërndarja e file-it me BitTorrent

Ideja është të përcaktoj, prej pjesëve qe nuk i ka ato pjesë të cilat janë më të rrallat tek fqinjet e

saj(kjo dmth pjesët te cilat kanë më së paku kopje të perseritura në fqinjet e saj) dhe ti kërkoj

këto së pari. Në këtë mënyrë, pjesët e rralla rishpërndahen më shpejt dhe tentojnë të barazojnë

numrin e kopjeve të çdo pjese në torrent.Për të caktuar se cilëve kerkesa Alice duhet tu pergjigjet, BitTorrent-i përdor një algoritëm të

shkëmbimit. Ideja themelore është që Alice tu jep prioritet fqinjeve të cilët janë momentalisht

duke e furnizuar atë me të dhëna në shpejtësinë më të madhe.Kështu për secilin nga fqinjet e saj

Alice vazhdimisht e llogarit shpejtësinë me të

cilen ajo pranon bita dhe përcakton 4 peer-sat te cilët po e furnizojnë atë me bita në shpejtsinë

më të madhe. Pastaj ajo u dergon bita reciprokisht këtyre 4 peer-save. Çdo 10 sekonda, ajo e

Page 63: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 63/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 63

rillogarit shkallën me të cilën pranon të dhëna dhe mund të modifikoj bashkësinë prej 4 peer-

save. Në gjuhën e BitTorrent-it, këto 4 peer-sa thuhet të jenë të pangopura(unchoked). Është me

rëndësi të ceket se çdo 30 sekonda Alice spontanisht zgjedh një fqinj shtesë dhe i dergon pjesë.

Të supozojmë se fqinji I përzgjedhur spontanisht quhet Bob. Në gjuhën e BitTorrent-it, Bob-i

thuhet të jetë (optimistically unchoked). Pasi Alice po i dërgon të dhëna Bobit ajo mund të bëhet

njëra nga top katërshja e Bobit, ku në këtë rast Bobi do dergonte të dhëna tek Alice. Nëse

shkalla me të cilën Bobi dergon të dhëna Alicies është mjaft e lart, atëherë edhe Bobit mund të bëhet njëri nga top kater fqinjet e Alice. Me fjalë të tjera, çdo 30 sekonda Alice do të përzgjedh

spontanisht një partner për shkëmbim të të dhënave dhe do të filloj të shkëmbej të dhëna me të.

 Nëse të dy peer-sat janë të kënaqur me shkëmbimin ata do të vendosin njëri tjetrin në listen e top

4 transferuesve(uploaders) dhe vazhdojnë shkëmbimin me njëri-tjetrin derisa njëri nga ta nuk 

gjen një partner më të mirë. Efekti i kësaj është se peer-sat e aftë që transferojnë në shkallë të

njëjta tentojnë të gjejnë njëri-tjetrin. Selektimi spontan i një fqinji i lejon peer-sat e rinj të marrin

 pjesë(chunks), në mënyrë që të kenë qka të transferojnë. Të gjithë fqinjët tjerë përveq këtyre 5

 janë të ngopur(choked),pra ata nuk marrrin asnjë pjesëz(chunk) nga Alice. BitTorrent-i ka një

numër të mekanizmave interesant të cilët nuk diskutohet këtu, duke përfshir pjesët(mini-chunks),

 piplining, zgjedhja e parë spontane, modi fundi i lojës, anti-snubbing[Cohen 2003].Mekanizmi stimulues për transport qe sapo e përshkruam zakonisht njihet edhe si tit-for-

tat[Cohen 2003]. Është vërejtur se kjo skemë stimuluese mund të evitohet[Liogkas 2006; Locher 

2006; Paitek 2007].Megjithatë ekosistemi i BitTorrent-it është i suksesshëm, me miliona peer-sa

aktiv të cilët që shkëmbejnë fajlla në qindra mijëra Torrent-a. Nëse BitTorrent-i do të dizajnohej

 pa tit-for-tat (ose një variant), ai edhe mund të mos ekzistonte pasiqë shumica e përdoruesve do

të ishin freeriders[Saroiu 2002].

Variante interesante te protokollit te BitTorrent-it janë propozuar[Guo 2005; Piatek 2007].

Poashtu, shumë nga aplikacionet live streaming P2P si psh PPLive dhe PPStream, janë inspiruar 

nga BitTorrent-i[Hei 2007].

2.6.2 HASH TABELAT E DISTIRBUARA(DHTs) 

 Një komponent kritike e shumë P2P aplikacioneve dhe e aplikacioneve tjera të distribuara është

indeksi(kjo është, një bazë e të dhënave e thjeshtë) qe përmban operacione të kërkimit dhe

modifikimit. Kur kjo bazë e të dhënave është e shpërndarë, peer-sat do të fshehin përmbajtjen

dhe dërgimin e pyetsorëve mes tyre. Pasiqë indeksimi i informatave dhe kërkimi është një

komponent kaq kritike në këto sisteme, tani do të shqyrtojmë një teknik të njohur të indeksimit

dhe kërkimit, Hash tabelay e distribuara(DHT).

Të konsiderojmë ndërtimin e një baze të të dhënave të distribuar nëpër një numër të

madh(mundet ehde miliona) të peer-save të cilët mbështesin indeksimin dhe pyetsoret e thjeshtë.

Informatat e ruajtura në bazën tonë të të dhënave do të pëmbajnë qifte të qelsave dhe vlerave.

Për shembull, qelsat mund të jenë numrat e sigurisë dhe vlerat mund të korrespodojnë me emrat

e njerëzve; në këtë rast, një shembull i çiftit çelës-

vlerë do të ishte(156-45-7081,Johnny Wu).Ose çelësi mund të jetë emri i përmbajtjes(p.sh.

emrat e filmave, albumeve dhe softverit), dhe vlerat mund të jenë IP adresa në të cilat është

ruajtur përmbajtja; në këtë rast, një shembull i çiftit çelës-vlerë është(Led Zeppelin IV,

Page 64: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 64/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 64

203.17.123.38). Peer-sat e pyesin bazën e të dhënave duke siguruar çelësin: nëse në bazën e të

dhënave ka çifte(çelës,vlerë) që përputhen me çelësin atëherë baza e të dhënave i kthen peer-sit

qe pyet çiftin që përputhet me çelësin. Kështu, për shembull, nëse një bazë e të dhënave ruan

numrat social të sigurimit dhe emrat e tyre korrespondues, një peer mund të pyes për një numër 

sigurimi të caktuar, baza e të dhënave do të kthej emrin përkatës pra emrin e personit qe ka at

numer të sigurimit. Peer-sat poashtu mund të fusin çifte (çelës,vlerë) në bazën tonë të të dhënave. Ndërtimi i duhur i një baze të të dhënave të tillë bëhet me arkitekturën klient-server për të cilën

të gjitha çiftet (çelës,vlerë) ruhen në një server qendror.Qasja e centralizuar e është përdorur 

edhe me heret tek sistemet P2P si Napster-i. Por problemi është më sfidues dhe më interesant në

sistemet e distribuar të cilat përmbajnë miliona peer-sa të konektuara por pa autoritet qendror.

 Në një sistem P2P, ne duam te distribuojmë çiftet(çelës,vlerë) nëpër të gjithë peer-sat ashtu qe

çdo peer të mbaj një nënbashkësi të të gjitha çifteve(çelës,vlerës,vlerë). Një qasje naive në

ndërtimin e P2P bazës së të dhënave është (1) shpërndarja random e çifteve(çelës,vlerë) nëpër 

 peer-sa dhe (2) të bëjmë që çdo peer të mbaj një listë të IP adresave të gjithë peer-save që marrin

 pjesë. Në këtë mënyrë, peer-si që pyet mund të dergoj pyetjen të gjithë peer-save, dhe peer-sat të

cilët përmbjanë çifte(çelës,vlerë) që përputhen me çelësin mund t’i përgjig jen me këto çifte

 peer-sit që pyet.Kjo qasje është plotësisht e pa shkallëzuar pasiqë do të kërkonte çdo peer të gjej

 peer-sat tjerë(mund të jenë edhe milliona) dhe çka është edhe më keq tu dërgoj çdo pyetsor të

gjithë peer-save.

Tani do të prezantojmë një qasje më të sofistikuar për dizajnimin e P2P bazës së të dhënave. Së

 pari ia bashkangjesim një identifikues çdo peer-si, ku çdo identifikues është një numër I rendit

[ ] Duhet pasur parasysh se Duhet pasur parasysh se çdo identifikues I tillë mund të

shprehet me një n-bit reprezantim.Poashtu të kërkojmë që çdo çelës të jetë një numër I shkallës

së njëjtë. Lexuesi mund të ketë vërejtur se shembujt e çelësave që u përshkruan më heret nuk 

ishin numra. Për të krijuar numra nga këta çelësa do të përdorim hash funksionin qe mapon çdo

çelës(psh numri I sigurimit) në numër mes

[

]Hash funksioni është një funksion një

me shumë për të cilin çdo dy të hyra të ndryshme mund të kenë të njëjtën vlerë dalëse, por gjasa

qe te kenë vlerën dalëse të njëjtë është relativisht e vogël.(Përdoruesit që nuk dine shumë për 

hash funksionet mund të shikojnë kapitullin 7 ku diskutohen në detaje hash funksionet). Hash

funksioni është publikisht I disponueshëm për të gjithë peer-sat në system. Andaj kur I

referohemi një çelësi në fakt I jemi referuar vlerës hash të çelësit original. Kështu për shembull

nëse çelësi original është “Led Zeppelin IV” çelësi do të jetë numri që është I barabart me

hashin e “Led Zeppelin IV”. Gjithashtu, pasi po I përdorim hash-at e çelësave në vend të

çelësave atëherë do ti referohemi bazës së të dhënave të distribuar si Hash tablela e distribuar 

(HDT).

Të marrim parasysh tani ruajtjen e çiftit(çelësi,vlera) në DHT. Qështja kryesore është përcaktimi

I një rregulle për bashkëngjitjen e çelësave peer-save. Kemi thënë se çdo peer ka një numer 

identifikues dhe se çdo çelës është gjithashtu një numër I të njëjtës shkallë, andaj një qasje e

natyrshme do të ishte t’I bashkangjesim çdo peer -si çiftin(çelës,vlerë) identifikuesi I të cilit

është më afër çelësit. Për implementimin e një skeme të tillë duhet të definojmë se çka po

nënkuptojmë me “më I afërt” për të cilën mund të marrim kuptime të ndryshme.  

Le të definojmë peer-sin me të afërt si vlerën suksesive të çelësit. Që ta kuptojmë më mire ti

referohemi një shembulli. Supozojmë se n=4 ashtu që të gjithë peer-sat dhe identifikuesit e

Page 65: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 65/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 65

çelësit janë në mes [0,15]. Në vazhdim të supozojmë se janë 8 peer-sa në sistem me identifikues

1, 3, 4, 5, 8, 10, 12 dhe 15. Se fundi, të supozojmë se duam të ruajmë çiftin çelës-vlerë

(11,Johnny Wu) në njërin nga 8 peer-sat. Poe në cilin peer saktësisht? Pasiqë peer-si I 12 është

vlera suksesive për çelësin 11, ne do të ruajmë çifitn (11, Johnny Wu) në peer-sin 12. [Që ta

kompletojmë definicionin e “më afër” çelësit, nëse çelësi është I barabart me ndonjërin nga

identifikuesit e peer-save, e ruajmë çifitin(çelës, vlerë) në atë peer; dhe nëse çelësi është më I

madh se të gjithë identifikuesit e peer-save ne përdorim modulo e ruajmë çiftin (çelës,vlerë)në indentifikusin më të vogël.]

Tani të supozojmë se një peer, Alice, dëshiron të vendos një çift(çelës, vlerë) në DHT. Ajo së

 pari e gjen peer-sin I cili ka numrin identifikues më afër çelësit, pastaj ajo ia dërgon mesazhin

 peer-sit dhe jep instruksione që ai ta ruaj këtë çift. Por si do ta përcaktoj Alice se cili është peer-

si që ka identifikuesin më afër çelësit? Nëse Alice do të ruante ID dhe IP adresat e peer-save në

sistem ajo do të mund ta gjente peer-sin me të afërt. Por në këtë mënyrë çdo peer duhet të ruante

gjurmë të të gjithë peer-save tjerë në DHT  – e kjo do të ishte shumë jo praktike për një sistem I

cili ka miliona peer-sa.

DHT-ja rrethore

Që të adresojmë këtë problem të shkallës, t’I organizojmë peer -sat në rreth. Atëherë çdo peer-s

do të mbante gjurmë të peer-sit pauses(modulo ). Një shembull I tillë është paraqitur në

figurën 2.27(a). në këtë shembull, n është prapë 4 dhe janë gjithsejt 8 peer-sa sikur në

shembullin paraprak.

Figura 2.27 (a) DHT rrethore. Peer-si 3 dëshiron te përcaktoj kush është përgjegjës për çelësin

11. (b) Një DHT rrethore me shkurtesa.

Çdo peer mban gjurmë të peer-sit pauses; për shembull peer-si 5 e dine ID-në, IP adresën dhe

identifikuesin e peer-sit 8 dhe jo doemos duhet të dijë për peer-sat e tjerë që gjenden në DHT.

Page 66: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 66/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 66

Kjo vendosje rrethore e peer-save është rast special I një rrjeti të mbishtresuar(overlay network).

 Në një rrjet të mbishtresuar peer-sat nga një rrjet logjik abstrakt I cili gjendet mbi nënshtresën e

rrjetit kompjuterik pëmbajnë linqe fizike, ruter dhe hosta. Linqet në një rrjet të mbishtresuar nuk 

 janë linqe fizike por janë lidhje virtual në mes të çifteve të peer-save. Në rrjetin e mbishtresuar 

në figuren 2.27 (a) janë 8 peer-sa dhe b linqe të mbishtresuara ndërsa në atë në figuren 2.27(b)

 janë 8 peer-sa dhe 16 linqe te mbishtresuara. Një link I mbishtresuar përdor shumë linqe fizikedhe rutera fizik në rrjetin nënshtresor.

Duke përdorur rrjetin rrethor në figuren 2.27(a) të supozojmë se peer-si 3 dëshiron të caktoj cili

 peer në DHT përmban çelësin 11[ose për të vendosur ose pyetur për një çift(çelës,vlerë)]. Duke

 përdorur mbishtresat rrethore peer-si 3 krijon një mesazh që thotë: ”Kush është përgjegjës për 

çelësin 11?” dhe e dërgon këtë mesazh tek peer -si pauses, peer-si 4. Kurdo që një peer pranon

një mesazh të tillë, pasiqë e di numrin identifikues të peer-sit pauses të tij e përcakton se a është

ai përgjegjës për çelësin në pyetje. Nëse e vëren se peer-si pauses nuk është përgjegjës për 

çelësin ai thjesht ia dërgon atij mesazhin. Pra për shembull kur peer-si 4 merr mesazhin që pyet

 për çelësin 11, e vëren nga numri identifikues se pasuesi I tij nuk është prgjegjës për atë se

 pasuesi I tij çelës dhe thjeshtë Ia dërgon atij mesazhin, pra peer-sit 5.ky process vazhdon derisa

mesazhi të mbërrij tek peer-si 12, I cili e kupton se është peer-si më I afërt me çelësin 11. Në

këtë pike peer-si 12 I dërgon një mesazh peer-sit të origjinës, pra peer-sit 3 duke e njoftuar se

është përgjegjës për çelësin 11.

Kjo DHT rrethore është një zgjidhje mjaft e mire pasiqë e zvogëlon shumën e informatave të

mbishtresuara që çdo peer duhet të menagjoj.Në veçanti, çdo peer 

është i njohur vetëm me dy peer-sa tjerë, me pasuesin e tij dhe parardhësin e tij.(Peer-si e njeh

 paraardhsin e tij pasiqë ai I dërgon mesazhe). Por kjo zgjedhje sjell një problem të ri. Edhe pse

çdo peer është në dijeni të vetëm dy peer-save fqinj, që të gjej peer-sin përgjegjës për çelës(në

rastin më të keq), të gjithë peer-sat në DHT duhet të të përcjellin një mesazh nëpër rreth;

mesatarisht N/2 mesazhe duhet të dërgohen.

Andaj, në dizajnimin e një DHT-je, është një barazi në mes të numrit të fqinjëve çdo peer duhet

të gjej dhe numrit të mesazheve që DHT-ja duhet të dërgoj për të zgjidhur një pyetje të vetme.

 Në njërën anë nëse çdo peer mban gjurmë të të të gjithë peer-save tjerë (mesh overlay), atëherë

vetëm një mesazh dërgohet për një pyetje por çdo peer duhet të mbajë gjurmë të N peer-save. Në

anën tjetër, me një DHT rrethore, çdo peer mban gjurmë të vetëm dy peer-savefqinj por duhet të

dërgoj mesatarisht N/2 mesazhe për të zgjedhur një pyetje(query). Por fatmirësisht ne mund të

dizajnojmë DHT-në ashtu që numri I fqinjëve për peer dhe numri I mesazheve për pyetje të

mbahet në një sasi të pranueshme. Ky dizajn bëhet duke përdorur rrjetin mbishtresor rrethor si

 bazë dhe të shtojmë “shortcuts” ashtu që çdo peer të mbajë gjurmë jo vetëm të peer -sit pauses

 por poashtu të një numri relativisht të vogël shortcut peer-save të shpërndar nëpër rreth. Një

shembull I një DHT-je të tillë është paraqitur në figurën 2.27(b). Shortcut-at përdoren për të

dërguar mesazhet e pyetsorëve. Kështu kur një peer merr një mesazh që pyet për çelës, ai e

 përcjell atë tek fqinji(fqinji mund të jetë pasuesi ose shortcut fqinj) I cili është më afër çelësit.

Andaj në figurën 2.27 (b) kur peer-si 4 merr mesazhin që pyet për çelësin 11, e kupton se peer-

si më I afërt me çelësin nga fqinjët e tij është peer-si 10. Pra vërejmë se shortcut-at e zvogëlojnë

numrin e mesazheve që duhet dërguar për zgjedhjen e një pyetjeje.

Page 67: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 67/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 67

Pyejta e rradhës është: Sa shortcut duhet të ketë çdo peer dhe cilët peer-sa duhet të jenë shortcut

të peer-sit në fjalë? Kësaj pyetje ju kushtua rëndësi në komunitetin e hulumtimeve[Stoica 2001;

Rowstron 2001; Ratnasamy 2001; Zhao 2004; Maymounkov 2002; Garces-Erce 2003]. U

vërejtë se DHT-ja mund të dizajnohet në atë mënyrë që numri I fqinjëve për këtë peer dhe numri

I mesazheve për pyetje ështv O(logN), ku N është numri I peer-save. Ky dizajnim vendos

kompromis në mes të përdorimit të mesh overlay dhe circular overlay.

Peer Churn

 Ne sistemet P2P, nje PEER mund te vije apo shkoje pa lajmerim. Tutje duke e dizajnuar nje

DHT, ne gjithashtu duhet te jemi te vemendshem per ruajtjen e DHT ne prezencen e llojit te tille

te peer churn. Per te pasur nje parafytyrim me te mire per te kuptuar se si mund te realizohet, le

ta konsiderojme edhe nje here rrethin e DHT ne fig 2.27 (a). Per ta trajtuar peer churn, ne do te

kerkojme secilen peer to track (qe eshte ta dije IP adresen)eshte i pari dhe i dyti pasues; per 

shembull, peer  4 tani "le gjurme" te dyjat 5 dhe peer  e 8. Ne gjithashtu kerkojme secilen peer   qe

ne menyre periodike te verifikojne se eshte qe dy suksese jane gjalle (per shembull, ne menyre

 periodike te dergojne mesazhe ping atyre dhe ti pres ti kthejne pergjigje). Le te konsiderojme qeDHT eshte mbajtur kur nje peer   befas largohet. Per shembull, supozojme peer  5 ne fig. 2.27 (a)

abruptly largohet. Ne kete rast, te dy peers  paraprak peer-in e kaluar  (4 dhe 3) mesojme se 5 ka

qene e kaluar, perderisa me nuk jep pergjegje (nuk reagon) ne ping mesazhet. Peers 4 dhe 3 tutje

kane nevoje per update te pasuesit te informacionit. Le te shihim se si e ben update statusit te tij

 peer  4:

1. Peer  4 zevendeson pasuesin e tij te pare (peer  5) me pasuesin e dyte (peer  8).

2. Peer  4 pastaj pyet pasues e tij te pare (peer  8) per identifikatorin dhe IP adress e pasuesin e tij

te menjehershem (peer 10). Peer   4 pastaj ben peer 10  pasuesin e tij te dyte.Ne problemet e

homeworkut, ju do te duhet te determinoni se si peer 3 e ben update informates mbulese te

tij.Pasi qe e shqyrtuam shkurtimisht se qfare ka per tu bere kur nje peer   largohet, tani le te

shiqojme se qfare ndodh kur nje peer  deshiron te bashkangjitet DHT. Le te themi se nje peer me

13 identifikatore deshiron te bashkangjitet tek DHT, dhe ne momentin e bashkangjitjes, ai din

vetem per peer  e pare 1 ekziston ne DHT. Peer  13 deshirin se pari te dergoje peer 1 nje mesazh,

duke i thene: "Qka do te jete paraardhes dhe pasardhes (pasues)?" Ky mesazh forwardohet

(percillet) nepermjet DHT'se perderisa arrin peer  12, i cili realizon qe ai do te jete paraardhes

dhe qe eshte pasardhes i 13te. Pastaj, peer  12 dergon kete informate paraardhesit dhe pasuesit

tek peer 13. Peer  13 tani mund te ti bashkangjitet DHT-se duke e bere peer  15 pasues e tij dhe

duke e njoftuar peer 12 qe ai duhet te nderroje pasuesin e tij ne 13.

DHT ka gjetur perdorim te gjere ne praktike, Per shembull BitTorrent perdor Kademlia DHT per 

te krijuar nje "traker te trazuar"  Ne BitTorrent, qelesi eshte se identifikatori i torrentit dhe vlera

eshte IP adresa e te gjithe peer te tanishem duke marrur pjese ne torrent [Falkner 2007, Neglia

2007]. Ne kete menyre, duke e shpreh dyshimin e DHT me nje identifikaor torrenti, nje arritje e

re BitTorrent peer  mund te determinoje peer  qe eshte pergjegjes per identifikatore (qe eshte, per 

ti shkuar pas gjurmeve  peers ne torrent). Pasi qe eshte gjetur peer,  peer qe vjen mund te pyes ate

 per nje liste te peer  tjeter ne torrent. DHTs gjithashtu perdoren ekskluzivisht ne eMule sistemin e

file-shperndarjes per permbajtjen e lokacionit ne peer  [Liang 2006].

Page 68: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 68/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 68

2.6.3 Rast Studimi: P2P Telefonia e Internetit me Skype

Skype eshte nje aplikacion pafundesisht i popullarizuar P2P, shpesh me shtate ose tete milion

 perdorues te konektuar (lidhur) ne te, ne te njejten kohe. Ne vend qe te ofroje PC-per-PC

sherbimi i telefonise nepermjet internetit, Skype ofron Pc-per-telefon sherbim i telefonise,

telefon-per-PC sherbim i telefonise, dhe PC-per-PC sherbimi i video konferencave. E gjetur ngate njejtat individe te cilet krijuan FastTrack dhe Kazaa, Skype u kerkua nga eBay in vitin 2005

 per 2.6milione dollare $.Skype perdor P2P teknika ne nje numer te menyrave inovative, ne

menyre te mire duke ilustruar se si P2P mund te perdoret ne aplikacione qe shkojne pas

shperndarjes se permbajtjes dhe shperndarjes se fajllave. Siq eshte me mesazhe te shpejta, PC-

 per-PC telefonia nepermjet internetit eshte e trasheguar P2P, ne berthame te aplikacionit, pjeset

e perdoruesve komunikojne me njeri tjetrin ne kohe reale. Por Skype gjithashtu puneson teknikat

P2P per dy funksione tjera te rendesishme, te emeruara, per vendndodhjen e perdoruesit dhe per 

transverzalen NAT.Jo vetem protokollet e regjistruara te Skype, por te gjitha transmisionet e

 paketave (paketat e zerit dhe kontrollit) jane te enkriptuara. Nevertheless, nga Website i Skype

dhe nje numer i studimeve, hulumtimeve kane mesuar sesi Skype ne menyre gjenerale punon

[Baset 2006; Guha 2996; Chen 2006; Suh 2006; REn 2006]. Sikur me FastTrack, nyjet ne Skype

 jane te organizuara ne rrjet

hirearkike overlay, me secilen peer   te klasifikuar si nje super peer  apo nje peer   te zakonshme

Skype perfshin nje index qe paraqet perdoruesit e Skype ne IP adrese te tanishme (dhe numrat e

 portit).

Ky indeks eshte i distribuuara nepermjet super peers.  Kur Alice deshiron ta therras Bob-in,

kerkimet e klientit ne Skype indeksin e distriboura per te determinuar Ip adresen e tanisme te

Bob-it.Pasiqe protokolli i Skype eshte i regjistruar, nuk eshte e qarte tani se si planifikimet e

indeksit jane te organizuara rreth super peers, edhepse disa nga organizimi i DHT eshte shume e

mundshme..P2P teknikat jane gjithashtu te perdorshme ne "transmetimet" e Skype, te cilat jane

te perdorshme per krijimin e thirrjeve nepermjet hostave ne rrjetin e shtepise. Shume

konfiguracione te rrjetit shtepiak ofrojne akses ne internet nepermjet ruterit (ne menyre tipike

nje ruter i wirelessit). Keta rutera aktualisht jane me shume se rutera, dhe ne menyre tipike

 perfshijne te ashtuquajturen perkthyes i rrjetit te adresave (NAT). Ne do ta shtjelojme NATs ne

kapitullin 4. Per tani, e tere ajo qe na nevoitet te dijm eshte se NAT parandalon nje host nga

 jashte rrjetit shtepiak nga inicimi i lidhjes per nje host perbrenda. Nese te dyjte thirresit e Skype

kane NAT, atehere ekziston nje problem-asnjeri smund te pranoje nje thirrje iniciuar nga tjetri,

duke e bere nje thirrje me sa duket e pamundur. Perdorimi i menqur i super peers  dhe

transmeton ne menyre te mire zgjedh kete problem. Supozojme se Alice hin ne linje, ajo eshte

caktuar nje jo NATuar super peer. Alice mund te filloje nje sesion per super peer   qekur NAT i

saj vetem e ndalon sesionin e filluar nga jashte rrjetit te shtepise. Kjo lejon Alice dhe super peer  

te shkembejne mesazhet e kontrolluara nepermjet ketij sesioni. E njejta ndodh me Bobin, kur ai

hyn ne linje. Tani, kur Alice deshirin ta therrase Bob, ajo informon super peer   e saj, i cili

informon super peer  e Bob's, i cili informon Bobin per ardhjen e thirrjes nga Alice. Nese Bob e

 pranon thirrjen, te dy super peers selektojne nje NAT-e te trete super peer-the transmeton nyje-

 puna e te cilit do te jete te tranmetoje te dhenat ne mes Alice dhe Bob. Super peers e Alice dhe

Page 69: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 69/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 69

Bob-it pastaj udhezon Alice dhe Bob respektivisht per te iniciuar nje sesion me transmetim.

Alice pastaj e dergon paketen e zerit per ne transmeton nepermjet te lidhjes Alice-to-relay (e cila

u inicua nga Alice), dhe transmetimi pastaj forwardon (shperndan) keto paketa nepermes

transmetimit-ne lidhjen e Bobit (e cila u iniciua nga Bob); paketat nga Bob dhe Alice rrjedhje

nepermjet te njejtave transmetime idhjes ne te kunderten. Dhe voila!-- Bob dhe Alice kane ne

demand end-to-end lidhjen edhepse asnjeri smund te pranoje nje sesion me origjine nga jashte

LAN-it te tij. Perdorimi i "transmetimit" ilustro rritjen e dizajnit te sofistikuar te sistemit P2P, ku peers  performojne sherbimin sistem themelor (berthame) per tjerat (sherbimin e indekseve dhe

duke qene transmetuar dy shembuj) perderisa ne te njejten kohe ata vete perdorin nje servis end-

user (per shembull downloadimi i fajllave), telefonija IP) duke qene te siguroje nga nje sistem

P2P.

Skype ka qene nje aplikacion i gjere i internetit, duke shperndare "fjale per fjale" dhjetera e

miliona perdoruesve. Befasimi i shpejte dhe eshte perhapur adoptimi i Skype, nje P2P

shperndarje e fajllave, Webi, dhe mesazhimi i shpejte para tyre, eshte nje testim tregues per 

menquri te dizajnit arkitektonik te pergjithshem te internetit, nje dizajn qe nuk mund te shihet

 perpara zgjerimin e pasur e setin e aplikacioneve te internetit qe do te zhvillohet ne 30 vjetet e

tjera. Sherbimet e ofruara te networkut (rrjetit) ne aplikacionet e internetit--connectless datagramtransport (UDP), connected-oriented  i besueshem  datagram transfer (TCP), interfejsi prize,

adresimi, emerimi (DNS), rreth tjerave-kane deshmuar mjaft per te lejuar qindra aplikacione per 

tu zhvilluar. Qekur keto aplikacione kane qene te gjitha "shtrirjet" ne maje te kater "shtrirjet"  

ekzistues te internet protokolit te grumbulluar, ata perfshijne vetem zhvillimin e serverit te

klientit te ri si te softweri peer-to-peer per perdorim ne sistemin e fundem. Ky ka lejuar keto

aplikacione te jene ne menyre rapide vendosen dhe te adaptohen.

2.7 Programimi I Socket-it me TCP

Tani qe kemi shikuar nje numer te aplikacioneve te rrjetit, le te eksplorojme (hulumtojme)

 programet e aplikacionit te rrjetit jane te shkruara. Ne kete sesion ne do te shkruajme programe

te aplikacionit qe perdorin TCP; ne sesionin percjelles ne do te shkruajme programe qe perdorin

UDS.Te kujtojme Sesionin 2.1 ku shume aplikacione te rrjetit perbehet nga nje pale

 programesh- nje program i klientit dhe nje program serveri-rri ne dy sisteme te ndryshme. Kur 

keto dy programe ekzekutohen, krijohet procesi i serverit dhe klientit, dhe keto procese

komunikojne me njera tjetren duke lexuar nga ajo dhe duke shkruar ne "prize".  Kur krijohet nje

aplikacion i rrjetit, qellimi kryesor i zhvillimit eshte te shkruaje kodin per te dy: klientin dhe

 programin e serverit.

Keto jane dy lloje te te aplikacionit te rrjetit. Njeri lloj eshte nje implementim i standardit te

 protokolit te definuar, per shembull, nje RFC, Per kete lloj implementimi, klienti dhe

 programet e serverit duhet te pershtaten rregullave diktoje nga RFC. Per shembull, programi i

klientit mund te ishte nje implementim i anes se klientit nga FTP protokolli, i cili eshte i

 pershkruar ne Sesionin 2.3 dhe ne menyre eksplicite (te caktuar) te definuar ne RFC 959; ne

menyre te njejte programi i serverit mund te jete nje implementim i FTP server protokollit,

gjithashtu ne menyre eksplicite te definuar ne RFC 959. Nese nje zhvillues shkruan kod per 

 programin e klientit dhe nje developer individual shkruan kod per programin e serverit, pastaj te

dy programet do te jene ne gjendje interoperojne. Ne te vertete, ne aplikacionet e sotme te rrjetit

Page 70: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 70/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 70

duke e perfshire komunikim ne mes klientit dhe program serverit qe kane qene te krijuara nga

zhvillues individuale--per shembull, nje komunikim i browserit Firefox me nje Web server 

Apache, ose nje FTP klient ne nje fajll te uploaduar ne PC, ne nje server Linux FTP. Kur nje

klient ose program server implementon nje protokoll te definuar ne nje RFC, ai duhet te perdor 

numrin e portit ne asociim me protokollin. (Numrat e portit kane qene shkurter te permbledhur 

ne Sesionin 2.1. Ata jane te mbuluar apo permbledhur detajisht ne kapitullin 3)Lloji tjeter i aplikacionit te rrjetit eshte nje aplikacion i rrjetit te duhur. Ne kete rast protokolli i

aplikacionit shtrese i perdorur nga klienti dhe programet e serverit nuk kane nevoje te

konfirmojne ne asnje RFC ekzistuese. Ne zhvillues i vetem (ose grup zhvilluesish) krijojne te dy

klientin dhe program serverin, dhe zhvilluesi ka kompletuar kontrollen se qfare shkron

(shkruhet) ne kod. Por pasiqe kodi nuk e implementon nje protokoll domen, tjere developer 

ndipendent nuk do te jene ne gjendje te zhvilloje kodin qeinteroperon me aplikacionin. Kur 

zhvillon nje aplikacion te caktuar, zhvilluesi duhet te jete i kujdesshem qe te mos perdor njerin

nga numrat e portit te njohur te definuar te RFC.Ne kete dhe sesionin e ardhshem, ne

egzaminojme qeshtjet kyqe zhvillimin e aplikacionit te server-klientit. Gjate fazes se zhvillimit,

njeri nga vendimet e para eshte qe zhvilluesi duhet te beje eshte qe nese aplikacioni te kaloje

mbi TCP ose

UDP. Kujtojme se TCP eshte lidhje e orientuar dhe siguron nje kanal bajt-stream te besueshem

nepermjet te cilit te dhenat rrjedhin nepermjet dy end sistemeve. UDP eshte i pa lidhur dhe

dergon paketa te pavarura te te dhenave nga nje sistem i fundem tek tjetri pa asnje garancion per 

dorezimin (shperndarjen).

 Ne kete sision ne zhvillojme nje aplikacion te thjeshte te klientit i cili drejtohet me TCP;nne

sesionin tjeter, ne zhvillojme nje aplikacion te thjeshte te klientit i cili drejtohet me UDP. Ne

 prezentojme keto apliakacione te thjeshta TCP dhe UDPne Java. Ne do mund ta shkruanim

kodin ne C ose C++, por ne zgjedhem Java-n me shume sepse aplikacionet jane me te qarta dhe

teresisht te shkruara ne Java. Me Java jane me pak rreshta kodi, dhe secili rresht (linje) mund te

shpjegohet per programeret fillestar pa shume veshtersi. Por nuk ka nevoje per frikesim nese ju

nuk jeni familjar (te njohur) me Java. Ju duhet te percillni kodin nese keni pervoje me

 programim ne ndonje gjuhe tjeter programuese.Per lexuesit te cilet jane te interesuar ne

 programimin e klient serverit ne C, keto jane disa referenca te mira ne dispozicion [Donahoo

2001; Stevens 1997; Frost 1994; Kurose 1996].

2.7.1 Socket Programming with TCP

Perkujto nga kapitulli 2.1 qe proceset që punonë në makina të ndryshme komunikojnë me njeri

tjetrin duke dërguar mesazhe në “socket”. Ne thamë që qdo process ishte I ngjashëm me shtëpi

dhe socket I procesit ishte I ngjashëm me deren. Siq shihet ne figurën 2.28, socket është dera në

mes të procesit të aplikacionit dhe TCp. Zhvilluesi I aplikacionit ka kontroll në qdo gjë të socket

në shtresen aplikative; sidoqoftë, ka shum pak kontroll në shtresen transportuese. ( Më e shumta

që mund të bëjë zhvilluesi i aplikacionit është që rregullojë disa parametra të TCP, siq është

madhësia makismale e buffer dhe madhësia maksimale e segmenteve).

Page 71: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 71/86

Page 72: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 72/86

Page 73: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 73/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 73

Figura 2.30 Aplikacioni klent – server,duke përdorur shërbimet e transportit të lidhjes orientuese

 Në mënyrë që të theksojmë çështjet kyçe, ne qëllimisht sigurojmë që kodi të jetë me vend."Good

code" ("Kodi i mirë") padyshim do të kishte edhe disa rreshta ndihmës më shumë. Kur dy programet janë përpiluar në host-at e tyre përkatës, programi i server-it së pari është ekzekutuar 

në host-in e server-it., i cili krijon një proces të server-it në host-in e server-it. Siq e diskutuam

më sipër, procesi i server-it pret që të kontaktohet nga procesi i klientit.

 Në këtë shembull të aplikacionit, kur programi i klientit është ekzekutuar, krijohet një proces te

klienti, dhe ky proces menjëherë kontakton server-in dhe krijon një lidhje TCP me të. Përdoruesi

tek klienti pastaj mund të përdorë aplikacionin për të dërguar një rresht dhe për të marrë një

version të kapitalizuar të rreshtit.

TCPClient.java

Këtu është kodi i aplikacionit për anën e klientit:

import java.io.*;

import java.net.*;

class TCPClient {

 public static void main (String argv [] ) throws Exception

{

Page 74: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 74/86

Page 75: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 75/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 75

Figure 2.31.TCPKlienti ka tre stream-a me karakter flow

Le të shohim tani rreshta nga më të ndryshëm në kod.

import java.io.*;

import java.net.*;

 java.io dhe java.net janë paketa të Java. Paketa java.io përmban klasa për stream-a hyrës dhe

dalës. Në veqanti paketa java.io përmban klasat BufferedReader dhe DataOutputStream, klasat

të cilat programi i përdor për të krijuar 3 stream-at që ilustruam më heret. Paketa java.net

siguron klasa për mbështetje të rrjetës. Në veqanti, përmban klasat Socket dhe ServerSocket.

Objekti clientSocket i këtij programi është i nxjerrur(përfituar) nga klasa Socket.

class TCPClient {

 public static void main ( String argv [] ) throws Exception

{.......}

}

Deri këtu, çka ne kemi parë janë gjëra të standardit (standard stuff) që ju i shihni në fillimin e

shumicës së kodeve të Java-s. Rreshti i tretë është fillimi i bllokut të definimit të klasës. Fjala

class e fillon definimin e klasës për klasën e emëruar TCPClient. Klasa përmban variabla dhe

metoda. Variablat dhe metodat e klasës janë të futura në kllapat gjarpërore të cilat fillojnë dhe

 përfundojnë bllokun e definimit të klasës. Klasa TCPClient

Page 76: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 76/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 76

nuk ka variabla të klasës por ka saktësisht një metodë,metodën main( ). Metodat janë të

ngjajshme me funksionet ose procedurat në gjuhët si C; metoda main( ) gjuhën Java është e

ngjajshme me funksionin main ( ) në C dhe C++. Kur Java interpretuesi ekzekuton aplikacionin

(duke u thirrur në klasën e kontrolluar të aplikacionit ), fillon duke e thirrur metodën main( ) të

klasës. Metoda main ( ) pastaj i thërret të gjitha metodat tjera të nevojshme për të drejtuar 

aplikacionin. Për këtë hyrje të programimit socket në Java, ju mund të injoroni fjalët kyçe si public,static,void,main, and throws Exceptions(ndonëse ju duhet t'i përfshini ato në kod).

String sentence;

String modifiedSentence;

Këta dy rreshtat e mësipërm deklarojnë objektet të tipit String. Objekti sentence është i tipiëzuar 

string nga përdoruesi, dhe dërgohet tek serveri. Objekti modifiedSentence është string i marrë

nga server-i dhe dërgohet tek standard output-i(monitori) i perdoruesit.

BufferedReader inFromUser = new BufferedReader (

new InputStreamReader(System.in));

Rreshti i mësipërm krijon objektin e stream-it inFromUser të tipit BufferedReader. Stream-i

hyrës është inicializuar me System.in, e cila e lidh stream-in me standard input(hyrjen

standarde). Komanda lejon klientin të lexojë tekstin nga tastiera e tij.

Socket clientSocket = new Socket("hostname",6789);

Rreshti i mësipërm krijon objektin clientSocket të tipit Socket. Gjithashtu starton konektimin

TCP nëpërmes klientit dhe server-it. Stringu "hostname" duhet të zëvendësohet me hostname-in

e server-it (për shembull,"apple.poly.edu"). Para se konektimi TCP të jetë aktualisht i startuar,

klienti kryen DNS lookup-in në hostname që të marrë IP-adresesën e hostit. Numri 6789 është

numri i portit. Ju mund të përdorni numër të ndryshëm të portit, por ju duhet të siguroheni që të

 përdorni po të njejtin numër të portit në anën e severit të aplikacionit. Siq u diskutua më heret,

IP-adresa e hostit së bashku me numrin e portit të aplikacionit identifikojnë procesin e serverit.

DataOutputStream outToServer =

new DataOutputStream(clientSocket.getOutputStream( ));

BufferedReader inFromServer =

new BufferedReader( new inputStreamReader(

clientSocket.getInputStream( )));

Dy rreshtat e mësipërm krijojnë objekte stream të cilat janë të lidhura në socket. Streami-i

outToServer siguron process output në socket. Streami-i inFromServer siguron process input

nga socket-a(shiko Figure 2.31).

sentence = inFromUser.readLine( );

Page 77: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 77/86

Page 78: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 78/86

Page 79: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 79/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 79

2.8 Programimi i soketeve me UDP

 Ne mesuam paraprakisht se kur dy prcese komunikojne nepermjet Tcp ,eshte per arsye se

ekziston nje tub ndermje dy proceseve.Ky tub nenkupton nje vend deri sa dy proceset ta mbyllin

ate.Kur njeri nga proceset deshiron te dergon disa bita ne procesin tjeter thjesht I dergon bitat ne

tub..Procesi I derimit nuk eshte envojshme te oermbaj nje adres derguese per bajtat sepse tubilogjikisht eshte I lidher me cakun.Permeteper tub deshmon nje rrjedhje te bitave ne program

duke marrurr bitat qe derguesi I fut ne tub.Udp poashtu lejon dy e me shum procese te cilat

 punojne ne perdorues te ndryshem.Megjithate Udp eshte e ndryshme nga tcp ne menyra te

ndryshme.Mesepari,Udp eshte nje lidhje qe nuk ka te beje me takim te duarve kur tubi eshte I

aktivizuar ne dy proceset.Meqense UDP nuk ka nje tub kur procesi deshiron tju dergoje bita ne

 procesin tjeter,procesi I dergimit duhet ti tregohet caku ne procesin e adresave me shum

 bita.Dhe jo duhet te behet per secilin grumbull te bitave ne prcesin e dergimit.Nje analogji me

 jeten e perditshme eshte nese 20 persona marrim 5 taksi ne vendin e njejt perderisa njerzit hipin

ne taksi qdo taksist duhet te informohet per ccakun e arritjes.Prandaj Udp eshte e ngjashme me

sherbimine e taksive.Destinacioni I adresave ka te beje me pershtatje e ip adrses se cakut dhenumrin e portit qe qe caku proceson.Ne I referohemi nje grumbulli te bitave te informit se

 bashku me destinacionin e adresave ip dhe numrin e portit si ‘’paket’’.Udp deshmon nje

mesazh te orentuar jo real qe ben perpjekje te shperndaj nje grumbull bitave ne nje destinacion

te caktuar.Eshte nje mesazh I orentuar se ne grumbull te bitave jan derguar ne nje zero te vetem

ne anen e dergimit,do te dergohet si grumbull ne anen e marrjes;per dallim ne tcp rrjedhja e

 bitave shkon ne menyr semantike.Sherbimi I Udp eshte perpjekja me e mir qe e ben UDP qe nje

numer I grumbulluar I bitave te shperndahen.Sherbimi I udp nepermjet formave te ndyrhsme

me tcp bejne rrjedhjen e bitave ne shebim modeli.Pas krijimit te paketave procesi I dergimit e

fut paketen ne rrjet neper soketit.Duke vazhduar me lidheshmerin me taksit ne anen tjeter te

dergimit te soketit eshte dikush duke pritur paketen.Me pas taksi vozit paketen ne cakun e

caktuar.Megjithate taksi nuk garanton qe do te marr pakten dh eta dergoj ne vedin e deshiruar 

sepse aim und te ket problem te pa parashikuara.Prandaj Udp deshmon nje sherbim transporti jo

real perderisa udhtimi vazhdon dhe paketa permab jo siguri ne arritjen ne cak.Ne kete tregim ne

e ilustruam programimin me soket duke rizhvilluar aplikacionin e njejt me ate paraprak mirpo

ksaj rradhe ne perfundim te udp.Ne do te shikojme se kodi per udp eshte shum me ndryshe se tc

 p ne forma te rendeshishme.Ne veqanti ska takim duarsh ndejmjet dy proceseve dhe ska nevoj

 per soket mirseardhesh,ska rjedhje te lidhura per soket ,dergusit krijojne pakta duke perfshir ip

adresen dhe numrin e portit per qdo bite qe dergon dhe procesi I marrjes duhet te permbaj qdo

 paket me informacione te bitave.Perserisim dhe nje her nje aplikacion te thjesht:

1.Nje klient lexon nje rresht nga nje linje satndarde(tastatur) dhe nje linje te dyt qe eshte soketi

ne server.

2.Serveri lexon nga nje rresht prej sokteti.

3.Serveri e konverton linjen ne qeshtje me te madhe

4.Serveri dergon linjen e modifikuar jasht nga soketi te klienti.

5.Klienti lexon linjen e modifkuar nga soketi dhe e paraqet ate ne monitor.

Page 80: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 80/86

Page 81: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 81/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 81

DatagramPacket(receiveData,receiveData.length);

clinetSocket.receive(ReceivePacket);

String modifiedSentence =new String(receivePacket.getData());

System.out.println(“FROM SERVER:”+modifiedSentence); 

clientSocket.close();

}

}

Programi UDPClient.java ndërton një rrjedhoj dhe një soket, siq është e treguar në Fig.2.33.

Soketi është emruar si clientSocket, dhe është tip i DatagramSocket. Kujtojmë se UDP përdor 

lloje të ndryshme të soketave se sa TCP te klienti. Në veqanti , me UDP klienti perdor 

DatagramSocket,ndërsa me TCP klienti perdot Socket. inFromUser është rrjedh e të dhënave

në program; është I bashkangjitur të dhënave standarte, kjo ështe,te dhena nga tastiera.Ne kemi

një rrjedhje ekujvalente n@ versionin e TCP – s të progtamit. Kur përdoruesi shenon karakteret

nga tastieran, karakteret rrjedhin në nivelin e inFromUser.Por në krahasim me TCP , këtu nuk 

ka nivele(te hyra apo te dalura)të bashkngjitura ne soket.Në vend të furnizimit të bajtave të

nivelit të bashkangjitur në objektin e Soketit, UDP mund të vendos paketa individuale neobjektin e DatagramSocket.

Ti shohim disa pjesë te kodit që ndryshojn konsiderushem nga TCPClient.java.

DatagramSocket clientSocket = new DatagramSocket () ;

Kjo pjesë krijon objektin clientSocket e tipit DatagramSocket.Në contrast më TCPClient.java,

kjo pjesë nuk do të filloj TCP lidhjen.Në veqanti, pjesa e klientit nuk kontakton me serverin

 përderisa ekzekutohet kjo linjë. Për këtë arsye, konstruktori DatagramSocket () nuk e merr 

emrin e serverit apo numrin e portit si argument. Duke përdorur nje tub hyrje analogjike,

ekzekutimi I linjes paraprake krijon një hyrje per procesin e klientit po nuk krijon nje

transmetim në mes të dy proceseve .

InetAddress IPAddress = InetAddress .getBYName(“hostname”); 

Page 82: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 82/86

2.1 Principet e aplikacioneve të rrjetës 

Faqe 82

Figura 2.33 UDPklienti ka një stream;socket-i pranon paketat prej procesit dhe shpërndan

 paketat në proces.

Që të dergojm bajta në destinacionin e procesit, ne na duhet adresa e procesit.Pjesë e kësaj

adrese edhe IP adresa e destinacionit bartës. Linja paraprake përfshin DNS qe transmeton

hostname-in(në këtë shembull, furnizuar në kod nga zhvillimet) në një IP adres. DNS ishtegjithashtu I përfshir nga verzioni TCP te klientit, ndonëse ishte zgjethur në menyr implicite

me teper se sa në atë eksplicite.Metoda getByName () merr si argument hostname e serverit

dhe e kthen IP adresen e serverit të njejt.E vendos këtë adres ne objektin e IPAdress e tipit

InetAdress.

Byte [ ] sendData =new byte[1024];

Byte[ ] reciveData=new byte[1024];

Bajtat e vargjeve sendData dhe reciveData mund të mbajn daten , të hyrat dhe dalurat e

klientit,përkatësisht.

sendData = sentence.getBytes ();

Linja paraprake në thelb interpreton tipin e konvertimit.Merr vargun e fjalis dhe e riemron at

si sendData,që është një grup i bajtave.

DatagramPacket sendPacket =new DatagramPacket

(sendData,sendData.length,IPAddress,9876);

Page 83: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 83/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 83

Kjo linjë ndërton paketën, sendPacket, më të cilen klienti mund të futet ne rrjet përmes

soketit. Kjo paketë perfshin at datë që përfshin në paket,sendData,kohëzgjatje e kësaj date, IP

adresen e serverit, dhe port numërin e aplikacionit(cila është 9876).Kujtojm se sendPacket

është tip i DatagramPacket.

clientSocket.send(sendPacket);

 Në linjën paraprake , metoda send() e objektit clientSocket. Merr paket e vetem që ta ndërtojdhe ta fus atëne rrjet përmescilent Socket.Edhe një herë kujtojm se UDP dërgon linjat e

karaktev ne mënyrëa shumë të ndryshme nga TCP. TCP thjesht inserton stringet e karaktereve

në nivel,e cila ka një lidhje logjike direkte me serverin.;UDP krijon paketa qe perfshin adresen e

serverit. Pasi te dergohet paketa, klienti prêt që të pranoj paketen nga server.

DatagramPacket receivedPacket =new

DatagramPacket(receiveData,receiveData.length);

 Në linjën paraprake ,përderisa klienti prêt për pranimi e paketes nga serveti ,ai krijon një

vendëpranim për paketm, receivePacket,një object I tipit DatagramPacket.clinetSocket.receive(ReceivePacket)

Kur e merr paketen, e vendos atë në receivePacket.

String modifiedSentence =

new String(receivePacket.getData());

Linja paraprake nxjerr daten nga receivePacket dhe ekzekuton tipin e konvertimit,konvertimin

e nje grup bajtave ne string modifiedSentence.

System.out.println(“FROM SERVER:”+modifiedSentence); 

Kjo linjë, që është gjithëashtu prezente ne TCPClient, shtyp jasht stringut modifiedSentence ne

monotorin e klientit.

clientSocket.close();

Kjo linjë e fundit e mbyll soketin.Sepse UDP është e konektushme , kjo linjë nuk e detyron

klientin te dërgoj mesazhe transporuse te server(ne kundershtim me TCPClient).

UDPServer.java

Le te shohim pjesën e serverit te aplikacionit:

Import java.oi.*;

Import java.net.*;

Class UDPServer {

Public stasic void main(String arg []) throws Exception

{

Page 84: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 84/86

Page 85: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 85/86

KAPITULLI 2-Shtresa e aplikacionit

Faqe 85

Linja paraprake nderton DatagramSocket serverSocket ne portin 9876.Të gjitha datat e derguara

dhe të pranuara kalojnë perms soketit.Sepse UDP me pak I konektushem, nuk kemi te krijom

një soket të ri e te kerkojm një rrjet të ri , siq bëm te TCPServer.java.

String sentence =new String(receivePacket.getData());

InetAddress IPAddress =receivePacket.getAddress();

int port = receivePacket.getPort();

E para linjë heq daten nga paketa dhe e vendos daten ne Stringsentence; ka nje lidhje analoge

me UDPClient.|E dyta linjë heq IP adresen , e treat linjë heq port numërin e klientit , I cili është

zgjedh nga klienti dhe është ndyshe nga port numëri 9876 I serverit.(Do ta diskutojm port

numërin e klientit në disa detaje në kapitullin tjetër).ështe e nevojshme per serverin të siguroj

adresen (IP adresen dhe port numërin) e klientit.Kjo e kompleton analizen tone të UDP

 programit.Që të testosh aplikacionin ju duhet të instaloni dhe hartoje UDPClient.java në një

host dhe UDPServer në një tjeter host.Pastaj ekzekuto të dy programet n@ hostat e tyre

 përkatës.Ndryshe nga me TCP, ju mund të ekzekutoni së pari pjesen e kilentit pastaj atë të

serverit.Kjo ndodhë sepse procesi I klientitn nuk përpiqet që të filloj lidhjen me server kur ju eekzekutoni klient programin.Njëherë ju ekzekutoni klient dhe server programin, ju ndoshta

mund të perdorni aplikacionin duke zgjedhur linjat të klienti.

Page 86: 2_Kapitulli 2.pdf

7/27/2019 2_Kapitulli 2.pdf

http://slidepdf.com/reader/full/2kapitulli-2pdf 86/86

2.1 Principet e aplikacioneve të rrjetës