13.07.2015 Views

Luku 3 TCP/IP-protokollaperhe ja -sovellukset

Luku 3 TCP/IP-protokollaperhe ja -sovellukset

Luku 3 TCP/IP-protokollaperhe ja -sovellukset

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Luku</strong> 3<strong>TCP</strong>/<strong>IP</strong>-<strong>protokollaperhe</strong> <strong>ja</strong>-<strong>sovellukset</strong>3.1 Yleistä<strong>TCP</strong>-protokolla (Transmission Control Protocol) vastaa luotettavista yhteyksistäInternet-verkossa. <strong>TCP</strong> käyttää <strong>IP</strong>-protokollaa (Internet Protocol) pakettien kuljettamiseen.Nämä ovat syntyneet 60-luvun lopulla Yhdysvaltain puolustusministeriönDARPA-projektissa, jossa kehitettiin Internetin edeltäjä ARPANET. Tunnettutoteutus kirjoitettiin Berkeleyssä 1983. Jo tätä ennen <strong>TCP</strong>/<strong>IP</strong> <strong>ja</strong> Unix olivatverkkojen yhdistämisessä suosittu<strong>ja</strong>. <strong>TCP</strong>/<strong>IP</strong> vastaa pääpiirteissään OSI-mallinkerroksia 3 <strong>ja</strong> 4. Alla rinnastetaan <strong>TCP</strong>/<strong>IP</strong>-<strong>protokollaperhe</strong> OSI-malliin.OSISovellusEsitysIstuntoKuljetusVerkkoLinkFyysinen<strong>TCP</strong>/<strong>IP</strong><strong>TCP</strong>/<strong>IP</strong>-sovellus<strong>TCP</strong>/<strong>IP</strong>-sovellus<strong>TCP</strong>/<strong>IP</strong>-sovellus, porttinumero tai puuttuu<strong>TCP</strong>, UDP<strong>IP</strong>, ICMP, IGMPLaiteajuri, LLCFyysinen, MAC<strong>IP</strong> huolehtii reitityksestä <strong>ja</strong> <strong>TCP</strong> kuljetuksesta. Linkkikerroksella voi olla LLC-2-43


44 LUKU 3. <strong>TCP</strong>/<strong>IP</strong>-PROTOKOLLAPERHE JA -SOVELLUKSETtai LLC-3-protokollia tai linkkikerroksen annetaan epäonnistua, jolloin lähetetäänpuuttuvat paketit uudestaan.<strong>TCP</strong>/<strong>IP</strong>:n ominaisuuksia:¯ Synkroninen vai asynkroninen? Ei ota kantaa, pakettien kuljetus sujuu molemmillatavoilla.¯ Broadband vai baseband? Ei ota kantaa.¯ Piiri- vai pakettikytkentäinen? Pääasiassa pakettikytkentäinen, mutta voidaantoteuttaa piirikytkentäisellä tekniikalla (esimerkiksi <strong>TCP</strong>/<strong>IP</strong> ajetaan ISDNverkonpäällä).¯ Yhteydetön vai yhteydellinen? Molemmat ovat mahdollisia. <strong>TCP</strong>/<strong>IP</strong>-perhesisältää UDP-protokollan, joka on yhteydetön. <strong>TCP</strong> taas on yhteydellinen <strong>ja</strong>yleisin.<strong>TCP</strong>/<strong>IP</strong> soveltuu hyvin WAN (Wide Area Network) käyttöön, koska se on ensimmäisiäprotokollia, jotka suunniteltiin nimenomaan tähän käyttöön. On yleistäkäyttää <strong>TCP</strong>/<strong>IP</strong>-perhettä lähiverkon ainoana protokollana, sillä:¯ Ei ole pakko reitittää, vaikka protokolla antaisikin siihen mahdollisuuden.Esimerkkinä asunnossa oleva Ethernet-segmentti.¯ <strong>TCP</strong>/<strong>IP</strong>-perheelle on laadittu paljon sovelluksia, jotka ovat käyttökelpoisiaerityisesti lähiverkkoympäristössä, kuten NFS (Network File System) <strong>ja</strong> tulostuspalvelu.<strong>TCP</strong>/<strong>IP</strong>:tä käyttävien palvelujen määrä on kasvanut viime vuosina. Tunnettu<strong>ja</strong><strong>TCP</strong>/<strong>IP</strong>:tä hyödyntäviä palveluita <strong>ja</strong> ohjelmia ovat edellisten lisäksi:


