Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Këshilla
  • Algoritmet e kompresimit të imazhit pa humbje. Çfarë është një dritare rrëshqitëse

Algoritmet e kompresimit të imazhit pa humbje. Çfarë është një dritare rrëshqitëse

Një nga teknikat më natyrale të përdorura për të organizuar një transmetim të besueshëm është shtrëngimi i duarve. Dërguesi dërgon të dhënat dhe pret derisa të marrë një faturë që konfirmon se të dhënat e tij kanë arritur në mënyrë të sigurtë te marrësi. Protokolli TCP përdor rast i veçantë shtrëngim duarsh - algoritmi i dritares rrëshqitëse. Para se të kalojmë në një shqyrtim të detajuar të veçorive të zbatimit të këtij algoritmi në protokollin TCP, është shumë e dobishme ta diskutojmë atë nga një këndvështrim i përgjithshëm.

Pra, ekzistojnë dy metoda për organizimin e procesit të shkëmbimit të faturave: metoda e burimit të papunë dhe metoda e dritares rrëshqitëse.

Metoda joaktive e burimit kërkon që burimi që dërgoi kornizën (në në këtë rast pa marrë parasysh se çfarë emri përdoret për njësinë e të dhënave të transmetuara), priti një faturë nga marrësi që tregon se korniza origjinale ishte marrë dhe të dhënat në të ishin të sakta, dhe vetëm pas kësaj dërgoi kuadrin tjetër (ose përsëriti atë të shtrembëruar ). Nëse fatura nuk arrin brenda afatit, atëherë korniza (ose fatura) konsiderohet e humbur dhe transmetimi i saj përsëritet. Në Fig. Figura 1 tregon se korniza e dytë dërgohet vetëm pasi të ketë mbërritur një faturë që konfirmon dorëzimin e kornizës së parë. Megjithatë, atëherë pati një pauzë të gjatë në dërgimin e kornizës së tretë tjetër.

Gjatë kësaj pauze, burimi u detyrua të përsëriste transmetimin e kornizës 2, pasi fatura për kopjen e parë të tij humbi. Është e qartë se me një algoritëm të tillë për funksionimin e burimit, pala marrëse duhet të jetë në gjendje të njohë kornizat e dyfishta dhe t'i heqë qafe ato.

Oriz. 1. Metoda boshe e burimit

Është mjaft e qartë se gjatë përdorimit këtë metodë performanca e shkëmbimit të të dhënave është më e ulët se sa është e mundur - transmetuesi mund të dërgojë kuadrin tjetër menjëherë pas dërgimit të atij të mëparshëm, por duhet të presë që të arrijë fatura.

Metoda e dytë quhet metoda e dritares rrëshqitëse. Në këtë metodë, për të rritur shpejtësinë e transferimit të të dhënave, burimit i lejohet të transmetojë një numër të caktuar kornizash në një modalitet të vazhdueshëm, domethënë me shpejtësinë maksimale të mundshme për burimin edhe përpara se të marrë faturat për këto korniza. Numri i kornizave që lejohen të transmetohen në këtë mënyrë quhet madhësia e dritares.

Figura 2 ilustron zbatimin e kësaj metode për një dritare me 5 korniza. Në momentin fillestar, kur asnjë kornizë nuk është dërguar ende, dritarja përcakton një gamë të numrave të kornizave nga 1 deri në 5 përfshirëse. Burimi fillon të transmetojë korniza dhe pas njëfarë kohe merr fatura si përgjigje. Për thjeshtësi, le të supozojmë se faturat arrijnë në të njëjtën sekuencë (por jo domosdoshmërisht me të njëjtin ritëm) si kornizat me të cilat korrespondojnë. Në momentin që dërguesi merr faturën 1, dritarja lëviz një pozicion lart, duke përcaktuar një gamë të re kornizash të lejuara për dërgim (nga 2 në 6).

Proceset e dërgimit të paketave dhe marrjes së faturave janë mjaft të pavarura nga njëra-tjetra. Në shembullin tonë, dërguesi vazhdon të transmetojë korniza, por nuk merr një faturë për to për ca kohë. Pasi të transmetohet korniza 6, dritarja shterohet dhe burimi ndalon transmetimin.

Oriz. 2. Metoda e dritares rrëshqitëse

Pas marrjes së faturës 2 (për kornizën 2), dritarja zhvendoset me një lart, duke përcaktuar gamën e kornizave të lejuara për transmetim nga 3 në 7. Një "rrëshqitje" e ngjashme e dritares lart ndodh pas marrjes së çdo faturë: dritarja lëviz lart. me 1, por madhësia e saj nuk ndryshon dhe mbetet e barabartë me 5. Pas mbërritjes së marrjes 8, dritarja përfundon në intervalin nga 9 në 13 dhe mbetet e tillë për një kohë mjaft të gjatë, pasi për disa arsye burimi ndalon marrjen e konfirmimeve për dorëzimi i kornizave. Pas dërgimit të kornizës së fundit të lejuar 13, transmetuesi përsëri ndal transmetimin në mënyrë që ta rifillojë atë pas marrjes së marrjes 9.

Kur dërgohet një kornizë, caktohet një afat kohor në burim. Nëse për vendos oren Nëse fatura për kornizën e dërguar nuk arrin, atëherë korniza (ose fatura për të) konsiderohet e humbur dhe korniza transmetohet përsëri. Nëse fluksi i arkëtimeve arrin rregullisht brenda një tolerance prej 5 kornizash, atëherë kursi i këmbimit arrin vlerën maksimale të mundshme për një kanal të caktuar dhe protokollin e miratuar.

rast i përgjithshëm Metoda e dritares rrëshqitëse është më komplekse për t'u zbatuar sesa metoda e boshtit të burimit, pasi transmetuesi duhet të ruajë në një bufer kopje të të gjitha kornizave për të cilat faturat nuk janë marrë ende. Për më tepër, kur përdorni këtë metodë, është e nevojshme të monitorohen disa parametra të algoritmit, siç janë madhësia e dritares, numri i kornizës për të cilin është marrë fatura, numri i kornizës që ende mund të transmetohet përpara se të merrni një faturë të re.

