5. Internetin protokollat

5. 1 Yleiskatsaus TCP/IP:hen


5
.2 TCP/IP:n syntytaustoja

Internetin historiaa

Vuonna 1969 ARPA (Advanced Research Project Agency) perusti tutkimus- ja kehitysprojektin, jonka tehtävänä oli luoda kokeellinen pakettiverkko. Tämä verkko, nimeltään ARPANET, rakennettiin, jotta voitaisiin tutkia luotettavassa ja valmistajista riippumattomassa tiedonsiirrossa käytettäviä tekniikoita. Tavoitteena oli luoda ihmisaivojen kaltainen verkko, joka toimisi vaikka suuri osa siitä tuhoutuisi ydiniskussa. Monet nykyaikaisessa tiedonsiirrossa käytettävä tekniikat kehitettiin ARPANETissä.

Kokeellinen ARAPANET oli niin menestyksellinen, että monet siihen liittyneet organisaatiot ryhtyivät käyttämään sitä jokapäiväisessä tiedonsiirrossa. Vuonna 1973 ARAPANET muutettiin koeverkosta tuotantoverkoksi ja sen hallinta annettiin elimelle nimeltään DCA (Defence Communication Agency; Yhdysvaltain puolustusministeriön osasto; sittemmin DISA eli Defense Information Systems Agency). ARPANETin yhteyskäytäntönä oli NCP (Network Control Protocol), joka korvattiin 1977 TCP/IP:llä (Transmission Control Protocol/Internet Protocol).

TCP/IP-protokollat hyväksyttiin sotilasstandardeiksi (MIL STD) vuonna 1983 ja kaikkien verkkoon liitettyjen asemien edellytettiin käyttävän niitä. Siirtymävaiheen helpottamiseksi lähdettiin TCP/IP:tä lähdettiin toteuttamaan UNIXissa, josta sai alkunsa UNIXin ja TCP/IP:n välinen liitto.

Samaan aikaan kun TCP/IP hyväksyttiin standardiksi, termi Internet tuli yleiseen käyttöön. Vuonna 1983 sotilaallinen käyttö erotettiin muusta Internetistä omaksi MILNET-verkokseen. NSFNET (National Science Foundation; Yhdysvaltain kansallinen tiedesäätiö) alkoi kehittämään vuonna 1986 Internetiä NSFNET-nimellä. Käytännössä ohjailu keskittyi supertietokoneiden kytkemiseen sekä siirtoverkkojen laajentamiseen ja parantamiseen. Internetin sisältö kehittyi yksittäisten ohjelmoijien ja tutkimusryhmien kokeilujen myötä. Vuonna 1987 NSF perusti uuden runkoverkon ja kolmiosaisen verkkotopologian, johon kuului runkoverkko, alueelliset verkot ja lähiverkot.

Pikku hiljaa Internetiin kytkeytyi entistä enemmän yksittäisiä korkeakouluja ja tutkimuslaitoksia omilla palvelimillaan. Tämä johtui siitä, ettei korkeakoulumaailmassa ollut ketään valvojaa, joka olisi valvonut Internetiin liittymistä. Yleisesti ottaen alkuperäinen Internet lähti akateemisesta vapaudesta ja avoimuudesta. Internetiä kehitettiin osin jopa "huutoäänestyksellä" ja asioista kiinnostuneet kokoontuivat yhteen satunnaisesti. Alkuperäisellä Internetillä ei ollut missään vaiheessa varsinaista ohjaavaa tahoa, vaan homma eteni erilaisten vapaaehtoisten työryhmien kautta.

Vuonna 1990 ARPANET lakkasi muodollisesti olemasta ja vuonna 1995 NSFNETin rooliksi jäi ensisijassa Internetin runkoverkon muodostaminen.

Tänä päivänä Internet on kasvanut valtavaksi toisiinsa liitettyjen, hajautettujen verkkojen verkoksi. Kaikkien näiden muutosten keskellä vain yksi asia on pysynyt muuttumattomana: Internet rakentuu yhä TPC/IP-protokollaperheen varaan.

