TCP/IP

Iz MaFiRaWiki

< TCP

Hrbtenico omrežja Internet sestavljajo danes kombinacija internetnega protokola (Internet Protocol, IP) in protokola nadzora nad prenosom (Transmission Control Protocol, TCP). TCP/IP je standardiziran protokolni sklad, ki poskrbi za komunikacijo v heterogenem okolju. Poleg tega TCP/IP poskrbi za administratorski omrežni protokol in dostop do Interneta in njegovih virov. Zaradi svoje popularnosti je TCP/IP protokol postal standard, ki je poznan kot medomreževanje, komunikacija v omrežju, sestavljenim iz več manjših.

Najpogostejše naloge TCP so:

  • zagotavljanje, da se informacije med prenosom prek interneta ne izgubijo,
  • skrb, da se podatki na poti po omrežju ne spremenijo (po naključju ali namenoma),
  • vnovični prenos neuspelo prispelih podatkov,
  • omogočanje nemotenih dodatnih komunikacij, kljub milijonom hkratnih pogovorov med računalniki,
  • razbijanje velikih poročil na manjše dele in vnovično sestavljanje teh delov na njihovem cilju.

Najpogostejše naloge IP so:

  • določanje načina pretoka podatkov prek internetne strojne opreme,
  • zagotavljanje načinov za prepoznavanje vsakega računalnika v Internetu, zato da lahko uporabniki ugotovijo, od kod je informacija prišla oz. kam gre,
  • sistem za razbijanje podatkov na manjše kose pri prehajanju skozi nekatere dele omrežja,
  • zbirka različnih protokolov višje ravni.

Kako TCP/IP deluje?

IP določa, kako dostaviti paket, zavit v ovojnico z naslovom naslovnika in pošiljatelja. Njegova slabost pa je, da ne naslovnik ne pošiljatelj nimata nobene možnosti ugotoviti, ali se je kak paket na poti izgubil. Protokol IP paket pač pošlje in nanj pozabi. Je hiter, vendar nezanesljiv. Zato prenos podatkov po protokolu IP nadgradimo še s protokolom TCP. Komunikacija sedaj poteka tako: računalnika se najprej po protokolu IP dogovorita za uporabo protokola TCP. Potem pošiljatelj vsak paket zavije v ovojnico TCP, to pa vstavi v ovojnico IP; prejemnik jih po obrnjenem vrstnem redu odvija. Prejemnik tudi potrjuje, da je pakete res prejel. Če pošiljatelj ne dobi potrdila o prejemu, paket znova pošlje. Paketi TCP imajo tudi oznako, kateri po vrsti so. Če se paket kje v omrežju zamudi, tako da prejemnik pakete prejme v drugačnem zaporedju, kot so bili poslani, jih zna kljub vsemu sestaviti v pravilno zaporedje.

Slika:TCP_IP.jpg

Protokol TCP je tik pod aplikacijami, ki zahtevajo izmenjavo podatkov, in nad internetnim protokolom, ki skrbi za izmenjavo podatkovnih paketov. V času načrtovanja je protokol TCP predstavljal napredni način paketne obdelave podatkov. Pred pošiljanjem razkosa s strani (spletnih) aplikacij posredovane podatkovne tokove v zaporedno označene podatkovne pakete, ki potujejo od pošiljatelja k prejemniku, tam pa so paketi zloženi nazaj v izvorni blok podatkov. Izbira ustrezne dolžine paketov in izvajanje nadzora pri dostavi so ključnega pomena za zanesljiv prenos podatkov, kar protokol TCP tudi omogoča. Vendar pa ravno zagotavljanje okornega delovanja s potrditvami o uspešnem prenosu kritično vpliva na končno hitrost prenosa.

Slabosti protokola TCP/IP

Na hitrost izmenjave podatkov poleg razpoložljive pasovne širine vpliva tudi zgostitev prometa. Aktualna omrežja namreč ne vključujejo ustreznih tehnik, ki bi komunicirajoče aplikacije obveščale o trenutni zmogljivosti. Pošiljanje podatkov je tako nenadzorovano, saj so aplikacije navadno zasnovane tako, da vedno poizkušajo komunicirati z najvišjo hitrostjo. Ker se v takih primerih lahko zgodi, da so paketi na poti izgubijo, omogoča protokol TCP vnovično pošiljanje, to pa se lahko pozna v še večji količini (spet) posredovanih podatkovnih paketov in s tem večji možnosti, da se prenosna pot enostavno do konca zapolni. Rezultat so predolge čakalne vrste paketov, ki jih vozlišča ne morejo (več) obdelati. Logična posledica takih primerov so izgubljeni paketi in s tem počasnejša izmenjava podatkov.

Težave zgostitve prometa lahko rešujemo na več načinov. Delovanje protokola TCP temelji na potrditvah o prenosu oziroma nadzoru zgostitve na podlagi izgub (t.i. loss-based). Če pošiljatelj ne prejme potrditve o dostavi paketa, je paket poslan še enkrat z zamikom dvojne dolžine začetnega intervala. Če tudi z drugim poizkusom pošiljatelj ne pridobi potrditve, je postopek treba ponoviti s štirikratnikom začetnega intervala, nato z osemkratnikom itd. Rezultat pristopa je vedno nižja hitrost prenosa, saj se pušča na voljo vedno več časa za preverjanje uspešnosti prenosa. Ko je končno dosežena ustrezna hitrost prenosa, gre nato za nasproten proces poizkusa povečanja hitrosti, ki pa je v nasprotju z zniževanjem hitrosti (za faktor dva nižje ob vsakem poizkusu) linearen. Problem zelo pogosto občutimo pri prenosu datotek po spletu. Če hitrost v kratkem času drastično upade, je povratek na začetno hitrost izredno počasen. Težava pride še posebej do izraza pri večjih hitrostih prenosa, za kar TCP pravzaprav sploh ni bil načrtovan.

Tehnika potrjevanja prenosa se torej dobro obnese v primeru ozkih grl na poti med točkama izmenjave podatkov. Protokol TCP je bil leta 1981 s tem namenom tudi tako načrtovan, vendar je postalo zelo hitro očitno, da tehnika slabo vpliva na hitrost. Predlagane so bile različne tehnike, predvsem na ravni nadzora pretoka (flow control) in zgostitve (congestion control) ter izogibanja zgostitve prometa (network congestion avoidance). Različni mehanizmi protokola TCP (sliding window, slow-start algorithm, congestion avoidance algorithm, fast retransmit and fast recovery algorithm ipd.) omogočajo izogibanje zgostitvam in pospeševanje prometa. V času razvoja so bile tako predlagane tudi številne izboljšave, kot je protokol TCP visokih hitrosti (High Speed TCP), TCP Vegas, TCP Westwood, H-TCP in navsezadnje FAST. Hitro aktivno upravljanje čakalnih vrst protokola TCP (Fast Active queue management Scalable Transmission Control Protocol, FAST) predstavlja eno izmed rešitev z vključenimi naprednejšimi algoritmi za upravljanje zgostitev.

Na osnovi standardnih dolžin paketov, ki so značilne za današnja omrežja, doseže klasični protokol TCP prepustnost 266 Mb/s pri velikih razdaljah (10 tisoč kilometrov in več). Če merimo izkoriščenost povezav na podlagi TCP, naj bi se številka zaustavila pri 27 odstotkih. To je rezultat hitrega zmanjšanja pretoka (zaradi zgostitve) in počasnega povečanja.

Osebna orodja