5. Internetin
protokollat |
5. 1
Yleiskatsaus TCP/IP:hen
- TCP/IP:n osaamista tarvitaan erityisesti
järjestelmänhallitsijan/verkonhallitsijan toimessa
- Verkonhallinta ja järjestelmänhallinta
ovat kaksi eri tehtävää:
- Järjestelmänhallintaan kuuluu mm.
uusien käyttäjien lisääminen ja varmuuskopiointi
- Verkonhallinnassa kone on yhteydessä
moniin muihin järjestelmiin, joten tapa jolla verkonhallitsijan tehtävät
hoidetaan vaikuttavat myös muihin verkossa oleviin järjestelmiin.
- Verkon käytön pääpaino on tiedon
siirrossa, ei niinkään tiedon käsittely (vrt. esim. koneen kapasiteetin
käyttäminen laskemiseen); tiedon siirrossa painopiste on sähköpostissa ja
tiedon etsimisessä tietoverkoista
- Eräs TCP/IP:n suurimmista ansioita onkin
se, että se mahdollistaa yhteydenpidon kaikentyyppisten laitealustojen ja
käyttöjärjestelmien välillä
- TCP/IP tarkoittaa kokonaista
protokollaperhettä, joka hallitsee tiedonvälitystä koko maailman kattavassa
Internetissä.
Itse nimi TCP/IP viittaa kahteen tuohon
joukkoon kuuluvaa protokollaan: Transmission Control Protocol (TCP) ja
Internet Protocol (IP). Nämä ovat siis TCP/IP:n tärkeimmät protokollat
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:
- Avoimet protokollastandardit, jotka ovat
vapaasti saatavissa ja kehitetty laitealusta- ja
käyttöjärjestelmäriippumattomaksi. Laajasta tuesta johtuen TCP/IP sopii
ihanteellisesti erilaisten laitteiden ja ohjelmien yhdistämiseen, vaikka
tiedonsiirto ei tapahtuisikaan Internetin kautta.
- Verkkoteknologiariippumattomuus. TCP/IP:tä
käyttäen voidaan yhdistää erilaisia verkkoja. Se voi toimia Ethernetin,
Token ringin, valintalinjan, FDDI:n tai käytännöllisesti katsoen minkä
tahansa fyysisen tiesiirtotien kautta.
- Yleinen osoitteetusmenetelmä, jonka
ansiosta TCP/IP-laite pystyy olemaan yhteydessä mihin tahansa toiseen verkon
asemaan.
Mikä on protokollastandardi?
- Protokollat tarkoittavat muodollisia
käyttäytymissääntöjä: tietokoneet ovat yhteydessä toisiinsa määriteltyjen
sääntöjen avulla, jotta yhteydenpitoa voitaisiin hallita.
- Niinpä TCP/IP muodostaa heterogeenisen
verkon, jossa kukaan tietokone/laitevalmistaja ei voi yksinään määritellä
käyttöjärjestelmän ja laitteet ominaisuuksia.
- TCP/IP on kaikkien käytettävissä, niitä
kehitetään ja muutetaan yksimielisellä päätöksellä – ei yhden valmistajan
mielen mukaan.
- Niinpä kuka tahansa voi valmistaa
tuotteita, jotka sopivat näihin avoimiin protokolliin.
TCP/IP-protokollien avoin luonne edellyttää
julkisia standardeja.
- Kaikki TCP/IP:n protokollat on määritelty
jossakin Internetin kolmessa standardijulkaisussa.
- Koko joukko niistä on hyväksytty MIL STAD
(Military Standars) –standardeiksi. Muut on julkaistu IEN (Internet
Engineering Notes) –tiedotteina. IEN-muotoiset julkaistu ovat kuitenkin
jääneet pois käytöstä.
- Suurin osa TCP/IP-protokollia koskevista
tiedoista on julkaistu RFC
(Requested for Comments) –dokumentteina.
- RFC-dokumentit sisältävät viimeisimmät
versiot kaikista standardeja TCP/IP-protokollia koskevista määrityksistä.
- Esim. dokumentti RFC 1310 kertoo, kuinka
Internet standardit syntyvät (Internet Standards Process)
- Kuten käsite RFC (Request for Comments =
kommentteja pyydetään) kertoo, näiden dokumenttien tyyli ja sisältö vähemmän
virallinen kuin monien muiden standardien.
- RFC-dokumentit sisältävät runsaasti
mielenkiintoisia ja käyttökelpoisia tietoja eivätkä ne rajoitu ainoastaan
tiedonsiirtoprotokollien määrittelyyn.
- Verkonhallitsijan olisi hyvä lukea
RFC-dokumentteja, sillä jotkut niistä sisältävät käytännön ohjeita ja
neuvoja, joita on helppo ymmärtää.
5.4 OSI-malli
Tiedonsiirrossa – kuten pääsääntöisesti
muuallakin tietotekniikassa – on välttämätöntä käyttää tarkoin määriteltyjä
termejä.
- Alan ammattilaisetkaan eivät tunne kaikkea
tietoverkkojen terminologiaa – ei siis syytä huoleen ;)
- Yhteinen viitekehys on tarpeen ennen muuta
siksi, että tiedonsiirtoterminologia saataisiin mahdollisimman
ymmärrettäväksi.
- ISO (International
Standards Organization) –järjestön kehittämää OSI-mallia käytetään usein
kuvaamaan tiedonsiirtoprotokollien rakennetta ja toimintaa.
- OSI (Open Systems International Reference
Model) toimii yleisenä suosituksena, kun puhutaan tiedonsiirrosta.
- OSI:ssa määritetyt termit ovat helposti
ymmärrettävissä ja niitä käytetään laajasti tiedonsiirtomaailmassa (jopa
niin laajasti, että on vaikea puhua tiedonsiirrosta käyttämättä OSI-mallin
terminologiaa)
OSI-malli sisältää seitsemän kerrosta, jotka
määrittävät tiedonsiirtoprotokollien toiminnot.
- Jokainen kerros edustaa toimintoa, joka
suoritetaan, kun tietoja siirretään verkon kautta yhteydessä olevien
sovellusten välillä.
- Protokollat ovat kuin toinen toisensa
päälle pinottuja palikoita (Kuva 1), joten niitä kutsutaankin usein pinoksi
tai protokollapinoksi.
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.
- TCP/IP:n neljä kerrosta käsittävä malli
esittää tapaa, jolla tietoja käsitellään niiden siirtyessä alaspäin pinossa
sovellustasolta fyysiseen verkkoon.
Pinon jokainen kerros lisää omat
ohjaustietonsa valmistaakseen varman toimituksen.
Näitä ohjaustietoja kutsutaan
otsakkeiksi (header), koska ne lisätään lähetettävien tietojen alkuun.
Jokainen kerros käsittelee ylemmästä
kerroksesta saamiaan tietoja paketteina ja lisää sen alkuun oman
otsakkeensa: tätä kutsutaan tietojen kapseloinniksi.
Kun tiedot vastaanotetaan, tapahtuu
päinvastoin: jokainen kerros poistaa otsakkeensa ennen siirtoa ylempään
kerrokseen.
Kuva 1. Tietojen kapselointi
Sovelluskerros
Kuljetuskerros
Internet-kerros
Otsake |
Otsake |
Otsake |
Tiedot |
Verkkokerros |
= Lähetys
= Vastaanotto
Kuva 1. Tietojen kapselointi.
Jokaisella kerroksella on oma tietorakenteensa.
- Käsitteellisesti kerros on tietämätön
siitä, mitä on sen ylä- ja alapuolella olevan kerroksen käyttämä
tietorakenne.
- Todellisuudessa kerrokset käyttämät
tietorakenteet on suunniteltu yhteensopiviksi naapurikerrosten rakenteiden
kanssa, jotta tiedonsiirto olisi mahdollisimman tehokasta.
- Jokaisella kerroksella on kuitenkin oma
tietorakenteensa ja terminologiansa, jolla rakennetta kuvataan
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 |
|
Kuva 2. Tietorakenne.
- TCP:tä käyttävät sovellukset käsittelevät
tietoja tietovuona (stream), kun taas UDP:tä käyttävät sovellukset
sovellukset viesteinä (message).
- TCP-protokollassa tiedoista käytetään
nimeä segmentti (segment) ja UDP:ssä nimeä paketti (packet).
- Internet-kerros näkee tiedot lohkoina,
joita käytetään nimeä tietosähke (datagram).
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.
- Kerroksessa olevan protokollat tarjoavat järjestelmien
käyttöön välineet, joiden avulla se voi siirtää tietoja siihen liitetyn
verkon muille laitteille.
- Se määrittelee tavan, jolla verkkoa käytetään
IP-datagrammeja lähetettäessä.
- Toisin kuin ylemmän tason protokollien, verkkokerroksen
protokollien on tunnettava yksityiskohtaisesti alla oleva verkko (mm.
pakettien rakenne, osoitteetus) voidakseen muotoilla lähetettävät tiedot
verkon vaatimuksia vastaaviksi.
- TCP/IP:n verkkokerros voi hoitaa OSI-mallin kolmen
alimman kerroksen (verkko-, siirtoyhteys- ja fyysinen kerros) tehtävät.
- Verkkokerros on tavallisesti käyttäjälle näkymätön.
- TCP/IP:n rakenne piilottaa alempien kerrosten toiminnot
ja käyttäjien paremmin tuntemat protokollat (IP, TCP, UDP...) ovat ylemmän
tason protokollia.
- Otettaessa käyttöön uusia verkkoteknologioita on
verkkokerroksen kehitettävä myös uusia protokollia ennen kuin TCP/IP voi
käyttää uusia laitteita: näin ollen verkkokerrosprotokollia on olemassa
useita - yksi jokaista verkkostandardia varten.
Verkkokerroksessa suoritettaviin toimintoihin kuuluvat
- IP-tietosähkeiden kapseloiminen kehyksiin, jotka
lähetetään verkkoon.
- IP-osoitteiden muuntaminen verkon käyttämiksi fyysisiksi
osoitteiksi.
- Yksi TCP/IP vahvuuksista on sen yleinen osoiterakenne:
IP-osoite on muunnettava osoitteeksi, jota käytetään siinä fyysisessä
verkossa, jonka kautta tietosähke lähetetään.
Verkkokerroksen protokollia on määritelty mm. seuraavissa
kahdessa RFC-dokumentissa:
- RFC 826, ARP (Address Resolution Protocol), jossa
määritetään, kuinka IP-osoitteet muutetaan Ethernet-osoitteiksi.
- RFC 894, A Standard for the Transmission of IP Datagrams
over Ethernet Networks, joka määrittää, kuinka tietosähkeet kapseloidaan
Ethernet-verkossa tapahtuvaa lähetystä varten.
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 tarjoaa pakettien siirrossa tarvittavat peruspalvelut,
joiden varaan TCP/IP-verkot rakentuvat.
- Kaikki tämän kerroksen ylä- ja alapuolella olevat
protokollat käyttävät Internet-protokollaa tietojen jakeluun.
- Kaikki TCP/IP:n tiedot, lähtevät ja tulevat, kulkevat
IP:n kautta riippumatta siitä, mikä on niiden lopullinen päämäärä.
IP-protokolla
- Määrittää tietosähkeen (datagammin), joka on Internetissä
siirrettävien tietojen perusyksikkö.
- Määrittää Internetin osoitteetuksen.
- Siirtää tiedot verkkokerroksen ja asemalta asemalle
kuljetuskerroksen välillä.
- Reitittää tietosähkeet etäasemalle.
- Suorittaa tietosähkeen jakamisen osiin ja uudelleen
kokoamisen.
IP-protokolla on yhteydetön, mikä tarkoittaa:
- Ettei IP avaa yhteyttä asemien välille vaihtamalla
ohjaustietoja ("kättely") ennen tiedonsiirron käynnistystä.
- Vastakohtana yhteydellinen protokolla varmistaa, että
vastaanottava asema on valmiina tiedonsiirtoon vaihtamalla sen kanssa
valvontaviestit ennen tietojen lähetystä.
- Jos kättely onnistuu, järjestelmien sanotaan avanneen
yhteyden.
- IP luottaa siihen, että muissa kerroksissa olevat
protokollat avaavat yhteyden, jos yhteydellistä palvelua tarvitaan.
- IP lähtee myös siitä, muissa kerroksissa olevat
protokollat hoitavat virheentarkistuksen ja -korjauksen.
- Täten IP:tä kutsutaankin epäluotettavaksi protokollaksi
(unrealiable protocol), koska se ei sisällä virheentarkastusta eikä
-korjausta.
- "Epäluotettavuus" ei kuitenkaan tarkoita etteikö
protokollaan voisi luottaa - päinvastoin. IP siirtää tiedot luotettavasti
alla olevaan verkkoon, mutta se ei tarkista onko tiedot vastaanotettu
oikein.
- TCP/IP-arkkitehtuurissa muissa kerroksissa olevat
protokollat hoitavat tarkistuksen tarvittaessa.
Tietosähke (datagrammi)
TCP/IP-protokollat suunniteltiin ARPANET-verkossa tapahtuvaa
tiedonsiirtoa varten. Tämä verkko oli paketinvälitysverkko (packet switching
network).
- Paketti on tietolohko, jonka mukana kulkee sen
toimittamiseen liittyvät tiedot. Samaan tapaan kuin kirjekuoressa, jonka
kuoreen on merkitty osoite.
- Pakettienvälitysverkon paketit sisältävät osoitetiedot,
joiden perusteella toimitetaan fyysisestä verkosta toiseen siirtämällä niitä
kohti lopullista päämäärää.
- Paketit kulkevat verkossa itsenäisesti toisista
paketeista riippumatta.
- Tietosähke on Internet-protokollassa määritelty
paketin muoto, joka esitetty kuvassa 3
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ä.