Siirto- ja verkkokerrokset Jyry Suvilehto T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014
Luennon sisältö 1. Kertausta Protokollapino DNS 2. Johdanto Yhteys, yhteydettömyys Best effort 3. Siirtokerros UDP TCP 4. Verkkokerros Internetin rakenne Reititys IP IPv4 ja IPv6 Lähetystyypit: Unicast, Anycast, Multicast 2
TCP/IP-protokollapino Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, WLAN, GPRS... Asiakas/palvelinsovellukset ja monenväliset palveluarkkitehtuurit Tiedonsiirto päästä päähän, Internetin yli (end to end) Tiedonsiirto yhden linkin yli 3
Nimiavaruudet Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, WLAN, GPRS... Sähköpostiosoite, URL, DNS-nimi, jne. IP-osoite ja porttinumero IP-osoite MAC-osoite 4
Viime viikolla Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... IPv4, IPv6 Linkkikerros: Ethernet, WLAN, GPRS... 5
Tällä viikolla Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... IPv4, IPv6 Linkkikerros: Ethernet, WLAN, GPRS... 6
DNS 7
DNS Domain Name System on internetin hakemistopalvelu Aikanaan yksi päätekijä internetin voitossa muita tietoverkkoja vastaan 13 juurinimipalvelinta Yhdysvaltain viestintäministeriön hallinnassa Jokaisella maallaan oma Top Level Domain(TLD) Nippu yleisiä: com, net, info, biz, asia, travel xxx (!) Maailman ensimmäinen ei-ascii TLD مص (Egypti) 2009 Mm. рф Venäjällä suosittu Uusia top level domaineja on alettu jakaa, http://newgtlds.icann.org/en/program-status/delegated-strings Mm..sexy,.wien,. 网 址,.онлайн,.ninja ja.cheap DNS ei tyypillisesti käytä TCP:tä vaan UDP:tä, se on siis yhteydetön protokolla Uudessa DNSSEC-laajennuksessa kyselyt ja vastaukset niin pitkiä, että siinä käytetään TCP:tä, tästä ehkä enemmän tietoturvan yhteydessä DNS kertoo osoitteen lisäksi mm. domainin posteista vastaavan sähköpostipalvelimen
DNSnimiavaruus. com net fi se ].مصر ] Arpa in-addr aalto tkk hut 130 233 Yksi nimi voi osoittaa useampaan IP-osoitteeseen. Yhden IP-osoitteen takana voi olla monta nimeä. noppa www smtp 130.23 3.228. 91 41 6 dusk.niksula.cs.hut.fi 130.23 3.228. 133 Kts. host-komento Unixissa
DNS-hierarkia Esimerkki Aalto Openista Juurinimipalvelin (lähin Innopolissa) Lähin nimipalvelin ns1.songnet.fi fi-tld:n nimipalvelin (viestintävirasto) Lähin nimipalvelin saattaa joutua tekemään monta kyselyä. Se tallettaa tulokset välimuistiin vaivan säästämiseksi. Loppukäyttäjän saama tieto saattaa olla vanhentunutta ns1.hut.fi noppa.tkk.fi-osoitteesta vastaava Authority päättää kauanko hakutulosta saa säilyttää
DNS-DEMO 11
JOHDANTO 12
Internet a computer network consisting of a worldwide network of computer networks that use the TCP/IP network protocols to facilitate data transmission and exchange (Princeton WordNet) The Internet is a global system of interconnected computer networks that use the standard Internet Protocol Suite (TCP/IP) to serve billions of users worldwide....(wikipedia) An international network, consisting of independently managed networks using the TCP/IP protocols and a shared naming system. A successor to the ARPAnet.(Cornell University digital library glossary) 13
Internet a computer network consisting of a worldwide network of computer networks that use the TCP/IP network protocols to facilitate data transmission and exchange (Princeton WordNet) The Internet is a global system of interconnected computer networks that use the standard Internet Protocol Suite (TCP/IP) to serve billions of users worldwide....(wikipedia) An international network, consisting of independently managed networks using the TCP/IP protocols and a shared naming system. A successor to the ARPAnet.(Cornell University digital library glossary) 14
Yhteys Viime luennolla esitetyt protokollat käyttivät TCP-protokollan tarjoamaa kaksisuuntaista luotettavaa tavuvirtaa (yhteyttä) tiedon siiroon Kaksisuuntainen: molemmat osapuolet voivat kirjoittaa ja lukea Luotettava: korkeammalla tasolla ei tarvitse huolehtia siirtovirheistä (tai ainakin alemman tason protokolla ilmoittaa niistä) Tavuvirta: voi siirtää mitä tahansa, (vrt. merkkivirta pelkän tekstin siirtoon) 15
Yhteys Merriam-webster connection: 2 a : something that connects : link <a loose connection in the wiring> b : a means of communication or transport <a telephone connection> Paljon kysymyksiä ja vastauksia saman yhteyden yli Esim. Keskustelu, puhelu Minä: Haloo, Jyrsa puhelimessa Opiskelija: Kuule, mulla on tällanen ongelma sun kurssis kanssa. Minä: No mimmonen ongelma? Opiskelija:. Jos aloittajaosapuolen yhteys ei mene läpi, tämä huomaa sen 16
Yhteydettömyys Esimerkiksi DNS on yhteydetön sovellustason protokolla Analogia reaalimaailmassa: postikortit Rakas Tilly-täti, mikä on Steve-sedän osoite? Hei Richard, Steve-setä asuu osoitteessa Infinite Loop One Cupertino, CA 95014 Postikortit ja UDP-paketit voivat kadota matkalla Et ehkä koskaan saa tietää että sinulle on lähetetty sellainen 17
Verkkokerros Internet-Protokolla tarjoaa best effort pakettien siirtoa koneelta A koneelle B Best effort: ei takeita oikein mistään, mutta luvataan edes yrittää moni hyökkäys perustuu lupauksen pettämiseen TCP/IP:n kanssa kilpailevat mallit (mm. EU:n tukema OSI) pyrkivät tarjoamaan luotettavuutta (ja maksutietoja) verkkokerroksessa Lopulta TCP/IP:n laissez faire - lähestyminen levisi 18
SIIRTOKERROS 19
UDP UDP: Universal Datagram Protocol Datagrammi on paketti erityisesti epäluotettavassa yhteydessä RFC-768 Lähdeportti (ohjelma) Paketin pituus Sisältö Kohdeportti (ohjelma) Tarkastussumma Tarkastussumma (hash, checksum) lasketaan koko paketista ennaltamäärätyllä tavalla koko paketista 20
UDP UDP tarjoaa epäluotettavan yhteydettömän tiedonsiirron UDP:ta käyttävät mm. DNS, VoIP, IPTV, NTP, SNMP UDP:ssä pienempi yleiskustannus (overhead) kuin TCP:ssä 21
TCP TCP: Transmission Control Protocol RFC-793 Yhteydellinen, luotettava, kaksisuuntainen tavuvirta Eri suunnat eivät riipu toisistaan Ohjelman lähettämä virta pilkotaan palasiin ja palaset lähetetään IPpaketeissa 22
Asiakas Yhteyden avaus SYN Palvelin SYN + ACK ACK Kaksi roolia, aloitteentekijä ja vastaaja Sovitaan sekvenssinumeroista (arvottuja) Ikävä palvelin (smtp.hut.fi) saattaa kenkkuilla ja vastata RST 23
Syn + Ack 24
Kuittaaminen Vastaanottava osapuoli kertoo mitä tavua se odottaa seuraavaksi Asiakas Tavut 1-10: ACK: 11 Tavut 11-20: Tavut 21-30: ACK: 31 Palvelin 25
Virhe Toinen osapuoli jääräpäisesti pyytää seuraavaa näkemätöntä pakettia Asiakas Tavut 1-10: ACK: 11 Tavut 11-20: Räks! Tavut 21-30: Palvelin Ikkunan koko määrittää koska virhe huomataan TCP osaa sopeuttaa ikkunan kokoa virheiden tiheyden mukaan Oho, virhe ACK: 11 Tavut 31-40: ACK: 11 Tavut 11-20: ACK: 41 Tavut 41-50: 26
Yhteyden sulkeminen Asiakas FIN ACK FIN ACK Palvelin Kumpi tahansa voi ilmoittaa FIN eli en aio lähettää enää tavuja virtaan Toinen puoli ilmoittaa FIN kun on itse valmis Yhteys voi jäädä puoliksi auki 27
TCP Lähdeportti (ohjelma) Otsikon pituus Kohdeportti (ohjelma) Sekvenssinumero Vastausnumero Varattu Lippuja Tarkastussumma Kiireellisyys Liput Optioita Data Ikkunan koko Portti identifioi ohjelman Sekvenssinumeron avulla paketit puretaan (ensimmäinen tavu) Vastausnumero kertoo seuraavan odotetun paketin aloitustavun Ikkunan koko on max sekvenssinumero - vastusnumero RST ACK PSH URG SYN FIN 28
Liput RST ACK PSH URG SYN FIN Liput kertovat mikä viestityyppi on kyseessä RST: Reset Connection ACK: Acknowledge PSH: Push URG: Urgent SYN: Synchronize sequence numbers FIN: I have no more data to send 29
VERKKOKERROS 30
Internetin rakenne Runkoverkko Autonominen Järjestelmä (AS) AS 31
Runkoverkko Runkoverkko Internet on rakennettu ARPANETin päälle Advanced Research Projects Agency Network suunniteltiin 1960-luvulla kestämään rauhaa rakastavan Neuvostoliiton ydinisku Ei keskitettyä hallintaa, ei keskitettyä hallitsijaa Voi pojat mikä sotku Internet kestää ydiniskun, muttei välttämättä töpeksivää adminia (Esim. Pakistan ja YouTube) 32
Autonomiset järjestelmät (AS) Runkoverkko Autonominen Järjestelmä (AS) Runkoverkkoon kiinnittyy autonomisia järjestelmiä (Autonomous Systems) 33
Autonomiset järjestelmät (jatkoa) Autonomiset järjestelmät ovat hallinnollisesti yhtenäisiä järjestelmiä, jotka ovat liittyneet kiinni runkoverkkoon Harvardin yliopisto, Sonera, AYY, Vatikaani AS voi olla Multihomed: kiinni runkoverkossa monesta kohtaa Stub: Kiinni vain yhden toisen AS:n kanssa Transit: suostuu välittämään muille verkoille viestejä (ISP) 34
IP(v4) IP = The Internet Protocol RFC 791 Lähettää datagrammeja verkon yli (vs. Paketit) Epäluotettava, yhteydetön Pakettikoko vaihtelee, paketteja saatetaan hajoittaa ja koota siirtäessä Internet Control Message Protocol (ICMP) virheiden välittämiseen takaisin lähettäjälle 35
IPv4 Osoitteet muotoa a.b.c.d, missä a, b, c ja d ovat lukuja välillä 0-256 (4 tavua muistissa) Versio Otsikon pituus ID TOS Lippuja Kokonaispituus TTL Protokolla Otsakkeen tarkistussumma Optioita Lähdeosoite Kohdeosoite Data Täytettä 36
http://xkcd.com/195/ 37
Jokainen reititin osaa reitittää sille tulevat IP-paketit reititystaulunsa perusteella IP-reititys Yksittäisen koneen täytyy tietää vain oletusreitittimen osoite Reititystaulun muodostamiseen käytetään reititysprotokollia ja -algoritmeja. 1 2 Reititystaulu IP-osoitealue Suunta 82.130.0.0-82.130.63.255 1 62.237.152.0-62.237.159.255 2 4 3 130.233.0.0-130.233.255.255 3...... 38
Jokaisella reititysaskeleella reititin vähentää IP-datagrammin TTL-kentän arvoa yhdellä Jos TTL:n arvoksi tulee 0 -> virheviesti lähettäjälle Estää pakettia jäämästä ikuisiksi ajoiksi verkkoon 39
IP-verkkojen määrittäminen IP-osoitteiden reititys ja verkkojen määritys perustuu binäärilukuesitykseen 62.237.153.157 = 111110.11101101.10011001.10011101 Ensimmäiset X bittiä ovat osoitteen verkko-osaa, loput määrittelevät koneen osoitteen Monta tapaa ilmoittaa verkko: 62.237.152.0-62.237.155.255 62.237.152.0/22 62.237.152.0 netmask = 255.255.252.0 40
IP-verkon määrittäminen Kaksi jälkimmäistä jakavat osoitteen verkkoosaan ja laiteosaan 111110.11101101.10011001.10011101 Esimerkissämme ensimmäiset 22/32 bittiä ovat verkko-osaa eli samat kaikille verkon laitteille Loput 10/32 identifioivat yksittäisen laitteen verkon (Aalto Open) sisällä Verkkoon mahtuu 2^10 = 1024 laitetta Verkkojen jako tällä tavoin tekee reitityksestä helppoa (ref: Tietorakenteet ja Algoritmit) 41
IPv4 varatut osoitteet Osoitealue Varauksen aihe 10.0.0.0/8 Yksityiset verkot 127.0.0.0/8 Loopback 169.254.0.0/16 Zero config -verkot 172.16.0.0/12 Yksityiset verkot 192.168.0.0/16 Yksityiset verkot 224.0.0.0/4 Multicast 255.255.255.255 Broadcast Yksityisiä verkkoalueita voi käyttää sisäverkossa. Reitittimen on tällöin suoritettava verkko-osoitteen muunnos (Network Address Translation) NAT sisäverkon rajalla Muitakin varattuja on 42
Localhost = 127.0.0.1 43
IPv6 Pidemmät osoitteet: 128 bittiä (vs 32) fe80:0:0:0:e91a:6df0:a982:217b (nollat voi jättää pois ja merkata :: ) fe80::e91a:6df0:a982:217b Versio Liikenneluokka Vuon nimi Datan pituus Lähdeosoite Kohdeosoite Seuraava otsikko Hyppyraja 44
IPv4 vs IPv6 IPv4:n osoiteavaruus 2^32 on hupenemassa Kotien päätelaitteet (ADSL-modeemit, jne) eivät tue IPv6:sta laajalti Kankea moneen teknisesti hienoon juttuun Pomminvarma IPv6:n osoiteavaruus 2^128 riittää kaikille maailmankaikkeuden alkuhiukkasille Käytössä runkoverkossa käytännössä kaikkialla Taipuu kaikkeen tosi siistiin Kaikkea ei ole hiottu loppuun 45
Unicast Runkoverkko Autonominen Järjestelmä (AS) AS 46
Broadcast Runkoverkko Autonominen Järjestelmä (AS) AS 47
Lähetystyypit IP tukee useampaa eri tapaa lähettää tietoa Unicast on tavallinen lähetys yhdelle hengelle Broadcast on lähetys kaikille verkon laitteille Käytetään mm. DHCP-protokollan ensimmäisessä viestissä Voidaan lähettää verkon hallintadataa yms Jokaisen aliverkon viimeinen IP on varattu sen Broadcast-osoitteeksi 48
Anycast Joko/tai 49
Multicast Runkoverkko Autonominen Järjestelmä (AS) AS 50
Lähetystyypit Anycastissa monella koneella on sama IPosoite ja viesti riittää saada mille tahansa niistä Mm. Osa DNS-juuripalvelimista tukee tätä Ei oikein tue yhteyksien rakentamista Multicastissa sama paketti viedään usealle sitä pyytäneelle vastaanottajalle Paketin kopioiminen tai monistaminen ei maksa mitään IGMP-protokollalla liitytään multicast-osoitteen vastaanottjaksi Ei myöskään hyvä kaksisuuntaiseen yhteyteen 51
TCP/IP TCP/IP:ssä hienoa on luotettava tavuvirta best effort siirron päällä TCP tarjoaa luotettavuutta (tietyissä rajoissa) Verkkokerros yhdistää koko Internetin yhdeksi verkoksi, jossa viestit kulkevat mistä vain minne vain (toistoa aloitusluennolta) DNS-palvelu mahdollistaa ihmisten muistettavien nimen muuntamisen IP-osoitteiksi 52
Ensi viikolla Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... IPv4, IPv6 Linkkikerros: Ethernet, MPLS, WLAN, GPRS... 53