Për të rritur faktorin e ngarkesës së dobishme të kanalit, përdoret mekanizmi i dritares rrëshqitëse. Le të theksojmë fillimisht se nëse mekanizmat e njohjes dhe të skadimit të diskutuar më sipër supozonin praninë e gjysmëpërçuesve midis nyjeve ndërvepruese kanal dupleks, atëherë mekanizmi i dritares rrëshqitëse mund të zbatohet vetëm nëse ka një kanal dupleks. Në këtë rast, kornizat e të dhënave dhe pranimet mund të transmetohen njëkohësisht nëpërmjet kanale të ndryshme(Fig. 1.48).

Thelbi i mekanizmit të "dritares rrëshqitëse" është si më poshtë. Nyja dërguese mund të dërgojë disa korniza të dhënash me radhë pa marrë fatura për këto korniza. Në këtë rast, kornizat numërohen në mënyrë ciklike nga 1 në W, Ku W - madhësia e dritares (gjerësia) - numri maksimal i kornizave që mund të transmetohen pa konfirmim. Numri i kornizës tregohet në kokë. Gjerësia e dritares mund të zgjidhet nga kushti ngarkesa maksimale kanal i drejtpërdrejtë komunikimi nga nyja dërguese në nyjen marrëse, e cila mund të arrihet duke transmetuar disa korniza të tjera gjatë pritjes së një faturë për kornizën e parë:

Ku - koha minimale e pritjes për marrje; -

koha e transmetimit të kornizës, - koha e përhapjes së sinjalit përgjatë kanalit

komunikimet, - koha e kaluar në nyjen marrëse duke përpunuar kornizën dhe

duke gjeneruar një faturë.

Siç vijon nga shprehja e paraqitur, nëse neglizhojmë kohën e përhapjes së sinjalit përgjatë kanalit të komunikimit dhe kohën e përpunimit të kornizës në nyjen marrëse U 2, atëherë gjerësia minimale e dritares duhet të jetë së paku 2.

Le të supozojmë se në momentin fillestar të kohës dritarja e nyjës dërguese U1 duket sikur është paraqitur në Fig. 1.49,a), që do të thotë se është e mundur të transferohet W korniza pa konfirmim. Për të minimizuar kohën e ndërprerjes së kanalit të komunikimit, mund të gjenerohet një faturë në nyjen marrëse përpara transmetimit të të gjithëve. W korniza, domethënë, nyja marrëse mund të dërgojë një faturë në nyjen dërguese në çdo kohë të përshtatshme për të. Ky moment zakonisht shoqërohet me formimin e një kornize të dhënash të dërguar nëpërmjet kanali i pasëm nga nyja U2 në nyjen U1. Në këtë rast, një faturë futet në kokën e kësaj kornize, duke treguar numrin e kornizës së fundit që është marrë pa gabime (pranim pozitiv) ose me një gabim (faturë negative). Nëse fatura për kornizën me numrin për të(1 < për të< W) - pozitive, atëherë dritarja në nyjen U1 lëviz siç tregohet në Fig. 1.49.6), që nënkupton mundësinë e transferimit të më shumë W korniza me numra pa fatura. Nëse fatura për kornizën me numrin - negative, kjo do të thotë se kornizat me numra deri në (k-1) marrë saktë dhe kornizat duke filluar nga numri te, duhet të ritransmetohet. Në këtë rast, dritarja në nyjen U1 zhvendoset siç tregohet në Fig. 1.49, c), që do të thotë se është e mundur të transmetohet më shumë W korniza me numra pa fatura. Kështu, një faturë mund të gjenerohet jo për të gjitha kornizat e transmetuara, por vetëm për disa prej tyre, dhe nëse ka ardhur një faturë pozitive për numrin e kornizës te, atëherë konsiderohet se kjo kornizë dhe të gjitha kornizat e mëparshme me numra nga 1 deri (Për-1) pranohet pa gabime. Po kështu, një faturë negative për numrin e kornizës për të do të thotë që të gjitha kornizat e mëparshme janë marrë pa gabime, dhe të gjitha kornizat e transmetuara më parë janë subjekt i ritransmetimit, duke filluar me numrin për të.

Algoritmi i skadimit adaptiv KARN

Kohëzgjatjet

Numrat e bajtit

Dublikata

Problemet e zgjidhura me procedurën e shtrëngimit të duarve

Nëse stacioni transmeton 20 byte, atëherë serveri do të rrisë ACK-në me 20 (do të bëhet 751 bajt), etj.

Mirënjohjet krijohen për të gjithë bajtet që arrijnë në sekuencën e kërkuar. Nëse dorëzohen dublikatë, kjo nuk do ta prishë figurën. Ju mund të konfirmoni 3 herë që 731 bajt kanë mbërritur (ky është një shembull). Të gjitha konfirmimet janë kumulative. Konfirmimet e humbura nuk janë problem.

Dublikatat në TCP mund të ndodhin:

  1. Për shkak të humbjes së segmentit origjinal
  2. Për shkak të humbjes së konfirmimit
  3. Për shkak të afatit të ritransmetimit
  4. Për shkak të vonesës së segmentit
  5. Për shkak të kërkimit të të gjithëve numrat e mundshëm byte

Numra të njëpasnjëshëm deri në 2 32. Me një shpejtësi prej 2 Mbit/sek, do të duhen 9 orë për të renditur të gjitha vlerat. Dyfishimi i numrit të sekuencës mund të rezultojë në një dublikatë. Me rritjen e shpejtësisë, gjasat që kjo të ndodhë rritet.

Ata luftojnë me një shumë të pabesueshme parash.

Cakto afate kohore. Vlera e skadimit ndikon në performancën. Koha është e lidhur me koha e dyfishtë e udhëtimit(RTT). Kohëzgjatja e gjatë - pritje e gjatë për një gabim. Një kohë e shkurtër është një ritransmetim i panevojshëm.

Ka të ndryshme algoritme adaptive timeout(Detyrë OS). CISCO përdor algoritmin KARN.

Thelbi i algoritmit. Koha mesatare e RTT llogaritet dhe shumëzohet me një koeficient të caktuar (në KARN koeficienti është 2). Është e nevojshme të ndryshohet jo vetëm koha mesatare e skadimit, por edhe madhësia e dritares. Në KARN, dritarja ndryshohet derisa 20% deri 40% e dritares të jetë e lirë.