3.1. YLEISTÄ 45Palvelu Kuvaus Sitä hyödyntäviä ohjelmiaftpTiedostojen siirto (File TransferUnixin ftp <strong>ja</strong> lukuisat mikroti-Protocol)etokoneohjelmattelnet Pääteyhteys Unixin telnet <strong>ja</strong> lukuisat mikrotietokoneohjelmatWWW World Wide Web Arena, Mosaic, Netscape ..SMTP Sähköpostin lähetys sendmailPOP3, IMAP Sähköpostin lukeminen pine, Eudora, Netscape..toiselta koneeltaX Verkkoympäristöön suunniteltuCDE-ympäristö <strong>ja</strong> lukuisat siihenha<strong>ja</strong>utettu ikkunointi-kirjoitetut <strong>sovellukset</strong>.järjestelmäJava Monipuolisesti verkkoohjelmointiatukeva ohjelmointikieli<strong>TCP</strong>/<strong>IP</strong>-ympäristöissä:Javaa tukevat selaimet <strong>ja</strong> käyttöjärjestelmät.¯ Protokolla on sopimus asiakkaan <strong>ja</strong> palvelimen kommunikaation muodoista(OSI esitystapakerros) sekä porttinumerosta.¯ Palvelu:– Epäteknisissä yhteyksissä: jokin, jota protokollalla tavoitellaan. Esimerkiksihttp-protokolla toteuttaa www-palvelun.– Unixissa: mitä protokollia tämä kone tarjoaa?– Toteutustasolla: palvelinohjelma (server); esimerkiksi ncsa-httpd onpalvelinkoneella ajettava http-protokollaa ymmärtävä palvelinsovellus.¯ Asiakasohjelma (client) toteuttaa protokollamäärityksen asiakasosuuden <strong>ja</strong>pystyy käyttämään palveluita. Esimerkiksi www-selain <strong>ja</strong> www-indeksoi<strong>ja</strong>robottiovat http-asiakkaita.3.1.1 ProtokollaperheKuljetuskerros:


46 LUKU 3. <strong>TCP</strong>/<strong>IP</strong>-PROTOKOLLAPERHE JA -SOVELLUKSET¯ <strong>TCP</strong> (Transmission Control Protocol): pilkkoo siirrettävän datan paketeiksi,huolehtii kuljetuksesta <strong>ja</strong> yhdistää pakettin sisällöt.¯ UDP (User Datagram Protocol): tietosähkeiden eli pakettien kuljettamiseentarkoitettu protokolla.Verkkokerros:¯ <strong>IP</strong> (Internet Protocol): siirtää paketit, varsinainen verkkokerroksen puurta<strong>ja</strong>.Seuraavat hyödyntävät tätä protokollaa:¯ ICMP (Internet Control Message Protocol): käytetään mm. virheilmoituksiin.ping-ohjelma käyttää tätä.¯ IGMP (Internet Group Management Protocol): käytetään kun UDP-pakette<strong>ja</strong>halutaan lähettää useille vastaanottajille.Linkkikerros:¯ ARP <strong>ja</strong> RARP, käytetään Ethernet-osoitteiden (fyysisten osoitteiden) kuvaamisessa<strong>IP</strong>-osoitteisiin <strong>ja</strong> päinvastoin.3.1.2 <strong>IP</strong>-osoitteet¯ 32-bittisiä, siis 4*8 bittiä, esimerkiksi 153.1.53.172.¯ <strong>IP</strong>-osoite nimeää yksikäsitteisesti fyysisen liitännän kussakin aliverkossa(nykyisin tästä on poikkeuksia). Jos kone on reititin, sillä voi olla 2 tai useampia<strong>IP</strong>-osoitteita. Koneella on kuitenkin vain yksi <strong>IP</strong>-osoite aliverkkoakohden.¯ Käytetään reitityksen perustana, joten on järkevää, että osa osoitteesta on esimerkiksiorganisaatiokohtainen vakio. Tällöin reitittimet tietävät osoitteenperusteella, että se tulee oh<strong>ja</strong>ta kyseisen organisaation aliverkkoon. Osa osoitteestayksilöi aliverkon (verkko-osa) <strong>ja</strong> loppuosa koneen (host-osa).


