TCP/IP-viitemalli

TCP/IP-viitemalli on Internetin arkkitehtuurin kuvaamisessa käytetty tietoliikenneverkkojen viitemalli. Nimensä se on saanut kahden pääprotokollan, TCP:n ja IP:n mukaan. Toisin kuin OSI-viitemallissa, TCP/IP protokollat kehitettiin ensin ja malli vasta niiden jälkeen. TCP/IP-viitemalli ei sovellukaan kovin hyvin muiden protokollapinojen kuin TCP/IP:n mallintamiseen. Mallia kutsutaan myös "tiimalasimalliksi", koska tiimalasin pohjan muodostaa suuri määrä fyysiseen mediaan sidottuja peruskerroksen protokollia, vyötärön muodostaa IP, sen yllä on UDP ja TCP ja näiden yllä on suuri määrä sovellusprotokollia.

TCP/IP-viitemalli koostuu neljästä portaasta, joista kolmella on suorat vastineet OSI-viitemallissa.

Historia 
TCP/IP-pinon malli perustuu ARPANETin referenssimalliin (, ARM). TCP/IP-malli on yksinkertaisempi kuin OSI-malli, mutta varsinaiset toteutukset sisältävät muutamia erikoistuneita protokollia.

Sovelluskerros (Application Layer) 

TCP/IP-viitemalli ei määrittele sovelluskerroksen rakennetta tarkemmin. Usein sovellus toteuttaa viestintänsä tällä kerroksella käyttäen yhtä protokollaa, jossa on sovelluksen tarvitsemat ominaisuudet (yhdistäen OSI-mallin sovellus-, esitystapa- ja istuntokerrosten ominaisuuksia). Sovelluksen tietoliikenne saattaa kuitenkin edellyttää useampiakin protokollia, esim. pankkiyhteyksiin käytetty salattu HTTP-protokolla toteutetaan tunneloimalla normaalia HTTP-protokollaa salauksen ja palvelimen todennuksen (autentikoinnin) tarjoavan SSL-protokollan päällä. Sovelluskerrokseen kuuluvat korkeamman tason protokollat, kuten telnet, FTP, SMTP, DNS, NNTP, NTP ja HTTP.

TCP/IP-malli painottaa tehtävien siirtämistä sovellukselle. Erillistä istunto- tai esitystapakerrosta ei ole, vaan sovellus pitää huolen istuntojen muodostamisesta ja purkamisesta samoin kuin tarvittavista tiedon esitystavan muunnoksista.

Kuljetuskerros (Transport Layer) 

Kuljetuskerroksen tarkoitus on sallia tietojenvälitys lähde- ja kohdekoneiden välillä. TCP/IP-viitemallin kuljetuskerros on sama kuin OSI-mallin kuljetuskerros. TCP/IP-viitemallissa tällä kerroksella ovat yleisimmässä käytössä TCP ja UDP. TCP tarjoaa luotettavan tavuvuon sovellusten välille, korjaten tiedonsiirtovirheet ja toimittaen tietoliikenteen perille samassa järjestyksessä kuin data on lähetetty. Lisäksi TCP toteuttaa ruuhkanhallinnan (congestion control). UDP välittää yksittäisiä viestejä sovellusten välillä ilman virheenkorjausta ja perillemenon varmistusta. UDP:tä käyttävät sovellukset joutuvat toteuttamaan itse luotettavuuden ja ruuhkanhallinnan, mutta hyötyvät tiedonsiirron nopeudesta ja uudelleenlähetyksien aiheuttaman viiveen poistumisesta.

Verkkokerros (Internet Layer) 

Internet-protokolla (IP) välittää tietoliikennepaketteja verkon tietokoneiden välillä, parhaansa mukaan. IP ei takaa yksittäisen paketin perillepääsyä; paketit saattavat kadota, vaihtaa järjestystä tai kopioitua matkalla. Näiden tapahtumien käsitteleminen on ylempien kerrosten tehtävä. Etenkin on huomattava että tungos verkossa on täysin luvallinen syy verkolle tuhota tietoliikennepaketteja IP-tasolla.

