1. Käsitteitä a) Protokollia käytetään kommunikointiin kerrosmallin saman kerroksen entiteettien välillä. Kerros kommunikoi ylemmän ja alemman kerroksen kanssa rajapintojen kautta. Alemman kerroksen protokolla tarjoaa palvelua ylemmälle rajapinnan kautta. b) Socket-rajapintaa käytetään kommunikointiin TCP/IP-arkkitehtuurin sovellus- ja kuljetuskerroksen välillä (tai "TCP/IP-kerroksen"). Sovelluskerros siis käyttää kuljetuspalvelua sen kautta. 2. HTTP OSI-mallin näkökulmasta HTTP:tä ei ole toteutettu OSI-malliin, joten on luonnollista, ettei kaikkia sen ominaisuuksia voida yksikäsitteisesti jakaa eri kerroksille. Jotkut ominaisuuksista voidaan kuitenkin varsin yksikäsitteisesti sijoittaa OSI:n kerroksille. Sovelluskerros Sovelluskerrokselle kuuluvat ne toiminnot, jotka tarjoavat sovellukselle (WWW-asiakas tai -palvelin) rajapinnan suorittaa niille ominaista tiedonsiirtoa. WWW:ssä tämä tiedonsiirto koostuu lähinnä siitä, kun asiakas pyytää tiedostoja palvelimelta, ja siitä, kun palvelin palauttaa niitä asiakkaalle. Erityisesti HTTP-metodit (GET, HEAD, POST, ...) kuuluvat sovellustasolle. Esityskerros Esityskerroksella HTTP hallitsee dataformaatteja. Accept-otsakkeilla asiakas kertoo, millaista dataa se on valmis ottamaan vastaan. Content-otsakkeilla kerrotaan, millaista dataa on lähetetty. HTTP ei kuitenkaan toteuta OSI-mallin esityskerrosta siinä mielessä, että se ei toimi adapterina epäyhteensopivien laitteistoriippuvaisten dataformaattien välillä. Istuntokerros Istuntokerroksella HTTP hallitsee yhteyksiä. HTTP 1.1 käyttää oletuksena pysyviä yhteyksiä, mutta ne voidaan tarvittaessa estää Connection-otsakkeella. Istuntokerrokselle kuuluvat myös HTTP:n evästeet. 3. Netcat ja FTP a) Tiedoston voi siirtää esimerkiksi seuraavalla tavalla: Kuunnellaan haluttua porttia (1024 < portti < TCP max, portin vapauden voi testata komennolla netstat -a | grep portti) Netcatilla A ja laitetaan tuloste haluttuun tiedostoon: kekkonen /u/6/liia > nc -l -p 3333 > bar.txt Lähetetään Netcatilla B siirrettävä data kuuntelevaan porttiin: kekkonen /u/6/liia > cat foo.txt | nc localhost 3333 Vastaavalla menettelyllä voidaan kopioida tiedostoja myös koneiden välillä siten, että Netcat B lähettää datan halutun koneen kuuntelevaan porttiin. b) FTP-protokollassa komento- ja tiedonsiirtokanavat ovat erilliset. Palvelimen ja asiakasohjelman kommunikointi hoidetaan komentoyhteydellä ja tiedonsiirto hoidetaan datayhteydellä. Kannattaa huomata, että kummatkin yhteydet ovat kuitenkin kaksisuuntaisia. FTP-tiedonsiirto voi toimia joko aktiivisena tai passiivisena. Komentoyhteyden luo asiakasohjelma. Aktiivisessa FTP:ssä palvelin luo datayhteyden, eli palvelin on "aktiivinen". Passiivisessa FTP:ssä asiakasohjelma luo datayhteyden, eli palvelin on "passiivinen". ATK-keskuksen palomuuri vaikeutti aktiivisen FTP:n käyttöä, sillä se ei välitä sisäänpäin tulevia tuntemattomia yhteyksiä eteenpäin. Seuraavana on esitelty passiivisen FTP:n käyttö: Otetaan komentoyhteys FTP-palvelimelle: kekkonen /u/6/liia > telnet ftp.funet.fi 21 Trying 193.166.3.2... Connected to ftp.funet.fi. Escape character is '^]'. 220---------- Welcome to Pure-FTPd ---------- 220-You are user number 259 of 1000 allowed. 220-Local time is now 14:24. Server port: 21. 220-Only anonymous FTP is allowed here 220 You will be disconnected after 30 minutes of inactivity. ##käyttäjätunnus user anonymous 331-Welcome to the FUNET anonymous ftp archive 331- 331-This archive is also available over the IPv6 network via ftp.ipv6.funet.fi 331-WWW-browser users can also try http://www.nic.funet.fi/pub/ 331- 331-See the README file for more information about this archive. 331- 331-All anonymous FTP transactions will be logged for possible later analysis 331-and statistics. If you don't like this policy, please disconnect now! 331- 331-THIS is a four processor SUN 450/4GB/1TB system 331-Please mail to problems@nic.funet.fi in case of problems 331- 331 Any password will work ##salasana pass any 230 Any password will work ##siirrytään passiiviseen moodiin pasv 227 Entering Passive Mode (193,166,3,2,187,126) ##käsketään palvelimen lähettää haluttu tiedosto datayhteyttä pitkin ##samanaikaisesti, ks datayhteyden muodostaminen retr /rfc/rfc959.txt 150-Accepted data connection 150 143.9 kbytes to download 226-File successfully transferred 226 0.080 seconds (measured here), 1.76 Mbytes per second ##suljetaan FTP-yhteys quit 221-Goodbye. You uploaded 0 and downloaded 288 kbytes. 221 Logout. Connection closed by foreign host. Datayhteyden muodostaminen: Otetaan datayhteys palvelimelle ja ohjataan sen tuloste tiedostoon. Portti saadaan selville palvelimen tulosteesta riviltä "227 Entering Passive Mode (193,166,3,2,187,126)", missä neljä ensimmäistä lukua kertovat IP-osoitteen ja kaksi jälkimmäistä TCP-portin (256*187 + 126). nc 193.166.3.2 47998 > rfc959.txt