Eräs merkki verkon menestyksestä näkyy sen nimeen – Internet – liittyvästä sekaannuksesta. Alun perin nimeä käytettiin vain merkitsemään verkkoa, joka käyttää IP-protokollaa. Nyt internet on yleistermi, joka tarkoittaa kokonaista verkkoluokkaa. Pienellä kirjoitettuna se tarkoittaa mitä tahansa erillisten fyysisten verkkojen joukkoa, jotka yhteisen protokollan avulla muodostavat yhden verkon. Isolla alkukirjaimella kirjoitettuna se tarkoittaa koko maailman kattavaa, toisiinsa liitettyjen verkkojen joukkoa, joka on kasvanut alkuperäisestä ARPANETistä ja IP-protokollaan käyttäen yhdistänyt erilliset fyysiset verkot yhdeksi loogiseksi verkoksi.

Koska TCP/IP yhdistää Internetiä, Internetin kasvu on herättänyt kiinnostusta myös TCP/IP:tä kohtaan. Nyttemmin on huomattu, että TCP/IP:n voimaa voidaan käyttää myös muissa verkon sovelluksissa, myös lähiverkossa, vaikka sitä ei olisikaan kytketty Internetiin (vrt. intranet)
 

5.3 TCP/IP:n ominaisuuksia

TCP/IP:n suosio ei ole kasvanut sattumalta tai siksi, että niihin kuuluvien protokollien käyttäminen on pakollista Internetiin liityttäessä. TCP/IP täyttivät erään tärkeän tarpeen (= maailmanlaajuisen tiedonsiirron) juuri oikean aikaan ja se johtuu mm. seuraavista TCP/IP:n ansioista:

Mikä on protokollastandardi?

TCP/IP-protokollien avoin luonne edellyttää julkisia standardeja.
 


5.4 OSI-malli

Tiedonsiirrossa – kuten pääsääntöisesti muuallakin tietotekniikassa – on välttämätöntä käyttää tarkoin määriteltyjä termejä.

OSI-malli sisältää seitsemän kerrosta, jotka määrittävät tiedonsiirtoprotokollien toiminnot.

7 Sovelluskerros (application level)
  • sisältää sovellusohjelmat, jotka käyttävät verkkoa.
  • Kerros, jossa käyttäjän hallitsemat prosessit sijaitsevat (eli ne sovellukset, joihin käyttäjällä on suora vuorovaikutus)
6 Esitystapakerros (presentation layer)
  • standardisoi tietojen esitystavan sovelluksille
  • jotta sovellukset voisivat vaihtaa tietoja, niiden on sovittava siitä, missä muodossa tiedot esitetään
  • kerros sisältää tietojen esittämisessä käytettävät rutiinit: nämä toiminnot suoritetaan TCP/IP:ssä usein sovellusten toimesta, mutta myös TCP/IP-protokollat, kuten XDR ja MIME, suorittavat niitä
5 Istunto eli yhteysjaksokerros (session layer)
  • hallitsee sovellusten välisiä istuntoja
  • istuntokerrosta ei voida erottaa omaksi kerroksekseen TCP/IP-protokollahierarkiassa
  • OSI-mallin istuntokerros hallitsee tietoja toisilleen siirtävien sovellusten istuntoja (yhteyksiä)
  • Nämä yhteydet suoritetaan TCP/IP:ssä suurimmaksi osaksi kuljetuskerroksessa eikä termiä istunto käytetä; TCP/IP.ssä käytetään termejä socket ja portti kuvaamaan polkua, jota pitkin sovellukset siirtävä tietoja
4 Kuljetuskerros (transport layer)
  • Suorittaa virhetarkastuksen ja korjauksen
  • Koko joukko TCP/IP:n toiminnoista tapahtuu kuljetuskerroksessa olevien protokollien toimesta
  • OSI-mallin kuljetuskerroksen tehtävänä on taata, että vastaanottaja saa tiedot täsmälleen sellaisena kuin ne on lähetetty
  • TCP/IP:ssä tämän tehtävän hoitaa TCP
  • TCP tarjoaa kuitenkin myös toisen kuljetuskerrokseen kuuluvan palvelun nimeltään UDP (User Datagram Service)