Internet-teknologiaa käytettäessä verkossa on verkon osia yhdistäviä reitittimiä, joilla on tietoa verkon topologiasta, ja jotka ottavat eri segmenteistä IP-paketteja vastaan ja ohjaavat ne eteenpäin. Reititys ja uudelleenlähetys ovat verkkokerroksen määrittävä tekijä. Verkkokerros ei ole tietoinen ylempien kerroksien tapahtumista ja mallin puitteissa jokainen IP-paketti käsitellään erillisenä tapahtumana eikä verkkokerros ole tietoinen sovelluksia yhdistävästä TCP-yhteydestä. TCP/IP-viitemallin verkkokerros vastaa varsin hyvin OSI-mallin verkkokerrosta.

Peruskerros (Link Layer) 

TCP/IP-malli ei määritä tarkkaan mitä tapahtuu verkkokerroksen alapuolella. Se olettaa että IP:n alla on jokin protokolla, joka pystyy välittämään IP-paketteja tietokoneen muistista toiselle tietokoneelle. IP-protokolla ei ota mitenkään kantaa fyysiseen mediaan tai pakettien kehystykseen, vaan olettaa saavansa käyttöön alemman kerroksen palveluita jonkin rajapinnan kautta, niin että se voi lähettää paketteja reitittimille (yhdyskäytäville). Tyypillisiä peruskerroksia ovat lähiverkkojen Ethernet, matkapuhelimien GPRS ja 3G ja digitaalisten tilaajaliittymien ADSL fyysiseen kerrokseen ja ATM, PPP, Ethernet tms. linkkikerrokseen perustuvat tekniikat. Peruskerros saattaa myös olla toinen TCP/IP-protokollapino, IP IP:n päällä muutaman lisäprotokollan kera ei ole mitenkään harvinainen ratkaisu.

TCP/IP- ja OSI-mallit 

TCP/IP-viitemalli eroaa OSI-mallista jonkin verran. Molempien voidaan katsoa koostuvan kerroksista, joista osa on samanlaisia. Selkeitä erojakin on. OSI-mallissa palvelut, rajapinnat ja protokollat on pidetty erillään. OSI-malli on ns. kerrosmalli jossa alemmat kerrokset on piilotettu ylemmiltä, kun taas TCP/IP muodostaa hierarkian, jossa sekä verkkokerros että kuljetuskerros ovat näkyvissä sovelluksille. OSI-mallissa voidaan periaattessa vaihtaa eri kerroksilla käytettäviä protokollia. 

TCP/IP-arkkitehtuuri lähtee siitä, että on yksi kaikille yhteinen protokolla, IP.
Keskellä oleva IP eristää peruskerroksen ylemmän portaan protokollista, samoin kuin ylemmän kerroksen protokolla peruskerroksesta.
IP-paketteja voidaan lähettää minkä tahansa peruskerroksen protokollan päällä, ja kaikki muut palvelut, sovellukset ja protokollat käyttävät IP:tä.
Kaikki verkon solmut voivat viestiä toistensa kanssa käyttäen IP:tä.

Tämä tiimalasimalli on ollut erittäin menestyksekäs rakennettaessa laajoja verkkoja.
Periaate on viety vieläkin pidemmälle IPv6:ta suunniteltaessa.

OSI-malli (mahdollisesti ilman istunto- ja esitystapakerrosta) soveltuu paremmin apuvälineeksi tietoliikenneverkoista puhuttaessa ja niitä opetettaessa.
Sen sijaan OSI-mallin mukaan rakennetut protokollat eivät ole saaneet suosiota. 

Portaattainen TCP/IP-malli soveltuu hyvin protokollien käytännön toteuttamiseen, kun eri kerroksille kuuluva prosessointi voidaan haluttaessa yhdistää suorituskyvyn parantamiseksi.

Katso myös 

 RINA, kehitteillä oleva rekursiivinen verkkoarkkitehtuuri

Lähteet 

Dataliikenne
TCP/IP

en:TCP/IP model
fa:مدل تی‌سی‌پی/آی‌پی
pl:Model DoD