e-gradiva          SERŠ Maribor O projektu Besednjak
  logotip  
Osnove |  Skladi |  Topologije |  Mediji |  Pristopne |  LAN |  Omrežni |  Transportni |  Povezovanje |  Varnost |  Storitve |  Varnost |  Sistemi |  Strežniki

Transportni sloj

TCP

UDP

Sejni sloj

Prehod

Transmission Control Protocol

V tej učni vsebini boste spoznali:

Transportni sloj TCP

Dokument z besedilom PDF

V skladu s pravili transportnega sloja v modelu OSI so protokoli transportnega sloja odgovorni za vzpostavljanje in vzdrževanje povezave med dvema končnima gostiteljema. Transportni cilj poskrbi za potrditve uspešnega prenosa, kontrolo pretoka in pravilni vrstni red paketov. Upravlja tudi ponovno pošiljanje paketov. Transportni sloj v TCP/IP lahko uporablja protokol TCP ali UDP, odvisno od zahtev in potreb pošiljanja.

Protokolni sklad TCP/IP je dobil ime po kombinaciji protokolov TCP in IP, ki skupaj zagotavljata storitve, ki upravlja z večino prometa v omrežju TCP/IP. Internetne aplikacije, kot spletni brskalniki, odjemalci FTP in pregledovalniki elektronske pošte so vsi odvisni od protokola TCP, ki prenaša velike količine podatkov brez napak. TCP je definiran v dokumentu RFC (angl. Request For Comments) 793, ki je objavila IETF (angl. Internet Engineering Task Force) leta 1981.

TCP

Transmission Control Protocol (TCP) je protokol transportnega sloja in se uporablja za zanesljiv pretok podatkov med gostitelji in omrežji. TCP podatke razdeli na koščke, jim nato doda informacije, ki so potrebne, da podatki najdejo pot do destinacije in nato koščke ponovno sestavi na koncu povezave. Koščki se imenujejo datagrami. TCP doda k podatkom aplikacijskega sloja v datagram glavo, ki vsebuje informacije, ki so potrebne zato, da podatki pridejo do mesta, na katerega so bili poslani. Najpomembnejše informacije v glavi so: številka vrat, začetno število datagrama in kontrolna vsota (angl. checksum).

Virtualni kanal
TCP uporablja virtualni kanal

TCP je odgovoren za zanesljive prenose podatkov od pošiljatelja do sprejemnika. Je povezovalni protokol, ki vzpostavlja povezave (imenovane tudi seja ali navidezni kanal) med dvema strojema, preden so podatki poslani. Da lahko postavi zanesljivo povezavo, TCP uporablja metodo trosmernega usklajevanja (angl. three-way handshake).

Ker je TCP povezavni protokol, se najprej vzpostavi povezava med odjemalcem in pošiljateljem. Pri povezavi je določen odjemalčev naslov IP in vrata, ter pošiljateljev naslov IP in vrata, na katerih posluša storitev strežnika. Naslov IP povezan z določenimi vrati tvori vtičnico (angl. socket) in par odjemalčeve in pošiljateljeve vtičnice tvorita povezavo TCP, ki je edinstveno določena. Glava (angl. header) paketa TCP vsebuje izvorni naslov IP in vrata, ciljni naslov IP in vrata, zaporedno številka paketa, številka potrditve in kontrolne zastavice.

Izvorna in končna številka vrat poskrbita, da so podatki poslani s pravim procesom, ki teče na računalniku. Začetna številka dovoli datagramom, da se ponovno združijo v pravilnem vrstnem redu v sprejemajočem računalniku in kontrolna vsota omogoča protokolu, da pregleda, če so poslani podatki enaki tistim ki so bili prejeti. To stori tako, da sešteje vsebino datagrama in vnese to številko v glavo. Ko je glava enkrat v datagramu, TCP poda slednjega IP, da ga le–ta vodi do končnega cilja. Sprejemajoči računalnik nato postori enake izračune in če se ti ne izidejo, se je nekje datagram okvaril in se le–ta ponovno pošlje.

Vrata in vtičnice