3 Verkkokerros (network layer)
  • Hoitaa yhteyden verkon kautta ylempien kerrosten puolesta
  • Verkkokerros hallitsee verkon kautta tapahtuvia yhteyksiä ja eristää ylempien kerrosten protokollat alla olevien olevan verkon yksityiskohdista
  • Internet-protokollaa (IP), joka eristää ylemmät kerrokset alla olevasta verkosta ja hoitaa osoitteetuksen sekä tietojen lähetyksen, kutsutaan tavallisesti TCP/IP:n verkkokerrokseksi
2 Siirtoyhteyskerros (data link layer)
  • suorittaa luotettavan tiedonsiirron fyysisen linkin kautta
  • TCP/IP luo harvoin protokollia siirtokerrokseen
  • Useimmat siirtokerrosta koskevat RFC:t käsittelevät sitä, kuinka IP voi käyttää hyväkseen olemassa olevia siirtoprotokollia
1 Fyysinen kerros (physical layer)
  • määrittää verkkomedian fyysiset ominaisuudet
  • määrittää tiedon siirrossa käytettävän laitetason signaalit
  • samoin mm. jännitetasot, liitännän kytkentänastojen määrät ja paikat määritetään tällä tasolla
  • esimerkkejä fyysisen tason standardeista ovat liittimet RS232, V.35 sekä lähiverkon kaapelointia koskevat standardit kuten 802.3
  • TCP/IP ei määrittele fyysisiä standardeja, vaan se käyttää olemassa olevia

Kuva 1. OSI-malli.

OSI-mallissa käytetyt termit auttavat TCP/IP:n kuvaamisessa ja ymmärtämisessä.
 

5.5 TCP/IP-protokollan rakenne

TCP/IP:n kuvaamisesta kerrosmallin avulla ei ole mitään yhteistä sopimusta, mutta siinä katsotaan yleensä olevan vähemmän kerroksia kuin OSI-mallissa. Useimmat TCP/IP:n kuvaukset määrittävät kolmesta viiteen kerrosta. Seuraavassa tarkastellaan neljän kerroksen mallia, joka perustuu DOD-protokolallamallin* kolmeen kerrokseen (sovellus-, kuljetus- ja verkkokerros) vahvistettuna erillisellä Internet-kerroksella.

* DOD = DOD/IP eli Department of Defence/Internet Protocol. Yhdysvalloissa aiemmin käytetty nimitys UNIX-pohjaisissa järjestelmissä käytetystä tiedostonsiirtokäytännöstä, joka nykyään tunnetaan paremmin nimellä TCP/IP.

4 Sovelluskerros
- sisältää sovellukset ja prosessit, jotka käyttävät verkkoa
3 Kuljetuskerros
- tarjoaa päästä-päähän –siirtopalvelut
2 Internet-kerros
- määrittää tietosähkeen ja suorittaa tietojen reitityksen
1 Verkkokerros
- sisältää fyysisen verkon käsittelyssä tarvittavat rutiinit

OSI-mallin tapaan tiedot siirretään pinossa alaspäin, kun ne lähetetään verkkoon ja ylöspäin, kun ne vastaanotetaan verkosta.

Kuva 1. Tietojen kapselointi

Tiedot

      Sovelluskerros 

Otsake

Tiedot

             Kuljetuskerros

Otsake

Otsake

Tiedot

             Internet-kerros

Otsake

Otsake

Otsake

Tiedot

Verkkokerros

= Lähetys

= Vastaanotto

Kuva 1. Tietojen kapselointi.

Jokaisella kerroksella on oma tietorakenteensa.

Kuvassa 2 on esitetty ne termit, joita käytetään TCP/IP:n eri kerroksissa viitattaessa lähetettäviin tietoihin.

Sovelluskerros
TCP

    Vuo

UDP    Viesti

Kuljetuskerros

Segmentti

Paketti

Internet-kerros

Tietosähke

Tietosähke

Verkkokerros

Kehys

Kehys

Kuva 2. Tietorakenne.

