S-72.1120 Tiedonsiirto ja yhteyskäytännöt

Tentti 12.5.2008

 

Huom! Nämä kommentit eivät ole eikä niiden ole tarkoituskaan olla ulkoa opeteltavia ”oikeita vastauksia”. Seuraavissa tenteissä tarkastellaan sinänsä samoja asioita varmasti taas hiukan eri näkökulmasta, joten vastausten ulkoa opetteleminen sanasta sanaan ei ole hyödyllistä. Näissä vinkeissä yritetään kuitenkin selittää, mistä tehtävissä on kysymys ja käsitellään myös yleisimpiä virheitä.

 

1.    Jääkiekkoseura pitää tilastoja sarjapeleistään. Tilastot ovat seuran ATK-vastaavan ylläpitämällä palvelinkoneella. Kirjauksia tekevät henkilöt ja muut jäsenet voivat ladata palvelinkoneelta omalle koneelleen  asiakasohjelman, jota käyttäen tietoja voi lukea ja päivittää verkon väli­tyksellä. Luonnostele joitakin tyypillisiä sovellustason viestejä, joita asiakasohjelma ja palvelinkoneella oleva palvelinohjelma voisivat lähettää toisilleen. Keskenään kommuni­koidessaan ohjelmat käyttävät hyväkseen olemassaolevaa luotettavaa kuljetustason TCP-tiedonsiirtopalvelua. (4 p.)

 

Tässä on kyseessä tiedonsiirto kahden sovellukseen (jääkiekkotulokset) liittyvän ohjelman välillä, ei toisessa tietokoneessa toimivan ohjelman etäkäyttö ssh:n tms. välityksellä. Ohjelman ja sitä käyttävän ihmisen välinen vuorovaikutus on eri asia. Siirrossa ei siten tarvita prompteja ym. interaktiiviseen työskentelyyn liittyviä piirteitä. Viestien on periaatteessa oltava määrämuotoisia, jotta vastaanottava ohjelma pystyisi tulkitsemaan ne, mutta tällä kertaa riittää kertoa, mitä tietoja siirretään ja missä järjestyksessä.

 

Tiedonsiirto aloitetaan yhteyden muodostamisella, johon tarvitaan myös toisen koneen osoite (TCP huolehtii yksityiskohdista) ja lopuksi yhteys puretaan. Siirrettävien viestien tulee liittyä jääkiekkotuloksiin, tarkisteista, uudelleenlähetyksistä yms. huolehtii TCP. Pari esimerkkiviestiä riittää. Tietoja muokataan peli tai pelitapahtuma (maali, jäähy...) kerrallaan tällä sovellusohjelmalla, kysymys ei ole pelkästään valmiin tiedoston siirtämisestä, siihen riittäisi esim. FTP.

 

Tehtävässä kysyttiin koneiden välillä kulkevien viestien sisältöä, mutta myös viestejä sellaisenaan vastaavat (ei paluuparametreja) funktiokutsut on hyväksytty.

 

Lue aina tehtävä huolellisesti läpi kahteen kertaan!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.    Miten TCPssä toimitaan, kun vastaanotettavassa tiedossa on bittivirhe (4 p.)

 

a) data-kentässä

 

b) tarkisteessa

 

c) Internet-osoitteessa

 

d) järjestysnumerokentässä

 

TCPssä ei pääsääntöisesti ole virheilmoitusviestejä vaan lähettäjä huomaa virheen siitä, että kuittausta ei kuulu. Vastaanottaja puolestaan laskee saamastaan viestistä tarkistussumman ja vertaa tulosta vastaanotetun viestin mukana tulleeseen tarkistussummaan. Viesti, jossa on väärä Internet-osoite, ei koskaan tule TCPlle asti vastaanottajapuolella. Virheellinen järjestysnumero on todennäköisesti niin paljon pielessä, että vastaanottaja ei jää odottelemaan ”välistä puuttuvien” viestien saapumista, vaan hylkää viestin. Sitä paitsi tarkistussumman laskenta koskee myös järjestysnumerokenttää.

 

 

 

 

 

 

 

 

 

 

3.    Firman palvelimelle saapuu paikallisen lähiverkon käyttäjän lähettämä sähköpostiviesti, jonka vastaanottaja on jossakin muualla. Mitä toimenpiteitä viestille suoritetaan palvelimessa, kun viesti on matkalla (4 p.)

 