Protokolli TCP supozon një dritare dinamike. Marrësi raporton numrin e bajteve që mund të marrë (nga 0 në 65535). Numri fillestar dritaret instalohen gjithmonë gjatë fazës së vendosjes së lidhjes. Marrësi përcakton se cila dritare duhet të jetë sipas aftësive minimale. Procesi i aplikimit të marrësit që përdor buferat ka një ndikim të rëndësishëm në performancën e TCP. Përzgjedhja e saktë Madhësia e dritares optimizon TCP-në. Hapet një dritare ndërsa procesi i marrjes në anën tjetër lexon konfirmimin dhe çliron buferin TCP. Nëse kufiri i majtë përkon me kufirin e duhur, dërguesi duhet të ndalojë transmetimin (dritare zero). Dritarja mbyllet kur të dhënat transmetohen dhe pranohen (kufiri i majtë lëviz në të djathtë).

Lidhja përfundon kur stacioni dërgon flamurin FIN te serveri. Serveri dërgon ACK dhe FIN. Më pas, serveri dërgon përsëri FIN dhe stacioni dërgon ACK dhe FIN.

Mbrojtja nga mbingarkesa - nisje e ngadaltë– mos dërgoni menjëherë dhe shpejt pako në rrjet.

Ka edhe mekanizëm i shpejtë i ritransmetimit(nuk ka nevojë për një fillim të ngadaltë) dhe

mekanizëm i vonuar i njohjes (në Windows).

Ky algoritëm (algoritmi LZ77 4 Emërtuar sipas autorëve Abraham Lempel dhe Jacob Ziv. Botuar në vitin 1977.) ishte një nga të parët që përdori një fjalor. N elementet e fundit tashmë të koduar të sekuencës përdoren si fjalor. Gjatë procesit të kompresimit, fjalori i sekuencës lëviz (“rrëshqet”) përgjatë sekuencës hyrëse. Zinxhiri i elementeve në dalje është i koduar si më poshtë: pozicioni i pjesës përputhëse të zinxhirit të përpunuar të elementeve në fjalor - kompensimi (në lidhje me pozicionin aktual), gjatësia, elementi i parë që ndjek pjesën e përputhur të zinxhirit. Gjatësia e zinxhirit të përputhjes kufizohet më lart nga numri n. Prandaj, detyra është të gjesh zinxhirin më të madh nga fjalori që përputhet me sekuencën që përpunohet. Nëse nuk ka përputhje, atëherë rregjistrohet kompensimi zero, gjatësia e njësisë dhe vetëm elementi i parë i sekuencës së pakoduar - (0, 1, e) .

Skema e kodimit e përshkruar më sipër çon në koncept dritare rrëshqitëse(dritare rrëshqitëse në anglisht), e përbërë nga dy pjesë:

  1. vijimësi e elementeve tashmë të koduar me gjatësi N - fjalor - tampon kërkimi(Bufer kërkimi në anglisht);
  2. një vijimësi e gjatësisë n nga një zinxhir elementësh për të cilët do të bëhet një përpjekje për të gjetur një përputhje - tampon pamje paraprake (Anglisht tampon look-ahead).

Në terma dritare rrëshqitëse Algoritmi i kompresimit përshkruhet si më poshtë: nëse e 1, . . . , e i është një nënsekuencë e koduar tashmë, pastaj e i-N+1 , . . . , e i është një fjalor ose buffer kërkimi, dhe e i+1 , . . . , e i+n - tampon paraprak. Në mënyrë të ngjashme, detyra është të gjesh zinxhirin më të madh të elementeve nga buferi i paraafishimit, duke filluar nga elementi e i+1, që përputhet me zinxhirin nga buferi i kërkimit - ky zinxhir mund të fillojë nga çdo element dhe të përfundojë me cilindo element, d.m.th. shkoni përtej buferit të kërkimit, duke pushtuar buferin e shikimit paraprak. Është e natyrshme të shkosh përtej dritare rrëshqitëseështë e ndaluar. Lëreni zinxhirin e përputhshëm të gjatësisë maksimale të elementeve e i-p , , të gjendet në dritaren rrëshqitëse. . . , e i+q , atëherë do të kodohet si më poshtë: (p+1, q+p+1, e i+p+q+2 ) - zhvendosja në lidhje me fillimin e tamponit të shikimit paraprak (e i+1) , gjatësia e zinxhirit të përputhur , elementi që ndjek vargun e përputhur nga buferi i shikimit paraprak. Nëse kërkimi rezulton në dy ndeshje me të njëjtën gjatësi, zgjidhet ajo që është më afër fillimit të tamponit të pamjes paraprake. Pas kësaj dritare rrëshqitëse zhvendoset p + q + 2 elementë përpara, dhe procedura e kërkimit përsëritet.

Zgjedhja e numrave N dhe n është një problem më vete i rëndësishëm, sepse Sa më të mëdha të jenë N dhe n, aq më shumë hapësirë ​​kërkohet për të ruajtur vlerat e kompensimit dhe gjatësisë. Natyrisht, koha e funksionimit të algoritmit gjithashtu rritet me rritjen e N dhe n. Vini re se N dhe n zakonisht ndryshojnë nga një rend i madhësisë.

Le të japim një shembull të kompresimit duke përdorur këtë algoritëm. Le të kompresojmë vargun "TOBEORNOTTOBE" me parametrat N = 10 dhe n = 3:

hap dritare rrëshqitëse Maks. zinxhir i përputhur dalje
1 ""+"TOB" T 0,1, T
2 "T"+"OBE" O 0,1,O
3 "TO"+"BEO" B 0.1.B
4 "TOB"+"EOR" E 0.1.E
5 "TOBE"+"ORN" O 3,1,R
6 "TOBEOR"+"JO" N 0,1, N
7 "TOBEORN"+"OTT" O 3,1,T
8 "TOBEORNOT"+"TOBE" TOB 9.3.E

Nëse ndajmë 4 bit për ruajtjen e zhvendosjes, 2 bit për gjatësinë dhe 8 bit për elementët, atëherë gjatësia e sekuencës së koduar (pa marrë parasysh fundin e përcaktimit të sekuencës) do të jetë 4 x 8 + 2 x 8 + 8 x 8 = 112 bit, dhe origjinali do të jetë 102 bat. Në këtë rast, ne nuk e kompresuam sekuencën, por, përkundrazi, rritëm tepricën e përfaqësimit. Kjo për shkak se gjatësia e sekuencës është shumë e vogël për një algoritëm të tillë. Por, për shembull, një vizatim pema e kodit Huffman në Fig. 13.1, duke zënë 420 kilobajt hapësirë ​​në disk, pas kompresimit ka një madhësi prej rreth 310 kilobajt.

Më poshtë është pseudokodi për algoritmin e kompresimit.

