sivu - wordpress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille....

25
Sivu 1 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo TCP/IP TEORIA Protokolla Jotta verkon eri laitteet ja ohjelmat osaisivat kommunikoida keskenään, tarvitaan jokin yhteisesti sovittu "kieli". Näitä verkon omia "kieliä" kutsutaan protokolliksi. Protokollia on kehitetty eri tarkoituksiin, kuten sähköpostin lukemiseen ja WWW-sivujen siirtämiseen. OSI-malli Kun puhutaan protokollista törmätään melko usein niin sanottuun OSI -malliin (Open Systems Interconnection), joka on kansainvälisen standardisointiorganisaation laatima (ISO, International Standards Organisation). OSI -mallin tarkoituksena on yhdenmukaistaa verkkoprotokollajärjestelmiä ja helpottaa erilaisten järjestelmien liittämistä toisiinsa. OSI-malli määrittelee kerrosten tehtävät ja niiden liittymät toisiin kerroksiin, se ei kuitenkaan ota kantaa miten ne toteutetaan. OSI-malli (kuva 1) on jaettu seitsemään kerrokseen. Kuva 1. OSI-mallin kerrokset ja niiden tehtävät TCP/IP PROTOKOLLAT TCP/IP ei ole varsinaisesti yksi protokolla vaan protokollaperhe, vaikka puhekielessä sanotaan usein TCP/IP-protokolla. Erillisistä protokollista on syytä tuoda esiin ainakin kolme: TCP (Transmission Control Protocol), UDP (User Datagram Protocol) ja IP (Internet Protocol). TCP/IP oli kehitetty ennen OSI-mallin syntyä, joten se ei aivan noudata sitä. Osa kerroksista on yhdistetty, joten TCP/IP-mallissa (kuva 2) on neljä kerrosta. Kuvassa 2 on myös nähtävissä TCP/IP -protokollaperheen sijoittuminen eri kerroksiin.

Upload: others

Post on 17-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 1 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

TCP/IP TEORIA

Protokolla

Jotta verkon eri laitteet ja ohjelmat osaisivat kommunikoida keskenään, tarvitaan jokin yhteisesti

sovittu "kieli". Näitä verkon omia "kieliä" kutsutaan protokolliksi. Protokollia on kehitetty eri

tarkoituksiin, kuten sähköpostin lukemiseen ja WWW-sivujen siirtämiseen.

OSI-malli

Kun puhutaan protokollista törmätään melko usein niin sanottuun OSI -malliin (Open Systems

Interconnection), joka on kansainvälisen standardisointiorganisaation laatima (ISO, International

Standards Organisation). OSI -mallin tarkoituksena on yhdenmukaistaa

verkkoprotokollajärjestelmiä ja helpottaa erilaisten järjestelmien liittämistä toisiinsa. OSI-malli

määrittelee kerrosten tehtävät ja niiden liittymät toisiin kerroksiin, se ei kuitenkaan ota kantaa miten

ne toteutetaan. OSI-malli (kuva 1) on jaettu seitsemään kerrokseen.

Kuva 1. OSI-mallin kerrokset ja niiden tehtävät

TCP/IP PROTOKOLLAT

TCP/IP ei ole varsinaisesti yksi protokolla vaan protokollaperhe, vaikka puhekielessä sanotaan

usein TCP/IP-protokolla. Erillisistä protokollista on syytä tuoda esiin ainakin kolme: TCP

(Transmission Control Protocol), UDP (User Datagram Protocol) ja IP (Internet Protocol).

TCP/IP oli kehitetty ennen OSI-mallin syntyä, joten se ei aivan noudata sitä. Osa kerroksista on

yhdistetty, joten TCP/IP-mallissa (kuva 2) on neljä kerrosta. Kuvassa 2 on myös nähtävissä TCP/IP

-protokollaperheen sijoittuminen eri kerroksiin.

Page 2: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 2 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Kuva 2. OSI ja TCP/IP

Tässä yhteydessä emme käy läpi kaikkia mahdollisia protokollia, vaan keskitymme tyypillisimpiin

tietoliikenneprotokolliin ja pyrimme selvittämään niiden ominaisuuksia ja tehtäviä sekä miten ne

mahdollistavat tiedonsiirron eri sovelluksien välillä. Kuvassa 3 on tyypillinen esitys

perusprotokollista, jotka kuuluvat TCP/IP-arkkitehtuuriin. Tutustumme sovelluskerroksen,

kuljetuskerroksen ja verkkokerroksen protokollien toimintaan.

Kuva 3 TCP/IP Arkkitehtuuri (TCP/IP Fundamentals for Microsoft Windows, s25)

ARP, Address Resolution Protocol

ARP-protokollan perustoiminta on määritelty RFC 826:ssa. ARP:ia käytetään kun jokin päätelaite

(tietokone) tarvitsee tietää samassa IP-verkossa (IP, Internet Protocol) olevan toisen päätelaitteen

fyysisen osoitteen eli MAC-osoitteen (MAC, Media Access Control) esim. 00-1D-72-CC-D2-99.

Fyysistä osoitetta tarvitaan ethernet-kehyksessä yksilöimään lähettäjä ja vastaanottaja. Kyseinen

MAC-osoite on 48-bittinen luku, joka ilmaistaan 12 heksadesimaalilla. Kysely lähetetään

yleislähetyksenä (broadcast). Kyselyviestistä selviää kysyjän MAC- sekä IP-osoitteet sekä

tiedusteltavan päätelaitteen IP-osoite. Kaikki aliverkon laitteet kuulevat ARP-kyselyn, mutta siihen

Page 3: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 3 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

vastaa normaalitilanteessa vain se päätelaite jolle on määritelty tiedustelua koskeva IP-osoite.

Vastaus lähetetään suoraan kysyjälle; tähän ei tarvita yleisjakelua koska kyselyviestissä on mukana

kysyjän MAC-osoite. Päätelaitteet tallentavat tilapäisesti omaan ARP-tauluunsa käyttämiään IP- ja

MAC-osoitepareja, jotta vältyttäisiin toistuvilta ARP-kyselyiltä. Koska ARP-kyselyssä on sekä

kysyjän MAC- että IP-osoitteet, voivat kyselyyn vastaajat tallentaa ko. osoitteet tulevaa käyttöä

varten. Kun alkuperäinen kyselyn lähettäjä vastaanottaa vastauksen, tallettaa se vastaajan MAC- ja

IP-osoiteparin omaan ARP-tauluunsa.

ARP-protokollan viestejä ovat kysely (request) ja vastaus (reply) (ks. kuva 1).

Kuva 4. ARP -protokollan toiminta, TCP/IP Tekniikka, Aki Anttila

Kuvassa 4 laite A, 192.12.43.12/24 haluaa (1) lähettää sanoman laitteelle B, 192.12.43.113/24.

Aluksi (2) laite A tarkastaa, että onko laite B samassa IP-verkossa. Jos näin ei ole laite A lähettää

B:lle matkalla olevan sanoman oletusreitittimelle. Pystyäkseen lähettämään sanoman