3.1. YLEISTÄ 47¯ <strong>IP</strong>-osoitteita on erilaisia: A-, B-, C-, D- <strong>ja</strong> E-osoitteita. A-osoitteilla onpieni verkko-osa, mutta suuri host-osa, B-osoitteilla verkko- <strong>ja</strong> host-osatovat samankokoiset, C-osoitteilla on suuri verkko-osa <strong>ja</strong> pieni host-osa.Osoitteet verkko-osan arvoalue host-osan arvoalue(verkko lkm) (host lkm)A 0.0.0.0 - 127.255.255.225 8 / 7 bit (128) 24 bit (16777216)B 128.0.0.0 - 191.255.255.255 16 / 14 bit (16384) 16 bit (65536)C 192.0.0.0 - 223.255.255.255 24 / 21 bit (2097152) 8 bit (256)Aliverkotuksen vuoksi <strong>ja</strong>ottelulla A-, B- <strong>ja</strong> C-osoitteisiin on nykyisin enää vähänmerkitystä.Huomioitavaa¯ D-osoitteet ovat ns. multicast-osoitteita, joissa ei erotella host- <strong>ja</strong> verkkoosia.¯ Monet tiettyä muotoa olevat <strong>IP</strong>-osoitteet on varattu erityiskäyttöön niitäei varata koneille.– Nollat osoitteissa: I do not know that part of the address. Siis kone kyseleeoman osoitteensa palvelimelta (BOOTP). "Oikeissa" osoitteissaei siis voi olla nollia.– 255-osat osoitteessa: broadcast tai aliverkkomaski (subnet mask).Broadcast = paketti lähetetään kaikille samassa aliverkossa olevillekoneille. Tämä ilmaistaan nostamalla host-osan bitit ylös. Esimerkki:£ Tarkastellaan <strong>IP</strong>-osoitetta 192.98.80.213. Kyseessä on selvästi siisC-osoite, jonka alkuosa 192.98.80 on sama kaikille samaanaliverkkoon kuuluville koneille (C-osoitteiden määritelmän mukaan).£ Verkon broadcast-osoite on siten 192.98.80.255. Kun kone lähettäätähän osoitteeseen, kaikki 192.98.80-alkuiset koneet kuulevat.£ B-osoitteita saanut organisaatio voi itse <strong>ja</strong>kaa osoiteavaruuden itsealiverkkoihin. Jako tehdään yleensä <strong>ja</strong>kamalla host-osa (16 bittiä)kahtia, jolloin verkkomaski on siis sama kuin C-luokan osoitteissa.


48 LUKU 3. <strong>TCP</strong>/<strong>IP</strong>-PROTOKOLLAPERHE JA -SOVELLUKSETVerkkomaski ilmoittaa, kuinka suuri osa osoitteesta on vakiota kaikillesaman verkon koneille. Tämä ilmaistaan kääntämällä bitit ylös vakioosasta<strong>ja</strong> jättämällä ne alas muuttuvasta osasta. Esimerkiksi koneen192.98.80.213 verkkomaski on 255.255.255.0.– <strong>IP</strong>-osoitteiksi eivät siis kelpaa sellaiset 4*8-bitin <strong>ja</strong>ksot, joissa jokintavu on 0 tai 255.¯ Lisäksi on sovittu, että jokainen kone tuntee itsensä myös osoitteella 127.0.0.1(loopback, localhost).¯ Monissa vanhemmissa Internet-papereissa samaistaan domain <strong>ja</strong> subnet. Domainon tarkalleen ottaen rekisteröity nimi (kuten outokumpu.com). Domaininrekisteröinti <strong>ja</strong> <strong>IP</strong>-osoitteiden varaaminen organisaatiolle tehdäänyleensä samalla kertaa.¯ Nimipalvelu (DNS, Domain Name System) kuvaa koneiden nimet koneiden<strong>IP</strong>-osoitteisiin, esimerkiksi kielo.uta.fi 153.1.1.10. Tässä uta.fi ondomain.3.1.3 Porttinumerot¯ Porttinumeroita käytetään <strong>TCP</strong>:n <strong>ja</strong> UDP:n tasolla. <strong>IP</strong> ei välitä näistä mitään.¯ Portilla on Kaksi tehtävää: nimetä palvelu <strong>ja</strong> yksilöidä keskustelevat osapuolet.¯ Palveluiden numerot löytyvät IANA-standardista, jossa on sovittu, mikäsovellus käyttää mitäkin numeroa. Esimerkiksi sovitaan portista, jonka takanaftp-palvelinprosessi odottaa yhteydenottoa.IANA-standardissa on kolme porttikategoriaa: ns. well-known ports (0-1023),registered ports (1024-49151) <strong>ja</strong> dynamic/private ports (49152-65535).Standardin mukaan porteissa 0-1023 odottavia palvelinprosesse<strong>ja</strong> voi käynnistäävain pääkäyttäjän oikeuksilla unix-käyttöjärjestelmässä.Rekisteröityihin portteihin kuka tahansa käyttäjä voi käynnistää omia prosesse<strong>ja</strong>an.Kannattaa välttää portte<strong>ja</strong>, joihin on jo tehty jokin tunnettu sovellus.