// M - kufiri fiks // lexoni karakteret në mënyrë sekuenciale nga rrjedha hyrëse // në - hyrje - sekuencë e ngjeshur // n - gjatësia maksimale zinxhirë // pos - pozicioni në fjalor, len - gjatësia e zinxhirit // nelem - element prapa zinxhirit, str - zinxhir i gjetur // në - hyrje, jashtë - dalje // SlideWindow - buffer kërkimi while(!in.EOF() ) / /ndërsa ka të dhëna ( // duke kërkuar përputhjen maksimale dhe parametrat e saj SlideWindow.FindBestMatch(in, n, pos, len, nelem); // shkruani daljen: offset, gjatësia, elementi jashtë. Shkruaj(pos) ; out.Write(len ); out.Write(nelem); // lëvizni dritaren rrëshqitëse me len + 1 elemente SlideWindow.Move(in, len + 1); ) Listimi 13.2. Algoritmi i kompresimit LZ77

Dekodimi i një sekuence të ngjeshur është një dekodim i drejtpërdrejtë i kodeve të regjistruara: çdo hyrje përputhet me një zinxhir nga fjalori dhe një element të shkruar në mënyrë eksplicite, pas së cilës fjalori zhvendoset. Natyrisht, fjalori rikrijohet ndërsa funksionon algoritmi i dekodimit.

Mund të shihet se procesi i dekodimit është shumë më i thjeshtë nga pikëpamja llogaritëse.

// n - gjatësia maksimale e zinxhirit // pos - pozicioni në fjalor, len - gjatësia e zinxhirit // nelem - element prapa zinxhirit, str - zinxhiri i gjetur // në - hyrje, jashtë - dalje // Dict - fjalor while(!in. EOF()) //ndërsa ka të dhëna ( in.Read(pos); in.Read(len); in.Read(nelem); if(pos == 0) ( //i ri karakter të veçantë//hiq elementin e parë (të largët) nga fjalori Dict.Remove(1); //shto një element në fjalor Dict.Add(nelem); jashtë.Shkruaj(nelem); ) else ( //kopjoni rreshtin përkatës nga fjalori str = Dict.Get(pos, len); //hiq len + 1 elemente nga fjalori Dict.Remove(len + 1); //Shto zinxhirin Dict.Add (str) në fjalor + nelem); jashtë. Shkruaj (str + nelem); ) ) Listimi 13.3. Algoritmi

Ky algoritëm është themeluesi i një familje të tërë algoritmesh, dhe vetë në formën e tij origjinale praktikisht nuk përdoret. Përparësitë e tij përfshijnë një shkallë të mirë kompresimi në sekuenca mjaft të mëdha, dekompresim të shpejtë dhe mungesë të një patente 5 një dokument që siguron të drejtën ekskluzive për të shfrytëzuar shpikjen për një kohë të caktuar (zakonisht 15-20 vjet) te algoritmi. Disavantazhet përfshijnë shpejtësi të ngadaltë kompresimi, si dhe një raport më i ulët i kompresimit se algoritmet alternative (modifikimet e algoritmit e luftojnë këtë disavantazh). Kombinimi i algoritmeve Huffman ("Algoritmet e kompresimit të imazhit pa humbje") dhe LZ77 quhet metoda DEFLATE 6 Kjo quhet ngjeshje, dhe dekompresimi quhet INFLATE (anglisht: DEFLATE - të deflate, INFLATE - të fryj).. Metoda DEFLATE përdoret në grafik Formati PNG, si dhe në format universal Kompresimi i të dhënave ZIP.

Shtresa e transportit përdor shërbimet e ofruara nga shtresa e rrjetit:

përzgjedhja optimale e rrugës dhe shërbimet e adresimit logjik. Këto shërbime të shtresës 3 ofrojnë një lidhje nga skaji në fund midis dërguesit dhe marrësit. Ky kapitull përshkruan se si shtresa e transportit rregullon rrjedhën e informacionit të transmetuar nga një dërgues te një marrës. Shtresa e transportit ka karakteristikat e mëposhtme:

Një rrjedhë e të dhënave e shtresës së transportit është një lidhje logjike ndërmjet pikat fundore rrjete;

---------------- Mekanizmi i dritares rrëshqitëse siguron kontroll nga skaji në skaj dhe besueshmëri të lidhjes, ju lejon të gjurmoni sekuencën e numrave të paketave dhe njoftimeve;

。 për të kontrolluar të ndryshme lidhjet e rrjetit në protokollet e shtresës së katërt TCP dhe UDP dhe për të transmetuar informacion në nivelet e larta, të ashtuquajturat portet(port).

Stafi i shtresave të transportitTCP/IP

Siç sugjeron emri i saj, shtresa e transportit të grumbullit të protokollit TCP/IP është përgjegjëse për transportimin e të dhënave ndërmjet aplikacioneve në pajisjen marrëse dhe pajisjen dërguese. Njohuria se si funksionon shtresa e transportit është çelësi për një kuptim të thellë të modernes teknologjitë e rrjetit. Seksionet e mëposhtme detajojnë funksionet dhe shërbimet e një prej shtresave më të rëndësishme të modelit TCP/IP - shtresës së transportit.

Hyrje në Stackin e Shtresave të TransportitTCP/IP

Për të përshkruar të katërtin, transportin, nivelin, shpesh përdoret shprehja cilësinë e shërbimit. UDP, i diskutuar në detaje më poshtë, është një protokoll i shtresës së transportit që ofron shërbime transporti pa lidhje. Megjithatë, protokolli kryesor që vepron në këtë shtresë është TCP, i cili përdor një mekanizëm të krijimit të lidhjes. Funksionet kryesore të këtij protokolli janë transporti dhe kontrolli i besueshëm i rrjedhës së informacionit nga dërguesi te marrësi. Funksionet kryesore të shtresës së transportit përfshijnë sigurimin e kontrollit të transmetimit nga skaji në skaj, kontrollin e rrjedhës përmes një mekanizmi të dritares rrëshqitëse dhe garantimin e besueshmërisë së shpërndarjes përmes vendosjes së numrave të sekuencës dhe përdorimit të mirënjohjeve.

Për të kuptuar pse nevojitet transmetimi i besueshëm i të dhënave dhe kontrolli i rrjedhës, imagjinoni një të huaj që flet shumë shpejt. Dëgjuesi i tij ka shumë të ngjarë të detyrohet të përsërisë ndonjëherë fjalë individuale (analoge me besueshmërinë e transmetimit) dhe t'i kërkojë atij të flasë më ngadalë (analoge me rrjedhën).