oletusreitittimelle tulee sen tietää oletusreitittimen fyysinen osoite l. MAC-osoite. Ellei se ole

tiedossa, tulee laitteen A selvittää se. Lähettävä laite A tarkastaa (3) onko sen ARP-välimuistissa

(ARP-cache) laitteen fyysinen osoite (kuvan tilanteessa ne ovat samassa verkossa). Jos osoite

löytyy välimuistista ei osoitteen selvitystä tarvitse tehdä ja laite A voi lähettää laitteelle B

suunnatun sanoman.

Ellei laitteen B fyysinen osoite ole tiedossa, lähettää laite A (4) fyysisen kerroksen levitysviestin,

joka leviää kaikille verkon laitteille. Levitysviestillä kysytään, mikä on IP-osoitetta 193.12.43.113

vastaava fyysinen osoite. Levitysviestin kuulevat kaikki (5) verkon laitteet ja se, joka tunnistaa

osoitteen 193.12.43.113 (laite B) osoitteekseen, lähettää suunnatun viestin laitteelle A. Laitteen A

osoitteen se saa laitteen A lähettämästä levitysviestistä. Lähettämässään suunnatussa viestissä laite

B kertoo oman fyysisen osoitteensa laitteelle A. Samalla laite B tallettaa omaan ARP-välimuistiin

laitteen A fyysisen- ja IP-osoitteen. Laite A (6) tallentaa laitteen B fyysisen- ja IP-osoitteen

vastaavasti ARP -välimuistiinsa. Tämän jälkeen sanoma voidaan lähettää laitteelle B.

Page 4: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 4 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

ARP -välimuistin sisältöä voidaan tarkastella apuohjelmalla ARP. Apuohjelmalla voidaan tutkia ja

muokata ARP -välimuistin sisältöä.

Kuva 5. ARPin syntaksi. Saadaan näkyviin komentokehotteessa komennolla arp /?

IPv4, Internet Protokolla versio 4, (RFC791)

IP-protokolla on varsinainen Internetin protokolla, joka tekee internetistä Internetin. Lähettävän

koneen IP muodostaa lähetettävän data eteen IP-otsikon, jolloin muodostuu IP-paketti. IP-

protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6).

Seuraavassa on kuvattu IP-otsikon rakennetta.

Kuva 6. IP -otsikon rakenne

Versio IP-otsikon versionumero, tällä hetkellä 4.

IHL Internet Header Length, IP-otsikon pituus 32-bittisinä tavuina, pienin

sallittu arvoon 5.

Palvelun tyyppi Lähettäjän toivoma palvelun laatu (Prioriteetti, viive, läpimeno ja

luotettavuus).

Kokonaispituus Kokonaispituus (IP-otsikko + data).

Tunniste Yksilöllinen IP-otsikon tunniste, jotta pirstoutuneet IP-paketit osataan

koota vastaanottopäässä.

Page 5: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 5 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Liput DF, pakettia ei saa jakaa osiin. MF, paketti on jaettu, paketteja on

tulossa lisää.

Lohkon sijainti Kertoo jaetun paketin tämän osan sijainnin alkuperäisessä paketissa.

TTL Time To Live, paketin elinaika verkossa sekunteina. Myös jokainen

reititin vähentää lukua yhdellä. Jos luku saavuttaa nollan, paketti

hylätään.

Protokolla Kun paketti on koottu, mille ylemmälle protokollalle se annetaan.

TCP=6 ja UDP=17.

Tarkistussumma Otsikosta laskettu tarkistussumma. Lasketaan jokaisessa reitittimessä

uudestaan, sillä TTL-kenttä muuttuu matkan aikana.

Lähdeosoite Lähettävän koneen IP-osoite.

Kohdeosoite Vastaanottavan koneen IP-osoite.

Optiot Voidaan jättää pois. Käytetään lähinnä verkon testauksessa,

esimerkiksi reitin seuraaminen.

Täyte Optiot täytetään 32-bittiseksi sanaksi

Data Itse kuljetettava data.

IPv6, Internet Protokolla versio 6, (Lisätietoja protokollasta kiinnostuneille: www.IPv6.org)

PORTTINUMERO

Sekä UDP- että TCP-protokollien yhteydessä esiintyy termi portti tai porttinumero. IP-osoite kertoo

mille koneelle paketti on tarkoitettu. Mutta mitä vastaanottava kone sitten paketille tekee?

Porttinumero kertoo mille palvelulle paketti ohjataan (sähköposti, www, telnet ja niin edelleen). IP-

osoitetta ja porttinumeroa kutsutaan yhdessä soketiksi (socket). Porttinumero on luku 0…65535.

Numerot 0…1023 ovat varattu standardikäyttöön, yli olevat portit ovat vapaasti käytettävissä.

Porttinumero on erittäin tärkeä osa kahden laitteen välistä viestintää. Ajatellaan vaikkapa

esimerkkinä palvelinta, jossa on useampia palvelinohjelmia käynnissä. Esimerkiksi FTP-

(tiedostonsiirto), SMTP- (sähköpostin välitys) ja NNTP-palvelut (keskusteluryhmien välitys).

Oletetaan, että palvelimen IP-osoite on 10.0.0.1. Verkossa on kone, jonka IP-osoite on 191.13.15.7

ja se haluaa käyttää hyväkseen palvelimen 10.0.0.1 palveluja ja nimenomaan www-palvelua.

Käyttäjä avaa selaimen ja kirjoittaa sen URL-kenttään http://10.0.0.1/. Seuraavaksi selain lähettää

paketin palvelimelle, jossa se pyytää HTML-informaatiota. Mistä palvelin tässä tapauksessa tietää,

mille palvelulle sen tulee pyynnöt ohjata?

Juuri tämän informaation välittämiseen käytetään porttinumeroita. Kaikista 65536 mahdollisesta

numerosta osa on määritelty eri protokollille, osa puolivirallisesti eri ohjelmille ja osa on täysin

vapaassa käytössä oheisen taulukon mukaisesti.

NUMEROT KÄYTTÖ

0-1023 Varattu eri protokollille

1024-49151 Varattu puolivirallisesti eri ohjelmille

49152-65535 Vapaasti käytettävissä

Page 6: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 6 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Välillä 0-1023 olevia numeroita kutsutaan myös nimillä Well Known Services (WKS) tai Well

Known Ports. Näitä ei yleensä käytetä työasemaohjelman päässä vaan ne on varattu

palvelinprosesseille. Porttinumeroiden hallinnoinnista vastaa IANA

Esimerkin palvelimessa toimivien ohjelmien käyttämät porttinumerot ovat WWW (80), FTP

(20,21), SMTP (25) ja NNTP (119). Näiden avulla työasema osaa ottaa yhteyden oikeaan

palveluun.

Jotta viestintä olisi täysin yksikäsitteistä myös palvelimelta työasemalle, käytetään myös työaseman

sovelluksen identifioimiseen porttinumeroa. Toisin kuin palvelimella, jossa yleensä

palvelinsovelluksilla on tarkoin määritellyt porttinumerot, käytetään työasemassa yleensä

”arvottuja”, yli 1023 olevia numeroita. Porttinumero muodostaa palvelimen ja työaseman päässä IP-

