OSI Shtresa 4 – Transporti

Shtresa 4 e OSI-t quhet Transport Layer (Shtresa e Transportit) dhe ne baze te protokolleve qe perdoren ne te, ajo kryen inkapsulimin e blloqet e te dhenave te krijuara nga aplikacionet ne segmente dhe datagrame (vini re, tani nuk quhen me paketa por segmete dhe datagrame) nga nje host ne nje destinacion tjeter.
Pse quhen segmente e datagrame e jo me paketa?
Sepse qe te kryhet transporti ne menyre te kuptueshme dhe pa gabime duhet qe mesazhet (po perdor kete si term te pergjithshem) te jene te kuptueshem edhe nga shtresa 4 e rrjetit ku gjendet destinacioni e per me teper keto mesazhe duhet te plotesojn disa kushte qe percaktohen nga protokolli qe jane duke perdorur (psh UDP) , ne munges te kesaj qe thash nuk do kishte sherbim TCP\IP, UDP e keshtu me rradhe.
Kjo shtrese (Transport) ben dhe te kunerten e proçesit te permendur me siper, merr datagrame – segmente dhe i kthen ato ne ngarkese te dhenash per aplikacionet. Kjo aftesi e dyte qe permenda i jep kesaj shtrese emrin Shtresa e Transportit sepse duke ndodhur kjo1 krijohet nje “bashkbisedim” i drejteperdrejt midis dy hosteve (bashkbisedimi per te qene korret quhet virtual sepse transporti ne realitet nuk ndodh drejtpersedrejti nga shtresa 4 ne shtresen 4 por kalon njehere ne shtresat me te uleta, kujto kounikimin virtual).
Ketu jemi ne mes :), shtresa e mesme dhe e katert e OSI eshte shtresa e Transportit. Kemi nje koncept kyç, sa me lart te ngjitemi ne hierarkine OSI aq me shume rritet dhe abstraksioni pasi i largohemi punes me “çekiç e gozhde” dhe i afrohemi abstraktes e ne kete rast shtresa e Transportit eshte ne njefare menyre me shume e ngjitur me nivelet e uleta pasi ka te beje me transportin (virtualisht dhe jo realisht) por nga ana tjeter ka dhe pika shume te ngjashme me shtresat 5 dhe 7.
Nuk duhet keqkuptuar qe ky nivel i OSI-t preokupohet me transportin real te mesazheve, dmth bazohet ne shtresat e meposhtme qe e bejn kete pune , pra (tranposrtimin fizik) nderkohe qe vet preokupohet me transportin por ne aspektin e protokollit, rregullave dhe aspketeve te tjera qe do i shohim me poshte. Komunikimi behet ne menyre horizontale por virtualisht pasi nuk komunikon ne menyre te drejtperdrejt me shtresen Network te destinacionit.
Ne kohen tone kompiuterat jane multitasking dhe ne te njejtin moment shume aplikacione mund te kerkojn qe te dergojn dhe marrin te dhena nga interneti. Shtresa e Transportit eshte pikerisht pergjegjese per kete pune. Kjo ndodh sepse ne momentin qe aplikacionet fillojn kerkesat e tyre , shtreses Network i vijn te dhena nga aplikacione te ndryshme dhe eshte detyre e kesaj shtrese qe te bashkoj keto rryma ne nje rryme te vetme (multiplexing sepse ndajn te njejten adrese IP) dhe te bej tranzmisionin per tek shtresa Network.
Ne kete shtrese (shtresa 4 e transportit), lidhjet mund te jene connection oriented (TCP) ose connectionless (UDP).
Asnjera nuk eshte me e mire se tjetra, te dyja perdoren ne menyre frekuente.
Protokolleve te kesaj shtrese u jepet “inteligjence” me ane te algoritmeve (ja ku eshte dhe lidhja me shtresat e mesiperme te bazuara ne aplikativin dhe abstrakten) dhe ne kete menyre keto protokolle sigurohen qe transporti i mesazheve midis paisjeve te jete i rregullt dhe efiçent.
Pse datagram dhe segment dhe jo vetem datagram ose vetem segment?
Sepse datagram zakonisht perdoret per protokollet e thjeshta qe nuk kane shume sherbime si psh UDP (nuk siguron ritransmetim ne rast gabimi, mund te humbasin te dhena gjate trasmetimit dhe nuk siguron kontroll fluksi – pra connectionles) kurse segment perdoret per Connection Oriented si psh TCP.
Opcionet specifike te shtreses 4 te OSI, Tranportit.

  • Adresimi i Proçeseve neper Porta te caktuara – thame se ne kete shtrese (4) behet kujdesja qe multitasking te jete dhe ne network, dhe lind pyetja si ka mundesi qe te perdorin 8 programe rrjetin ne te njejten kohe?
    Thame se Data Link jep adresat hardware, ndersa Network jep adresen IP, keshtu qe Transportit i ngelet te percaktoj adresimin ne menyre qe te ndahen programet nga programet dhe keshtu secili program ka hapesiren dhe destinacionin e tij, keshtu qe nuk hyjn ne konflikt dhe sherbimi nuk i mohoet asnje programi. Ky adresim eshte i paraqitur shume mire nga Portat UDP e TCP. Pra ne kete rast behet fjale kur psh ne nje Tcp header shkruhet dhe porta e destinacionit , psh 80 ne rastin kur perdoret si aplikativ HTTP (web server) dhe adresa eshte akoma me shume e specifikuar.
  • Multiplexing dhe Demultiplexing – ajo qe u tha me siper ka lidhje ne menyre te drejteperdrejt me kete qe po shkruhet, multiplexing eshte kur shume proçeseve (proçes ne rrjet eshte veprimi qe shkakton nje aplikacion duke komunikuar me rrjetin) u dedikohet nje adrese dhe u jepet sherbimi ne baze te nje adrese IP te vetme, ndersa Demultiplexing eshte e kunderta dhe ndodh kur vjen pergjigja dhe pergjigja qe kalon ne IP-n tone zberthehet dhe u jepte proçeseve qe kerkuan me pare komunikim, apo sherbim.2
  • Segmentimi , Paketimi dhe Riasemblimi – Shtresa e Tranportit segmenton grumbujt e medhenj te te dhenave qe dergon neper rrjet ne mesazhe te vogla te cilat ja kalon shtreses se Networkut, eshte proçesi i ngjashem qe u quajt Fragmentim kur Networku copetonte mesazhet dhe ja dergonte Data Layer, ndryshimi i vetem eshte se ne rastin e Transportit paketat copetohen qe te kenaqin shtresen e Networkut, kurse ne rastin e Networkut ato copetoheshin ne limitet e Data Link.
  • Menaxhimi, Hapja dhe mbyllja e lidhjeve – Protokollet connection oriented te shtreses se Transportit jane pergjegjese per hapjen, mbylljen dhe mbarvajtjen e lidhjeve.
  • Njohja (ACK) dhe ritransmetimi – Shtresa e Transportit per te realizuar transmetimin korrekt te te dhenave perdor nje teknik qe i ben te ditur derguesit se te dhenat erdhen, apo i kerkon ritransmetimin nese mbas 3 tentativave te dhenat nuk kane arritur ende.
    Kjo njihet dhe si 3 handshake.
  • Kontrolli i Fluksit – tek protokollet qe jane connection oriented ofrohet dhe mundesia per te kontrolluar fluksin e dergimit te mesazheve ne rrjet. Kjo specifik sepse kompiuterat kane nje memorje te limituar dhe nese memorja eshte duke u konsumuar i thuhet derguesit qe te uli pak fluksin e dergimit per te mos rezultuar ne nje sulm Fload.3