a) asiakkaalle yleisen Internetin välityksellä?

 

b) saman firman toisessa toimipaikassa työskentelevälle vastaanottajalle virtuaalisen lähiverkon välityksellä?

 

Jälleen kerran on syytä lukea tehtävä ajatuksella läpi. Kysymys on siitä mitä sähköpostiviestille tehdään nuolen osoittamalla lähettäjän lähiverkon palvelimella. Vastaanottajan binäärinen osoite selvitetään ja viesti pakataan TCP-,  IP- ja Ethernet-kehyksiin jo lähettäjäkoneessa. Lisäksi on syytä muistaa, että kysymys on nimenomaan lähtevästä viestistä. Viestin kulkiessa lähiverkossa uloimpana on Ethernet-kehys ja lähiverkkojen välillä kulloisenkin verkon (esim. Internetin) ja linkin vaatima kehys sen mukaan, missä viesti parhaillaan kulkee. Tunneloitu viesti b-kohdassa voi kulkea Internetin tai jonkin vuokrayhteyden kautta. Virtuaalisen lähiverkon käyttäjän kannalta viesti näyttää kulkevan koko ajan lähiverkossa.

 

 

 

 

 

 

4.      Tietojen ylläpidon helpottamiseksi firma on päättänyt keskittää asiakkaidensa yhteystiedot – mm. osoitteet – yhdelle palvelimelle (asiakkaat.firma.fi, portti 1234), jolta asiakastietoja käyt­tävät ohjelmat kysyvät niitä tarvittaessa verkon välityksellä. (Vastaava IP-osoite voi olla esim. 10-alkuinen, vain firman sisäisessä lähiverkossa tunnettu osoite). Luonnostele asiakkaan osoitetta kysyvää ohjelmaa tehtävään liittyvin osin. Voit käyttää esim. virtuaalista alioh­jelma­kutsua. (4 p.)

 

Kuten 1. tehtävässä, tässäkin on kyse kahden ohjelman välisestä kommunikoinnista. Asiakas­ohjelma, joka liittyy firman markkinointiin, laskutukseen tms. kysyy tarvittaessa osoitetietoja keskitetyltä palvelimelta asiakkaan nimen tai asiakasnumeron perusteella. Pyydettiin luonnostelemaan ohjelman sitä osaa, joka kysyy osoitetta palvelimelta. Vastaukseksi riittää muutama rivi ohjelmakoodia. Ohjelmointikielen saa valita melko vapaasti eikä pikku syntaksivirheistä sakoteta, kunhan tarkoitus tulee selväksi. Sanallisista selityksistä ja tilakaavioistakin on pisteitä annettu, mutta nämä kuvaukset ovat enimmäkseen olleet melko epämääräisiä.

 

Kyse on sovellustason kommunikoinnista esim. TCPn välityksellä. Autentikointi ei ole ehdottoman välttämätöntä, koska ko. osoitteeseen ei pääse firman ulkopuolelta. Usein aloitetaan muodostamalla TCP-yhteys palvelimeen, mutta yhteydetön UDP-tiedonsiirtokin on mahdollista, jos firman sisäisessä lähiverkossa on käytetty esim. valokaapelia, jolloin siirto ei ole kovin virhealtis. Virtuaalista aliohjelmakutsua käytettäessä varsinaiset tiedonsiirtotoimenpiteet tapahtuvat aliohjelman – esim. osoite(asiakas) – sisällä ja ulkoa päin tilanne näyttää tavalliselta aliohjelma­kutsulta.

 

PS. Tätä ei välttämättä tarvitse tietää: Myös UDP-tiedonsiirrossa tarvitaan eräänlainen ”yhteyden­muodostus”. Asiakaskoneessa on yleensä useita ohjelmia ja tulevat IP-viestit vastaanottavan käyttö­järjestelmän on jotenkin löydettävä oikea ohjelma. Ohjelman on siis pyydettävä käyttöjärjestelmältä (funktiokutsulla tms.) portin numero, joka sitten liitetään automaattisesti lähteviin viesteihin. Tämä ”yhteydenmuodostus” on kuitenkin asiakasohjelman ja paikallisen käyttöjärjestelmän välinen toimenpide, palvelinohjelmalle ei lähetetä connect-viestiä tms.