TCP/IP:n alla voi olla monia erilaisia verkkoja, joista jokainen voi käyttää siirtämistään tiedoista eri termiä. Useimmissa verkoissa lähetettäviä tietoja kutsutaan paketeiksi ja kehyksiksi.
 

5.6 Kerrosten yksityiskohtainen tarkastelu

5.6.1 Verkkokerros

Verkkokerros on TCP/IP:n alin kerros.

Verkkokerroksessa suoritettaviin toimintoihin kuuluvat

Verkkokerroksen protokollia on määritelty mm. seuraavissa kahdessa RFC-dokumentissa:

Unix-toteutuksen tapaan kerroksen protokollat ovat usein olemassa sekä laiteajureina että niihin liittyvinä ohjelmina. Verkon nimellä yksilöidyt laiteajurit tavallisesti kapseloivat tiedot ja jakelevat ne verkkoon, kun taas erilliset ohjelmat suorittavat oheistoimintoja kuten osoitteiden muuntamista.
 

5.6.2 Internet-kerros

Internet-kerros on protokollahierarkiassa verkkokerroksen yläpuolella. IP (Internet-protokolla) (RFC 791) on TCP/IP:n sydän ja Internet-kerroksen tärkein protokolla.

IP-protokolla

IP-protokolla on yhteydetön, mikä tarkoittaa:

Tietosähke (datagrammi)

TCP/IP-protokollat suunniteltiin ARPANET-verkossa tapahtuvaa tiedonsiirtoa varten. Tämä verkko oli paketinvälitysverkko (packet switching network).

S
A
N
A
T

BITIT

1 Versio IHL

Palvelun tyyppi

Kokonaispituus
2 Tunnistus Liput Lohkon sijainti
3 Elinaika Protokolla IP-otsakkeen tarkistussumma
4 Lähdeosoite
5 Kohdeosoite
6 Valitsimet Täyte
Tiedot alkavat tästä...

Kuva 3. IP-tietosähkeen muoto

  • Tietosähkeen ensimmäiset viisi tai kuusi 32-bitin sanaa muodostavat ohjaustiedot, joita kutsutaan otsakkeiksi (header). Perusmuodossaan sen pituus on viisi sanaa: kuudes on valinnainen.
  • Koska otsakkeen pituus ei ole kiinteä, se sisältää kentän nimeltä IHL (Internet Header Lenght), joka ilmoittaa otsakkeen pituuden.
  • Otsake sisältää kaikki paketin toimittamisessa tarvittavat tiedot.
  • IP toimittaa tietosähkeen lukemalla ensin otsakkeen viidennestä sanasta kohdeosoitteen. Tämä on standardi 32-bitin IP-osoite, joka määrittä kohteena olevan verkon ja tuossa verkossa olevan aseman (IP-osoitteen rakenteesta myöhemmin)
  • Jos kohdeasema osoittaa samassa verkossa olevaan asemaan, paketti lähetetään suoraan kohteeseen.
  • Jos osoite ei ole samassa verkossa, paketti siirretään yhdyskäytävään* (gateway) edelleen toimittamista varten. 
  • Yhdyskäytävät ovat laitteita, jotka siirtävät paketteja fyysisten verkkojen välillä.
  • Yhdyskäytävän valintaprosessia kutsutaan reitittämiseksi.
  • IP tekee reitittämispäätöksen jokaisen paketin osalta

* Yhdyskäytävä, yhdysväylä  eli gateway = (1) Tietoliikenteessä laite ja/tai ohjelmisto, joka sovittaa erityyppisiä verkkoja. (2) Useaan fyysiseen TCP/IP-verkkoon kytketty järjestelmä, joka reitittää tai toimittaa IP-paketteja verkosta toiseen. Yhdyskäytävän päätehtävä on toimia välittäjänä eri siirtoprotokollien tai tiedostomuotojen välillä (esim. IPX ja IP). (3)  Yhdyskäytävä lukee tulevan paketin ja tulkitsee sen dataksi asti ja paketoi sen sitten uudestaan lähtevän liikenteen protokollan mukaiseksi. Yhdyskäytävä on tietokone, jossa on molempien verkkojen verkkokortit ja yhdyskäytäväohjelmisto. Yhdyskäytävällä liitetään samoja asioita tekevät järjestelmät. (4) Yhdyskäytävä on ohjelmisto, joka yhdistää kaksi samanlaista mutta keskenään yhteensopimatonta palvelua.
 