Relacioni midis shtreses Network dhe asaj te Transportit.
Panvaresisht se ne teori duken shume te ndare nga njeri-tjetri ne praktike jane shume te ngjashem dhe argument per kete eshte se mjafton qe te drejtohemi tek protokolli me i perdorur TCP/IP dhe vjen pergjigja. IP eshte protokoll i shtreses Network kurse TCP eshte protokoll i shtreses se Transportit, e njejta gje ndodh dhe me protokolle te tjera psh IPX/SPX ku IPX eshte i shtreses 3 dhe SPX eshte i shtreses 4. Pra , qendrojn vertet shume afer njeri-tjetrit ne praktik aq sa nuk mund te gjendet nje protokoll i TCP-s nen nje protokoll tjeter perveç se IP e keshtu me radhe.. Ne te njejten kohe shtresa e Transportit eshte pergjegjese per krijimin e komunikimit nga nje proçes aplikativ ne nje proçes tjeter aplikativ qe po perdor rrjetin.
Nje fenomen qe ndodh ne kete shtrese te rrjetit eshte dhe ai qe quhet Konxhestion rrjeti , ndodh kur rrjeti eshte i tejngarkuar dhe fillon ti bej DROP4 paketave. Ky fenomen mund te evitohet duke aplikuar kontrollin e fluksit duke perfshire nje nga opcionet qe quhet “slow-start” me ane te se cilit fillon rikuperimi i segmenteve (jo datagram sepse kur themi datagram nuk suportohet ky opcion) duke ruajtur dhe bandwithin.
Shembujt e protokolleve te shtreses se Transportit
TCP , UDP , DCCP , SCTP , RSVP , ECN etj.