Shtresa e transportit siguron mjetet për transferimin e besueshëm të të dhënave nga një nyje dërguese në një nyje marrëse. Kjo shtresë krijon një lidhje logjike ndërmjet pikave fundore të rrjetit; Për më tepër, detyrat e shtresës së transportit përfshijnë segmentimin dhe rimontimin e të dhënave të transmetuara nga të ndryshme aplikacionet shtresat e sipërme në një rrjedhë të të dhënave të një shtrese transporti. Ky transmetim siguron transferimin e të dhënave nga skaji në fund midis pikave fundore.

Rrjedha e të dhënave të shtresës së transportit është një lidhje logjike midis pikave fundore në një rrjet; Shtresa e transportit gjithashtu kontrollon nëse mund të vendoset një lidhje midis aplikacioneve. Në Fig. Figura 11.2 ilustron funksionimin e shtresës së transportit.

Shtresa e transportit ofron funksionet e mëposhtme:

    segmentimi i të dhënave të aplikacionit të nivelit të lartë;

    menaxhimi i ndërveprimit nga fundi në fund;

    transferimi i segmenteve nga një nyje fundore në tjetrën;

    kontrolli i rrjedhës duke ndryshuar madhësinë e dritares;

    sigurimi i besueshmërisë duke caktuar numra dhe duke përdorur konfirmime.

Për shtresën e transportit rrjeti i jashtëm mund të përfaqësohet si një medium i caktuar (zakonisht i përshkruar si një re) përmes të cilit paketat e të dhënave transmetohen nga dërguesi te marrësi. Ky mjedis është përgjegjës për përcaktimin se cila rrugë është optimale për një marrës të caktuar. Tashmë në këtë fazë, ju mund të kuptoni rolin e rëndësishëm që luajnë ruterat në procesin e transmetimit të të dhënave në rrjet.

Paketa e protokolleve TCP/IP përbëhet nga dy protokolle të veçantë: TCP dhe IP. Protokolli IP është një protokoll i shtresës 3 pa lidhje që mundëson transferimin efikas të të dhënave përmes një rrjeti. TCP është një protokoll i shtresës 4 dhe është një shërbim i orientuar drejt lidhjes që ofron kontroll të rrjedhës dhe për rrjedhojë besueshmëri të lartë të transmetimit. Kombinimi i këtyre dy protokolleve ju lejon të zgjidhni një gamë të gjerë detyrash të transferimit të të dhënave. Natyrisht, grupi i protokollit TCP/IP përbëhet nga shumë protokolle të tjera, por TCP dhe IP janë protokollet kryesore. Nga rruga, të gjitha Rrjeti i internetit bazohet në mënyrë specifike në grumbullin e protokollit TCP/IP.

Kontrolli i rrjedhjes

Kur shtresa e transportit TCP përcjell segmentet e të dhënave, mund të garantojë integritetin e të dhënave. Një mënyrë për të arritur këtë qëllim është kontrolli i rrjedhjes (rrjedhinkontrollin) , i cili shmang problemet që lidhen me situatat kur një nyje në njërin skaj të një lidhjeje tejmbush buferët e një stacioni në skajin tjetër. Mbingarkesa shkakton probleme serioze sepse mund të çojë në humbje të të dhënave.

Shërbimet e shtresës së transportit i lejojnë përdoruesit të kërkojnë transport të besueshëm të të dhënave midis nyjeve dërguese dhe marrëse. Për të siguruar transferim të besueshëm të të dhënave ndërmjet sistemeve partnere të komunikimit, përdoret një mekanizëm i orientuar drejt lidhjes. Transporti i besueshëm ofron funksionet e mëposhtme:

    siguron që dërguesi të marrë konfirmimin e dorëzimit të secilit segment;

    ofron ri-dërgesëçdo segment për të cilin nuk është marrë konfirmimi i dorëzimit;

    lejon që segmentet të renditen në destinacion në rendin e duhur;

    parandalon bllokimin e rrjetit dhe siguron menaxhimin e mbipopullimit nëse ndodh.

Instalimi, menaxhimi dhe përfundimi i sesionit

Në modelin e referencës OSI, aplikacione të shumta mund të përdorin njëkohësisht një lidhje të vetme transporti. Funksioni i transportit të të dhënave zbatohet segment pas segmenti. Kjo do të thotë që aplikacione të ndryshme mund të transferojnë të dhëna në bazë të hyrjes së parë, daljes së parë (FIFO). Segmentet mund të synohen për një ose marrës të ndryshëm. Ky rregull nganjëherë quhet mekanizmi i shumëfishimit të dialogut të aplikacionit të nivelit të lartë (Figura 3).

Oriz. 3. Aplikacione të ndryshme në shtresën më të lartë të modelit OSI përdorin shtresën e transportit

Një nga funksionet kryesore të shtresës së transportit është të organizojë një sesion komunikimi për të krijuar një lidhje me një sistem peer-to-peer. Për të filluar transferimin e të dhënave, aplikacionet e dërguesit dhe të marrësit informojnë ato OS rreth inicializimit të lidhjes. Njëri prej stacioneve fillon një lidhje që duhet të pranohet nga stacioni tjetër. Modulet e sistemit operativ përgjegjës për funksionimin e protokolleve komunikojnë me njëri-tjetrin duke dërguar një mesazh të veçantë dhe kontrollojnë mundësinë e transferimit të të dhënave dhe gatishmërinë e nyjeve fundore.

Pas përfundimit të procesit të sinkronizimit dhe vendosjes së lidhjes, fillon transferimi i të dhënave. Gjatë procesit të transferimit, të dy stacionet vazhdojnë të shkëmbejnë mesazhe për t'u siguruar që të dhënat e marra janë të sakta. Në Fig. Figura 4 ilustron një lidhje tipike midis një dërguesi dhe një marrësi. Mesazhi i parë i kërkesës është i nevojshëm për të sinkronizuar nyjet fundore. E dyta dhe e treta nevojiten për të konfirmuar kërkesën fillestare të sinkronizimit; ato gjithashtu sinkronizojnë parametrat e lidhjes në drejtim të kundërt. Mesazhi i fundit është konfirmim(mirënjohje), e cila përdoret për të informuar marrësin se të dyja palët janë të gatshme të krijojnë një lidhje. Pasi të vendoset lidhja, fillon transferimi i të dhënave.