Reititystietosähkeet

Internet-yhdyskäytäviä kutsutaan tavallisesti IP-reitittimiksi, koska ne käyttävät reitittämisessä IP-protokollaa

  • Perinteisen IP-terminologian mukaan verkoissa on vain kahden tyyppisiä laitteita: yhdyskäytäviä ja asemia (hosts)
  • Yhdyskäytävät siirtävät paketteja verkkojen välillä, mutta asemat eivät.
  • Toisaalta, jos asema on liitetty useampaan kuin yhteen verkkoon (multi-homed, moniosoitteinen), se voi myös siirtää paketteja verkosta toiseen.
  • Kun moniosoitteinen asema välittää paketteja, se toimii kuin yhdyskäytävä ja sen katsotaankin olevan sellainen.
  • Nykyään tiedonsiirtoterminologiassa tehdään ero yhdyskäytävän ja IP-reitittimen välillä: nykyterminologiassa yhdyskäytävä siirtää tietoja kahden eri protokollan ja reititin * kahden eri verkon välillä. Näin ollen järjestelmä, joka siirtää sähköpostia TCP/IP:n ja OSI:n välillä on yhdyskäytävä, mutta perinteinen IP-yhdyskäytävä on reititin.

* Reititin eli router =  Tietoliikenteessä reititin on laite, joka huolehtii sanomien reitityksestä. Reititin etsii paketin otsikon perusteella lähiverkon oikean segmentin ja valitsee paketille parhaan reitin ja näin parantaa verkon suorituskykyä. Reitittimiä käytetään pääasiassa TCP/IP-liikenteen välittämiseen erityisesti WAN-verkoissa.

Kuvassa 3 näkyy, kuinka yhdyskäytäviä käytetään pakettien välittämiseen. 

Asema A1     Asema C1
Sovellus     Sovellus
Kuljetus Yhdyskäytävä G1 Yhdyskäytävä G2 Kuljetus
Internet Internet Internet Internet
Verkko Verkko Verkko Verkko
                                       
Verkko A Verkko B Verkko C
  • Paketit kulkevat asemissa kaikkien neljän protokollakerroksen läpi, mutta yhdyskäytävissä ne siirtyvät vain Internet-kerrokseen, jossa reitityspäätökset tehdään.
  • Järjestelmät voivat toimittaa paketteja vain samassa fyysisessä verkossa oleville laitteille. 
  • Asemasta A1 asemaan C1 menevät paketit kulkevat yhdyskäytävien G1 ja G2 kautta. 
  • Asema A1 toimittaa paketin yhdyskäytävälle G1, joka on liitetty samaan verkkoon. yhdyskäytävä G1 lähettää paketin yhdyskäyvälle G2 verkon B kautta.
  • Yhdyskäytävä G2 toimittaa lopuksi paketin suoraan asemalle C1, koska se on liitetty samaan verkkoon kuin C.
  • Asema A1 ei tiedä, mitä yhdyskäytäviä yhdyskäytävän G1 takana on. Se lähettää sekä verkkoon B että verkkoon C tarkoitetut paketit tuolle yhdyskäytävälle ja luottaa siihen, yhdyskäytävä ohjaa ne oikeisiin kohteisiin.
  • Vastaavasti asema C1 lähettää sekä verkossa A että verkossa B oleville asemille tarkoitetut paketit yhdyskäytävälle G2

Reitityksiä voi olla verkoista riippuen monenlaisia.

Tietosähkeiden jakaminen osiin

