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ä.
Tehtävä 16. 25
pistettä
a. Miten OSI-malli liittyy TCP/IP:hen? Missä samanlaisuus,
missä erot? (5 p.)
b. Mitkä ovat verkkokerroksen tärkeimmät tehtävät? Mainitse verkon laite tai osa
mikä työskentelee kiinteästi verkkokerroksessa. (5 p.)
c. Anna käytännön esimerkki Internet-kerroksen toiminnasta ja
merkityksestä. Kerro syitä, miksi kyseinen kerros on niin tärkeä? Mikä on
kerroksen tärkein protokolla? (5 p.)
d. Kerro kuljetuskerroksen roolista TCP/IP:ssä. Kuvaa jokin
tapahtuma, missä selvittää kuljetuskerroksen toimintaa. Mitkä ovat kerroksen
tärkeimmät protokollat ja mitä eroa niiden välillä on? (5 p.)
e. Sovelluskerros on kenties helpoiten ymmärrettävä kerros...
Kuvaa vähintään kolme erilaista tapahtumaa ja tapahtuman kulkua, joissa
käytetään sovelluskerroksen protokollaa. Mainitse kussakin esimerkissä
käyttämäsi protokollan nimi. (5 p.)