Tietoliikenteen perusteet = verkkojen verkko (löyhää hierarkiaa) Vähän kertausta -palvelun tarjoaja Lähiverkkoja (LAN, Local Area Network) yhdistetty reitittimien välityksellä Tietoliikenteen perusteet /008/ Liisa Tietoliikenteen perusteet /008/ Liisa Asiakas-palvelija-malli Pakettivälitys siirto-aika Olkoon siirtoaika a: a) ka+(n-)a = (k+n-)a b) na +(k-)a = (n+k-)a asiakasprosessi www-selain verkko pyyntö vastaus sanomien reititys verkossa Oikea kone, oikea prosessi palvelijaprosessi www-palvelija always on Tietoliikenteen perusteet /008/ Liisa Kaikkien pakettien siirto yhden linkin yli Viimeisen siirto muiden linkkien yli linkki linkki linkki R R R RR Paketti Paketti Paketti Paketti 4 Paketti Paketti Paketti Paketti Paketti 4 Paketti Paketti Paketti Paketti Paketti 4 Paketti Yhden paketin siirto n linkin yli Muiden pakettien siirtoaika Sanoman siirtoaika, kun sanomassa on k pakettia ja linkkejä on n kappaletta a) k:n paketin siirto. linkin yli + viimeisen paketin siirto n- linkin yli. b). paketin siirto n:n linkin yli + muiden k- paketin siirto yhden linkin li Animaatio: http://wps.aw.com/aw_kurose 4/6/60/4770.cw/index.html Tietoliikenteen perusteet /008/ Liisa 4 -protokollapino Kapselointi Käyttöjärjestelmä laitteisto 4 kerros (Application) Kuljetuskerros (Transport) Verkkokerros (Network) Linkkikerros (Link) Fyysinen kerros (Physical) Protocol Data Unit (PDU): sanoma segmentti datagrammi = paketti kehys bittivuo : Kuljetus: Verkko: Linkki: sanoma H sanoma H H sanoma H H H sano H H ma Fyysinen: 000 0 Verkko: Linkki: H H sanoma H H H sano H H ma Fyysinen: 000 0 : Kuljetus: Verkko: Linkki: sanoma H sanoma H H sanoma H H H sano H H ma Fyysinen: 000 0 Linkki: H H H sano H H ma Fyysinen: 000 0 Reititin Linkkitason kytkin Tietoliikenteen perusteet /008/ Liisa Tietoliikenteen perusteet /008/ Liisa 6
HTTP (HyperText Transfer Protocol) WWW:N sovellusprotokolla Tekstimuotoiset sanomat pyyntö vastaus Asiakas Selain: FireFox, Explorer, Opera, Apple Safari, pyytää, noutaa ja näyttää objektit Palvelija etsii objektin (tiedoston) koneen hakemistosta ja lähettää sen vastauksena asiakkaalle Tilaton protokolla Palvelin, jossa on Apachewww-palvelija Palvelija ei muista mitään edellisistä pyynnöistä HTTP Request HTTP Response HTTP Response HTTP Request Linux-kone, jossa on Firefox-selain GET /fruit/kiwi.gif HTTP/. Host: www.herkkutalo.com origin servers institutional public 0 Mbps LAN. Mbps access link www.herkkutalo.com institutional cache HTTP/. 04 Not Modified Date: Thu, 4 Jul 007 :9.9 GET /fruit/kiwi.gif HTTP/. Host: www.herkkutalo.com If-modified-since: Wed, 4 Jul007 09::4 Tietoliikenteen perusteet /008/ Liisa 7 Tietoliikenteen perusteet /008/ Liisa 8 Sähköpostin komponentit Hajautettu, hierarkinen tietokanta Root DNS Servers Mail server Lähtevien sanomien jono SMTP SMTP Mail server SMTP Mail server postilaatikot User agent com org edu yahoo.com amazon.com pbs.org juuritason nimipalvelija Replikoituja, kaikilla samat tiedot poly.edu umass.edu KuRo0: Fig.8 Ylätason palvelimet maa- ja yleistunnuksille (n. 6 kpl), fi, fr, uk, edu, net, com, org, www.iana.org Autorisoidut aluepalvelimet (domain) (-taso) Isoilla yliopistoilla ja firmoilla omansa, pienet käyttävät jonkun muun ylläpitämää Tietoliikenteen perusteet /008/ Liisa 9 Tietoliikenteen perusteet /008/ Liisa 0 Skaalautuvuus KuRo08: Fig..4 Pistoke (socket) Asiakas-palvelinmalli: Palvelimen siirrettävä n*f bittiä => siirtoaika = nf/u s. Hitain asiakas d min saa tiedoston ajassa F/ d min Siirtoaika = max(nf/u s, F/ d min ) Kun n kasvaa, palvelimen kuorma kasvaa ja siirtoaika kasvaa. File F Server u s u n, d n... u, d u 6,d 6 Vertaistoimijamalli (alussa tiedosto on palvelimella) Siirtoaika = max (F/u s, F/ d min, nf/(u s + E u i )) Summamerkki aika u,d u,d u,d u 4,d 4 0 0 0 0 Tietoliikenteen perusteet /008/ Liisa n Kuljetuspalvelun ja sitä käyttävän sovelluksen rajapinta isäntäkoneessa Sovelluksen tietoliikenne = KJ:n palvelupyyntöjä Pistoke on palveluluukku Alunperin Berkeley UNIXin (BSD) mukana process socket with buffers, variables host or server internet process socket with buffers, variables host or server PC, jossa on Explorerselain ohjelmoija Käyttöjärjestelmä ohjelmoija Käyttöjärjestelmä KuRo08: Fig.6 Tietoliikenteen perusteet /008/ Liisa
UDP: Tarkistussumma Lähetys Summaa 6 bitin kokonaisuudet (otsake + pseudo-otsake mukana), ylivuotobitit lasketaan mukaan, talleta yhden komplementtina Vastaanotto Summaa 6 b kokonaisuudet (myös tarkistussumma). Jos tuloksena on 6 ykköstä, niin OK! 0=> => 0 Checksum Source port # Dest. Port # Length bittiä Checksum Application data (message) UDP-otsake 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 rdt.0 rdt_rcv(rcvpkt) Λ Wait for call 0from above rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,) stop_timer timeout udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) isack(rcvpkt,0) ) Λ rdt_send(data) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) start_timer Wait for ACK Sender Wait for ACK0 Wait for call from above rdt_send(data) sndpkt = make_pkt(, data, checksum) udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) isack(rcvpkt,) ) Λ timeout udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,0) stop_timer rdt_rcv(rcvpkt) Λ KuRo08: Fig. Tietoliikenteen perusteet /008/ Liisa Tietoliikenteen perusteet /008/ Liisa 4 Liukuhihnoitus: käyttöasteen kasvattaminen Go-Back-N: Esimerkki sender first packet bit transmitted, t = 0 last bit transmitted, t = L / R receiver KuRo0: Fig.8 Ikkunankoko = 4 RTT ACK arrives, send next packet, t = RTT + L / R first packet bit arrives last packet bit arrives, send ACK last bit of nd packet arrives, send ACK last bit of rd packet arrives, send ACK U sender = * L / R RTT + L / R =.04 0.008 Increase utilization by a factor of! = 0.0008 microsecon KuRo08: Fig. Tietoliikenteen perusteet /008/ Liisa Tietoliikenteen perusteet /008/ Liisa 6 : prosessilta prosessille -tavuvirta user proc kerros tavuvirta user proc Yhteyden muodostus syn-sgmentti on yhden tavun kokoinen! Kuljetuskerros segmentti -datasähke syn-hyökkäys! T C P Verkkokerros Tietoliikenteen perusteet /008/ Liisa 7.9 Tietoliikenteen perusteet /008/ Liisa 8
Reno: Hidas aloitus (slow start) ruuhkanvälttely (congestion avoidance) Aluksi ruuhkaikkuna = yksi segmentti Host A Alussa hidas siirtonopeus= MSS/RTT Kukin kuittaus kasvattaa yhdellä ruuhkaikkunan kokoa hidas aloitus Eksponentiaalinen kasvu Ikkuna kaksinkertaistuu yhden RTT:n aikana Jos uudelleenlähetys, puolita ruuhkaikkunan koko Multiplicative decrease Sen jälkeen kasvata ikkunaa yksi segmentti/rtt ruuhkanvälttely Lineaarinen kasvu (Additive increase) Ruuhkan välttely (congestion avoidance) Siirtonopeus = CognWin / RTT tavua/sek RTT ja Host B one segment two segments four segments time Tahoe vs. Reno Ruuhkan välttely Hidas aloitus Jos toistokuittausta Jos ajastin laukeaa KuRo08: Fig. Kynnysarvo puoleen siitä missä oltiin Tietoliikenteen perusteet /008/ Liisa 9 Tietoliikenteen perusteet /008/ Liisa 0 Verkkokerros Toimittaa kuljetuskerroksen segmentit vastaanottajalle Lähettäjä luo segmenteistä verkkokerroksen -paketteja application transport Lisää otsaketietoja: mm. -osoitteet Reitittäminen Isäntä reititin... reititin isäntä Vastaanotto Poista otsake Anna segmentti kuljetuskerrokselle Verkkokerros toimii etenkin reitityksessä Reititin tutkii -paketin otsakkeen ja päättää, mihin linkkiin se lähetetään seuraavaksi KuRo08: Fig 4. Tietoliikenteen perusteet /008/ Liisa application transport Reitittimen arkkitehtuuri Kaksi tehtävää Välitä paketteja tulolinkeistä ulosmenolinkkeihin Suorita reititysalgoritmia / -protokollaa Portti ~verkkokortti Useita portteja niputettu yhteen linjakorteiksi (line card) KuRo08:Fig 4.6 Tietoliikenteen perusteet /008/ Liisa -paketin rakenne (v4) -pakettien paloittelu (fragmentointi) Maximum transfer Unit (MTU) suurin mahdollinen -paketti eri linkeillä eri koko Esim. Ethernet 00 B Liian iso paketti pilkottava reitittimessä pienemmiksi paketeiksi (fragmenteiksi), jotka kohdekone kokoaa voivat kukin kulkea eri reittiä reassembly fragmentation: in: one large datagram out: smaller datagrams -otsakkeessa kentät yhteenkuuluvien fragmenttien tunnistamiseksi ja kokoamiseksi KuRo08: Fig 4.4 Tietoliikenteen perusteet /008/ Liisa Tietoliikenteen perusteet /008/ Liisa 4 4
Esimerkki lengthid =4000 =x fragflag =0 4000 tavun -paketti: dataa 980 B MTU 00 B 480 B dataa 0 B -otsaketta offset = 480/8 offset =0 Yhdestä -paketista tulee pienempää -pakettia length =00 length =00 length =040 ID =x ID =x ID =x fragflag = fragflag = fragflag =0 offset =0 offset =8 offset =70 0 480 860. Pala: 480 tavua. Pala: 480 tavua. Pala: 00 tavua CIDR: Classless InterDomain Routing Verkko-osa voi olla minkä tahansa kokoinen Vanha luokallinen osoite: A-luokka 8 b, B-luokka 6 b,c-luokka 4 b Formaatti: a.b.c.d/x x ilmoittaa verkko-osan bittienlukumäärän (prefix) Esim. Organisaatio, jolla 000 konetta varaa 04 = konenumeroa, jolloin verkko-osaa varten jää bittiä Yritys voi vielä itse jakaa viimeiset bittiä aliverkko-osoitteeksi ja koneosoitteeksi. Tämä jako ei näy ulkopuolelle. Verkko (prefix) Kone 00000 0000 0000000 00000000 00..6.0/ aliverkko: 00..a.b/ Tietoliikenteen perusteet /008/ Liisa Tietoliikenteen perusteet /008/ Liisa 6 Hierarkkinen osoite CIDR luo reititystä helpottavan hierarkian Aggregointi (yhdistäminen): yhteinen alkuosa => samaan suuntaan Organization 0 00..6.0/ Organization 00..8.0/ Organization 00..0.0/ Organization 7. 00..0.0/ KuRo08: Fig 4.9. Fly-By-Night-ISP ISPs-R-Us Send me anything with addresses beginning 00..6.0/0 Send me anything with addresses beginning 99..0.0/6 Tietoliikenteen perusteet /008/ Liisa 7 : NAT vaihtaa lähdeosoitteksi 8.76.9.7, ja portiksi 00, päivittää taulun NAT: Esimerkki NAT-muunnostaulu WAN-osoite LAN-osoite 8.76.9.7, 0.0.0., 00 4 S: 8.76.9.7, 00 D: 8.9.40.86, 80 8.76.9.7 S: 8.9.40.86, 80 D: 8.76.9.7, 00 : Vastaus NAT-koneelle: 8.76.9.7, 00 S: 0.0.0., 4 D: 8.9.40.86, 80 0.0.0.4 S: 8.9.40.86, 80 D: 0.0.0., 4 4: NAT vaihtaa kohdeosoitteeksi 0.0.0. ja portiksi 4 : kone 0.0.0. lähettää paketin 8.9.40.86, 80 0.0.0. 0.0.0. 0.0.0. Tietoliikenteen perusteet /008/ Liisa 8 4 Reititysalgoritmi Dijkstran algoritmi Etsii edullisimmat reitit lähdekoneelta kohdekoneille Käytetään reititystaulun muodostamiseen - Mille linkille paketti seuraavaksi siirretään tältä reitittimeltä Reititysalgoritmi, joka tarvitsee täydellisen tiedon verkosta Ennen laskentaa käytössä koko kuva verkosta: - Kaikki linkkiyhteydet solmujen välillä ja niiden kustannukset - Käytännössä vain tietystä autonomisesta alueesta Parhaat reitit lasketaan joko keskitetysti tai hajautetusti Linkkitila-algoritmi (link-state algorithm) Reititysalgoritmi, jolle riittää epätäydellinen kuva verkosta Aluksi reititin tietää vain niistä koneista, joihin itse on yhdistetty Iteratiivinen algoritmi: reititin vaihtaa tietoja naapuriensa kanssa ja saa tietoa muusta verkosta Etäisyysvektorialgoritmi (distance vector algorithm) Initialization: N' = {u} for all nodes v 4 if v adjacent to u then D(v) = c(u,v) 6 else D(v) = 7 8 Loop D(v)=, D(w) =, D(x)= D(y) =, D(z)= 9 find w not in N' such that D(w) is a minimum 0 add w to N' update D(v) for all v adjacent to w and not in N' : D(v) = min( D(v), D(w) + c(w,v) ) /* new cost to v is either old cost to v or known 4 shortest path cost to w plus cost from w to v */ until all nodes in N' u v x w y z Tietoliikenteen perusteet /008/ Liisa 9 Tietoliikenteen perusteet /008/ Liisa 0
u Kohde Z Etäisyysvektorireititys: Esimerkki v x kust. linkki 4 X:ään w y z Jos on jo saatu selville (= naapurit kertoneet), että D v (z) =, D x (z) =, D w (z) = D u (z) = min { c(u,v) + d v (z), c(u,x) + d x (z), c(u,w) + d w (z) } = min { +, +, + } = 4 Kun paketti on matkalla solmusta u solmuun z, se tulee seuraavaksi lähettää solmuun x, joka tuotti tuon minimin => talleta tieto omaan etäisyysvektoriin (= reititystauluun) Tietoliikenteen perusteet /008/ Liisa Huono uutinen etenee hitaasti! Linkki AB katkeaa => etäisyys äärettömäksi Joka vaihdossa 'paras arvio' huononee vain yhdellä = reitityssilmukka Count-to-infinity - ongelma A B C D E D B (A) D c (A) D D (A) D E (A) ääretön 4 4 4 4 4 4 6 6 7 6 7 6 7 8 7 8 jne Etäisyys A:han Tietoliikenteen perusteet /008/ Liisa Laitetoimintoa Linkkikerros Siirtää paketin fyysistä linkkiä pitkin koneelta (solmulta (node)) toiselle langallinen / langaton bitit sisään, bitit ulos Kapseloi paketin siirtoon sopivaan muotoon Siirtokehys (frame) Lähiverkossa linkkejä voi yhdistää keskittimillä tai kytkimillä Käytetään fyysisiä osoitteita 'reititystä' ilman -osoitteita CRC-esimerkki Data: 00 G: 00, polynomina *x + 0*x + 0*x +*x 0 <D,R>: 00??? Lähetä: 000 Modulo -aritmetiikka vähennyslasku yhteenlaskuja ei lainaamista, ei muistinumeroita = bittitason XOR + =0, +0 = 0+ =, 0+0=0 KuRo08:Fig.8 Tietoliikenteen perusteet /008/ Liisa Tietoliikenteen perusteet /008/ Liisa 4 MAC-osoitteet ja ARP-taulu, ARPprotokolla -osoite MAC-osoite TTL...0 A--F9-CD-06-9B :4:00... C-66-AB-90-7-B ::00 Tietoliikenteen perusteet /008/ Liisa Lähettäminen toiseen verkkoon () Lähettäjä A Muodosta -paketti, jossa Source = A, Dest. = B Etsi ARP-taulusta reitittimen -osoitetta vastaava MAC-osoite Luo siirtokehys, osoitteena reitittimen MAC-osoite (data = -paketti). Verkkokortti lähettää siirtokehyksen. R MAC Reititin R Verkkokortti ottaa siirtokehyksen vastaan. Ota -paketti kehyksestä ja tutki otsakkeesta kohteen -osoite (B) Katso reititystaulusta, mihin verkkoon seuraavaksi (mille reitittimelle) Koska omassa verkossa, etsi kohdeverkon ARP-taulusta kohteen MAC-osoite B MAC Muodosta siirtokehys, osoitteena B:n MAC-osoite (data = -paketti) Vastaanottaja B Verkkokortti ottaa kehyksen vastaan; ohjaa -paketin verkkokerrokselle. Tietoliikenteen perusteet /008/ Liisa 6 6
Ethernet kehys Tahdistuskuvio (preample) (8 B) 7 tavussa 0000 kellojen tahdistusta varten 8. tavu 000 kertoo varsinaisen kehyksen alkavan Kohteen ja lähteen MAC-osoitteet (6 + 6 B) Type ( B) verkkoprotokolla, jolle vastaanottaja luovuttaa kehyksen datan, ARP, jokin muu esim, Apple Talk, Novell X,.. Data (46... 00 B) Ethernet MTU = 00 B CRC (4 B) tarkistusbitit, tahdistuskuvio mukana laskennassa Tietoliikenteen perusteet /008/ Liisa 7 CSMA/CD (with Collision Detection) Asema kuuntelee myös lähettämisen jälkeen Langallinen LAN: signaalin voimakkuus muuttuu - Esim. Ethernet Langaton LAN: hankalaa Jos törmäys Niin keskeytä heti lähettäminen ja yritä uudestaan satunnaisen ajan kuluttua Näin törmäyksen aiheuttama hukka-aika pienenee Kauanko kuunneltava? * maksimi etenemisviive solmujen välillä A A ei saa lopettaa ennenkuin törmäyssignaali olisi ehtinyt tulla! törmäyssignaali Tietoliikenteen perusteet /008/ Liisa 8 B LAN, verkkosegmentit to external Takaperin oppiminen Electrical Engineering 0BaseT hub router 00 Mbps 00 Mbps 00 Mbps switch 0BaseT hub mail server Computer Science KuRo08: Fig.9 web server subnet 0BaseT hub System Engineering Tietoliikenteen perusteet /008/ Liisa 9 80.: CSMA/CA Lähetys. Jos kanava vapaa Kuuntele DIFS aikayksikköä Lähetä kehys kokonaan. Jos kanava varattu Käynnistä peruutuslaskuri (backoff) random(max), jota vähennetään vain kun kanava on vapaa, Lähetä, kun laskuri nollassa Jos ei tule kuittausta, niin yritä uudestaan max = *max Vastaanotto Jos kehys OK Odota SIFS aikayksikköä Lähetä ACK (linkkikerroksen ACK) Distributed inter farme spacing KuRo08: Fig 6.0 Short interframe spacing Tietoliikenteen perusteet /008/ Liisa 40 Hajautettu DoS-hyökkäys (DDoS) Hyökkääjä ottaa ensin haltuun ison joukon koneita niiden omistajien huomaamatta Koputtelee ja löytää turva-aukot Asentaa hyökkäysohjelman, joka vain odottelee käskyä /kellolyömää Kaapatut koneet aloittavat samaan aikaan hyökkäyksen uhrin kimppuun Hajautetusti -osoitteet peukaloituina Tietoliikenteen perusteet /008/ Liisa 4 Tietoliikenteen perusteet /008/ Liisa 4 7
Palomuuri (firewall) Ohjelmisto + laitteisto Suodattaa (filteroi) liikennettä organisaation oman verkon (intranet) ja julkisen Interbetin välillä Osa -paketeista pääsee palomuurin läpi, osa ei Request KuRo0: Fig 8. administered firewall public Tietoliikenteen perusteet /008/ Liisa 4 Tietoliikenteen perusteet /008/ Liisa 44 Request.. SYN =.. Kone A Request.. SYN =.. Kone B puskurit puskurit..fin =....FIN =.. -otsake request???? -otsake request -otsake request Verkkopalvelu: - -protokolla, -osoitteet - reititys Tietoliikenteen perusteet /008/ Liisa 4 Tietoliikenteen perusteet /008/ Liisa 46 Kone A Request.. SYN =.. Kone B Kone A Request.. SYN =.. Kone B..FIN =....FIN =.. re q req Linkkikerroksen req req palvelut linkkikerros linkkikerros PPP req linkkikerros linkkikerros PPP req Tietoliikenteen perusteet /008/ Liisa 47 Tietoliikenteen perusteet /008/ Liisa 48 8
Tietoliikenteen perusteet Siinäpä se! Tietoliikenteen perusteet /008/ Liisa 49 9