Tako TCP in UDP s specifikacijo številk vrat (ang. port) identifikacirata protokol ali proces, ki generira podatke ali jih nosi. Številke vrat so objavljene v RFC 1700 skupaj s seznamom največkrat uporabljenih vrat v TCP/IP. Tako kot naslov IP identificira naslov gostitelja omrežja, tako naslov vrat identificira aplikacijo transportnemu sloju in tako poskrbi za povezavo ene aplikacije na prvem gostitelju do druge na drugem. Aplikacije in storitve, lahko konfigurirajo do 65.536 vrat.

Ko sistem TCP/IP naslovi promet na drugega, uporabi kombinacijo naslova IP in številke vrat. To se imenuje vtičnica (ang. socket). Da bi vtičnico specificirali v URL moramo najprej napisati naslov IP, nato pa mu sledimo s številko vrat. Tako na primer vtičnica 192.168.2.10:21 naslavlja vrata 21 na sistemu s tem naslovom IP. Ker ima FTP številka vrat 21, ta vtičnica naslavlja FTP strežnik, ki teče na tem računalniku.

Vrata so programski vmesnik do aplikacij
Vrata so programski vmesnik do aplikacij

Tipične aplikacije in storitve TCP/IP običajno uporabljajo prvih 1023 vrat. To so tako imenovana dobro poznana vrata. Na primer, spletni strežnik uporablja vrata 80, strežnik DNS vrata 53. TCP in UDP imata vsak svoj seznam teh vrat. FTP uporablja TCP vrata 21 in 20. Ker FTP uporablja le TCP na transportnem sloju, lahko druga aplikacija uporablja iste vrata na drugih aplikacijskih slojih s protokolom UDP. Aplikacije ostala vrata uporabljajo dinamično.

Običajno ni potrebno določiti številko vrat, ko vpisujemo URL, ker program ki ga uporabljamo sklepa, da se želimo povezati v dobro znane vrste vrat. Na primer, spletni brskalnik naslovi vse URL, ki jih vpišemo na vrata 80, HTTP protokol vrata spletnega strežnika, razen če administrator ne določi drugače. IANA številke vrat so priporočila, ne pravila. Spletni strežnik lahko konfiguriramo tako, da uporablja druga vrata kot 80 in veliko administratorjev strežnikov dodeli alternativna vrata zato, da jih lahko dosežejo le uporabniki, ki poznajo pravo številko vrata. Ustvarimo lahko srednje skrito spletipče tako, da številko vrat nastavimo na 81. Tako moramo za dostop napisati na primer: www.mojnaslov.com:81.

Storitve in aplikacije uporabljajo vtičnice, da vzpostavijo povezave z drugimi gostitelji. Če morajo aplikacije zagotoviti dostavo podatkov, potem vtičnica uporabi povezavno orientirano storitev (TCP). Če ne potrebuje potrditve dostave podatkov, pa uporabi nepovezavno storitev (UDP).

Vzpostavljanje povezave

Vzpostavitev povezave s TCP
Vzpostavitev povezave s TCP

TCP je povezavno usmerjen protokol, kar pomeni, da se mora vzpostaviti povezava med dvema sistemoma, preden lahko izmenjujeta podatke. Ta povezava poskrbi, da sta oba računalnika prisotna in delujeta pravilno ter sta pripravljena na sprejemanje podatkov. TCP povezava ostane aktivna skozi ves proces izmenjave podatkov.

V večini primerov TCP povezava obstaja za čas izmenjave datoteke. Na primer, ko spletni brskalnik vzpostavi povezavo s strežnikom v Internetu, najprej vzpostavi povezavo nato sprejme podatke, ki so zahtevani v URL. Ko je datoteka enkrat prenesena, sistem poruši povezavo. Ko brskalnik procesira preneseno datoteko lahko zasledi povezave do slik, avdio izsekov ali drugih datotek potrebnih za prikaz spletne strani. Brskalnik nato vzpostavi povezavo do strežnika za vsako datoteko, ki je povezana, jih pridobi in jih prikaže kot del spletne strani. Zato lahko ena sama spletna stran potrebuje ducate TCP povezav do strežnika za prenos datotek.

Proces vzpostavljanje povezave sestavlja izmenjava treh sporočil. Nobeno od sporočil ne vsebuje podatkov aplikacijskega sloja. Namen teh sporočil je, razen ugotavljanja prisotnosti drugega računalnika, predvsem v izmenjavi začetnih številk s katerimi bodo računalniki označevali poslane podatke.