3.2. PROTOKOLLAPAKETTIEN KUVAUKSET 49Dynaamiset/yksityiset portit: systeemi varaa näitä vuorokeskusteluitunnisteiksi(tosin näyttää siltä, että alempia varataan myös).¯ Keskustelun yksilöinti: oletetaan että otat kielosta telnet-yhteyden vuokkoon.Vuokossa yhteys luodaan porttin 23 kautta. Jotta yhteytesi välillä kielovuokkoei sekaantuisi muihin välillä kielo-vuokko oleviin yhteyksiin. Myösvuokon tulee antaa keskustelulle porttinumero, esimerkiksi 51161.3.2 Protokollapakettien kuvauksetKapselointi:<strong>ja</strong><strong>IP</strong> otsikko <strong>TCP</strong> otsikko data<strong>IP</strong> otsikko UDP otsikko dataPakettien koko (data mukaanlukien) riippuu <strong>TCP</strong>/<strong>IP</strong>-protokollalla keskustelevienosapuolten sopimuksesta. Yhteyden avaukseen kuuluu MSS (Maximum SegmentSize) -neuvottelu. Oletusarvona on 536 tavua (oktettia). Jos paketit liikkuvat ethernetissä,kooksi kannattanee sopia ethernet-datan maksimikoko (1500 tavua). Jospaketit liikkuvat modeemilin<strong>ja</strong>a pitkin, pari sataa tavua.3.2.1 <strong>TCP</strong> <strong>ja</strong> UDP<strong>TCP</strong> huolehtii siis tiedon pilkkomisesta, mahdollisesta uudelleenlähetyksistä sekätiedon kasaamisesta toisessa päässä alkuperäiseen muotoonsa. Siksi <strong>TCP</strong>-paketissaon kuittauskenttä <strong>ja</strong> kuittaaminen toimii lähes samalla tavoin kuin LLC-2:ssä (vaikkakyse on eri OSI-kerroksesta).Ethernetin yhteydessä esitettiin asiat bittipoh<strong>ja</strong>isina. <strong>TCP</strong>/<strong>IP</strong>:ssä puhutaan tavuista<strong>ja</strong> niiden <strong>ja</strong>ksoista. Vakiintuneen käytännön mukaan lukujen tavujärjestys on ns.big-endian. Esimerkiksi 2-tavuinen, 16-bittinen unsigned int esitetään siten, ettäbiteissä 0-7 on vähemmän merkitsevä tavu <strong>ja</strong> biteissä 8-15 enemmän merkitsevätavu.


50 LUKU 3. <strong>TCP</strong>/<strong>IP</strong>-PROTOKOLLAPERHE JA -SOVELLUKSET<strong>TCP</strong>-otsikot:¯ Lähettäjäportti (2 tavua),¯ Kohdeportti (2 tavua),¯ Sekvenssinnumero kuten LLC-2/3:ssa (4 tavua),¯ kuittinumero (4 tavua),¯ Otsikon pituus (4 bittiä) <strong>ja</strong> lippu<strong>ja</strong> (6 bittiä), Liput:– Urgent = kiireinen,– Ack = kuittaus,– Pass Soon = anna heti sovellukselle (älä puskuroi),– RST = reset,– SYN = aloita kuitattu tiedonsiirto <strong>ja</strong>– FIN = viimeinen datapaketti.¯ Ikkunan koko kertoo kuinka monta kuittaamatonta pakettia saa olla matkalla(2 tavua),¯ tarkistussumma (2 tavua) <strong>ja</strong> "pikalähetti-osoitin, joka kertoo mistä kiireellinensanoma alkaa.<strong>TCP</strong>-otsikot vievät tyypillisesti 20 tavua.UDP-otsikot ovat paljon yksinkertaisempia, sillä UDP on ei-kuittaava protokolla.UDP-otsikko koostuu seuraavista osista:¯ lähettäjäportti (2 tavua),¯ määränpääportti (2 tavua),¯ pituus (2 tavua) <strong>ja</strong>¯ tarkistussumma (2 tavua).UDP-otsikot vievät siis 8 tavua.