Oriz. 4. Procesi i krijimit të një lidhjeje me një sistem peer-to-peer

Gjatë transferimit të të dhënave, bllokimi mund të ndodhë për dy arsye. E para është se një kompjuter i shpejtë mund të gjenerojë një rrymë të dhënash më shpejt sesa mund t'i transmetojë rrjeti. E dyta ndodh në një situatë ku shumë kompjuterë në të njëjtën kohë duhet të dërgojnë të dhëna tek një marrës. Në këtë rast, marrësi mund të përjetojë mbingarkesë, megjithëse secili dërgues individualisht nuk shkakton probleme.

Në rastet kur datagramet arrijnë shumë shpejt që nyja fundore ose porta t'i përpunojë ato, ato ruhen përkohësisht në memorie. Nëse rrjedha e të dhënave nuk zvogëlohet, nyja fundore ose porta, duke shteruar përfundimisht burimet e saj të memories, do të detyrohet të heqë të gjitha datagramet pasuese.

Për të parandaluar humbjen e të dhënave, funksioni i transportit mund t'i dërgojë dërguesit një mesazh informacioni: "Pajisja nuk është gati për të marrë". Duke vepruar si një semafor i kuq, ky mesazh tregues i sinjalizon dërguesit të ndalojë dërgimin e të dhënave. Pasi marrësi të jetë në gjendje të përpunojë përsëri të dhëna shtesë, ai dërgon një mesazh tregues transporti "pajisja gati për të marrë të dhëna", e cila është e ngjashme me një semafor jeshil. Me marrjen e një treguesi të tillë, dërguesi mund të rifillojë transmetimin e segmenteve.

Pas përfundimit të transferimit të të dhënave, dërguesi i dërgon një sinjal marrësit, i cili tregon përfundimin e transferimit. Marrësi konfirmon se lidhja është prishur, pas së cilës lidhja midis makinave përfundon.

Shtrëngim duarsh me tre hapa

Protokolli TCP përdor një algoritëm të orientuar drejt lidhjes, kështu që duhet të krijohet një lidhje logjike përpara se të transferohen të dhënat. Për të krijuar një lidhje rrjeti midis dy stacioneve të punës, është e nevojshme të sinkronizoni numrat e sekuencës së tyre fillestare (ISN - Initial Sequence Number). Sinkronizimi arrihet përmes shkëmbimit të segmenteve të specializuara që përmbajnë SYN (shkurt për ssinkronizimi) dhe numrat ISN. Modulet që mbajnë bitin SYN quhen ndonjëherë edhe mesazhe SYN. Për të zgjidhur problemin e krijimit, duhet të zgjidhni një mekanizëm të përshtatshëm për zgjedhjen e numrave ISN duke vendosur një lidhje fillestare për shkëmbimin e numrave ISN.

Sinkronizimi kërkon që secila palë të dërgojë ISN-në ​​e saj fillestare dhe të marrë konfirmimin në formën e një ACK (shkurt për mirënjohje) nga një palë tjetër në lidhje. Përveç kësaj, secila palë duhet të marrë numrin ISN të partnerit të komunikimit dhe të dërgojë një njoftim ACK për të. Sekuenca e shkëmbimit të mesazheve ndërmjet dy nyjeve të rrjetit, A dhe B, përshkruhet më poshtë.

Ky mesazh quhet njohje me tre hapa (tre- mënyrë shtrëngim duarsh) (Fig. 5).

Oriz. 5. Shtrëngim duarsh me tre hapa

1.AB SYN. Inicialja ime numër serik ISN është X, numri ACK është 0, biti SYN është vendosur, por biti ACK nuk është vendosur.

2. BNJË ACK. Numri juaj i sekuencës është X+1, numri im ISN është Y, bitet SYN dhe ACK janë vendosur.

3.APRAPA. Numri juaj i sekuencës është Y+1, numri im i sekuencës është X+1, biti ACK është vendosur dhe biti SYN nuk është vendosur.

Shtrëngimi i duarve me tre drejtime është një mekanizëm lidhjeje asinkrone që është i nevojshëm për të sinkronizuar numrat e sekuencës, pasi numra të tillë nuk varen nga ndonjë numërues global virtual në rrjet. Prandaj, në një rrjet që ekzekuton protokollin TCP, përdoren mekanizma të ndryshëm për caktimin e numrave ISN. Një prej tyre është shtrëngimi i duarve me tre hapa. Megjithatë, ky mekanizëm nuk synon vetëm të marrë një numër ISN. Duke e përdorur atë, pajisjet fundore shkëmbejnë informacion në lidhje me madhësinë e dritares së transmetimit të të dhënave, Parametri MTU dhe vonesa e transmetimit të të dhënave në rrjet. Marrësi i SYN-së së parë nuk ka asnjë mjet për të përcaktuar nëse segmenti i marrë ishte një mesazh i vjetër i shtyrë ose një mesazh i ri derisa të merret mesazhi tjetër; përjashtimi i vetëm është nëse marrësi ruan numrin e fundit të sekuencës së përdorur në lidhje (gjë që nuk është gjithmonë e mundur). Prandaj, marrësi duhet t'i kërkojë dërguesit të verifikojë një mesazh të tillë SYN.

Mekanizmi i dritares rrëshqitëse

Në formën më të përgjithshme të përcjelljes së besueshme të të dhënave të orientuar drejt lidhjes, paketat e të dhënave duhet të dorëzohen në fundin marrës në të njëjtën mënyrë në të cilën janë transmetuar. Protokolli sinjalizon një dështim nëse ndonjë paketë e të dhënave humbet, korruptohet, dyfishohet ose merret jashtë funksionit. Zgjidhja më e thjeshtë për këtë problem është përdorimi i konfirmimeve të marrësit për marrjen e secilit segment të të dhënave.

Megjithatë, nëse dërguesi detyrohet të presë për një konfirmim pas dërgimit të secilit segment, siç tregohet në Fig. 6, atëherë shpejtësia e transmetimit me këtë metodë zvogëlohet ndjeshëm. Meqenëse një interval i caktuar kohor kalon nga momenti kur dërguesi përfundon dërgimin e një pakete të dhënash deri në përfundimin e përpunimit të çdo konfirmimi të marrë, ai mund të përdoret për të transmetuar një pjesë shtesë të të dhënave. Numri i paketave të të dhënave që lejohen t'i dërgohen dërguesit pa marrë një konfirmim quhet dritare(dritare).