Kun tietosähke kulkee eri verkkojen kautta, saattaa syntyä tilanne, että yhdyskäytävän IP-moduulin on jaettava se pienempiin osiin. 

  • Jostakin verkosta tullut tietosähke saattaa olla liian pitkä lähetettäväsi yhtenä pakettina toisen verkon kautta.
  • Tämä tilanne syntyy vain silloin, kun yhdyskäytävä yhdistää kahta fyysisesti erilaista verkkoa.
  • Jokaisella verkolla on oma maksimi siirtoyksikön pituus (maximum transmission unit, MTU), joka tarkoittaa suurinta mahdollista pakettia, jonka se voi lähettää.
  • Jos toisesta verkosta vastaanotettu tietosähke on pitempi kuin toisen verkon MTU, se on pakko jakaa pienempiin osiin lähetystä varten. Tätä prosessia kutsutaan ositukseksi (fragmentation).

Tietosähkeiden siirtäminen kuljetuskerrokseen

Kun IP vastaanottaa tietosähkeen, joka on osoitettu paikalliselle asemalle, sen on siirrettävä tietosähkeen tieto-osa oikealle kuljetuskerrosprotokollalle. Tämä tapahtuu tietosähkeen otsakkeen sanassa kolme olevan protokollanumeron perusteella. Jokaisella kuljetusprotokollalla on yksilöllinen protokollanumero.

ICMP-protokolla

ICMP-protokolla (Internet Control Message Protocol) on eräs IP:n olennainen osa joka on määritelty dokumentissa RFC 792. Protokolla kuuluu Internet-kerrokseen ja se käyttää IP-tietosähkeiden jakelutoimintoja viestiensä lähettämiseen. ICMP lähettää viestejä, jotka suorittavat TCP/IP:lle seuraavia ohjaus, virheraportointi- ja tietojenvälitystoimintoja:

  • Vuonohjaus. Jos tietosähkeet saapuvat nopeammin kuin niitä ehditään käsitellä, vastaanottava asema tai välittävä yhdyskäytävä lähettää lähettävälle asemalla ICMP Source Quench -viestin. Tästä asema tietää, että tietosähkeiden lähettäminen on väliaikaisesti lopetettava.
  • Ilmoitukset tuntemattomista kohteista. Jos kohdetta ei pystytä tavoittamaan, ongelman havainnut järjestelmä lähettää Destination Unreachable -viestin lähettävälle asemalle. Jos kohde, jota ei tavoitettu, on verkko tai asema, viestin lähettää yhdyskäytävä, mutta jos kohde on portti, vastaanottava asema lähettää viestin.
  • Uudelleenreititys.Yhdyskäytävä pyytää asemaa käyttämään toista yhdyskäytävää lähettämällä sille ICMP Redirect -viestin silloin, kun toinen reitti on parempi vaihtoehto. Tätä viestiä voidaan käyttää vain silloin, kun lähettävä asema on samassa verkossa kuin molemmat yhdyskäytävät.
  • Etäasemien tarkkailu. Asema voi lähettää ICMP Echo -viestin, jos se haluaa varmistaa, että etäaseman Internet-asema on toiminnassa. Kun järjestelmä vastaanottaa echo-viestin, se vastaa palauttamalla paketissa olevat tiedot takaisin lähettävälle asemalle. (Tätä viestiä käytetään ping-komennossa; tätä kokeillaan myöhemmin).
     

5.6.3 Kuljetuskerros

Internet-kerroksen yläpuolella oleva protokollakerros  on nimeltään asemalta asemalle kuljetuskerros; yleisemmin kuljetuskerros. 

  • Kerroksen kaksi tärkeintä protokollaa ovat TCP (Transmission Control Protocol) ja UDP (User Datagram Protocol).
  • TCP tarjoaa luotettavan tiedonsiirron virheentarkastuksineen ja -korjauksineen.
  • UDP tarjoaa vähän resursseja vaativan, yhteydettömän siirtotavan
  • Molemmat protokollat siirtävät tiedot sovelluskerroksen ja Internet-kerroksen välillä. Sovelluksen ohjelmoija voi päättää, kumpi palvelu sopii paremmin hänen tarkoituksiinsa.

UDP