Vsak sistem, ki sprejme podatke, pošlje svoj odgovor. Ko enkrat strežnik dobi odjemalčevo potrditev, je povezava vzpostavljena in sistemi so pripravljeni, da izmenjujejo sporočila, ki vsebujejo aplikacijske podatke. Zato je povezava TCP v bistvu sestavljena iz dveh ločenih enosmernih povezav, ki tečeta v nasprotni smeri, zato je TCP polno dvosmeren protokol.

Pomembno je imeti v mislih, da je povezava vzpostavljena med TCP sistemoma le logična povezava. Posamezna TCP sporočila so še vedno nopena v datagramih IP in uporabljajo nepovezavne storitve IP. Sporočila lahko uporabijo različne poti do cilja in lahko celo prispejo v drugačnem vrstnem redu kot so bile poslane. TCP je narejen tako, da računa na vse te možnosti in segmente datoteke spravi v pravilen vrstni red.

Prenos podatkov

Potem ko je povezava vzpostavljena, ima vsak računalnik vse informacije, ki jih potrebuje, da TCP prične s prenosom aplikacijskih podatkov. Če bo uporabnik sprejel podatke, je odvisno od narave aplikacije. Prenos med brskalnikom in strežnikom se prične s odjemalčevim pošiljanjem določenega URL strežniku, tipično je to domača stran spletipča. Druga aplikacija bo začela s prenosom podatkov iz strežnika k odjemalcu.

TCP uporablja drseče okno za prenos podatkov med gostitelji. Nadzoruje koliko informacij se lahko pošlje preko TCP povezave, preden mora sprejmni gostitelj poslati potrdilo. Vsak računalnik ima okno za pošiljanje in okno za sprejemanje. Tako je proces komuniciranja veliko bolj učinkovit. Drseče okno dovoljuje sprejemniku, da sprejema pakete, ki niso prispeli po vrstnem redu in jih uredi medtem, ko čaka na nove. Pošiljajoče okno pa zbira podatke o informacijah, ki so bile poslane in če ne dobi potrdila o sprejemu v določenem roku te podatke ponovno pošlje.

Zakasnjeno potrjevanje
Zakasnjeno porjevanje

Ko odjemalec enkrat začne prejemati podatke iz strežnika, je zadolžen tudi za potrjevanje prejema. TCP uporablja sistem imenovan zakasnjena potrditev, kar pomeni, da sistemi ne tvorijo ločenih potrditvenih sporočil za vsako sporočilo, ki ga sprejmejo. Intervali, v katerih sistemi ta sporočila tvorijo, so odvisni od posamezne implementacije TCP. Vsako potrditveno sporočilo, ki ga odjemalec pošlje v odgovor strežnikovim podatkovnim sporočilom ima ACK zastavico in vrednost polja potrditvene številke odseva število bajtov v sekvenci ki jo je odjemalec uspešno sprejel.

Če odjemalec dobi sporočilo, da je preverjanje paketa ugotovilo ali ne more sprejeti nekaterih segmentov v sekvenci, signalizira strežniku te napake z uporabo potrditvenega polja v sporočilu ACK. Vrednost potrditvene številke vedno odseva število bajtov od začetka sekvence od katere je ciljni sistem prejel brez napak. Če se na primer sekvenca sestoji iz desetih segmentov in so vsi prejeti pravilno razen segmenta številka 7, bo prejemnikovo potrditveno sporočilo vsebovalo vrednost potrditvene številke le za število bajtov v prvih šestih segmentih. Segmenti 8 do 10 morajo biti ponovno poslani skupaj s sedmim segmentom, čeprav so bili morebiti prejeti pravilno. Ta sistem imenujemo pozitivno potrjevanje in ponovno pošiljanje, ker ciljni sitem potrdi le sporočila ki so bila poslana pravilno.

Protokol, ki uporablja negativno potrditev, bi sklepal, da so vsa sporočila bila poslana pravilno razen tistega za katerega ciljni sistem posebej določa za okvarjenega.

