sivu - wordpress.com · 2015. 5. 7. · protokolla vastaa pakettien reitittämisestä perille....
TRANSCRIPT
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.
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
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.
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ä.
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ä
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
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.
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.
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
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.
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.
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
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
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
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.
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.
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
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.
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).
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
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
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.
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
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
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