Chapter 4 Network Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) in substantially unaltered form, that you mention their source (after all, we d like people to use our book!) If you post any slides in substantially unaltered form on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR All material copyright 1996-2004 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2004. Verkkokerros (1/3) 1 Verkkokerros Tavoitteet: Ymmärtää periaatteet verkkokerroksen palvelujen taustalla: reititys (polun valinta) skaalautuvuuden käsittely reitittimen toiminta osoitteistus syventäviä aiheita: IPv6, mobiliteetti Internetin verkkokerroksen toteutus Verkkokerros (1/3) 2 1
Verkkokerros Verkkokerroksen palvelut Virtuaalipiiri- ja datagrammiverkot Reitittimen toiminta IP: Internet Protocol datagrammin rakenne IPv4-osoitteistus ICMP IPv6 Reititysalgoritmit yhteystila etäisyysvektori hierarkkinen reititys Reititys Internetissä RIP OSPF BGP Broadcast ja multicast Mobiliteetti Verkkokerros (1/3) 3 Verkkokerros Kuljetetaan segmentit lähettäjältä vastaanottajalle Lähettäjä kapseloi segmentit datagrammeihin Vastaanottaja toimittaa segmentit kuljetuskerrokselle Verkkokerroksen protokollat jokaisessa päätelaitteessa ja reitittimessä Reititin tutkii jokaisen sen kautta kulkevan IPdatagrammin otsikkokentät application transport application transport Verkkokerros (1/3) 4 2
Verkkokerroksen tehtävät Jatkolähetys, forwardointi (forwarding): siirretään paketit reitittimen sisääntulosta sopivaan ulostuloon Reititys (routing): määritellään pakettien käyttämä reitti lähettäjältä vastaanottajalle Analogia: Reititys: suunnitellaan matka kotoa yliopistolle Jatkolähetys: siirrytään yhdestä risteyksestä seuraavaan reititysalgoritmit Verkkokerros (1/3) 5 Reititys ja jatkolähetys routing algorithm local forwarding table header value output link 0100 0101 0111 1001 3 2 2 1 value in arriving packet s header 0111 3 2 1 Verkkokerros (1/3) 6 3
Yhteyden muodostus Kolmanneksi tärkein toiminto joissain verkkoarkkitehtuureissa: ATM, frame relay, X.25 (mutta ei Internetin verkkokerroksella) Ennen datagrammien lähettämistä molempien päätelaitteiden sekä välillä olevien reitittimien täytyy muodostaa virtuaalinen yhteys reitittimet mukana yhteyden muodostuksessa Verkko- ja kuljetuskerrosten yhteydellinen palvelu: verkko: kahden päätelaitteen välillä kuljetus: kahden prosessin välillä Verkkokerros (1/3) 7 Verkkokerroksen palvelumallit Q: Mikä palvelumalli kanavalle, jolla siirretään datagrammeja lähettäjältä vastaanottajalle? Esimerkkipalveluja yksittäisille datagrammeille: taattu toimitus taattu toimitus alle 40 ms viiveellä Esimerkkipalveluja datagrammien virralle: järjestyksen säilyttävä toimitus taattu minimikaistanleveys takuut pakettien ajoitukselle Verkkokerros (1/3) 8 4
Verkkokerroksen palvelumallit Network Architecture Service Model Bandwidth Guarantees? Loss Order Timing Congestion feedback Internet ATM ATM ATM ATM best effort CBR VBR ABR UBR none constant rate guaranteed rate guaranteed minimum none no yes yes no no no yes yes yes yes no yes yes no no no (inferred via loss) no congestion no congestion yes no Verkkokerros (1/3) 9 Verkkokerros Verkkokerroksen palvelut Virtuaalipiiri- ja datagrammiverkot Reitittimen toiminta IP: Internet Protocol datagrammin rakenne IPv4-osoitteistus ICMP IPv6 Reititysalgoritmit yhteystila etäisyysvektori hierarkkinen reititys Reititys Internetissä RIP OSPF BGP Broadcast ja multicast Mobiliteetti Verkkokerros (1/3) 10 5
Verkkokerroksen yhteydellinen ja yhteydetön palvelu Datagrammiverkko tarjoaa verkkokerroksen yhteydettömän palvelun Virtuaalipiiriverkko tarjoaa verkkokerroksen yhteydellisen palvelun Analoginen kuljetuskerroksen palvelujen kanssa, mutta: Palvelu: päätelaitteelta päätelaitteelle Ei valinnanvapautta: verkko tarjoaa vain toisen Toteutus: verkon rungossa Verkkokerros (1/3) 11 Virtuaalipiirit yhteys toimii kuin puhelinverkon yhteys suorituskyvyltään verkon toiminnoiltaan polulla lähettäjältä vastaanottajalle Yhteyden alustus jokaiselle yhteydelle ennen kuin data voi virrata Jokaisessa paketissa on virtuaalipiirin tunniste (ei vastaanottajan osoitetta) Jokainen reititin polulla säilyttää tilatiedot jokaiselle sen kautta kulkevalle yhteydelle Linkkien ja reitittimien resursseja (kaistanleveys, puskurit) voidaan allokoida virtuaalipiirille Verkkokerros (1/3) 12 6
Virtuaalipiirin toteutus Virtuaalipiiri muodostuu: 1. Lähteen ja kohteen välisestä polusta 2. Virtuaalipiirin tunnuksista, yksi jokaiselle polulla olevalle linkille 3. Merkinnöistä polulla olevien reitittimien forwardointitaulukoissa Paketilla, joka kuuluu virtuaalipiiriin, on virtuaalipiirin tunnus Tunnus täytyy vaihtaa jokaiselle linkille uusi tunnus saadaan forwardointitaulukosta Verkkokerros (1/3) 13 VC number Router A Forwardointitaulukko 12 1 2 3 22 32 Reitittimen A forwardointitaulukko: interface number Incoming interface Incoming VC # Outgoing interface Outgoing VC # 1 12 3 22 2 63 1 62 3 7 2 17 1 97 2 87 Reitittimet ylläpitävät yhteyden tilatietoja! Verkkokerros (1/3) 14 7
Virtuaalipiirit: signalointiprotokollat käytetään virtuaalipiirin alustukseen, ylläpitoon ja lopetukseen käytössä: ATM, frame-relay, X.25 ei käytössä: nykyinen Internet application transport 5. Data flow begins 6. Receive data 4. Call connected 3. Accept call application transport 1. Initiate call 2. Incoming call Verkkokerros (1/3) 15 Datagrammiverkot ei yhteydenmuodostusta verkkokerroksella reitittimet: ei tilatietoja päästä-päähän-yhteyksistä ei verkkotason käsitettä yhteys paketit forwardoidaan käyttäen kohteen osoitetta paketit saman lähde-kohde-parin välillä voivat kulkea eri reittejä application transport 1. Send data 2. Receive data application transport Verkkokerros (1/3) 16 8
Forwardointitaulukko Destination Address Range yli 4 miljardia mahdollista merkintää Link Interface 11001000 00010111 0001000000000000 through 0 11001000 00010111 00010111 11111111 11001000 00010111 00011000 00000000 through 1 11001000 00010111 00011000 11111111 11001000 00010111 00011001 00000000 through 2 11001000 00010111 00011111 11111111 otherwise 3 Verkkokerros (1/3) 17 Pisimmän alkuosan sovitus Prefix Match Link Interface 11001000 00010111 00010 0 11001000 00010111 00011000 1 11001000 00010111 00011 2 otherwise 3 Esimerkkejä: 11001000 00010111 00010110 10100001 Mikä liityntä? 11001000 00010111 00011000 10101010 Mikä liityntä? Verkkokerros (1/3) 18 9
Datagrammi- vai virtuaalipiiriverkko? Internet Datan siirtoa tietokoneiden välillä joustava palvelu, ei tiukkoja ajoitusvaatimuksia Älykkäitä päätelaitteita (tietokoneet) voivat adaptoitua, kontrolloida, toipua virheistä yksinkertainen verkko, monimutkaisuus reunoilla Useita linkkityyppejä erilaiset ominaisuudet yhdenmukainen palvelu vaikeaa ATM Kehittynyt puhelintekniikasta Ihmisten kommunikointi tarkka ajoitus, luotettavuus tarvitaan taattu palvelu Tyhmiä päätelaitteita puhelimet monimutkaisuus verkossa Verkkokerros (1/3) 19 Verkkokerros Verkkokerroksen palvelut Virtuaalipiiri- ja datagrammiverkot Reitittimen toiminta IP: Internet Protocol datagrammin rakenne IPv4-osoitteistus ICMP IPv6 Reititysalgoritmit yhteystila etäisyysvektori hierarkkinen reititys Reititys Internetissä RIP OSPF BGP Broadcast ja multicast Mobiliteetti Verkkokerros (1/3) 20 10
Reitittimet: yleiskatsaus Kaksi tärkeintä reitittimen tehtävää: ajaa reititysalgoritmeja/protokollia (RIP, OSPF, BGP) forwardoi datagrammit sisäänmenoista ulostuloihin Verkkokerros (1/3) 21 Input Ports Fyysinen kerros: bittejä Siirtoyhteyskerros: esim. Ethernet Määritetään datagrammin ulostulo forwardointitaulukon avulla Tavoite: suoritetaan prosessointi sisäänmenossa samalla nopeudella kuin datagrammeja saapuu Jonotus: jos datagrammeja tulee nopeammin kuin mitä pystytään forwardoimaan Verkkokerros (1/3) 22 11
Switching Fabrics Verkkokerros (1/3) 23 Output Ports Puskurointia tarvitaan, kun datagrammeja tulee nopeammin kuin mitä seuraavalle linkille pystytään lähettämään Ajoitussäännöillä (scheduling discipline) valitaan jonoista lähetettävät datagrammit Verkkokerros (1/3) 24 12
Jonotus sisäänmenoissa Head-of-the-Line (HOL) blocking: jonon ensimmäisenä oleva datagrammi estää muiden jonottavien datagrammien forwardoinnin Sisäänmenon puskurin ylivuoto johtaa datagrammien häviämiseen! Verkkokerros (1/3) 25 Jonotus ulostuloissa Ulostulon puskurin ylivuoto johtaa datagrammien häviämiseen! Verkkokerros (1/3) 26 13
Verkkokerros Verkkokerroksen palvelut Virtuaalipiiri- ja datagrammiverkot Reitittimen toiminta IP: Internet Protocol datagrammin rakenne IPv4-osoitteistus ICMP IPv6 Reititysalgoritmit yhteystila etäisyysvektori hierarkkinen reititys Reititys Internetissä RIP OSPF BGP Broadcast ja multicast Mobiliteetti Verkkokerros (1/3) 27 Internetin verkkokerros Päätelaitteen ja reitittimen tehtävät verkkokerroksella: Transport layer: TCP, UDP Network layer Routing protocols path selection RIP, OSPF, BGP forwarding table IP protocol addressing conventions datagram format packet handling conventions ICMP protocol error reporting router signaling Data link layer Physical layer Verkkokerros (1/3) 28 14
IP: Datagrammin rakenne IP protocol version number header length (bytes) type of data max number remaining hops (decremented at each router) upper layer protocol to deliver payload to Otsikoiden määrä TCP:n kanssa? 20 tavua TCP:ssä 20 tavua IP:ssä = 40 tavua + sovelluskerroksen overhead 32 bits head. type of ver length len service fragment 16-bit identifier flgs offset time to upper Internet live layer checksum 32 bit source IP address 32 bit destination IP address Options (if any) data (variable length, typically a TCP or UDP segment) total datagram length (bytes) for fragmentation/ reassembly e.g. timestamp, record route taken, specify list of routers to visit Verkkokerros (1/3) 29 IP: fragmentointi ja kokoaminen Verkon linkeillä on MTU (maximum transmission unit), suurin mahdollinen linkkitason kehys eri linkkityypeillä eri MTU Suuri IP-datagrammi lohkotaan (fragmentoidaan) verkossa yhdestä datagrammista tulee useita datagrammeja kootaan vain lopullisessa määränpäässä IP-otsikkossa bitit, joilla tunnistetaan ja järjestetään yhteenkuuluvat fragmentit reassembly fragmentation: in: one large datagram out: 3 smaller datagrams Verkkokerros (1/3) 30 15
IP: fragmentointi ja kokoaminen Esimerkki 4000 tavun datagrammi MTU = 1500 tavua 1480 tavua data-kentässä offset = 1480/8 length =4000 ID =x length =1500 length =1500 length =1040 fragflag =0 ID =x ID =x ID =x offset =0 Yhdestä suuresta datagrammista tulee useampi pienempi datagrammi fragflag =1 fragflag =1 fragflag =0 offset =0 offset =185 offset =370 (8 tavun osissa) Verkkokerros (1/3) 31 Verkkokerros Verkkokerroksen palvelut Virtuaalipiiri- ja datagrammiverkot Reitittimen toiminta IP: Internet Protocol datagrammin rakenne IPv4-osoitteistus ICMP IPv6 Reititysalgoritmit yhteystila etäisyysvektori hierarkkinen reititys Reititys Internetissä RIP OSPF BGP Broadcast ja multicast Mobiliteetti Verkkokerros (1/3) 32 16
IP-osoitteistus: johdanto IP-osoite: 32 bittinen tunniste päätelaitteen ja reitittimen liitynnälle (interface) Interface: liittää päätelaitteen tai reitittimen fyysiseen linkkiin reitittimillä tyypillisesti useita liityntöjä päätelaitteella voi olla useita liityntöjä jokaisella liitynnällä on oma IP-osoite 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 223.1.3.2 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 Verkkokerros (1/3) 33 Aliverkot IP-osoite: aliverkko-osa (high order bits) laiteosa (low order bits) Mikä on aliverkko? Laitteet, joiden liitynnöillä on sama IPosoitteen aliverkko-osa Voivat fyysisesti saavuttaa toisensa ilman reitittimiä 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.27 LAN 223.1.3.1 223.1.3.2 Verkko, joka koostuu 3 aliverkosta Verkkokerros (1/3) 34 17
Aliverkot 223.1.1.0/24 223.1.2.0/24 Miten määritellään aliverkot? Irrotetaan jokainen liityntä päätelaitteesta tai reitittimestä Tuloksena joukko eristettyjä verkkoja Jokaista eristettyä verkkoa kutsutaan aliverkoksi Aliverkkomaski: ilmoittaa aliverkko-osan pituuden bitteinä loput bitit muodostavat laiteosan 223.1.3.0/24 Aliverkkomaski: /24 Verkkokerros (1/3) 35 Aliverkot 223.1.1.2 223.1.1.1 223.1.1.4 Montako aliverkkoa? 223.1.1.3 223.1.9.2 223.1.7.2 223.1.9.1 223.1.8.1 223.1.8.2 223.1.7.1 223.1.2.6 223.1.3.27 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2 Verkkokerros (1/3) 36 18
IP-osoitteistus: CIDR CIDR: Classless InterDomain Routing aliverkko-osa voi olla mielivaltaisen pituinen osoitteen muoto: a.b.c.d/x, missä x on aliverkkoosan pituus (aliverkkomaski) subnet part 11001000 00010111 00010000 00000000 200.23.16.0/23 host part Verkkokerros (1/3) 37 IP-osoite: miten sellaisen saa? Q: Miten päätelaite saa IP-osoitteen? Järjestelmän ylläpitäjä määrittelee tiedostoon Windows: Control Panel -> Network Connections -> Properties -> TCP/IP -> Properties DHCP: Dynamic Host Configuration Protocol: saadaan osoite dynaamisesti DHCP-palvelimelta plug-and-play Päätelaite DHCPDISCOVER DHCPOFFER DHCPREQUEST DCHPACK DHCP-palvelin Verkkokerros (1/3) 38 19
IP-osoite: miten sellaisen saa? Q: Miten verkko saa IP-osoitteen aliverkko-osan? A: Internet-palveluntarjoaja allokoi osan sen omasta osoiteavaruudesta ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23....... Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 Verkkokerros (1/3) 39 Hierarkkinen osoitteistus: reittien kokoaminen Hierarkinen osoitteistus mahdollistaa reititysinformaation tehokkaan mainostamisen: Organization 0 200.23.16.0/23 Organization 1 200.23.18.0/23 Organization 2 200.23.20.0/23.... Organization 7 200.23.30.0/23 Fly-By-Night-ISP Send me anything with addresses beginning 200.23.16.0/20 Internet ISPs-R-Us Send me anything with addresses beginning 199.31.0.0/16 Verkkokerros (1/3) 40 20
Hierarkkinen osoitteistus: täsmällisemmät reitit Palveluntarjoajalla ISPs-R-Us on täsmällisempi reitti organisaation 1 Organization 0 200.23.16.0/23 Organization 2 200.23.20.0/23.... Organization 7 200.23.30.0/23 Organization 1 200.23.18.0/23 Fly-By-Night-ISP ISPs-R-Us Send me anything with addresses beginning 200.23.16.0/20 Send me anything with addresses beginning 199.31.0.0/16 or 200.23.18.0/23 Internet Verkkokerros (1/3) 41 IP-osoitteistus Q: Miten palveluntarjoaja saa osoitteita? A: RIR: Regional Internet Registry RIPE Network Coordination Centre (RIPE NCC) Eurooppa, Lähi-Itä, Keski-Aasia American Registry for Internet Numbers (ARIN) Pohjois-Amerikka, osa Karibianmeren alueesta Asia-Pacific Network Information Centre (APNIC) Aasia, Tyynenmeren alue Latin American and Caribbean Internet Addresses Registry (LACNIC) Latinalainen Amerikka, osa Karibianmeren alueesta African Network Information Centre (AfriNIC) Afrikka Verkkokerros (1/3) 42 21
NAT: Network Address Translation muu Internet paikallinen verkko (esim. kotiverkko) 10.0.0/24 10.0.0.1 138.76.29.7 10.0.0.4 10.0.0.2 10.0.0.3 Kaikilla datagrammeilla, jotka lähtevät paikallisesta verkosta, on sama lähde NAT IP-osoite 138.76.29.7 mutta eri lähdeporttinumerot Datagrammeilla, joiden lähde tai kohde on tässä verkossa, on IP-osoite 10.0.0/24 (aivan normaalisti) Verkkokerros (1/3) 43 NAT: Network Address Translation Motivaatio: paikallinen verkko käyttää vain yhtä IPosoitetta, kun on yhteydessä ulkomaailmaan: ei tarvita suurta määrää osoitteita ISP:ltä, yksi osoite riittää kaikille laitteilla paikallisen verkon laitteiden osoitteita voidaan muuttaa ilman, että tarvitsee ilmoittaa ulkomaailmaan voidaan vaihtaa ISP:tä ilman, että paikallisen verkon laitteiden osoitteita tarvitsee muuttaa paikallisen verkon laitteet eivät näy suoraan ulkomaailmaan (tietoturvabonus) Verkkokerros (1/3) 44 22
NAT: Network Address Translation Toteutus: NAT-reitittimen täytyy: lähtevät datagrammit: vaihtaa jokaiseen datagrammiin (lähde IP-osoite, lähdeporttinumero) -> (NAT IP-osoite, uusi porttinumero) kommunikointikumppani (asiakas tai palvelin) vastaa kohdeosoitteella (NAT IP-osoite, uusi porttinumero) muistaa (NAT-muunnostaulukossa) jokainen muunnospari (lähde IP-osoite, lähdeporttinumero) <-> (NAT IP-osoite, uusi porttinumero) saapuvat datagrammit: vaihtaa jokaiseen datagrammiin (NAT IP-osoite, uusi porttinumero) -> (lähde IP-osoite, lähdeporttinumero) muunnostaulukon mukaisesti Verkkokerros (1/3) 45 NAT: Network Address Translation 2: NAT router changes datagram source addr from 10.0.0.1, 3345 to 138.76.29.7, 5001, updates table 2 NAT translation table WAN side addr LAN side addr 138.76.29.7, 5001 10.0.0.1, 3345 S: 138.76.29.7, 5001 D: 128.119.40.186, 80 138.76.29.7 S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3 3: Reply arrives to destination addr 138.76.29.7, 5001 10.0.0.4 S: 10.0.0.1, 3345 D: 128.119.40.186, 80 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4 1 1: host 10.0.0.1 sends datagram to 128.119.40.186, 80 10.0.0.1 10.0.0.2 10.0.0.3 4: NAT router changes datagram destination addr from 138.76.29.7, 5001 to 10.0.0.1, 3345 Verkkokerros (1/3) 46 23
NAT: Network Address Translation 16 bitin kenttä porttinumerolle: 60 000 samanaikaista yhteyttä yhdestä osoitteesta! NAT on kiistanalainen: reitittimien pitäisi prosessoida vain kerrokselle 3 saakka rikkoo päästä-päähän-ajatusmallia NAT pitää ottaa huomioon sovelluksia suunniteltaessa, esim. P2P-sovellukset osoitteiden vähyys pitäisi sen sijaan ratkaista siirtymällä IPv6:een Verkkokerros (1/3) 47 24