3.3. SOVELLUKSIA 513.2.2 <strong>IP</strong>Edellä esitellyt protokollapaketit kapseloidaan siis <strong>IP</strong>-pakettiin, joka on seuraavannäköinen:¯ versio (4 bittiä),¯ otsikon pituus (4 bittiä),¯ palvelun tyyppi (8 bittiä), mutta vain neljää käytetään: minimoi viive, maksimoitietovuo, maksimoi luotettavuus, minimoi kustannukset,¯ koko paketin pituus (2 tavua),¯ lähettäjän <strong>IP</strong>-osoite (4 tavua),¯ määränpään <strong>IP</strong>-osoite (4 tavua) <strong>ja</strong>¯ mahdolliset optiot (näiden vuoksi on kenttä "otsikon pituus").<strong>IP</strong>-otsikot vievät tyypillisesti 20 tavua.3.3 SovelluksiaUDP+<strong>IP</strong>:¯ DNS, nimipalvelu. Sekä kysymys, että vastaus mahtuvat yhteen pakettiin.¯ TFTP (Trivial File Transfer Protocol) on kuin FTP, mutta yksinkertaisempi.Tarkoitettu esimerkiksi käyttöjärjestelmän lataamiseen verkosta. Lataa<strong>ja</strong>koodinpitää mahtua pieneen tilaan.¯ NFS (Network File System), ha<strong>ja</strong>utettu tiedostojärjestelmä. Käyttää UDP:tatehokkuussyistä.<strong>TCP</strong>+<strong>IP</strong>:


52 LUKU 3. <strong>TCP</strong>/<strong>IP</strong>-PROTOKOLLAPERHE JA -SOVELLUKSET¯ Telnet, portti 23.¯ FTP (File Transfer Protocol), portit 21 <strong>ja</strong> 20.¯ SSH (Secure SHell), portti 22.¯ SMTP (Simple Mail Transfer Protocol), portti 25.¯ Gopher, portti 70.¯ Finger, portti 79.¯ HTTP (HyperText Transfer Protocol), portti 80.¯ POP3 (Post Office Protocol), portti 110.¯ NNTP (Network News Transfer Protocol), portti 119.¯ NTP (Network Time Protocol), portti 123.¯ IMAP (Internet Message Access Protocol), portti 143.3.4 Ohjelmointira<strong>ja</strong>pinnatBerkeleyn pistokkeet (Berkeley sockets) on yleinen tapa toteuttaa <strong>TCP</strong>/<strong>IP</strong>-perheenohjelmointira<strong>ja</strong>pinta. Oletetaan, että haluat laatia asiakasohjelman, joka lukee palvelinprosessin(jonka si<strong>ja</strong>intikoneen <strong>ja</strong> portin tiedät) syötettä <strong>ja</strong> kirjoittelee sille vastineita.Ideana on:¯ luoda pistoke (soketti), joka edustaa yhteyttä paikallisessa koneessa,¯ kuvata toinen osapuoli, "pistorasia", paikalliselle koneelle sockaddr_in-tyyppisellätietueella:


3.5. YHTEYKSIEN ASENTAMISESTA KÄYTÄNNÖSSÄ 53struct sockaddr_in {short sin_family;u_short sin_port;struct in_addr sin_addr;char sin_zero[8];};¯ kytkeä pistoke rasiaan connect-komennolla,¯ lukea pistokkeesta <strong>ja</strong> kirjoittaa siihen <strong>ja</strong>¯ irrottaa tulppa rasiasta close-komennolla.Verkko-ohjelmointia käsitellään tarkemmin luvussa ??.3.5 Yhteyksien asentamisesta käytännössäEsimerkiksi SL<strong>IP</strong>, PPP <strong>ja</strong> dialup-palvelut.3.5.1 <strong>TCP</strong>/<strong>IP</strong>Käytännössä <strong>TCP</strong>/<strong>IP</strong>-<strong>protokollaperhe</strong>en kanssa joutuu yleensä tekemisiin, kun jokin<strong>TCP</strong>/<strong>IP</strong>-toteutus pitää asentaa omalle tietokoneelle. Tätä tarkoitusta varten yleensäkannattaa tuntea ympäristöstään seuraavat tunnuspiirteet:¯ Millä medialla kone on liitetty aliverkkoon? <strong>TCP</strong>/<strong>IP</strong>-paketin maksimikokoonvoi vaikuttaa. Nopeassa Ethernet-yhteydessä paketin koko voi olla melkosuuri, hitaassa modeemiyhteydessä melko pieni. Hyvää paketin kokoa modeemiyhteydelleon joskus vaikea löytää. Oletetaan, että käytät telnet- <strong>ja</strong> ftpsovelluksiayhtä aikaa <strong>ja</strong> paketin koko on suuri. Ftp siirtää tietoa nopeasti,mutta telnet-pakettisi joutuvat odottamaan kauan päästäkseen ftp-pakettienväliin.


54 LUKU 3. <strong>TCP</strong>/<strong>IP</strong>-PROTOKOLLAPERHE JA -SOVELLUKSET¯ Mikä on nimipalvelimen <strong>IP</strong>-osoite? Ellei tämä ole tiedossa, ei voida käyttääollenkaan tavallasia Internet-nimiä, vaan ainoastaan <strong>IP</strong>-numerot toimivat.¯ Mikä on reititin? Toisin sanoen: minne oh<strong>ja</strong>taan sellaiset paketit, joita ei oleosoitettu suoraan saman segmentin koneille (Ethernet) tai modeemilin<strong>ja</strong>ntoisessa päässä olevalle koneelle (modeemiyhteys). Jos reititin puuttuu taion asetettu väärin, koneesta ei pääse oman verkon ulkopuolelle.¯ Mikä on verkomaski?3.5.2 SL<strong>IP</strong> <strong>ja</strong> PPPSL<strong>IP</strong> (Serial Line <strong>IP</strong>) <strong>ja</strong> PPP (Point to Point Protocol) mahdollistavat <strong>TCP</strong>/<strong>IP</strong>yhteydenpuhelinlin<strong>ja</strong>n tai vastaavan kautta. SL<strong>IP</strong> <strong>ja</strong> PPP ovat linkkikerroksenprotokollia. SL<strong>IP</strong> on äärimmäisen yksinkertainen <strong>IP</strong>-pakettien siirtoprotokolla:¯ Koska SL<strong>IP</strong> on suunniteltu asynkronisille modeemilinjoille, <strong>IP</strong>-datan a<strong>ja</strong>tellaankoostuvan tavuista.¯ Kun kotikäyttäjä soittaa SL<strong>IP</strong>-palvelimeen, hän (tai komentojono) asettaaoman koneensa asetukset <strong>ja</strong> käynnistää palvelimen SL<strong>IP</strong>-ajurin.¯ Palvelimen SL<strong>IP</strong>-ajuri <strong>ja</strong> kotikoneen SL<strong>IP</strong>-asiakas eivät yleensä tee minkäänlaistaalkutarkistusta. "Hommat menivät pieleen-tarkistus on käyttäjänharteilla.¯ Kotikäyttäjä lähettää <strong>IP</strong>-paketin (esimerkiksi DNS-kyselyn). Kotikoneen <strong>IP</strong>asiakassyöttää paketin tavu toisensa jälkeen SL<strong>IP</strong>-liittymään, paitsi että:– Paketin alkuun <strong>ja</strong> loppuun laitetaan tavu 0xc0.– Jos <strong>IP</strong>-paketin jokin tavu on 0xc0, tätä ei tietenkään voida lähettää sellaisenaan,vaan se on korvattava. SL<strong>IP</strong>-muunnoksen mukaan se korvataankahdella tavulla 0xdb 0xdb.– Jos <strong>IP</strong>-paketin jokin tavu on 0xdb, sen si<strong>ja</strong>an lähetetään tavut 0xdb <strong>ja</strong>0xdd.


