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 /009/ Liisa Tietoliikenteen perusteet /009/ Liisa Asiakas-palvelija-malli /vertaistoimijamalli 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 /009/ 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 /009/ 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 /009/ Liisa Tietoliikenteen perusteet /009/ 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 Palvelija ei muista mitään edellisistä pyynnöistä => evästeet (cookies) GET /somedir/ page.html HTTP/. Host: www.s omeschool.edu User-Agent: Mozilla/4.0 Connection: close Accept-language: fr HTTP/. 00 OK Connection: close Date: Thu, Feb 007 :00: GMT Server: Apache/..0 (Unix) Last-Modified: Mon, 9 Jan 007 09::4 GMT Content-Length: 68 Content-Type: text/html data data data data data HTTP Request Linux-kone, jossa on Firefox-selain PC, jossa on Explorer-selain HTTP Response HTTP Response HTTP Request 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 /009/ Liisa 7 Tietoliikenteen perusteet /009/ Liisa 8 Sähköpostin komponentit Push-protokolla yhteydellinen 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 /009/ Liisa 9 Tietoliikenteen perusteet /009/ 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 /009/ 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 Palvelin, jossa on Apache-wwwpalvelija ohjelmoija Käyttöjärjestelmä ohjelmoija Käyttöjärjestelmä KuRo08: Fig.6 Tietoliikenteen perusteet /009/ 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 /009/ Liisa Tietoliikenteen perusteet /009/ 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 /009/ Liisa Tietoliikenteen perusteet /009/ Liisa 6 : prosessilta prosessille -tavuvirta user proc kerros tavuvirta Kuljetuskerros segmentti user proc : Luotettava, järjestyksen säilyttävä tavuvirta Ei sanomarajoja Tavunumerointi Checksum-tarkistus Puskurointi uudelleenlähetystä varten Kumulatiiviset kuittaukset Verkkokerros -datasähke T C P Yhteydellinen Kolminkertainen kättely, yhteyden purku Vuonvalvonta, ruuhkanhallinta (-valvonta) Lähettäjä ei saa tukahduttaa vastaanottajaa eikä reitittimiä Vuonvalvonta: Receive window Ruuhkanhallinta Tietoliikenteen perusteet /009/ Liisa 7 Tietoliikenteen perusteet /009/ Liisa 8
Yhteyden muodostus.9 syn-sgmentti on yhden tavun kokoinen! syn-hyökkäys! Tietoliikenteen perusteet /009/ Liisa 9 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 Tietoliikenteen perusteet /009/ Liisa 0 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 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. application transport Tietoliikenteen perusteet /009/ Liisa Tietoliikenteen perusteet /009/ Liisa Reitittimen arkkitehtuuri Kaksi tehtävää Välitä paketteja tulolinkeistä ulosmenolinkkeihin Suorita reititysalgoritmia / -protokollaa Portti ~verkkokortti Useita portteja niputettu yhteen linjakorteiksi (line card) -paketin rakenne (v4) KuRo08:Fig 4.6 Tietoliikenteen perusteet /009/ Liisa Tietoliikenteen perusteet /009/ Liisa 4 4
-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ä -otsakkeessa kentät yhteenkuuluvien fragmenttien tunnistamiseksi ja kokoamiseksi reassembly fragmentation: in: one large datagram out: smaller datagrams KuRo08: Fig 4.4 Tietoliikenteen perusteet /009/ Liisa 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 Tietoliikenteen perusteet /009/ Liisa 6 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 /009/ Liisa 7 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 /009/ Liisa 8 : 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 /009/ Liisa 9 4 Reititysalgoritmi 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) Tietoliikenteen perusteet /009/ Liisa 0
Dijkstran algoritmi 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 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 /009/ Liisa Tietoliikenteen perusteet /009/ 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 /009/ 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 Tietoliikenteen perusteet /009/ Liisa 4 CRC-esimerkki Data: 00 G: 00, polynomina *x + 0*x + 0*x +*x 0 <D,R>: 00??? MAC-osoitteet ja ARP-taulu, ARPprotokolla Lähetä: 000 Modulo -aritmetiikka vähennyslasku yhteenlaskuja ei lainaamista, ei muistinumeroita = bittitason XOR + =0, +0 = 0+ =, 0+0=0 KuRo08:Fig.8 -osoite MAC-osoite TTL...0 A--F9-CD-06-9B :4:00... C-66-AB-90-7-B ::00 Tietoliikenteen perusteet /009/ Liisa Tietoliikenteen perusteet /009/ Liisa 6 6
protokolla /reititys Ethernet kehys kerros Kuljetuskerros Verkkokerros Linkkikerros LAN /UDP reititys runkoverkko reititys WLAN 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 /009/ Liisa 7 Tietoliikenteen perusteet /009/ Liisa 8 CSMA/CD (with Collision Detection) LAN, verkkosegmentit 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ä törmäyssignaali to external Takaperin oppiminen 0BaseT hub router 00 Mbps 00 Mbps 00 Mbps switch 0BaseT hub mail server KuRo08: Fig.9 web server subnet 0BaseT hub A A ei saa lopettaa ennenkuin törmäyssignaali olisi ehtinyt tulla! Tietoliikenteen perusteet /009/ Liisa 9 B Electrical Engineering Computer Science System Engineering Tietoliikenteen perusteet /009/ Liisa 40 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 /009/ Liisa 4 Tietoliikenteen perusteet /009/ Liisa 4 7
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 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 KuRo0: Fig 8. administered firewall public Tietoliikenteen perusteet /009/ Liisa 4 Tietoliikenteen perusteet /009/ Liisa 44 Request puskurit Request.. SYN =.. puskurit..fin =.. -otsake request???? -otsake request Tietoliikenteen perusteet /009/ Liisa 4 Tietoliikenteen perusteet /009/ Liisa 46 Kone A Request.. SYN =.. Kone B Kone A Request.. SYN =....FIN =.. Kone B..FIN =.. -otsake request re q Verkkopalvelu: - -protokolla, -osoitteet - reititys Linkkikerroksen req req palvelut linkkikerros linkkikerros Tietoliikenteen perusteet /009/ Liisa 47 Tietoliikenteen perusteet /009/ Liisa 48 8
Kone A Request.. SYN =.. Kone B Tietoliikenteen perusteet..fin =.. req Siinäpä se! PPP req linkkikerros linkkikerros PPP req Tietoliikenteen perusteet /009/ Liisa 49 Tietoliikenteen perusteet /009/ Liisa 0 9