Inkapsulimi – ja se si funksionon komunikimi ne network – rrjet

Kjo teme eshte ne podjum :), zakonisht keto jane gjerat kyçe qe shumica preferojn ti mbajn pervete (per studentet, pergjigjuni nese profesori ua ka thene keto gjera ) sepse njehere qe ke kuptuar kete, ke kuptuar realitetin se si funksionon networku me rrenje e dhemball.
Duke u bazuar gjithmon tek OSI kur flasim per shtresat e OSI-t dhe komunikimin, ky komunikim eshte Vertikal dhe Horizontal, le te shohim nje shembull praktik per te kuptuar ne menyre perfekte se ç’fare do te thote komunikim vertikal dhe horizontal.
Po marrim rastin tim qe po vizitoj albanianwizard.org me browserin Opera.
Ne kete rast, kompiuteri im ka nje IP, dhe severi ka nje IP te veten qe eshte baza e komunikimit, dhe ky komunikim midis browserit dhe faqes, ose me mire clientit dhe serverit behet ne baze te nje protokolli tani te pershkruajm se ç’fare ndodh ne realitet kur une klikoj linkun “Sisteme Operative” i cili duket ne frontalen e albanianwizard.org .

Ne rradhe te pare, ky klikim per kompiuterin nuk eshte asgje, browseri ne kete rast Opera i dergon nje grumbull bitesh Sistemit Operativ (ne kete rast Linux) ku ky i fundit ja dergon kernelit qe ja dergon proçesorit i cili di se ç’fare te bej dhe instruksionin ja dergon skedes wireless (perderisa po perdor wireless ne kete moment per lidhjen e internetit) te ciles i vijn  vetem impulse elektrike te larta (1) dhe te uleta (0)  ne te cilat jane te gjitha te dhenat e duhura dhe instruksionet per veprimin e deshiruar (pra paraqitjen ne ekran te faqes Sisteme Operative). Ketu jemi ne shtresen me te funidt te OSI-t ate qe quhet Shtresa Fizike qe perdor kabllin per te tejçuar kete grumbull bitesh te organizuar te quajtur PDU ne kete rast pasi vet shtresa 1 e OSI-t qe te kuptoj kete “grumbull bitesh” duhet qe vet grumbulli i biteve te plotesoje disa kushte te cilat jane kushtet e protokollit perkates ne kete rast. Mbas kesaj, ky grumbull paketash kerkon qe te shkoj tek serveri, dhe kalon ne nje nivel me te lart te OSI-t qe quhet: Data Link, ky lloj komunikimi quhet komunikim vertikal pasi te dhenat kalojn nga shtresa me e larte tek me e uleta (nga browseri i cili eshte aplikacion [application layer] tek skeda etherenet apo skeda wireless e cila eshte hardware [physical layer])  dhe nga me e uleta (ne kete rast hardwari qe perdor serveri) tek me e larta (vete aplikacioni server, psh apache web server eshte program dhe ne kete rast eshte aplikacion). Per kete arsye pra, meqenese paketat origjinale te gjeneruara nga nje klikim ne ekranin e kompiuterit per te pare nje faqe ne internet kaluan neper keto shtresa te rrjetit duke ecur ne menyre te njepasnjeshme, shtrese mbas shtrese ky lloj komunikimi quhet vertikal por nese e shohim rezultatin perfundimtar do te shohim qe te njejtat paketa kane qene nje here ne nivelin fizik (sipas OSI) tek kompiuteri im dhe njehere ne te njejtin nivel tek Serveri, keshtu qe krijohet nje komunikim horizontal , ose shembull nje here ne shtresen 7 (aplikative) ku une me maus nepermjet browserit klikova linkun  e faqes, dhe nje here tjeter kur serveri i faqes (qe eshte aplikacion dhe sipas OSI-t eshte ne nivelin 7) ju pergjigj kerkeses duke derguar permbajtjen e faqes ne grumbull bitesh shtrese mbas shtrese duke zbritur nga niveli 7 i vet, ne nivelin 6, nga niveli 6 ne te 5-stin e keshtu me rradhe deri ne nivelin 1, mbas kesaj kaloi informacioni ne nivelin 1 ne kompiuterin tim, e duke u ngjitur nivel mbas niveli, protokoll mbas protokolli arriti tek niveli 7 e ne kete moment browseri me paraqit permbajtjen e faqes “Sisteme Operative” ne ekran :)