osoitteen kanssa yhdessä niin sanotun socketin (ks. edellä). Socket viittaa ohjelmointirajapintaan,

jonka kautta TCP/IP-sovelluksia yleensä rakennetaan. Socketin esityksessä on lisänä myös

käytettävä protokolla. Näin ollen työaseman ja palvelimen välissä olisi socketti:

tcp,10.0.0.1, 80 (-palvelu),

191.13.15.7, 1180 (-selain)

Palvelimen päässä tilanne voi olla se, että sama sovellus palvelee useampia työasemaohjelmia

samanaikaisesti. Tällöin siitä toimii ainoastaan yksi instanssi ja se kykenee erottamaan

liikennevirran eri koneisiin ja eri koneista nimenomaan socketin kautta eli IP-osoite/porttinumero -

pareilla. Näin ollen esimerkin liikenne tapahtuu esim. parin 10.0.0.1:80 ja 191.13.15.1:1180 välillä.

Tämä on kyseisen yhteyden yksilöllinen tunniste palvelimen palvelinsovelluksen ja asiakkaan

asiakassovelluksen välillä.

Porttinumeroista löytyy täydellinen lista IANA:n kotisivuilta. Porttinumerot pyritään tekemään

samoiksi sekä TCP- että UDP-protokollille. Yleensä tiettyjä palveluja käytetään joko TCP- tai UDP

-protokollan kautta, ei kummankin. Seuraavassa taulukossa on lyhyt tiivistelmä tärkeimmistä

porttinumeroista.

Taulukko 1. Tärkeimpiä porttinumeroita

PORTTINUMERO

TCP/UDP

KUVAUS

ftp-data 20 File Transfer [Default Data]

ftp 21 File Transfer [Control]

ssh 22 SSH Remote Loqin Protocol

telnet 23 Telnet

smtp 25 Simple Mail Transfer

domain 53 Domain Name Server

bootps 67 Bootstrap Protocol Server

bootpc 68 Bootstrap Protocol Client

tftp 69 Trivial File Transfer

http 80 World Wide Web HTTP

www 80 World Wide Web HTTP

Page 7: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 7 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

www-http 80 World Wide Web HTTP

kerberos 88 Kerberos

pop3 110 Post Office Protocol - Version 3

nntp 119 Network News Transfer Protocol

imap 143 Internet Message Access Protocol

snmp 161 SNMP

snmptrap 162 SNMPTRAP

irc 194 Internet Relay Chat Protocol

ipx 213 IPX

Idap 389 Lightweight Directory Access Protocol

netware-ip 396 Novell Netware over IP

ups 401 Uninterruptible Power Supply

https 443 http protocol over TLS/SSL

appleqtc 458 apple quick time

smtps 465 smtp protocol over TLS/SSL (was ssmtp)

nntps 563 nntp protocol over TLS/SSL (was snntp)

Idaps 636 Idap protocol over TLS/SSL (was sldap)

doom 666 doom Id Software

ftps-data 989 ftp protocol, data, over TLS/SSL

ftps 990 ftp protocol, control, over TLS/SSL

telnets 992 telnet protocol over TLS/SSL

imaps 993 imap4 protocol over TLS/SSL

ircs 994 irc protocol over TLS/SSL

pop3s 995 pop3 protocol over TLS/SSL (was spop3)

UDP, User Datagram Protocol, (RFC768)

User Datagram Protocol on TCP:n rinnakkaisprotokolla. Kumpikin sijaitsee protokollapinon

kuljetuskerroksella (kuva 3) ja näin ollen ne jakavat saman päätehtävän eli datan kuljettamisen.

Siihen näiden kahden protokollan yhtäläisyydet loppuvatkin.

Siinä, missä TCP on yhteydellinen, luotettava, virheenkorjaava ja kuittaava protokolla, puuttuvat

UDP:lta kaikki nämä ominaisuudet. UDP on yhteydetön, epäluotettava protokolla. Yhteydetön

protokolla tarkoittaa, että paketti lähetetään vastaanottajalle, lähetyksestä ei tehdä minkäänlaista

ilmoitusta. Vastaanottaja ei myöskään lähetä tietoa, että paketti olisi tullut perille. UDP ei täten

lähetä uudestaan puuttuvia tai viallisina perille saapuneita IP-paketteja. UDP:n etuna on kevyempi

rakenne kuin TCP:ssä. UDP lisää dataan oman otsikkonsa, joka on kuvattu seuraavassa.

Page 8: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 8 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Kuva 7. UDP-otsikko

Lähdeportti Lähettävän koneen porttinumero. Jos porttia ei määritellä, pitää arvon

olla 0

Kohdeportti Vastaanottavan koneen porttinumero

Pituus UDP-paketin pituus sisältäen otsikon ja datan

Tarkistussumma IP-otsikon osista laskettu "karkea" tarkistussumma. Ei pakollinen, tällöin

0

Data Kuljetettava data

UDP:N TEHTÄVÄT

Koska UDP on yhteydettömyytensä, kuittauksien puuttumisen ja muiden mekanismien puuttumisen

vuoksi protokolla, jonka datanvälityskykyyn ei voi luottaa, käytetään sitä hyväksi tilanteissa, joissa

ei ole niin suurta vahinkoa, vaikka yksittäinen sanoma häviäisikin. Tyypillistä UDP:n käyttö on

sellaisten sovellusprotokollien kanssa, joissa viestivät laitteet välittävät keskenään 1-2 sanomaa

kerrallaan.

Nykyisistä protokollista UDP:tä käyttää ehkäpä eniten DNS (Domain Name System). DNS-

protokollassa työasema kysyy palvelimelta yhdellä sanomalla ja palvelin vastaa toisella.

Tyypillisesti kummankin sanomassaan välittämä dataosuus on noin 28 oktettia.

Muita sovellusprotokollia, joiden kanssa UDP:ta käytetään ovat SNMP (Simple Network

Management Protocol) -verkonhallintaprotokolla, NetBIOS-nimipalvelu, NFS-tiedostopalvelu

(Network File System) ja TFTP (Trivial File Transfer Protocol) -tiedostonsiirtoprotokolla.

Perinteisesti UDP on käytössä erilaisten apuprotokollien, kuten Quoten (päivän

mietelausegeneraattori) ja Chargenin (merkistöä a...9 jatkuvasti generoiva sovellus) kanssa.

Uudemmassa käytössä UDP on erilaisten multimediasovellusten kanssa. Esimerkiksi äänen tai

videon siirrossa on tavanomaista käyttää UDP:tä, sillä sen kevyempi datanvälitysprosessi vapauttaa

enemmän prosessointitehoa varsinaisen informaation käsittelyyn.

TCP, Transmission Control Protocol, (RFC 793)

Transmission Control Protocol (TCP) on toinen TCP/IP-maailman kuljetuskerroksen protokollista.

(Toinen on User Datagram Protocol (UDP), kuva 2). Joista TCP on huomattavasti monipuolisempi

ja näin ollen myös enemmän ja vaativammassa käytössä oleva protokolla.

Page 9: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 9 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