UDP-protokolla antaa  mahdollisuuden käyttää suoraan tietosähkeiden toimituspalveluita, joita esimerkiksi IP tarjoaa. Tällä tavoin sovellukset voivat vaihtaa viestejä keskenään verkon kautta mahdollisimman vähiä protokolla resursseja käyttämällä.

  • UDP on epäluotettava, yhteydetön tietosähkeprotokolla.
  • Epäluotettava tarkoittaa, ettei protokollaan sisälly toimintoja, joilla tarkistetaan tietojen perillemeno.
  • Oman tietokoneen sisällä UDP siirtää tiedot luotettavasti.
  • Tiedot toimitetaan perille viestin otsakkeen ensimmäisessä sanassa olevaa 16-bitin lähdeporttinumeroa ja kohdeporttinumeroa käyttäen.

Miksi sovellusohjelmoijan sitten pitäisi käyttää UDP:tä? 

  • Jos lähetettävän tiedon määrä on vähäinen, yhteyden luominen ja tietojen perillemenon varmistaminen vaativat enemmän resursseja kuin itse tietojen siirto, vaikka ne jouduttaisiin lähettämään uudelleenkin.
  • UDP sopii myös tapahtumaluonteisia kyselyitä tekevien sovellusten käyttöön. Näissä tapauksissa kyselyyn saatu vastaus on vahvistus viestin perillemenosta.
  • Jos em. vastausta ei kuulu, sovellus lähettää uuden kyselyn.
  • On myös sovelluksia, jotka varmistavat tiedon perillemenon omilla menetelmillään, joten ne eivät tarvitse kuljetuskerroksen palveluita. Näissä tapauksissa kahden varmistusmenettelyn käyttäminen olisi tuhlausta.

TCP

Sovellukset, jotka tarvitsevat kuljetuskerroksen palveluita varmistamaan tietojen virheettömän perillemenon, käyttävät TCP:tä, koska se tarkistaa, että tiedot ovat verkon läpi virheettömästi ja oikeassa järjestyksessä.

  • TCP on luotettava, yhteydellinen ja vuo-ohjattu protokolla.
  • TCP varmistaa tiedonsiirron luotettavuuden menetelmällä nimeltään PAR (Positive Acknowledgment with Re-transmission). Yksinkertaistettuna PAR:ia käyttävä järjestelmä lähettää tiedot uudelleen, kunnes se saa vastaanottavalta asemalta vahvistuksen siitä, että tiedot on vastaanotettu oikein. 
  • Kahden TCP-moduulin välillä lähetetyn tietoyksikön nimi on segmentti (ks. kuva 5.)
S
A
N
A
T

BITIT

1 Lähdeportti Kohdeportti
2 Järjestysnumero
3 Kuittausnumero
4 Paikka Varattu Liput Ikkuna
5 Tarkistussumma Kiireellisen data osoitin
6 Valitsimet Täyte
Tiedot alkavat tästä...

Kuva 5. TCP-segmentin rakenne.

  • Jokainen segmentti sisältää tarkistussumman, jonka avulla vastaanottaja varmistaa, etteivät tiedot ole muuttuneet matkalla.
  • Jos tietosegmentti on vahingoittumaton, vastaanottaja lähettää hyväksymiskuittauksen lähettäjälle.
  • Jos segmentti on vaurioitunut, vastaanottaja hylkää sen.
  • Määrätyn ajan kuluessa lähettävä TCP-moduuli lähettää uudelleen sellaiset segmentti, joista se ei saa hyväksymiskuittausta.
  • TCP on yhteydellinen. Se muodostaa loogisen päästä päähän -yhteyden kahden aseman välille.
  • Asemat vaihtavat keskenään kättelyksi kutsutun ohjausviestin, enne kuin varsinaiset tiedot lähetetään.
  • TCP merkitsee segmentin ohjausviestiksi asettamalla ykköseksi segmentin otsakkeen sanassa neljä olevan lipun-kentän tietyn bitin (lippu l. flag = rekisterin bitti, jonka tila toimii indikaattorina eli lippuna ohjelman suorituksen aikana. Ilmaistaan tavallisesti siten, että jos bitti =1 eli lippu on päällä ja lippu =0 lippu pois päältä)
  • TCP:n käyttämää kättelyä kutsutaan kolminkertaiseksi kättelyksi (three-way-handshake), koska siinä käytetään kolmea segmenttiä (ks kuva 6.)