Izvirni sistem vzdržuje vrsto sporočil, ki jih je poslal in izbriše tista, za katera dobi potrditev, da so prispela. Za sporočila, ki ostanejo v vrsti izvirnega sistema za preddoločeno količino časa, se sklepa da so bila izgubljena ali izbrisana in sistem jih ponovno pošlje

Zaznavanje napak

V bistvu obstajata dve zadevi, ki lahko gresta narobe med izmenjavo podatkov s TCP. Ali sporočila pridejo v pokvarjenem stanju ali pa sploh ne pridejo. Ko sporočilu spodleti prihod, izostanek potrditve povzroči, da se sporočila znova pošljejo. Če nastanejo resne omrežne težave, ki preprečujejo dvema sistemoma izmenjavo sporočil, bo TCP povezava sčasoma zastarala in ves proces se bo moral ponoviti.

Ko sporočila prispejo na cilj, jih sprejemni sistem pregleda opravi enake izračune za kontrolo podakov kot jih je pošiljatelj pred pošiljanjem in primerja rezultate. Če se vrednosti ne ujemata, sistem uniči sporočilo. To je kritično mesto protokola TCP, ker je to edino preverjanje med uporabnikoma, ki je opravljeno na podatkih aplikacijskega sloja. IP vključuje obojestransko kontrolo, vendar le na glavi podatka. Protokoli kot so Ethernet in Token Ring vsebujejo CRC, vendar odkrivajo napake v posameznem okvirju.

Kontrola, ki jo izvede TCP, je nenavadna saj ni izračunana le na vsej TCP glavi in aplikacijskih podatkih pač pa tudi na psevdoglavi. Psevdoglava je sestavljena iz naslova IP vira glave, cilja naslova IP, protokola, polj dolžine, polnila, kar znese končno število bajtov na najmanj 12. Vključevanje psevdoglave zagotovi da bodo dostavljeni datagrami na pravi računalnik in na pravi transportni sloj na tem računalniku.

Kontrola pretoka

TCP uses a sliding window technique to provide flow control.
TCP uporablja za kontrolo pretoka drseče okno

Kontrola pretoka je proces, s katerim ciljni sistem v TCP povezavi priskrbi izvornemu sistemu informacije, kar omogoči, da izvorni sistem nadzoruje hitrosti prenosa podatkov. Vsak sistem ima omejeno količino medpomnilniškega prostora (angl. buffer), v katerega shranjuje prihajajoče podatke. Podatki tam ostanejo dokler sistem ne generira potrditvenih sporočil. Če bi izvorni sistem pošiljal podatke prehitro, bi se lahko nalagalni prostor ciljnega sistema zapolnil in povzročil brisanje podatkov. Prejemni sistem uporablja okensko polje, da s potrditvenimi sporočili obvesti izvorni sistem o tem, koliko nalagalnega prostora še ima.

Ta vrsta nadzora pretoka je imenovan tehnika drsečega okna. Ponujeno okno je zaporedje bajtov, za katere je ciljni sistem dovolil izvornemu, da jih pošlje. Ko ciljni sistem potrdi prispele bajte, se leva stran okna pomakne desno in ko sistem poda potrditvene bajte skozi proces na aplikacijski sloj, ki ga določa številka ciljnega vhoda, se desna stran okna pomakne v desno. Tako lahko rečemo, da okno drsi v smeri prihajajočega toka, od leve proti desni.

Rušitev povezave

Ko sistemi, vključeni v izmenjavo podatkov s TCP, zaključijo s prenosom, porušijo povezavo z uporabo kontrolnega sporočila, podobnega tistemu, ki ga uporabljajo v trosmernem potrjevanju, ki je vzpostavi povezavo.

Zaključek

vprašanjanja v pisni obliki vprašanjanja vprašanje

TCP je zanesljiv, povezovalen protokol. Vtičnice aplikacij uporabljajo unikatne številke vrat. Vtičnica je končna točka komunikacijskega procesa. Vtičnico sestavlajta IP številka in številka vrat. TCP seja se začne in konča s trismernim usklajevanjem. TCP uporablja za prenašanje podatkov drseče okno.

Sofinaciranje projekta in pravice

Izvedbo projekta je omogočilo sofinanciranje Evropskega socialnega sklada Evropske unije in Ministrstva za šolstvo in šport.