TCP përdor ato që quhen njohje në pritje; ato përmbajnë një numër të lidhur me oktetin që pritet më pas. Mekanizmi i dritares rrëshqitëse është vendi ku madhësitë e dritareve negociohen në mënyrë dinamike gjatë gjithë sesionit TCP. Mekanizmi i dritares rrëshqitëseështë një mekanizëm i kontrollit të rrjedhës që kërkon që marrësi të pranojë një konfirmim nga dërguesi pas transmetimit të një sasie të caktuar të të dhënave.

Oriz. 6. Madhësia e dritares është një

Për të kontrolluar rrjedhën e të dhënave të transferuara ndërmjet dy pajisjeve, TCP përdor mekanizmi i kontrollit të rrjedhës(mekanizmi i kontrollit të rrjedhës). Marrësi i raporton dërguesit se të dhënat janë marrë; marrja e një njoftimi të tillë ju lejon të vendosni madhësinë e dritares. Dritarja specifikon numrin e okteteve, bazuar në numrin aktual të konfirmimit, që një pajisje TCP është në gjendje të marrë në një kohë të caktuar.

Për shembull, me një madhësi dritareje 3, dërguesi mund t'i dërgojë marrësit tre oktete. Pas kësaj, ai duhet të presë konfirmimin nga marrësi. Nëse marrësi ka marrë tre oktete, ai duhet t'i dërgojë një konfirmim për këtë dërguesit të okteteve. Më pas dërguesi mund të dërgojë tre oktetet e ardhshme. Nëse marrësi nuk merr tre oktete, për shembull për shkak të tejmbushjes së buferit, atëherë ai nuk do të dërgojë një konfirmim. Nëse dërguesi nuk merr një konfirmim, kjo do të thotë që oktetet e fundit duhet të ritransmetohen dhe në të njëjtën kohë të zvogëlohet shpejtësia e transmetimit.

Madhësia e dritares TCP mund të ndryshojë kur të dhënat rrjedhin midis dy pajisjeve të rrjetit. Çdo konfirmim i dërguar nga marrësi përmban informacion në lidhje me numrin e bajteve që marrësi është në gjendje të marrë. TCP përdor atë që njihet si një dritare e kontrollit të mbingarkesës, e cila zakonisht ka të njëjtën madhësi me dritaren e pajisjes marrëse, por përgjysmohet në madhësi nëse një segment i të dhënave humbet (për shembull, për shkak të mbingarkesës së rrjetit). Ky mekanizëm lejon që madhësia e dritares të zvogëlohet ose rritet sipas nevojës gjatë menaxhimit të buferit të pajisjes dhe përpunimit të rrjedhës së të dhënave. Madhësia më e madhe e dritares lejon transmetimin e njëkohshëm sasi e madhe oktetë.

Kur dërguesi transmeton tre okteta, ai kalon për të pritur një sinjal ACK për katër oktetë. Nëse marrësi është në gjendje të përpunojë një bllok të dhënash me dy oktet, ai e hedh oktetin e tretë dhe e cakton atë si bllokun e ardhshëm të pritur të të dhënave. Kjo specifikon madhësinë e dritares së re, e cila është e barabartë me dy. Dërguesi transmeton dy oktetet e ardhshme, por madhësia e dritares është ende tre (duke supozuar se pajisja ende mund të trajtojë tre oktetë menjëherë). Marrësi kërkon oktetin numër 5 dhe vendos madhësi të re dritare të barabarta me dy.

Konfirmimet

Një mekanizëm i besueshëm shpërndarjeje siguron që një rrjedhë e të dhënave e dërguar nga një stacion do të dorëzohet mbi lidhjen e të dhënave të një tjetri pa dyfishim ose humbje të të dhënave. Njohja pozitive me ritransmetim është një nga teknikat që garanton shpërndarje të besueshme të rrjedhave të të dhënave. Njohja pozitive kërkon që marrësi të komunikojë me dërguesin duke dërguar një mesazh njohjeje pas marrjes së të dhënave. Dërguesi regjistron çdo paketë që dërgon dhe pret për konfirmim përpara se të dërgojë paketën tjetër të të dhënave. Në momentin që segmenti përcillet, dërguesi gjithashtu nis një kohëmatës dhe ritransmeton bllokun e të dhënave nëse vendosur me kohëmatës koha skadon përpara se të merret konfirmimi.

Në Fig. Figura 7 tregon një dërgues që transmeton paketat 1, 2 dhe 3. Marrësi i pranon paketat duke kërkuar paketën 4. Dërguesi, pasi ka marrë një konfirmim, dërgon paketat 4, 5 dhe 6. Nëse paketa 5 nuk i dorëzohet marrësit , ai dërgon një konfirmim duke kërkuar një tjetër paketë dërguese 5. Dërguesi ridërgon paketën 5 dhe duhet të marrë një konfirmim të përshtatshëm për të vazhduar dërgimin e paketës numër 7.

Protokolli TCP zbaton një sekuencë segmentesh të ndjekura nga një konfirmim. Secilit datagram i caktohet një numër përpara transmetimit (Fig. 8). Pasi marrësi të ketë marrë të gjitha datagramet, ato mblidhen në një mesazh të plotë. Përgjegjësia e protokollit TCP është të rikuperojë të dhënat e dëmtuara, të humbura, të dyfishuara ose jashtë rendit që janë transmetuar në internet. Mekanizmi i rikuperimit funksionon duke caktuar një numër sekuence për çdo oktet të transmetuar, pas marrjes së të cilit marrësi duhet të dërgojë një konfirmim (ACK). Nëse nuk merret konfirmim brenda intervalit kohor të pritjes, të dhënat ritransmetohen nga dërguesi. Pasi oktetet t'i dorëzohen marrësit, numrat e sekuencës së tyre përdoren për të ribashkuar mesazhin nga fragmentet dhe për të eliminuar dublikatat. Të dhënat e dëmtuara rikuperohen duke përdorur një shumë kontrolli që i shtohet çdo segmenti të transmetuar. Shuma e kontrollit verifikohet nga marrësi dhe nëse nuk përputhet, të dhënat e korruptuara hidhen.

Oriz. 7. Madhësia e dritares është tre

Oriz. 8. Numrat e renditjes dhe konfirmimet

ProtokolliTCP