3.5. YHTEYKSIEN ASENTAMISESTA KÄYTÄNNÖSSÄ 55¯ Palvelimen SL<strong>IP</strong>-ajuri poistaa <strong>IP</strong>-paketeista erikoistavut <strong>ja</strong> väännökset elipalauttaa paketin juuri sellaiseksi kuin ne olivat ennen lin<strong>ja</strong>an siirtämistä <strong>ja</strong>reitittää ne eteenpäin.¯ Huolimatta siitä onnistuiko SL<strong>IP</strong>-yhteyden määrittely <strong>ja</strong> avaus, kotikoneenSL<strong>IP</strong>-asiakas <strong>ja</strong>tkaa hommia. Virhetilanteet ilmenevät seuraavasti:– Jos palvelin ei hyväksy yhteydenottoa, se saattaa lyödä lin<strong>ja</strong>n poikki(toivottavasti tekeekin niin). Hyvin ohjelmoitu slip-asiakas todennäköisestihuomaa tämän, mistä seuraa virheilmoitus.– Jos yhteydenotto onnistui, asiakas <strong>ja</strong> palvelin lähettävät toisilleen SL<strong>IP</strong>pakette<strong>ja</strong>.Silti kotikoneen <strong>IP</strong>-osoite saattaa olla väärin tai nimipalvelin<strong>ja</strong> reititinasetukset voivat olla väärin. Tällöin asiakas ei saa vastaustakyselyynsä <strong>ja</strong> sovellusohjelma lopettaa odottamisen. Tästä seuraavirheilmoitus "DNS lookup failure".¯ Rikkinäisten pakettien uudelleenlähetys ei kuulu SL<strong>IP</strong>ille. Siis vastuu siirretään<strong>TCP</strong>:lle.– SL<strong>IP</strong> on todella kevyt protokolla. Ohjelmoi<strong>ja</strong> voi keskittyä tavukoodaukseen,LLC-2:n toteutus on jonkin verran työläämpää.– SL<strong>IP</strong>iä ajetaan useimmiten häiriöttömillä puhelinlinjoilla <strong>ja</strong> modeemitosaavat LLC-2 -tyyppisen virheenkor<strong>ja</strong>uksen. Siis miksi tehdä se uudelleen?SL<strong>IP</strong>:n suosittu<strong>ja</strong> toteutuksia ovat: Trumpet Winsock (Win 3.x:), InterSL<strong>IP</strong> (Mac)<strong>ja</strong> dip (Linux:). SL<strong>IP</strong>:iin voidaan esimerkiksi liittää:¯ päätepalvelimen tekemä käyttäjätunnistus (kuten Tampereen yliopistossa <strong>ja</strong>useimmissa muissakin),¯ takaisinsoitto (callback): surffaa työnanta<strong>ja</strong>si laskuun,¯ SL<strong>IP</strong>-yhteyden käyttäminen usealta koneelta (client-routing). Jos lähiverkonyhdessä koneessa on SL<strong>IP</strong>-yhteys, lähiverkon muut koneet voivat käyttäätätä hyväkseen. Tämän kehittynyt versio käyttää <strong>IP</strong>-naamiointia, joilloinIAP näkee koko lähiverkon yhtenä <strong>IP</strong>-osoitteena.SL<strong>IP</strong> alkaa poistua käytöstä, koska:


56 LUKU 3. <strong>TCP</strong>/<strong>IP</strong>-PROTOKOLLAPERHE JA -SOVELLUKSET¯ SL<strong>IP</strong> ei sisällä parametrointipakette<strong>ja</strong>. Siis kotikoneen <strong>IP</strong>-asetukset on tehtäväkäsin tai skripteillä (jotka ovat kone-, palvelin- <strong>ja</strong> käyttäjäsidonnaisia).Olisi paljon helpompaa, jos esimerkiksi kotikoneen reititin- <strong>ja</strong> nimipalveli<strong>ja</strong>asetuksetvoitaisiin hoitaa yhteyttä avattaessa palvelimen lähettämällä erikoispaketilla.¯ SL<strong>IP</strong>-lin<strong>ja</strong>n yli voidaan a<strong>ja</strong>a vain <strong>IP</strong>:tä. Tämä ei ole OSI-mallin mukaista:linkkikerros ei saa rajoittaa mitä protokollia yläkerroksilla on. Lisäksi monissaorganisaatioissa halutaan a<strong>ja</strong>a <strong>IP</strong>:n lisäksi myös jotain lähiverkkoprotokollaamodeemiyhteyksillä.PPP-protokolla on yleistymässä, koska se sisältää nämä SL<strong>IP</strong>:stä puuttuvat ominaisuudet.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!