Asema A Asema B
SYN
SYN, ACK
ACK, tiedot  
Tietojen siirto

Kuva 6. Kolminkertainen kättely.

  • Asema A aloittaa kättelyn lähettämällä asemalle B segmentin, jonka SYN-bitti (Synchronize Sequence Numbers) on asetettu. 
  • Tämän perusteella asema B tietää, että asema A haluaa avata yhteyden ja ja se näkee myös, mitä järjestysnumeroa A aikoo käyttää segmentin aloittavan numerona. Segmentin oikea järjestys nähdään järjestysnumeron perusteella.
  • Asema B vastaa asemalle A lähettämällä segmentin, jossa ACK (Ackonowledgement) ja SYN-bitti ovat asetettuina.
  • B:n lähettämä segmentti vahvistaa, että A:n lähettämä segmentti on vastaanotettu ja A näkee myös, mikä on B:n käyttämä ensimmäinen järjestysnumero.
  • Lopuksi asema A lähettää vielä segmentin, jossa vahvistetaan B:n lähettämän segmentin vastaanottaminen ja aloittaa sitten vastaanottamaan tietoja.
  • Tiedot voidaan siirtää heti kun yhteys on avattu.
  • Kun toisiinsa yhteydessä olevat moduulit ovat saaneet tiedot siirrettyä, ne sulkevat yhteyden suorittamalla vielä kolminkertaisen kättelyn segmenteillä, joissa on FIN-lippu (No more data from sender).
  • TCP tarkastelee lähettämiään tietoja jatkuvana vuona eikä suinkaan itsenäisinä paketteina. Siksi se huolehtii myös siitä, että tiedot lähetetään ja vastaanotetaan oikeassa järjestyksessä. TCP-segmentin otsakkeessa olevan järjestysnumero ja kuittausnumero ilmaisevat tavujen oikean järjestyksen.
     

5.6.4. Sovelluskerros

TCP/IP-protokollarakenteen huipulla on sovelluskerros.

  • Tämä kerros sisältää kaikki ne prosessit, jotka käyttävät kuljetuskerrosprotokollia tietojen siirtoon.
  • Sovellusprotokollia on useita. Niistä useimmat tuottavat palveluja käyttäjille ja tähän kerrokseen lisätään jatkuvasti uusia palveluja.

Tunnetuimmat ja eniten käytetyt sovellusprotokollat ovat:

  • Telnet. Pääteprotokolla (The Network Terminal Protocol), joka mahdollistaa pääteyhteydet verkon kautta.
  • FTP (File Transfer Protocol), jota käytetään vuorovaikutteiseen tiedostojen siirtoon.
  • SMTP. Postiprotokolla (Simple Mail Transfer Protocol) sähköpostin välitystä varten.
  • HTTP. Hypertekstiprotokolla (Hypertext Transfer Protocol) Web-sivujen lukemiseen.

Vaikka HTTP, FTP, MTP ja Telnet ovat eniten käytettyjä TCP/IP-sovelluksia, käyttäjä ja järjestelmänhallitsija joutuu käyttämään myös monia muita yleisiä protokollia:

  • Nimijärjestelmä (Domain Name system, DNS). Tunnetaan myös nimellä nimipalvelu. Tämä sovellus etsii vastaavuudet IP-osoitteiden ja verkko- ja laitenimien välillä.
  • OSPF (Open Shortest Path First). Reititys on keskeinen osa TCP/IP:n toimintaa. OSPF:ää käytetään reititystietojen välittämiseen.
  • NFS (Network File System). Tämä protokolla mahdollistaa tiedostojen yhteyskäytön verkon asemien välillä.

Jotkut palvelut, kuten Telnet ja FTP, edellyttävät, että käyttäjällä on jonkin verran tietoja verkoista. Toiset protokollat, kuten ODPF, toimivat niin, että ei edes tiedä niiden olemassaoloa. Järjestelmänhallitsijan on tunnettava nämä protokollat ja myös kaikissa muissa TCP/IP-kerroksissa olevat protokollat, sillä järjestelmänvalvoja vastaa asetusten määrittämisestä.