TCP on luonteeltaan yhteydellinen protokolla. Lisäksi siihen kuuluu mekanismeja, jotka tekevät

TCP:n suorittaman datavälityksen luotettavaksi. TCP nojaa siihen, että käytössä on

monikerroksinen protokollapino ja että sen alapuolella oleva verkkokerroksen protokolla pystyy

tarjoamaan palvelua paketin välittämiseksi verkossa.

TCP:n perusluonteeseen kuuluu myös se, että se on niin sanotusti päästä päähän toimiva protokolla.

Näin ollen kaikki datavälitys tapahtuu lähettävän ja vastaanottavan koneen välillä. Lähettävän ja

vastaanottavan koneen välissä voi olla useita TCP-yhteyksiä samanaikaisesti.

TCP:n yhteydellisyys ja luotettavuus tarkoittaa sitä, että yhteys kahden koneen välille avataan

erityisillä avauspaketeilla, molemmille tiedonsiirtosuunnille ennen kuin aloitetaan varsinaisen datan

siirto. Vastaanottaja myös kuittaa saamansa paketit. Yhteyden aikana käytetään kattavaa virheiden

havaitsemista. Lopuksi yhteys suljetaan.

TCP:N PÄÄTEHTÄVÄT

RFC-dokumenttinsa (RFC 793) mukaisesti TCP-protokollan päätehtävänä on tarjota kahden laitteen

välille luotettava yhteydellinen tiedonsiirtotie käyttäen hyväksi ”epäluotettavan” IP:n

välityspalvelua. Tähän tulokseen päästään seuraavien TCP:n perusominaisuuksien kautta:

Peruspaketti tiedonsiirrolle; TCP vastaanottaa ylemmiltä kerroksilta (sovelluksilta)

dataa ja kapseloi ne kulloinkin sopivan kokoisiin

(verkko)sanomiin (segmentteihin).

Luotettavuus; TCP-protokolla on luonteeltaan luotettava.

Luotettavuus saavutetaan lähettämällä tarvittaessa

data uudestaan. Tämä tapahtuu tilanteissa, joissa

lähetettyyn dataan ei ole saatu tietyssä ajassa

kuittausta.

Vuonohjaus; Vuonohjaukseen TCP käyttää niin sanottua liukuvan

ikkunan käsitettä. Siinä ikkunan koko kertoo, minkä

verran vastaanottaja on valmis vastaanottamaan dataa

(tavuja) ja kuinka paljon lähettäjä saa lähettää.

Multipleksaus; Multipleksauksen avulla yksittäinen TCP-pino voi

hoitaa useamman sovelluksen tietoliikenteen

samanaikaisesti. Tämä tehdään käyttämällä

porttinumeroita, joiden avulla kukin yhteys erotetaan.

Yhteydellinen; TCP on niin sanottu yhteydellinen protokolla. Tämä

tarkoittaa sitä, että ennen datasiirron aloittamista se

neuvottelee vastapuolen kanssa siirtoyhteyden

muodostamisen molemmille siirtosuunnille. Yhteyden

yksilöivät kummallakin puolella käytettävät porttinumerot

Page 10: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 10 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

ja IP-osoitteet. Datasiirron päätyttyä yhteys suljetaan

molemmilla siirtosuunnilla.

TCP:n OTSIKKOKENTÄT

Kuva 8. TCP-otsikkokentät

Otsikkokenttien selitykset:

Lähdeportti Lähettävän koneen porttinumero.

Kohdeportti Vastaanottavan koneen porttinumero.

Porttinumeron avulla pystytään yhteydellä siirtämään dataa useamman

eri sovelluksen välillä kahden viestivän laitteen kesken. Tämä onnistuu

siten, että kaikilla sovellusprotokollilla on tietyt porttinumerot, joita ne

kuuntelevat ja samoin työasemaohjelmissa käytetään tiettyjä

porttinumeroita. Liikennöinti laitteiden välillä tapahtuu käyttäen hyväksi

laitteiden IP-osoitteita ja lisätarkentimena porttinumeroa osoittamaan,

minkä sovelluksen kanssa viestitään.

Järjestysnumero (Sequence Number) Kyseisen paketin ensimmäinen datatavu, jollei SYN

-bittiä ole asetettu. Jos SYN on asetettu, kenttä sisältää ensimmäisen

tietojakson sisällön (Initial Sequence Number, ISN), jolloin

ensimmäinen datatavu on ISN+1. Kun TCP -protokolla vastaanottaa

dataa sovelluskerrokselta, se numeroi tämän datan jokaisen tavun

erikseen. Numeroinnissa on mahdollisuus käyttää arvoja 0 - 4 294 967

296 (32 bittinen luku). Numerolla on kaksikin tarkoitusta. Ensinnäkin

sen avulla vastaanottava laite pystyy määrittämään, mikä on saapuvien

datasegmenttien oikea järjestys. Toisekseen sitä käytetään hyväksi

kuittauksissa ilmaisemaan, mitkä tavut ovat tulleet perille.

Segmenttinumerolla merkitään kaikki data, joka välitetään sovellusten

kesken.

Page 11: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 11 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Vahvistusnumero (Acknowledgement Number) Arvo on seuraava järjestysnumero, jota

odotetaan saapuvaksi. Tämän kentän arvo on edellisen tavoin 0-

4294967296 (32-bittiä). Kenttää käytetään kuittaukseen, eli kerrotaan

alkuperäisen informaation lähettäjälle, että edellisen/edellisten

segmentin/segmenttien sisältämä informaatio on saapunut perille.

Datan sijainti Ilmaisee otsikon pituuden 32-bitin tavuina. Otsikon pituus voi vaihdella,

koska optioiden pituus vaihtelee

Tämä kenttä kertoo, kuinka monta 32 bitin jaksoa TCP-otsikkokenttä

sisältää. Kenttä tarvitaan, koska TCP:ssä voidaan käyttää erilaisia

optioita, jotka muuttavat otsikkokenttien määrää ja pituutta.

Varattu Tämä kenttä on varattu tulevaisuuden käyttötarkoituksiin. Nykyisellään

sitä ei käytetä ja liikennöitäessä kentän kaikkien bittien arvoon tulee olla

nolla.

Kontrollibitit (6kpl)

URG Urgent Pointer-kentän tietoa tulee käyttää hyväksi. Jos 1, paketti on

kiireellinen ja kiireellisen datan osoitin on käytössä.

ACK Kuittausnumerokentässä on tietoa. Jos 1, vahvistusnumero-kentän tietoja

käytetään.

PSH Aiheuttaa datan välittämisen suoraan sovellukselle ilman puskureiden

käyttöä. Jos 1, käsketään vastaanotetut data työntämään (push)

sovellukselle.

RST Yhteyden nollaaminen esimerkiksi häiriötilanteessa. Jos 1, yhteys palautetaan

alkutilaan. Tämä on merkkinä yhteysongelmasta.

SYN Yhteyttä avattaessa käytettävä bitti. Käytetään yhteyden muodostamisessa,

jolloin järjestysnumerot tahdistetaan.