TCP(Protokolli i kontrollit të transmisionit - protokolli i kontrollit të transmetimit) është një protokoll i shtresës së transportit të orientuar drejt lidhjes dhe ofron transmetim të besueshëm të të dhënave të plotë dupleks. Protokolli TCP është pjesë e grumbullit të protokollit TCP/IP. Në një mjedis të orientuar drejt lidhjes, duhet të krijohet një lidhje midis dy kompjuterëve për të filluar transferimin e të dhënave. Protokolli TCP është përgjegjës për segmentimin e mesazheve në pako, ribashkimin e tyre tek marrësi dhe ritransmetimin e çdo pjese të të dhënave nëse ato nuk janë marrë. Protokolli është gjithashtu i aftë të krijojë kanalet virtuale ndërmjet aplikacioneve të përdoruesve fundorë.

Shërbimet dhe protokollet e nivelit të lartë që përdorin mekanizmat TCP:

    FTP (Skedari Protokolli i Transferimit- protokolli i transferimit të skedarëve);

    HTTP (Protokolli i Transferimit të Hipertekstit);

    SMTP (Simple Mail Transfer Protocol - protokoll i thjeshtë i postës elektronike);

Fushat e segmentit TCP të paraqitura në rrëshqitje janë përshkruar më poshtë.

Porta e dërguesit - numri i portit të thirrjes.

Porta e marrësit - i quajtur numri i portit.

Numër serik - numri i përdorur për të rregulluar të dhënat hyrëse në sekuencën e duhur.

Numri i konfirmimit- numri i oktetit të ardhshëm TCP të pritur.

HLEN numri i fjalëve 32!bit në kokë.

Fusha e rezervuar- të gjitha bitet janë vendosur në 0.

Copë kodi- funksionet e shërbimit (për shembull, konfigurimi dhe përfundimi i një sesioni).

Dritare- numri i okteteve që dërguesi është i gatshëm të pranojë.

Kontrollo shumën- llogaritur shuma e kontrollit header dhe fushat e të dhënave.

Treguesi urgjent i të dhënave- tregon fundin e të dhënave urgjente.

Opsione- aktualisht është përcaktuar një parametër: madhësia maksimale Segmenti TCP.

Të dhënat- Të dhënat e protokollit të nivelit më të lartë.

ProtokolliPZHU

UDP (Përdoruesi Datagram Protokolli- Protokolli i transferimit të të dhënave të përdoruesit), formati i segmentit i të cilit tregohet në rrëshqitje, është një protokoll transporti pa lidhje në grumbullin e protokollit TCP/IP. UDP është një protokoll i thjeshtë që shkëmben datagrame pa konfirmim dhe pa garanci për dorëzim. Thjeshtësia e protokollit bëhet e dukshme kur krahasohen formatet e segmentit të protokolleve UDP dhe TCP. Kur përdorni protokollin UDP, trajtimi i gabimeve dhe ritransmetimi i të dhënave duhet të trajtohen nga një protokoll i nivelit më të lartë. Për shembull, nëse transferimi ndërpritet gjatë dërgimit të të dhënave përmes TFTP, vetëm një operator njerëzor mund të ri-shkarkojë informacionin.

Lista e mëposhtme tregon fushat e segmentit UDP që shfaqet në rrëshqitje

    Porta e dërguesit - numri i portit të thirrjes.

    Porta e marrësit - i quajtur numri i portit.

    Gjatësia- numri i bajteve, duke përfshirë kokën dhe të dhënat.

    Kontrollo shumën- kontrolli i llogaritur i fushave të kokës dhe të dhënave.

    Të dhënat- Të dhënat e protokollit të nivelit më të lartë.

Protokolli UDP nuk përdor një mekanizëm të dritares rrëshqitëse, kështu që besueshmëria e transmetimit të të dhënave duhet të sigurohet protokollet e shtresave të aplikimit(protokolli i shtresës së aplikimit). UDP është krijuar për aplikacione që nuk kanë nevojë të lidhin segmentet e renditura së bashku.

Protokolli UDP përdoret nga shërbimet dhe protokollet e mëposhtme të nivelit të lartë:

    TFTP (Trivial File Transfer Protocol - protokolli më i thjeshtë transferimi i skedarëve);

    SNMP (Simple Network Management Protocol - protokoll i thjeshtë i menaxhimit të rrjetit);

    DHCP (Dynamic Host Configuration Protocol - dynamic Host Configuration Protocol);

    DNS (Sistemi i emrave të domenit - shërbimi i emrit të domenit).

Numrat e portave të protokollitTCPDhePZHU

Për të transferuar informacion në nivelet e sipërme si protokollin TCP ashtu edhe Protokolli UDP përdorni numrin e portit ose të ashtuquajturin fole. Numrat e portave përdoren për të gjurmuar ndërveprimet e ndryshme që ndodhin njëkohësisht në rrjet.

Zhvilluesit e softuerit të aplikacioneve kanë rënë dakord të përdorin numrat e rezervuar të portit të caktuar nga Autoriteti i Numrave të Caktuar në Internet (IANA). Për shembull, çdo shkëmbim që përfshin transferimin e të dhënave duke përdorur protokollin FTP duhet të përdorë portat standarde 20 (për të dhënat) dhe 21 (për kontroll). Komunikimeve në rrjet që nuk përfshijnë aplikacione që kanë një numër porti të njohur, u caktohen numra portash në mënyrë rastësore, por zgjidhen nga një gamë specifike vlerash mbi 1023. Disa porte janë të rezervuara në Protokollet TCP dhe PZHU. Megjithëse disa porte janë të rezervuara në TCP dhe UDP, aplikacionet mund të mos jenë të lidhura me këto numra.

Siç tregohet në rrëshqitje, për të zgjedhur aplikacionin përkatës sistemi fundor përdor numrin e portit. Numri i portit burimor është zakonisht një numër më i madh se 1023, i cili caktohet në mënyrë dinamike nga nyja dërguese. Për shembull, një nyje përpiqet të lidhet me një nyje tjetër nëpërmjet FTP duke dërguar pako që specifikojnë numrin e portit TCP të marrësit 21 (FTP) dhe gjeneron në mënyrë dinamike një numër porti burimor prej 1028. Ky çift portash (dërguesi dhe marrësi) përcakton unike të ndërveprimit ndërmjet dy nyjeve . Nëse e njëjta nyje fillon një lidhje FTP me një nyje të tretë, porta e destinacionit mbetet e vendosur në 21, por porta e dërguesit zgjidhet të jetë e ndryshme (për shembull, 1030) për të ndarë dy sesionet e komunikimit.

Artikujt më të mirë mbi këtë temë