Kuptuam pra, qe ne kete rast kemi transportim vertikal te te dhenave e ne te njejten kohe, transportim horizontal.
Nje pyetje me vend do te ishte, ç’fare i ndodh paketave kur kalojn  nga niveli 7 ne ate 6, e keshtu me radhe?, psh Serveri (albanianwizard.org) mori kerkesen nga Clienti (Browseri Opera ne shtepine time) per te paraqitur nje faqe qe gjendet ne te, e cila eshte kjo qe ne realitet per ne eshte nje faqe kurse per serverin eshte vetem nje grumbull te dhenash qe duhen derguar si pergjigje.
Ketu do te perdorim PDU dhe SDU si terma ashtu dhe Inkapsulimin te cilin do e shohim ne vazhdim.
Kur jemi ne shtresen (layer) 7 dhe serveri albanianwizard.org po dergon grupin e paketave, ky grumbull quhet PDU (Protocol Data Unit) pasi permban informacionet e nevojshme per protokollin ne te cilin po gjenerohet, dhe ka dhe te dhenat (data) ne brendesi.
Ne momentin qe kalon ne N – 1 (7 – 1 = 6) behet grumbulli i te dhenave qe shtresa 6 eshte supozuar te sherbej (service) keshtu qe ne kete moment (N-1) quhet SDU (Service Data Unit).
Ç’fare ndodhi?, grupi i paketave ishte PDU dhe SDU, si PDU + SDU = SDU?
Kjo ndodh, sepse Protocol Data Unit do te thote diçka vetem per shtresen (layerin e OSI-t) ne te cilin ndodhet dhe nuk do te thote asgje per shtresen qe vjen me mbrapa keshtu qe trajtohet si SDU (Service Data Unit) dhe ne momentin qe arrin tek shtresa 6 (N – 1) kete grumnbull te dhenash kjo shtres e vesh me PDU-n e saj [pra i gjeneron nje header dhe footer sipas kushteve te protokollit te saj] dhe kjo “veshje” apo “mbeshtjellje”  quhet INKAPSULIM
Keshtu qe jemi tek shtresa 6 te e cila ka ardhur nje PDU + SDU (qe trajtohet si SDU).
Tani qe shtresa 6 te kaloj tek shtresa 5 (sherbimin – SDU-n) duhet qe tek SDU-ja qe ka marr, te vendosi PDU-n e vet, dhe keshtu del SDU (i nivelit 6) + PDU-n e nivelit 5. Dhe edhe njehere e perserisim ky eshte saktesisht Inkapsulimi, apo ne shqipe me te thjesht “mbeshtjellja” e paketave.
Ja nje pamje per te pasur me te qarte se per ç’fare behet fjale:
Informatika Shqiptare

Siç e shohim te dhenat jane njelloj, pra “data” nuk ndryshon, por ne ç’do here qe zbresim 1 nivel grumbulli i paketave “vishet” me nje PDU te cilat jane te nevojshme qe kete grumbull te dhenash ta bejn te kuptueshem dhe te perdorshem ne shtresen N – 1 ( e cila ka protokollin e saj i cili mund te varjoj).
Ç’fare ndodh kur paketat ngjiten nga niveli 1 tek 7-ta?
Ndodh e kunderta, pra fillon zhveshja e grumbullit te paketave duke hequr PDU-t njeri mbas tjetrit, kjo eshte edhe arsyeja qe nese duam qe nuk mund te perdorim protokollin FTP nese ne porten 21 e kemi te mbyllur, panvarsisht se serveri psh mund te jete verpues ne ate port, dhe kjo eshte edhe arsyeja pse kemi ato qe quhen “porta sherbimi” dhe “porta te sherbyera , apo kliente”.
Nese ka pyetje, jane te mirepritura.