FIN Yhteyttä lopetettaessa käytettävä bitti. Jos 1, lähettävällä koneella ei ole

enää dataa lähetettäväksi.

Ikkuna Tämän kentän arvo kertoo tiedon vastaanottajalle, mikä on suurin

määrä dataa, jonka tiedon lähettäjä pystyy vastaanottamaan. Arvo

ilmaistaan tavuina. Kentän arvo muuttuu liikennöitäessä dynaamisesti

riippuen siitä, miten liikennöivät osapuolet kykenevät käsittelemään

saamaansa dataa.

Page 12: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 12 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Tarkistussumma Vastaanottava kone laskee tarkistussumman otsikosta, datasta ja

osasta IP-otsikkoa. Laskettua arvoa verrataan tähän lukuun (jonka

lähettäjä on laskenut).

Tähän kenttään lasketaan tarkistussumma samalla menetelmällä kuin IP

-protokollankin kohdalla. Kuitenkin IP-protokollasta poiketen mukaan

otetaan TCP-protokollan otsikkokenttä, koko datakenttä ja lisäksi

erillinen pseudo-otsikkokenttä. Viimeiseen kuuluu IP-otsikkokentästä

otettavat lähettäjän ja vastaanottajan IP-osoitteet, protokollan

tunnistenumero (TCP:llä 6) ja koko TCP-sanoman pituus (otsikkokenttä

+ data).

Kiireellisen Merkitystä vain jos URG on asetettu.

Tämä kenttä tulkitaan, mikäli kontrollibiteistä on päällä URG (eli sen

arvo on yksi). Tällaisessa tilanteessa segmentin alusta aina tämän kentän

osoittamaan arvoon asti on kiireellistä dataa, joka tulee välittää eteenpäin

välittömästi. Kentän varsinainen arvo on luku, joka osoittaa, montako

oktettia kiireellistä dataa sanomassa on.

Optiot Valinnaisia asetuksia.

Optio-kentässä voidaan käyttää useampia erilaisia optioita. Alkuperäinen

TCP-protokollan määrittävä RFC-dokumentti ei luetteloinut kuin kolme

vaihtoehtoa eri optioiksi. Nykyisellään optiovaihtoehtoja on 20.

Maksimissaan optioihin voi käyttää 40 tavua

Data Kuljetettava data

Page 13: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 13 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

TCP-YHTEYDEN MUODOSTAMINEN

Työasema Palvelin

Yhteyden muodostus aloitetaan

Kuva 9: Esimerkki yhteyden muodostamisesta, kolmivaiheinen kättely

TCP-yhteyden muodostaminen alkaa kolmivaiheisella kättelyllä. Tämä tapahtuu, ennen kuin mitään

varsinaista dataa välitetään keskustelevien osapuolien välillä. Kuvassa 9 esitetään työasema eli

lähettävä asema alustamassa yhteyttä palvelimeen eli määränpääasemaan. Termi työasema viittaa

asemaan, joka pyytää jonkinlaisia palveluita toiselta asemalta. Palvelin on asema, joka kuuntelee

ennalta tiedettyä porttia poimiakseen siitä tiettyyn palveluun kohdistuvat pyynnöt. TCP vaatii, että

määränpääportti eli -palvelu on määriteltävä. Kolmivaiheinen kättely etenee seuraavasti:

1. Työasema lähettää yhteydenmuodostuspyynnön (sanoman), jossa ”SYN-lippu on asetettu”

(arvo 1) ilmoittaakseen palvelimelle pyynnön TCP-yhteyden muodostamiseksi.

2. Jos palvelin toimii ja tarjoaa haluttua palvelua sekä pystyy ottamaan vastaan tulevan

yhteyden, se lähettää oman yhteydenmuodostuspyyntönsä työasemalle, jossa

vastaavasti ”SYN”. Samalla se hyväksyy työaseman yhteyspyynnön lähettämällä

kuittauksen ”ACK” (arvo 1). Nämä molemmat lähetetään samassa sanomassa.

3. Kun työasema saa kuittauksen omalle yhteydenmuodostuspyynnölleen ja

yhteydenmuodostuspyynnön palvelimelta (SYN- ja ACK-liput sisältävän paketin) ja haluaa

edelleen jatkaa yhteyttä, se lähettää vielä kuittaussanoman palvelimelta tulleeseen

yhteydenmuodostuspyyntöön, jossa ACK on asetettu (1). Tämä ilmaisee, että työasema on

saanut palvelimen yhteyspyynnön (hyväksynyt).

Kun kolmivaiheinen kättely on toteutettu edellä esitetyn mukaisesti, yhteys on muodostunut. Tämän

jälkeen tietoja voidaan lähettää kahden aseman välillä. Jos tarkastellaan kolmivaiheista kättelyä

hivenen tarkemmin (vrt. monitorointiharjoitus), huomataan, että todellisuudessa on syntynyt kaksi

yhteyttä. Ensimmäinen on työaseman ja palvelimen välinen ja toinen palvelimen ja työaseman

Lähetetään

SYN Otetaan vastaan SYN

Otetaan vastaan

SYN + ACK

Lähetetään SYN /ACK

Lähetetään ACK

Otetaan vastaan ACK

Yhteys muodostettu

Page 14: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 14 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

välinen. Tämä johtuu siitä, että TCP-yhteydet muodostetaan kummallekin siirtosuunnalle (TCP on

kaksisuuntainen), mikä merkitsee sitä, että tietoa voi kulkea kumpaankin suuntaan toisistaan

riippumatta.

DATAN VÄLITYS LAITTEIDEN VÄLILLÄ

Kun kahden koneen välille on saatu muodostettua yhteys, ne voivat lähettää dataa toisilleen. Datan

lähettäminen tapahtuu siten, että TCP-protokolla vastaanottaa sovelluskerroksen protokollalta

välitettävän datan. Tämän se pilkkoo tavuiksi ja numeroi jokaisen tavun erikseen. Tavujen

numerointi aloitetaan alkuperäisen segmenttinumeron arvolla, johon lisätään yksi ja siitä eteenpäin

jokaisen tavun numeroon lisätään yksi. Numeroinnilla on erittäin tärkeä tehtävä liukuvan ikkunan

menetelmässä, jossa tehostetaan tiedonsiirtokapasiteetin käyttöä.

Vastapuolen tehtävänä on kuitata jokainen saapuva tavu. Kuittaus tapahtuu lähettämällä

kuittauskentässä sen tavun numero, jota seuraavaksi odotetaan saapuvaksi. Jos sanomassa on

välitetty tavut numeroiltaan 324567-324570, on kuittauskentän arvo 324571. Kuittauksessa

käytettävä numero tarkoittaa sitä, että vastaanottava laite on saanut kaikki sitä edeltävät tavut.

YHTEYDEN SULKEMINEN

Kun laitteet ovat välittäneet halutun datan toisilleen, on aika lopettaa yhteys. Samalla tavalla kuin

yhteyden avaamiseen käytetään useampia sanomia, tapahtuu myös sen lopettaminen useamman

sanoman avulla. Yhteyden lopetukseen kuuluu seuraavan kuvan mukaisesti normaalissa tapauksessa

