TCP/IP

**TCP/IP** (*Transmission control protocol*/*Internet Protocol*) – pagrindinių interneto protokolų rinkinys, reglamentuojantis duomenų persiuntimą tarp įvairių tipų kompiuterių ir operacinių sistemų. Svarbiausi šio protokolo komponentai – TCP ir IP protokolai.

Šis, kaip ir daugelis kitų protokolų, aiškaus suvokimo sumetimais gali būti skirstomas į tam tikrus abstrakcijos lygius, kurių kiekvienas yra atsakingas už savo problemų sprendimą ir už patikimą duomenų perdavimą aukštesniam arba žemesniam lygiui. Aukštesni lygiai yra tarsi artimesni vartotojui, kadangi pateikia labiau žmogui suprantamą informaciją, tačiau jų pagrindas yra žemesnieji lygiai, kurių užduotis yra paversti duomenis į tokį formatą, kuriuo fiziškai būtų galima lengviau manipuliuoti (perduoti tinklu).

## Interneto protokolo lygiai

Interneto protokolo lygiai su tam tikromis išlygomis atitinka OSI modelio lygius, tačiau tikslaus atitikimo nėra dėl kai kurių šio protokolo savybių. Palyginimui pateikiami OSI modelio lygiai:

* **Taikymo** (*Application*) lygis. Šiam lygiui priskiriami labiausiai su vartotojų susįję protokolai, tokie kaip HTTP, FTP, SMTP ir kt.
* **Pristatymo** (*Presentation*) lygiui priskiriami protokolai dažniausiai neturi tiesioginio sąryšio su vartotoju. Tokių protokolų pavyzdžiai – SMB, XDR, NCP ir kt.
* **Sesijos** (*Session*) lygis atsakingas už programinės įrangos tarpusavio bendravimą. Šio lygio protokolai (SSH, Sockets, TLS, RPC, …) dažniausiai reikalingi tinklo programinės įrangos projektuotojams.
* **Perdavimo** (*Transport*) lygiui priskirtas jau minėtas TCP protokolas. Šis lygis atsakingas už patikimą duomenų perdavimą tinklu. Kiti dažnai naudojami protokolai – UDP, RTP.
* **Tinklo** (*Network*) lygiui priskirti protokolai daugiausiai skirti ryšio patikrai nustatymui ir paprasčiausiam duomenų perdavimui. Tai IP, ICMP, IGMP, IPX, EIGRP, ARP ir kt.
* **Kanalo** (*Data link*) lygis apsprendžia, kokiu būdu signalai perduodami tarp tinklo stočių. Plačiausiai žinomi metodai – Ethernet, Token ring, Frame relay, ISDN, WiFi, PPP, MPLS.
* **Fizinis** (*Physical*) lygis nustato, kokiu būdu yra sujungtos tinklo stotys. Dažniausiai sutinkami metodai – vyta pora, radijo ryšys, optiniai duomenų perdavimo tinklai, bevielis ryšys.

Interneto protokolas į lygius skirstomas apjungiant pirmus tris OSI modelio lygius į vieną, kadangi sesijos ir pristatymo lygiai šiame protokole palyginus su kitais yra gana rudimentiniai. Likusieji lygiai yra taip pat nežymiai pakeisti atsižvelgiant į interneto protokolo struktūrą:

* **Taikymo** lygis (HTTP, FTP, DNS).
* **Perdavimo** lygis (TCP, UDP).
* **Tarptinklinis** lygis (IP, ICMP bet ne ARP).
* **Ryšio lygis** (Ethernet, WiFi, MPLS)

### Kanalo lygis

Kaip ir OSI modelyje, taip ir čia, šis lygis nusako metodus, kuriais informacija perduodama iš vieno tinklo mazgo į kitą. Tai gana nesudėtingas lygmuo, kai kalbama apie tinklo įrangos tvarkykles, tačiau šiam lygiui taip pat priskiriamas VPN protokolas, kurio specifika leidžia visus likusius lygius sutalpinti į pastarąjį. Nereikia pamiršti, kad bet kokiu atveju nuo šio lygio veiksnumo tiesiogiai priklauso ir visų kitų aukščiau esančių lygių veiksnumas.

### Tarptinklinis lygis

Šiame lygyje sprendžiama duomenų perdavimo problema tarp tinklo mazgų, kai jau žinoma ryšio lygmens metodika. Tarptinklinis lygis nusako taisykles, kuriomis vadovaujantis duomenys perduodami vienam ar kitam tinklo komponentui. Tai vadinama maršrutizavimu. Tokie protokolai kaip ICMP yra aukštesnio lygio, tačiau atlieka tarptinklines funkcijas, todėl taip pat yra priskiriami šiam lygiui.

### Perdavimo lygis

Perdavimo lygio problematika – užtikrinti patikimą duomenų perdavimą, t. y. nustatyti, ar visi išsiųsti duomenys buvo gauti. Šiam lygiui priskirti protokolai dažniausiai skirstomi į patikimus ir nepatikimus. Patikimi protokolai užtikrina duomenų perdavimą, tuo tarpu nepatikimi protokolai nevykdo duomenų patikros, todėl pasekoje veikia sparčiau.

TCP priskiriamas patikimų protokolų kategorijai, kadangi jo veikimo mechanizmą sudaro tam tikri patikros algoritmai, kurių tikslas – užtikrinti, kad duomenys būtų pristatyti tikslūs, laiku ir reikalinga eilės tvarka.

UDP protokolas naudojamas tokiose srityse kaip vaizdo ar garso perdavimas gyvai, kadangi šiose srityse sparta dažniausiai yra svarbiau negu tam tikrų pavienių kadrų ar garso fragmentų nebuvimas.

### Taikymo lygis

Dažniausiai tinklo programinės įrangos naudojamas lygis, skirtas tinklu bendrauti su kito tinklo mazgo programine įranga. Naudojami protokolai – HTTP, FTP, SNMP, SMTP, POP3, DNS, taip pat daugelis kitų. Standartiniams protokolams yra gana griežtai išskiriami prievadų numeriai, tačiau šiuolaikinės programinės įrangos autoriai savo produktams savarankiškai priskiria prievadų numerius.

## Istorija

Interneto protokolo ištakos siekia aštuntąjį dešimtmetį. DARPA užsakymu 1972 m. Robertas Kahn'as pradėjo dirbti ties patikimo duomenų perdavimo modeliu, prie kurio 1973 m. pavasarį prisijungė Vintas Cerf'as, kuris lig šiol tituluojamas „interneto tėvu“. 1975 m. buvo atlikti pirmieji sėkmingi TCP/IP protokolo testai, o dabar plačiai naudojama TCP/IP protokolo ketvirtoji versija pasirodė 1978 m. 1984 m. Amerikos gynybos departamentas paskelbė TCP/IP kaip standartinį visų karinio pobūdžio tinklų protokolą, kuris vėliau sėkmingai išplito ir akademiniuose tinkluose.

## Susįję straipsniai
* OSI modelis
* Prievadas (tinklo)

## Šaltiniai