neljä eri sanomaa:

1) Yhteyden lopetusta haluava laite lähettää vastapuolelle paketin, jossa FIN-bitin arvo on yksi.

Tällä se ilmaisee lopetustarkoituksen. Samalla laite siirtyy tilaan FINWAIT 1.

2) Yhteyden lopetuspyynnön vastaanottava laite siirtyy tilaan CLOSE-WAIT Sen jälkeen se

lähettää kuittauksen lopetuspyyntöön. Kuittauksen vastaanottava osapuoli siirtyy tilaan FIN-WAIT

2.

3) Kuittauksen jälkeen yhteyden lopetuspyynnön saanut laite voi lähettää ensin mahdollisen jäljelle

jääneen datan ja sen jälkeen oman yhteyden lopetuspyynnön vastapuolelle, eli FIN-bitin arvo on

jälleen yksi. Huomaa, että tässä sanomassa segmenttinumero on sama kuin edellisessä! Tässä

vaiheessa se siirtyy tilaan LAST ACK.

4) Lopetuspyynnön saanut alkuperäinen lopettava osapuoli siirtyy tilaan TIME-WAIT. Viimeisessä

vaiheessa alkuperäisen lopetuspyynnön lähettänyt laite lähettää vielä kuittauksen toisen osapuolen

lopetuspyyntöön. Tällöin toinen osapuoli siirtyy CLOSED-tilaan, kuin myös alkuperäinen laitekin.

ICMP, Internet Control Message Protocol , (RFC777)

ICMP-protokolla on kehitetty viestimään laitteiden erilaisista ongelmista ja virheistä, joita verkossa

saattaa ilmetä. Protokolla toimii IP -kerroksen päällä. Kaikki ICMP-sanomat kapseloidaan näin

ollen IP-pakettiin ja välitetään IP-osoitteiden perusteella kohteeseensa. Standardin mukaisesti

Page 15: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 15 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

toteutettu TCP/IP-pino sisltää myös aina ICMP-toteutuksen. ICMP on määritelty RFC 792 -

dokumentissa.

HTTP, HyperText Transfer Protocol, (RFC2616)

WWW:n tarpeita varten suunniteltiin HTTP-protokolla (HyperText Transfer Protocol).

Ensimmäinen versio 0.9 esiteltiin 1990 ja versio 1.0 julkistettiin 1996. Nykyisin on käytössä versio

1.1. Version 1.1 yksi merkittävimmistä eduista vanhempaan versioon on yhteyden pitäminen auki

määrätyn ajan. Vanhassa versiossa yhteys avattiin jokaista URLia varten erikseen (esimerkiksi

kotisivulla olevat kuvat), uudessa versiossa yhteyttä pidetään auki esimerkiksi kuuden sekunnin

ajan. Näin vältytään turhilta yhteydenmuodostuksilta esimerkiksi kotisivun avaamisen aikana.

Käyttäjältä HTTP-protokolla on piilossa, mutta www-selainohjelma käyttää protokollaa sivuja

ladatessaan.

Seuraavassa yksinkertaistetusti, mitä selain tekee.

1. Käyttäjä kirjoittaa URL:n www.kone.net/index.html

2. Selain pyytää DNS-palvelimelta IP -osoitetta nimelle www.kone.net

3. DNS antaa osoitteen 212.246.72.10

4. Selain muodostaa TCP -yhteyden osoitteen 212.246.72.10 porttiin 80 (HTTP)

5. Selain lähettää palvelimelle HTTP-protokollassa määritellyn pyynnön:

GET /index.html HTTP/1.1

Host: www.kone.net:80

<rivinvaihto>

6. Tällöin www-palvelin lähettää tiedoston index.html HTTP-protokollan versiolla 1.1

7. Jos index.html ei sisällä lisää pyyntöjä, kuten kuvia, yhteys sulkeutuu hetken

kuluttua

8. Selain näyttää html-dokumentin tuloksen selaimen näytössä

Kohdassa 5 selain lähetti pyynnön, joka saa aikaan tiedoston siirtymisen selaimeen. Pyyntö koostuu

seuraavista osista.

Komento<välilyönti>Pyynnön URI<välilyönti>HTTP-versio<rivinvaihto>

Tunnistetieto<rivinvaihto>

… Tunnistetietoja voi olla useita rivejä

Tunnistetieto<rivinvaihto>

<rivinvaihto>

Pääsisältö

Seuraavassa on lueteltu muutamia HTTP-protokollan mukaisia komentoja.

Page 16: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 16 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Taulukko 2. Http -komentoja.

URI (Uniform Resource Identifier) kertoo mihin tiedostoon komento kohdistuu.

HTTP-versio on nykyään HTTP/1.1.

Tunnistetiedoilla kerrotaan lisää välitettävistä tiedoista, sekä voidaan lähettää tietoja lähettävästä

asiakkaasta.

Taulukko 3. Http -pyynnön tunnistetietoja.

Kun pyyntö on lähetetty www-palvelimelle, saadaan palvelimelta pyynnön mukainen vastaus.

Vastaus koostuu seuraavista osista.

HTTP-versio<välilyönti>Tilakoodi<välilyönti>Teksti<rivinvaihto>

Tunnistetieto<rivinvaihto>

… Tunnistetietoja voi olla useita rivejä

Tunnistetieto<rivinvaihto>

<rivinvaihto>

Pääsisältö

Tilakoodi kertoo onnistuiko pyyntö ja mikä oli vialla mikäli ei onnistunut.

Taulukko 4. Http -tilakoodeja.

Vastauksena saadaan myös tunnistetietoja, jotka kertovat yleensä palvelinohjelmistosta, sekä

lisätietoa vastauksena saadusta tiedostosta.

Page 17: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 17 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Taulukko 5. Http-vastauksen tunnistetietoja.

HTTP-protokollan toimintaa voidaan testata esimerkiksi Telnet-ohjelmalla ottamalla yhteys

palvelimen porttiin 80, sillä HTTP on merkkimuotoinen protokolla.

SMTP, Simple Mail Transfer Protocol, (RFC5321)

SMTP (Simple Mail Transfer Protocol) on sähköpostin lähettämiseen tarkoitettu protokolla. SMTP

on niin sanottu end-to-end-protokolla, jossa lähettäjän palvelin ottaa yhteyden suoraan

vastaanottajan palvelimeen ja säilyttää yhteyden, kunnes kaikki tarvittava data on siirretty.

Protokolla on HTTP:n tapaan merkkipohjainen. Seuraavassa (taulukko 6) muutamia SMTP -

protokollan komentoja.

Taulukko 6. SMTP-komentoja.

Kun lähettäjä antaa komennon, vastaa vastaanottava palvelin jollakin vastauskoodilla. Seuraavassa

muutamia yleisimpiä vastauskoodeja (taulukko 7).

Taulukko 7. SMTP:n vastauskoodeja

Itse viesti kirjoitetaan DATA -komennon jälkeen. Ennen viestiä voidaan lähettää myös

otsikkotietoja, jotka kertovat lisää lähettäjästä ja viestistä.

Data: Päivämäärä

To: Vastaanottaja

From: Lähettäjä

Subject: Viestin aihe

Page 18: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 18 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Seuraavassa on esimerkki SMTP-liikenteestä sähköpostia lähetettäessä. Testi voidaan tehdä telnet-

ohjelmalla ottamalla yhteys sähköpostipalvelimen porttiin 25.

telnet myy.helia.fi 25

220 myy.helia.fi ESMTP Sendmail 8.9.3 (PHNE_18979)/8.8.6; Wed, 18 Oct 2000 16:14:50 +0200 (METDST)

HELO helia.fi

250 myy.helia.fi Hello dh67.pc.helia.fi [193.166.8.67], pleased to meet you

MAIL FROM: [email protected]

250 [email protected]... Sender ok

RCPT TO:[email protected]

250 [email protected]... Recipient ok

DATA

354 Enter mail, end with "." on a line by itself

Tähän kirjoitellaan sitten lähetettävä

viesti.

Lopetus piste tyhjälle riville ja <enter>.

.

250 QAA23907 Message accepted for delivery

QUIT

221 myy.helia.fi closing connection

POP3 (RFC1939) ja IMAP4 (RFC3501)

Sähköpostin vastaanottamiseen käytetään yleisesti kahta protokollaa, POP3 (Post Office Protocol,

version 3) ja IMAP4 (Internet Mail Access Protocol, version 4). POP3 on vanhempi ja samalla

yksinkertaisempi kuin IMAP4. Protokollat eroavat toisistaan seuraavasti.

Taulukko 8. POP3- ja IMAP4-protokollien erot.

POP3-protokolla on HTTP:n tapaan merkkipohjainen. Seuraavassa muutamia POP3-protokollan

komentoja.

Taulukko 9. POP3:n komentoja

Kun lähettäjä antaa komennon, vastaa vastaanottava palvelin jollakin vastauskoodilla. Vastauskoodi

on joko +OK tai -ERR. Koodin perässä saattaa olla lisäksi lyhyt tekstimuotoinen selitys.

Page 19: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 19 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Seuraavassa on esimerkki POP3-liikenteestä sähköpostia vastaanotettaessa. Testi voidaan tehdä

telnet-ohjelmalla ottamalla yhteys sähköpostipalvelimen porttiin 110.

telnet myy.helia.fi 110

+OK POP3 myy.helia.fi v7.59 server ready

USER korol

+OK User name accepted, password please

PASS XXXXXXX

+OK Mailbox open, 2 messages

LIST

+OK Mailbox scan listing follows

1 441

2 7955

.

TOP 1 3

+OK Top of message follows

Received: from localhost (t1913@localhost)

by myy.helia.fi (8.8.6 (PHNE_17135)/8.8.6) with SMTP id LAA08028

for <[email protected]>; Fri, 5 May 2000 11:14:42 +0200 (METDST)

Date: Fri, 5 May 2000 11:14:42 +0200 (METDST)

…….

Status: O

QUIT

Myös IMAP4-protokolla on merkkipohjainen. Komentoja on suuri joukko, seuraavassa on lueteltu

vain muutamia IMAP4-protokollan komentoja.

Taulukko 10. IMAP4:n komentoja

Kun viesti haetaan FETCH -komennolla, voidaan määrittää haettavaksi muun muassa seuraavia

sähköpostin osia.

Taulukko 11.

STORE-komennolla voidaan muuttaa viestin tilaa niin sanottujen lippujen (flags) avulla. Ensin

kuitenkin määrätään tapa, millä lippuja muutetaan (parametri di).

Page 20: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 20 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Taulukko 12.

Käytettävät liput nimetään seuraavasti.

Taulukko 13.

Kun lähettäjä antaa komennon, vastaa vastaanottava palvelin jollakin vastauskoodilla. Vastauskoodi

on yleensä OK, NO tai BAD.

Jokaisen komennon eteen pitää antaa yksilöllinen tunniste eli tagi. Tällä komennot erotetaan

toisistaan. Tagi voi olla esimerkiksi "juokseva" luku. Esimerkki valaisee parhaiten peruskomentojen

syntaksia. Seuraavassa on esimerkki IMAP4-liikenteestä sähköpostia vastaanotettaessa. C-

kirjaimella alkavat rivit ovat asiakasohjelmiston koodeja ja S-kirjaimella ovat postipalvelimen

vastauksia. Testi voidaan tehdä telnet-ohjelmalla ottamalla yhteys sähköpostipalvelimen porttiin

143.

telnet kone.net 143

S: * OK ns.kone.net IMAP4rev1 v12.250 server ready

C: 001 LOGIN op-5444

S: 001 OK LOGIN completed

C: 002 SELECT INBOX

S: * 1 EXISTS

* 1 RECENT

* OK [UIDVALIDITY 945435035] UID validity status

* OK [UIDNEXT 677] Predicted next UID

* FLAGS (\Answered \Flagged \Deleted \Draft \Seen)

* OK [PERMANENTFLAGS (\* \Answered \Flagged \Deleted \Draft \Seen)] Permanent flags

* OK [UNSEEN 1] first unseen message in /var/spool/mail/op-5444

S: 002 OK [READ-WRITE] SELECT completed

C: 003 FETCH 1 RFC822.HEADER

* 1 FETCH (RFC822.HEADER {751}

Return-Path: <[email protected]>

Received: from mrmurphy (netland-fw.kone.net [212.246.72.6]) by ns.kone.net (8.9.3/8.9.3)

with SMTP id LAA13882 for <[email protected]>; Tue, 26 Sep 2000 11:26:48 +0300

From: "Oppilas1" <[email protected]>

To: "Oppilas2" <[email protected]>

Subject: testiviesti

Date: Tue, 26 Sep 2000 11:29:50 +0300

Message-ID: <[email protected]>

MIME-Version: 1.0

Content-Type: text/plain; charset="iso-8859-1"

Content-Transfer-Encoding: 7bit

X-Priority: 3 (Normal)

X-MSMail-Priority: Normal

Page 21: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 21 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0)

Importance: Normal

X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 )

S: 003 OK FETCH completed

C: 004 FETCH 1 RFC822.TEXT

S: * 1 FETCH (RFC822.TEXT {8}

Testi!

FLAGS (\Recent \Seen))

S: 004 OK FETCH completed

C: 005 STORE 1 +FLAGS \Delete

S: * 1 FETCH (FLAGS (\Recent \Seen \Delete))

S: 005 OK STORE completed

C: 006 CLOSE

S: 006 OK CLOSE completed

C: 007 LOGOUT

S: * BYE ns.kone.net IMAP4rev1 server terminating connection

S: 007 OK LOGOUT completed

TELNET, (RFC854)

Aikoinaan pääteyhteydet olivat tärkeimpiä liikennöintityyppejä, joten kehitettiin Telnet-protokolla

(Teletype Networking). Telnetin päämääränä on tarjota kaksisuuntainen liikenne päätteen ja

palvelimen välille. Yhteyden kummassakin päässä on niin sanottu NVT (Network Virtual Terminal).

NVT:n tehtävänä on luoda standardin mukainen esitystapa päätteen ja palvelimen välille. Telnet-

ohjelman tehtävänä on muuttaa komennot NVT:lle sopiviksi. Käyttäjä ei kirjoita protokollatason

komentoja, vaan siitä huolehtii telnet-ohjelma. Käyttäjän kirjoittamat merkit (ja myös vastaanotetut

merkit) lähetetään ASCII-merkkejä vastaavina desimaalilukuina.

Protokollan komennot erotetaan muusta liikenteestä aloittamalla ne luvulla 255 (IAC, Interpret As

Command). Tämän jälkeen lähetetään komennon numeroarvo ja optiot.

Taulukko 14. TELNETin komentokoodit

Page 22: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 22 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Taulukko 15. TELNETin optiokoodeja

Unix-järjestelmän telnet -ohjelmassa voidaan seurata komentokoodeja seuraavasti.

telnet Käynnistä telnet -ohjelma

toggle options Näyttää komennot

open osoite Avaa yhteys haluamaasi telnet-palvelimeen

SEND DO SUPPRESS GO AHEAD Tässä ensimmäinen koodi

… Koodeja eri tilanteissa eri määrä

FTP, (RFC959)

Tiedostojen siirtämiseen koneelta toiselle käytetään FTP-protokolla (File Transfer Protocol).

Poiketen useista muista protokollista FTP käyttää kahta porttiosoitetta. Komennot lähetetään

porttiin 21 ja varsinainen data siirretään postin 20 kautta. Poikkeuksena on niin sanottu

passiivimoodi, jossa komennot lähetetään porttiin 21, mutta data saadaan passiivimoodiin

siirryttäessä saatuun porttiosoitteeseen.

FTP-protokolla on merkkipohjainen. Porttiin 21 annetaan komentoja, joista muutamia on listattu

seuraavassa taulukossa. Komentoja ei saa sekoittaa merkkipohjaisissa ftp-ohjelmisssa käyttäjän

antamiin komentoihin (kuten dir, get ja put).

Taulukko 16. FTP:n komentoja

Palvelin palauttaa komennon antamisen jälkeen vastauskoodin. Koodi muodostuu kolmesta

numerosta xyz. Ensimmäinen numero x kertoo yleisesti onnistuiko komento vai ei. Toinen numero

y kohdentaa syyn tarkempiin kategorioihin. Kolmas numero z tarkentaa ilmoitusta riippuen

numeron y arvosta. Numerosarjan perässä on lisäksi tekstimuotoinen viesti.

Page 23: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 23 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Taulukko 17. FTP:n virhekoodeja

Seuraavassa pari esimerkkiä mahdollisista koodeista.

331 Password required for op-5444. Käyttäjä antanut käyttäjätunnuksen,

salasanaa odotetaan

230 User op-5444 logged in. Salasana annettu, autentikointi ok

500 'TREW': command not understood. Annettu tuntematon komento

Seuraavassa on esimerkki FTP-liikenteestä siirrettäessä yksi tiedoston FTP-palvelimelta omalle

koneelle passiivimoodissa. C-kirjaimella alkavat rivit ovat asiakasohjelmiston koodeja ja S-

kirjaimella ovat FTP-palvelimen vastauksia. Testi voidaan tehdä telnet-ohjelmalla.

telnet www.demo.net 21

S: 220 ns.demo.net FTP server (Version wu-2.6.0(1)

Fri Jun 23 10:17:44 EDT 2007) ready.

C: USER op-5444

S: 331 Password required for op-5444.

C: PASS xxx

S: 230 User op-5444 logged in. Access restrictions apply.

C: PASV

S: 227 Entering Passive Mode (212,246,72,10,26,30)

C: CWD public_html

S: 250 CWD command successful.

C: RETR index.html

S: 150 Opening ASCII mode data connection for index.html (1162 bytes).

S: 226 Transfer complete.

C: QUIT

S: 221-You have transferred 1188 bytes in 1 files.

S: 221-Total traffic for this session was 1947 bytes in 1 transfers.

S: 221-Thank you for using the FTP service on ns.demo.net.

S: 221 Goodbye.

Minne siirretty tiedosto (index.html) sitten tulee? Normaalissa liikenteessä avattaisiin yhteys myös

porttiin 20 (toinen telnet-ohjelma). Passiivimoodissa avataan uusi yhteys jokaisen PASV-komennon

jälkeen palvelimen palauttamaan IP -osoitteeseen ja porttiin (esimerkissä 212.246.72.10, portti

6686). Palvelin palauttaa porttinumeron kahtena 8-bittisenä lukuna (esimerkissä 26 ja 30), tästä

saadaan 16-bittinen porttinumero seuraavasti.

26 * 256 + 30 = 6686

Page 24: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 24 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

Yhteenvetona pohdi seuraa:

Mitä verkkoliikennettä aiheutuu kuvan 10 mukaisessa tilanteessa kun käyttäjä näppäilee komennon

telnet 199.54.111.244 13 koneelta MARS.FIRMA.COM (IP=135.9.64.22)? Täydennä kuvaan

myös kohdat, joissa on kysymysmerkki.

Mitä eroa verkkoliikenteessä on kun käyttäjä näppäilee komennon telnet borg.yritys.fi 13

Kuva 10. Tehtävä

Selvitä liitteestä 1, mikä palvelu kuuntelee porttia 13 ja miten se toimii saatuaan yhteyspyynnön.

Tutki harjoituksissa (mahdollisuuksien mukaan) toimiiko palvelu liitteessä määritellyllä tavalla.

Kaappaa palvelun käyttöön liittyvä verkkoliikenne ja selvitä yhteyden muodostuminen, datan siirto

ja yhteyden lopettaminen.

Ohjeistus monitorointiharjoituksissa.

BORG.YRITYS

.FI

Page 25: Sivu - WordPress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille. Otsikko sisältää monenlaista tietoa (kuva6). Seuraavassa on kuvattu IP-otsikon rakennetta

Sivu 25 / 25 Työasemat ja tietoverkot Tietoliikenneprotokollat (v1.0) OKo

LIITE 1 Daytime Protocol This RFC specifies a standard for the ARPA Internet community. Hosts on the ARPA Internet that choose to implement a Daytime Protocol are expected to adopt and implement this standard. A useful debugging and measurement tool is a daytime service. A daytime service simply sends a the current date and time as a character string without regard to the input. TCP Based Daytime Service One daytime service is defined as a connection based application on TCP. A server listens for TCP connections on TCP port 13. Once a connection is established the current date and time is sent out the connection as a ascii character string (and any data received is thrown away). The service closes the connection after sending the quote. UDP Based Daytime Service Another daytime service service is defined as a datagram based application on UDP. A server listens for UDP datagrams on UDP port 13. When a datagram is received, an answering datagram is sent containing the current date and time as a ASCII character string (the data in the received datagram is ignored). Daytime Syntax There is no specific syntax for the daytime. It is recommended that it be limited to the ASCII printing characters, space, carriage return, and line feed. The daytime should be just one line. One popular syntax is: Weekday, Month Day, Year Time-Zone Example: Tuesday, February 22, 2009 17:37:43-PST