Kertausta: termejä ja käsitteitä

Samankaltaiset tiedostot
TIETOLIIKENTEEN PERUSTEET kevät 2009

Tietoliikenteen perusteet. Vähän kertausta

Tietoliikenteen perusteet. Vähän kertausta. Tietoliikenteen perusteet /2009/ Liisa Marttinen 1

Tietoliikenteen perusteet. Vähän kertausta

R R R RR. Kaikkien. pakettien. siirto yhden linkin yli. always on. Viimeisen siirto muiden linkkien yli. Sovellus: Kuljetus: Verkko: Linkki:

R R R RR. Kaikkien. pakettien. siirto yhden linkin yli. always on. Viimeisen siirto muiden linkkien yli. Sovellus: Kuljetus: Verkko: Linkki:

3. Kuljetuskerros 3.1. Kuljetuspalvelu

OSI ja Protokollapino

Tietoliikenteen perusteet

S Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory

Push- ja pull-protokollat

C:. S: 250 Message accepted for delivery C: QUIT S: 221 princeton.edu closing connection

Sähköpostisanoman muoto. Push- ja pull-protokollat. työntöprotokolla (PUSH) Yleisiä sanoman otsakekenttiä kentät erotettu rivinvaihdolla

Lähettävä postipalvelin Vastaanottava postipalvelin

Tietoliikenteen perusteet. Vähän kertausta. Tietoliikenteen perusteet /2007/ Liisa Marttinen 1

Käyttäjäliitäntä (user agent) sanomien kirjoittaminen, lukeminen ja lähettäminen

Tietoliikenteen perusteet. Linkkikerros

» multiaccess channel» random access channel LAN (Ethernet) langaton. ongelma: käyttövuoron jakelu Yhteiskäyttöisen kanavan käyttö

4. MAC-alikerros. yleislähetys (broadcast) ongelma: käyttövuoron jakelu. » multiaccess channel» random access channel LAN (Ethernet) langaton

ICMP-sanomia. 3. IP-kerroksen muita protokollia ja mekanismeja ICMP (Internet Control Message Protocol)

3. IP-kerroksen muita protokollia ja

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

2.2. Sähköposti. SMTP (Simple Mail Transfer Protocol) Postipalvelimet käyttävät SMTPprotokollaa. TCP-yhteys on pysyvä

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Tietoliikenteen perusteet. Linkkikerros

Luento 5: Kuljetuskerros

kynnysarvo (threshold)

ELEC-C7241 Tietokoneverkot Kuljetuskerros

kynnysarvo (threshold)

Tietoliikenteen perusteet. Langaton linkki

Tietoliikenteen perusteet. Langaton linkki

Tietoliikenne II. Syksy 2005 Markku Kojo. Tietoliikenne II (2 ov,, 4 op) Page1. Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos

5. Siirtoyhteyskerros linkkikerros (Data Link Layer) 5.1. Kaksipisteyhteydet. Kehysten kuljetus. Missä virhe hoidetaan? Virheet.

Sovellusarkkitehtuuri. Kertausta: termejä ja käsitteitä. Internet-protokollapino. Kertaus jatkuu: Kapselointi

Luento 5: Kuljetuskerros luotettavan tiedonsiirron periaatteet. Syksy 2014, Tiina Niklander

kynnysarvo (threshold) varoitusarvo = tästä lähtien syytä varoa ruuhkaa aluksi 64 K RTT

Siltojen haitat. Yleisesti edut selvästi suuremmat kuin haitat 2/19/ Kytkin (switch) Erittäin suorituskykyisiä, moniporttisia siltoja

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

ITKP104 Tietoverkot - Teoria 3

Linkkikerroksen tehtävät

Tietoliikenteen perusteet. Kuljetuskerros

3. Kuljetuskerros 3.1.

Monimutkaisempi stop and wait -protokolla

Tietoliikenteen perusteet: Kokeeseen tulevista asioista

Tietoliikenne II (2 ov)

Luento 9: Linkkikerros. Syksy 2014, Tiina Niklander

Luento 14: Kertausta. Syksy 2014, Tiina Niklander

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

Linkkikerroksen tehtävät

Kuljetuspalvelu. Tietoliikenteen perusteet. Sisältöä. Kuljetuskerros. Kuljetuskerros. Kuljetuskerros. Internetin kuljetusprotokollat

Luento 9: Linkkikerros

Tietoliikenteen perusteet. Linkkikerros

Tietoliikenteen perusteet

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Verkkokerros

Tietoliikenteen perusteet. Verkkokerros

Tietoliikenne II (2 ov)

Tietoliikenteen perusteet. Kuljetuskerros

Miten selain muodostaa TCP- tai UDP-yhteyden? TCP-osoite = IP-osoite + porttinumero ( tässä 80) SOCKET BIND (80) LISTEN ACCEPT. Connection Request

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

Tietoliikenteen perusteet. Langaton linkki. Kurose, Ross: Ch 6.1, 6.2, 6.3. (ei: 6.2.1, ja 6.3.5)

Tietoliikenteen perusteet. Verkkokerros

Tietoliikenteen perusteet. Kuljetuskerros

Kanavan kuuntelu. Yleislähetysprotokollia ALOHA. CSMA (Carrier Sense Multiple Access) Viipaloitu ALOHA. Lähetyskanavan kuuntelu (carrier sense)

Eetteriverkon rakenne

CSMA/CD. Eetteriverkon rakenne. Signaalin koodaus. Törmäyksen jälkeinen uudelleenlähetys. Lyhyet etäisyydet, pieni määrä laitteita. Manchester-koodaus

Luento 7: Verkkokerros verkkokerroksen tehtävät, IP-protokolla, reititin. Syksy 2014, Tiina Niklander

Eetteriverkon rakenne

Tietoliikenteen perusteet. Linkkikerros

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta. Syksy 2014, Tiina Niklander Kurose&Ross: Ch3

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Kuljetuspalvelu. Tietoliikenteen perusteet. Sisältöä. Kuljetuskerros. Kuljetuskerros. Kuljetuskerros. Internetin kuljetusprotokollat

Tietoliikenteen perusteet. Langaton linkki. Kurose, Ross: Ch 6.1, 6.2, 6.3. (ei: 6.2.1, ja 6.3.5)

Luento 7: Verkkokerros

Verkkoinformaation välittämiseen isäntäkoneiden ja reitittimien välillä

Miksi? Miksi? Kaksisuuntainen liikenne TCP-protokolla. Ikkunankoko. Valikoiva toisto: ikkuna 5, numeroavaruus 8

Langaton linkki. Langaton verkko. Tietoliikenteen perusteet. Sisältö. Linkkikerros. Langattoman verkon komponentit. Langattoman linkin ominaisuuksia

Ikkunankoko. Kun käytetty numeroavaruus on 0, 1,.. n ja eri numeroita siis käytettävissä n+1

Ikkunankoko. Kun käytetty numeroavaruus on 0, 1,.. n ja eri numeroita siis käytettävissä n+1

Tietoliikenne II Kurssikoe

11/20/ Siirron optimointi

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

Chapter 3 Transport Layer. Kuljetuskerros

Kuva maailmasta Pakettiverkot (Luento 1)

Miten selain muodostaa TCP- tai UDP-yhteyden? TCP-osoite = IP-osoite + porttinumero ( tässä 80) SOCKET BIND (80) LISTEN ACCEPT. Connection Request

Jos A:lla ei ole tietoa ARP-taulussaan, niin A lähettää ARP-kysely yleislähetyksenä

itää saada selville P-osoitetta vastaava erkko-osoite. leislähetyksenä ysely: Kenen IPsoite. IP-paketissa on vain vastaanottajan

5.5 Ethernet-lähiverkko. Eetteriverkon rakenne. Kaapelit. Törmäyksen jälkeinen uudelleenlähetys. Signaalin koodaus Manchester-koodaus CSMA/CD

Kun n = 32 ei ole tarpeeksi nopea nykyisiin runkoreitittimiin! - content addressable memory (CAM) - välimuistin käyttö

001.. Kun n = 32 ei ole tarpeeksi nopea nykyisiin runkoreitittimiin! - content addressable memory (CAM) - välimuistin käyttö

Verkkokerroksen palvelut. 4. Verkkokerros. Virtuaalipiiri (virtual circuit) connection-oriented ~ connectionless. tavoitteet.

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome. Esimerkki jatkuu

Esimerkki jatkuu. <seq = 6, data = m6> <ack = 4, buf = 0> <ack = 4, buf = 1> <ack = 4, buf = 2> <ack = 6, buf = 0> <ack = 6, buf = 4> 1/31/

Turvallisuus verkkokerroksella

Transkriptio:

TIETOLIIKENTEEN PERUSTEET kevät 2009 Tässä on koottuna kalvot, joita käytettiin apuna kerrattaessa luentokerran alussa edellisen luentokerran pääkohtia. Kone A Sovellus sanoma Kone B Sovellus sanoma Internet Tietoliikenteen perusteet /2009/ Liisa Marttinen 1 Kertausta: termejä ja käsitteitä internet intranet - extranet palvelu - protokolla yhteydetön yhteydellinen luotettava - epäluotettava isäntäkone - reititin - linkki asiakas-palvelin-malli - vertaistoimijamalli piirikytkentä - pakettikytkentä kanavointi: taajuusjako - aikajako siirtonopeus siirtoaika etenemisviive - jonotusviive Tietoliikenteen perusteet /2009/ Liisa Marttinen 2 1

Kertaus jatkuu: pakettivälityksen tehokkuus sopii purskeiseen liikenteeseen etappivälitys sanoma paketeiksi paketin otsake yleisrasite pääsy Internettiin: kaapelimodeemi, ADSL, lähiverkko, langaton yhteys fyysinen siirtomedia: kierretty pari, koaksiaalikaapeli, valokaapeli, sähkömagneettinen aaltoliike siirtovirhe: signaalin vaimeneminen ja vääristyminen, häiriöt => bittivirheitä analoginen signaali digitaalinen signaali Tietoliikenteen perusteet /2009/ Liisa Marttinen 3 Internet-protokollapino Protocol Data Unit (PDU): Ohjelmia laitteistoa 5 4 3 2 1 Sovelluskerros (Application) Kuljetuskerros (Transport) Verkkokerros (Network) Linkkikerros (Link) Fyysinen kerros (Physical) sanoma segmentti datagrammi (paketti) kehys bittivuo Tietoliikenteen perusteet /2009/ Liisa Marttinen 4 2

Kapselointi Sovellus: Kuljetus: Verkko: Linkki: sanoma H3 sanoma H2 H3 sanoma H1 H2 H3 sano H1 H2 ma Fyysinen: 0101110 01 Sovellus: Kuljetus: Verkko: Linkki: sanoma H3 sanoma H2 H3 sanoma H1 H2 H3 sano H1 H2 ma Fyysinen: 0101110 01 Verkko: H2 H3 sanoma Linkki: H1 H2 H3 sano Linkki: H1 H2 H3 sano H1 H2 ma H1 H2 ma Fyysinen: 0101110 01 Fyysinen: 0101110 01 Reititin Linkkitason kytkin Tietoliikenteen perusteet /2009/ Liisa Marttinen 5 Sovellusarkkitehtuuri Asiakas-palvelija-malli (esim. selain ja www-palvelin) Aina toiminnassa oleva palvelinohjelma, jolla kiinteä, tunnettu IP-osoite Asiakasohjelmat ottavat yhteyttä palvelimeen ja pyytävät siltä palvelua Google, e-bay, Facebook, YouTube, Amazon,.. palvelupyyntö Vertaistoimijamalli (esim. BitTorrent, emule, Skype) Vertaisisännät kommunikoivat suoraan keskenään Ei tarvitse olla aina toiminnassa, IP-osoite voi muuttua Jokainen toimii sekä palvelijana että asiakkaana vastaus Hybridimalli (esim. Napster, pikaviestimet ) Tietoliikenteen perusteet /2009/ Liisa Marttinen 6 3

prosessi Sovelluksen tekijän alue prosessi pistoke pistoke KJ TCP puskurit Internet TCP puskurit KJ KJ = käyttöjärjestelmä Prosessien kommunikointi TCP-pistokkeita käyttäen Tietoliikenteen perusteet /2009/ Liisa Marttinen 7 Osoittaminen Sanomissa oltava lähettäjän ja vastaanottajan IP-osoite ja porttinumero IP-osoite oikea kone www.iana.org koneen (verkkokortin) yksilöivä 32-bittinen tunniste osoitteen verkko-osa yksilöi verkon osoitteen koneosa yksilöi koneen verkossa porttinumero oikea prosessi Yleisillä palveluilla standardoidut tunnetut porttinumerot: - www-palvelin kuuntelee porttia 80, - Postipalvelin kuuntelee porttia 25 KJ osaa liittää porttinumeron prosessiin Tietoliikenteen perusteet /2009/ Liisa Marttinen 8 4

HTTP -protokolla Request sanoma GET, HEAD, POST, PUT, DELETE sanoman muoto Response- sanoma Tilaton protokolla => eväste (cookie) Käyttää TCP:tä Säilyvä yhteys Liukuhihna (pipeline) Verkkovälimuisti (proxy server) Ehdollinen GET Tietoliikenteen perusteet /2009/ Liisa Marttinen 9 FTP: File Transfer Protocol (RFC 959) user at host FTP user interface FTP client local file system Tiedostojen kopioiminen koneelta koneelle Asiakas voi selata etäkoneen hakemistoissa FTP sanomilla, voi noutaa tai tallettaa haluamansa tiedoston (download/upload) FTP-palvelin kuuntelee porttia 21 yhteys kontrollitiedon välitystä varten Asiakas kuuntelee porttia 20 palvelija avaa tiedoston siirtoa varten file transfer FTP-palvelin ylläpitää tilatietoa mm. työhakemiston polku, autentikointi FTP client FTP server 20 control data KuRo08: Fig 2.14 Remote file system 21 FTP server 2 TCP-yhteyttä Tietoliikenteen perusteet /2009/ Liisa Marttinen 10 5

Sähköpostin komponentit User agent User agent Mail server SMTP Mail server User agent User agent SMTP SMTP User agent Mail server Lähtevien sanomien jono User agent postilaatikot KuRo08: Fig 2.16 Tietoliikenteen perusteet /2009/ Liisa Marttinen 11 Esimerkki S: 220 helsinki.fi SMTP:n C: HELO princeton.edu kättely tai EHLO S: 250 Hello princeton.edu C: MAIL FROM: <Bob@princeton.edu> Viesti(t) S: 250 <Bob@princeton.edu> OK C: RCPT TO: <pekka.puupaa@cs.helsinki.fi> S: 250 <pekka.puupaa@cs.helsinki.fi> OK C: DATA S: 354 Enter mail, end with. on a line by itself C: dataa dataa C: dataa dataa C:. S: 250 Message accepted for delivery C: QUIT S: 221 princeton.edu closing connection SMTP:n lopetus Tietoliikenteen perusteet /2009/ Liisa Marttinen 12 6

Sähköpostiviestin rakenne Eri asia kuin SMTP: eri standardit (RFC 822) Esim. To: CC: From: Message-Id: Received: Date: Reply-To: Subject:. otsakerivit runko varsinainen viesti, jossa vain ASCIImerkkejä ja lopussa piste omalla rivillä tyhjä rivi Tietoliikenteen perusteet /2009/ Liisa Marttinen 13 MIME MIME-sisältötyyppejä text/plain; charset=us-ascii text/html image/gif, image/jpeg, video/mpeg application/postscript application/msword application/octetstream multipart/mixed MIME-versio: Content-Transfer- Encoding: Content-Type: Base-64-koodaus Sanoma 24 bitin ryhmät on jaettu 6 bitin osiksi, jotka kukin on koodattu ASCII-merkiksi. 64 eri vaihtoehtoa Tietoliikenteen perusteet /2009/ Liisa Marttinen 14 7

Postinnoutoprotokollat (mail access protocols) Posti omalta postipalvelimelta postiohjelmaan POP3: Post Office Protocol versio 3 Viestien lataamiseen omalle koneelle, ei postikansioita IMAP: Internet Mail Accress Protocol Koska SMTP on PUSH -protokolla, sitä ei voi käyttää sanomia haettaessa ( PULL ). Monipuolisempi: postikansiot (folders), lataa vain otsikot, viestien säilytys postipalvelimelle HTTP: Esim. TKTL:lla käytettävä IlohaMail, Hotmail, Web-palvelija käyttää IMAP-palvelijaa SMTP SMTP access user agent protocol sender s mail server receiver s mail server POP3 IMAP HTTP user agent KuRo08: Fig 2.18 Tietoliikenteen perusteet /2009/ Liisa Marttinen 15 DNS (Domain Name System) Hakemistopalvelu ja sovelluskerroksen protokolla Isännät ja nimipalvelimet käyttävät Käyttää itse UDP-kuljetuspalvelua DNS-sanomien kuljettamiseen Nimien muuttaminen IP-osoitteiksi (ja päinvastoin) Posix: gethostbyname(hydra.cs.helsinki.fi) 218.214.4.29 Kone = hydra =29, verkko= cs.helsinki.fi = 218.214.4.0 Sallii aliasnimet, palvelijan replikoinnin Esim. WWW.cs.helsinki.fi ja cs.helsinki.fi ovat aliasnimiä Esim. www-palvelijaan voi liittyä useita IP-osoitteita, rotaatio Hajautettu, hierarkinen tietokanta (hakemisto) Toteutettu useiden replikoitujen nimipalvelimien yhteistyönä skaalautuvuus, kuormantasaus, ylläpito, vikasietoisuus,.. Jos oma nimipalvelija ei tunne, se kysyy muilta. Tietoliikenteen perusteet /2009/ Liisa Marttinen 16 8

Hajautettu, hierarkinen tietokanta Standarditoteutus Unix + BIND-ohjelma Root DNS Servers com DNS servers org DNS servers edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers poly.edu DNS servers umass.edu DNS servers KuRo08: Fig 2.19 13 juuritason nimipalvelija Replikoituja, kaikilla samat tiedot Ylätason palvelimet maa- ja yleistunnuksille (n. 265 kpl), fi, fr, uk, edu, net, com, org, Autorisoidut aluepalvelimet (domain) (2-taso) Isoilla yliopistoilla ja firmoilla omansa, pienet käyttävät jonkun muun ylläpitämää www.iana.org Tietoliikenteen perusteet /2009/ Liisa Marttinen 17 ICANN The Internet Corporation for Assigned Names and Numbers Domain -nimiavaruus COM,.NET,.ORG,.EDU,.INT,.MIL.GOV,. ARPA ja maakoodit. fi com org edu. helsinki cs... Uusia:.biz,.info,.name Tietoliikenteen perusteet /2009/ Liisa Marttinen 18 9

Skaalautuvuus KuRo08: Fig. 2.24 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 ) FileF Server u s u n, d n... u 1, d 1 Internet u 6,d 6 u 2,d 2 u 5,d 5 u 3,d 3 u 4,d 4 Kun n kasvaa, palvelimen kuorma kasvaa ja siirtoaika kasvaa. aika Vertaistoimijamalli (alussa tiedosto on palvelimella) Siirtoaika = max (F/u s, F/ d min, nf/(u s +E u i )) Summamerkki 0 10 20 30 Tietoliikenteen perusteet /2009/ Liisa Marttinen 19 n TCP-kuljetuspalvelu Luo pysyvä pistoke SOCKET BIND LISTEN Jää kuuntelemaan server ACCEPT RECEIVE SEND(DATA) CLOSE K J Kuljetuspalvelun tuottaja esim. TCP conn.req. conn. ack. data data discon.req. discon. ack. K J SOCKET client Luo pistoke CONNECT(SERVER) SEND(DATA) RECEIVE CLOSE Ota yhteys lähetä vastaanota dataa sulje yhteys Tietoliikenteen perusteet /2009/ Liisa Marttinen 20 10

Esimerkki: TCP-asiakas (Java) import java.io.*; import java.net.*; class TCPClient { public static void main(string argv[]) throws Exception { String sentence; String modifiedsentence; BufferedReader infromuser = new BufferedReader(new InputStreamReader(System.in)); Socket clientsocket = new Socket("hostname", 6789); yhteyspyyntö DataOutputStream outtoserver = new DataOutputStream(clientSocket.getOutputStream()); BufferedReader infromserver = new BufferedReader(new InputStreamReader( clientsocket.getinputstream())); sentence = infromuser.readline(); outtoserver.writebytes(sentence + '\n'); modifiedsentence = infromserver.readline(); System.out.println("FROM SERVER: " + modifiedsentence); } } clientsocket.close(); Tietoliikenteen perusteet /2009/ Liisa Marttinen 21 Kone A Kone B Sovellus (HTTP, FTP, SMTP, DNS, ) pistoke Reply Request?????? Sovellus (HTTP, FTP, SMTP, DNS, ) pistoke Sulkee myös TCPyhteyden Kuljetuspalvelu Kuljetuspalvelu Internet Tietoliikenteen perusteet /2009/ Liisa Marttinen 22 11

Mikä kone /Mikä prosessi? Kuljetuskerros tarjoaa päästä-päähän yhteyden Prosessilta prosessille ( = pistokkeesta pistokkeeseen) Prosessi lukee ja kirjoittaa sanomia halutessaan Datan lisäksi on välitettävä osoitetietoja Vastaanottajan ja lähettäjän tiedot Eri koneiden prosessit voivat käyttää samaa palvelua Saman koneen prosessit voivat käyttää eri palveluita Kuljetuskerros: mikä prosessi = mikä portti Verkkokerros: mikä kone = mikä IP-osoite Porttinumero 16-bittinen: 0 65535 Portit 0 1024 on varattu kukin tietylle palvelulle (well known ports) - Esim. www-palvelulle portti 80, SMTP-postipalvelulle portti 25 Tietoliikenteen perusteet /2009/ Liisa Marttinen 23 Mikä kone /Mikä prosessi? Lähetys (asiakas) Kuljetuskerros Segmentin otsakkeessa lähde- ja kohdeprosessin porttinumero Antaa segmentin verkkokerroksen välitettäväksi TCP: huolehtii myös luotettavuudesta UDP: tarjoaa pelkän välityspalvelun 32 bits source port # dest port # other header fields application data (message) TCP/UDP-segmentti Verkkokerros Paketin otsakkeessa lähde- ja kohdekoneen IP-osoite reitittimet osaavat ohjata oikealle koneelle Source IP Destination IP Other IP header fields TCP/UDP-segmentti IP-paketti Tietoliikenteen perusteet /2009/ Liisa Marttinen 24 12

UDP-segmentin rakenne Porttinumerot 32 bittiä Koska on prosessien välinen palvelu Length Source port # Dest. Port # Segmentin kokonaispituus otsake (8 B) mukaanluettuna Checksum (optionaalinen) Length Checksum Bittivirheen havaitsemiseen Application data UDP ei yritä toipua, hävittää (message) virheellisen segmentin Data UDP-otsake Pitkä sanoma pilkottuna useaksi segmentiksi IP-osoitteet vasta verkkokerroksen otsakkeessa Näitä tarvitaan reitityksessä Tietoliikenteen perusteet /2009/ Liisa Marttinen 25 32 bittiä UDP-tarkistussumma Lähetys Summaa 16 bitin kokonaisuudet (otsake + pseudo-otsake mukana), ylivuotobitit lasketaan mukaan, talleta yhden komplementtina Vastaanotto Summaa 16 b kokonaisuudet (myös tarkistussumma). Jos tuloksena on 16 ykköstä, niin OK! Source port # Dest. Port # Length Checksum Application data (message) UDP-otsake 0=> 1 1=> 0 Checksum 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 Tietoliikenteen perusteet /2009/ Liisa Marttinen 26 13

Sovelluskerros Data Data Luotettava tiedonsiirto protokolla Miten saadaan luotettavaksi? Luotettava tiedonsiirtoprotokolla Segmentti Kuljetuskerros Segmentti Epäluotettava kanava Verkkokerros Bittivirheitä, segmenttejä katoaa, segmentit väärässä järjestyksessä Tietoliikenteen perusteet /2009/ Liisa Marttinen 27 Kuinka saada luotettavaksi? r Tarkastellaan yleisesti luotettavan tiedonsiirron ongelmia ja erilaisia ratkaisuyrityksiä r Edeten ideaalitilanteesta yhä ongelmaisempaan r Käyttäen äärellisiä tila-automaatteja lähettäjän ja vastaanottajan toiminnan kuvaamiseksi Siirtymän aiheuttama tapahtuma Toiminnot siirryttäessä Tapahtuma määrää yksikäsitteisesti seuraavan tilasiirtymän Tila 1 tapahtuma toiminnot Tila 2 Tietoliikenteen perusteet /2009/ Liisa Marttinen 28 14

rdt3.0 rdt_rcv(rcvpkt) Λ Wait for call 0from above rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,1) 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 ACK1 Sender Wait for ACK0 Wait for call 1 from above rdt_send(data) sndpkt = make_pkt(1, data, checksum) udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) isack(rcvpkt,1) ) Λ timeout udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,0) stop_timer rdt_rcv(rcvpkt) Λ KuRo08: Fig 3.15 Tietoliikenteen perusteet /2009/ Liisa Marttinen 29 rdt3.0 toiminnassa KuRo08:Fig 3.16 Tietoliikenteen perusteet /2009/ Liisa Marttinen 30 15

Liukuhihnoitus: käyttöasteen kasvattaminen sender first packet bit transmitted, t = 0 last bit transmitted, t = L / R receiver KuRo08: Fig 3.18 RTT ACK arrives, send next packet, t = RTT + L / R first packet bit arrives last packet bit arrives, send ACK last bit of 2 nd packet arrives, send ACK last bit of 3 rd packet arrives, send ACK U sender = 3 * L / R RTT + L / R =.024 30.008 Increase utilization by a factor of 3! = 0.0008 (0.00028) microsecon Tietoliikenteen perusteet /2009/ Liisa Marttinen 31 Liukuva ikkuna (sliding window) 6 5 4 7 0 1 2 3 Säätelee pakettien lähettämistä ja vastaanottoa Kertoo millä pakettinumeroilla on lähetetty/vastaanotettu, mistä saatu/lähetetty kuittaukset ja millä numeroilla voi vielä lähettää/vastaanottaa paketteja Ikkunan koko riippuu yhteyden tyypistä ja puskurien koosta 10 11 11 12 12 13 13 14 15 16 17 18 19 20 21 22 23 24. Lähetysikkuna (sender window) Ikkunan koko = montako pakettia saa olla kuittaamatta Mitkä pakettinumerot on käytetty, mutta kuittaamatta Mitä pakettinumeroita voi vielä käyttää Lähettäjän on odotettava, jos kaikki ikkunan numerot on käytetty Kun kuittaus saapuu, ikkuna liukuu Seuraavat numerot tulevat luvallisiksi Tietoliikenteen perusteet /2009/ Liisa Marttinen 32 16

Go-Back-N: Esimerkki Kumulatiivinen kuittaus Ikkunankoko = 4 Kuittaa viimeisen kunnollisen ja järjestyksessä saadun paketin. Väärä numero! tuplakuitttaus KuRo08: Fig 3.22 Tietoliikenteen perusteet /2009/ Liisa Marttinen 33 Esimerkki: Valikoiva toisto Jokainen sanoma kuitattava erikseen Ikkuna liukuu tasaisesti! KuRo08: Fig 3.26 Tietoliikenteen perusteet /2009/ Liisa Marttinen 34 17

Yhteenveto menetelmistä Ks. KuRo08 Table 3.1 Tarkistussumma Ajastin Järjestysnumero Kuittaukset Positiiviset ACK, tuplakuittaukset Negatiiviset NAK Ikkunat, liukuhihnoitus Tietoliikenteen perusteet /2009/ Liisa Marttinen 35 Yhteyden muodostus syn-segmentti on yhden tavun kokoinen! Yhteyden purku client server close FIN ACK FIN close 3.39 timed wait closed ACK Tietoliikenteen perusteet /2009/ Liisa Marttinen 36 18

TCP: uudelleenlähetys (2) Host A Host B SendBase = 120 timeout Seq=92, 8 bytes data Checksum Tavunumerointi Kumuloiva kuittaus Toistokuittaus Seq=100, 20 bytes data X loss ACK=120 ACK=100 Ajastin Uudelleenlähetys Nopea uudelleenlähetys time Cumulative ACK scenario KuRo08: Fig 3.36 Tietoliikenteen perusteet /2009/ Liisa Marttinen 37 Tavunumerointi Kuittauksia ei kuitata ja ne eivät siirrä numerointia! Niissä ei siirretä tavuvirtaa. Tavuvirtaa Segmentit voivat olla erikokoisia ( =< MSS) Segmentin numero = - ensimmäisen tavun numero - alkuarvot sovitaan yhteyttä muodostettaessa Kuittaus - seuraavaksi odotetun tavun numero - kumulatiivinen - kylkiäisenä (piggybacked) mikäli mahdollista Host A Host B User Seq=42, ACK=79, data = C types C host ACKs receipt of host ACKs receipt of echoed C Seq=79, ACK=43, data = C Seq=43, ACK=80 C, echoes back C Kuro08: Fig 3.31 simple telnet scenario Tietoliikenteen perusteet /2009/ Liisa Marttinen 38 19

Vuonvalvonta Jotta lähettäjä ei tukahduta vastaanottoa Siirtonopeus sovitettava vastaanottavan sovelluksen mukaan Kuittaus on irroitettu vuonvalvonnasta vastaanottopuskuri Liukuva ikkuna, koko vaihtelee Kuittaus siirtää ikkunaa Vuonvalvonta määrää ikkunankoon Kun ikkunankoko = 0, ei saa lähettää! Vastaanottaja kertoo, montako tavua puskureihin vielä mahtuu TCP-segmentin otsakkeen kenttä Receive window Sovellus lukee tavut silloin kun haluaa Koko on mukana jokaisessa TCP-segmentissä (molempiin suuntiin) Myös ruuhkanhallinta rajoittaa lähettämistä vapaata RcvWindow käytössä Tietoliikenteen perusteet /2009/ Liisa Marttinen 39 TCP Reno: Hidas aloitus (slow start) ruuhkanvälttely (congestion avoidance) ja Aluksi ruuhkaikkuna = yksi segmentti Alussa hidas siirtonopeus= MSS/RTT Kukin kuittaus kasvattaa yhdellä ruuhkaikkunan kokoa hidas aloitus Eksponentiaalinen kasvu Ikkuna kaksinkertaistuu yhden RTT:n aikana Jos uudelleenlähetys, ruuhkaikkunan kooksi 1 segmentti 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 Host A one segment Tietoliikenteen perusteet /2009/ Liisa Marttinen 40 RTT Host B two segments four segments time 20

TCP Reno: Tarkennus Saatu 3 ACK-kaksoiskuittausta (double ACK) (4 samaa kuittausta!) Verkko pystyy välittämään dataa! Ei siis (pahaa) ruuhkaa, ehkä paketissa bittivirhe tai paketti kadonnut jostain muusta syystä Nopea uudelleenlähetys (fast retransmit) Nopea toipuminen (fast recovery) Puolita ruuhkaikkunan arvo ja kasvata sitten lineaarisesti kynnysarvo? Timeout ( = uusi hidas aloitus) Verkko pahasti ruuhkautunut! Pudota ikkunankoko arvoon 1 Kasvata eksponentiaalisesti kynnysarvoon asti Kasvata sitten lineaarisesti ruuhkanvälttely Hidas aloitus Vanha TCP Tahoe pudotti aina kokoon 1. Tietoliikenteen perusteet /2009/ Liisa Marttinen 41 TCP Tahoe vs. TCP Reno Jos 3 toistokuittausta KuRo08: Fig 3.53 Ruuhkan välttely Hidas aloitus Kynnysarvo puoleen siitä missä oltiin Jos ajastin laukeaa Tietoliikenteen perusteet /2009/ Liisa Marttinen 42 21

Ajastimen arvo? Aseta ajastin, kun segmentti on lähetetty Liian lyhyt aika Ennenaikainen timeout, turha uudelleenlähetys Turhat ruuhkatoiminnot Liian pitkä aika Turhan hidas reagointi segmentin katoamiseen Ei huomata ruuhkaa ajoissa Alkujaan: Timeoutinterval = 2*RTT Kuittausaika vaihtelee suuresti ja nopeasti =>käytössä dynaaminen arvo Saadaan jatkuvien mittausten perusteella Jos ajastin laukeaa, tuplaa Timeout Exponential backoff Tietoliikenteen perusteet /2009/ Liisa Marttinen 43 TCP-segmentti Otsake aina vähintään 20 B Optio-osa tarvittaessa Segmentti- ja kuittausnumerot tavunumeroina Ikkunankoko: paljonko tilaa vastaanottopuskurissa (tavua) ACK= kuittausnumero validi, RST (reset), SYN yhteydenmuodostus FIN yhteydenpurku URG, PSH ei yleensä käytetä Tietoliikenteen perusteet /2009/ Liisa Marttinen 44 22

Sovellus (HTTP, SMTP) TCP puskurit Request Reply.. SYN =1.. Sovellus (HTTP, SMTP) TCP puskurit..fin = 1.. TCP-otsake request???? TCP-otsake request Internet Tietoliikenteen perusteet /2009/ Liisa Marttinen 45 Verkkokerros Toimittaa kuljetuskerroksen segmentit vastaanottajalle Lähetys - Luo segmenteistä verkkokerroksen IP-paketteja - Lisää otsaketietoja: mm. IP-osoitteet Pakettien kulku verkossa - Isäntä (lähde) reititin -...- reititin isäntä (kohde) Vastaanotto - Poista otsake - Anna segmentti kuljetuskerrokselle Toimii etenkin reitityksessä Reititin tutkii IP-paketin otsakkeen ja päättää, linkkiin se lähetetään seuraavaksi application transport network data link physical KuRo08: Fig 4.1 network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical mihin network data link physical network data link physical application transport network data link physical Tietoliikenteen perusteet /2009/ Liisa Marttinen 46 23

Reititys: datagrammiverkko R Verkko a Kone1 Verkko b Kone2 1 2 3R Verkko c Reititystaulu Osoite: portti verkko a : 1 verkko b : 3 verkko c : 2 muut : 2 R Verkko d R Tietää, mihin suuntaan paketti on välitettävä = missä suunnassa mikin verkko on. Ei etukäteistietoa isäntäkoneiden yhteyksistä Tietoliikenteen perusteet /2009/ Liisa Marttinen 47 Reititys: Virtuaalipiiriverkko 1. paketti muodostaa reitin, muut paketit kulkevat samaa reittiä otsakkeessa kohdeosoitteen lisäksi Sisään: virtuaalipiirinumero linkki / vpnro vpnro Ulos: vpnro / linkki reititin ylläpitää tietoa piirinumeroista ( hajujälki ) 1 12 34 3 Reititys = selvitä vpnro:a vastaava 1 linkki, 97 välitä paketti 56 linkille2 2 42 101 3 2 10 78 1 3 12 65 2 linkistä 1, vpnro 97 linkistä 1, vprno 12 1 3 R 2 linkkiin 2, vpnro 56 linkkiin 3, vpnro 34 R Tietoliikenteen perusteet /2009/ Liisa Marttinen 48 24

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 /2009/ Liisa Marttinen 49 Kolme erilaista kytkentätapaa: KuRo08: Fig. 4.8 Tietoliikenteen perusteet /2009/ Liisa Marttinen 50 25

Pakettien hylkäys Kun puskuritila ei riitä Hylkää saapuva paketti (drop-tail) tai joku muu.. Se kummassa jonossa paketit hylätään, riippuu kytkennän ja linjan nopeuden suhteista RED (Random Early Detection): hylkää jo ennenkuin puskuri täyttyy Siirtovirhe Linkkikerros saa hylätä virheellisen Verkkokerros saa hylätä virheellisen (ICMP-protokolla ) Paketin elinaika (Time-to-live, TTL) Tietoliikenteen perusteet /2009/ Liisa Marttinen 51 Sovellusprotokolla TCP IP LAN X.25 Tietoliikenteen perusteet /2009/ Liisa Marttinen 52 26

IP-paketin rakenne (IPv4) Tietoliikenteen perusteet /2009/ Liisa Marttinen 53 IP-pakettien paloittelu (fragmentointi) Maximum transfer Unit (MTU) suurin mahdollinen IP-paketti eri linkeillä eri koko Esim. Ethernet 1500 B Liian iso paketti pilkottava reitittimessä pienemmiksi paketeiksi (fragmenteiksi), jotka kohdekone kokoaa voivat kukin kulkea eri reittiä reassembly fragmentation: in: one large datagram out: 3 smaller datagrams IP-otsakkeessa kentät yhteenkuuluvien fragmenttien KuRo08: Fig 4.14 tunnistamiseksi Tietoliikenteen perusteet /2009/ Liisa Marttinen 54 27

Esimerkki lengthid =4000 =x fragflag =0 4000 tavun IP-paketti: dataa 3980 B MTU 1500 B 1480 B dataa 20 B IP-otsaketta offset = 1480/8 offset =0 Yhdestä IP-paketista tulee 3 pienempää IP-pakettia length =1500 length =1500 length =1040 ID =x ID =x ID =x fragflag =1 fragflag =1 fragflag =0 offset =0 offset =185 offset =370 0 1480 2960 1. Pala: 1480 tavua 2. Pala: 1480 tavua 3. Pala: 1020 tavua Tietoliikenteen perusteet /2009/ Liisa Marttinen 55 IP-osoitteet 32 bittinen tunniste isäntäkoneille ja reitittimien linkeille - verkkoliittymän tunniste Reitittimellä useita liittymiä - kullakin oma IP-osoite Myös isäntäkone voi olla liitettynä useaan verkkoon 11011111 00000001 00000001 00000001 223 1 1 1 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 ICANN Internet Corporation for 223.1.1.3 223.1.3.27 223.1.2.2 Assigned names and Numbers verkkonumerot palvelun tarjoajille, nämä edelleen aliverkoiksi 223.1.3.1 223.1.3.2 KuRo08:Fig 4.15 Tietoliikenteen perusteet /2009/ Liisa Marttinen 56 28

Aliverkot Osoitteen osat aliverkon numero (alkuosa) koneen numero (loppuosa) 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 Aliverkon koneet voivat kommunikoida 223.1.1.3 ilman reititystä Linkkikerros osaa lähettää koneelta toiselle Esim. Ethernet 223.1.3.1 223.1.2.2 223.1.3.27 subnet 223.1.3.2 Aliverkkoa merkitään notaatiolla, jossa lopussa on verkko-osan pituus network consisting of 3 subnets Esim. 223.1.1.0 /24 subnet mask eli verkko-osoite 24 bittiä ja koneosoite 8 bittiä KuRo08: Fig 4.15 Tietoliikenteen perusteet /2009/ Liisa Marttinen 57 CIDR: Classless InterDomain Routing Verkko-osa voi olla minkä tahansa kokoinen Vanha luokallinen osoite: A-luokka 8 b, B-luokka 16 b,c-luokka 24 b Formaatti: a.b.c.d/x x ilmoittaa verkko-osan bittien lukumäärän (prefix) Esim. Organisaatio, jolla 2000 konetta varaa 2048 = 2^11 konenumeroa, jolloin verkko-osaa varten jää 21 bittiä Yritys voi vielä itse jakaa viimeiset 11 bittiä aliverkko-osoitteeksi ja koneosoitteeksi. Tämä jako ei näy ulkopuolelle. Verkko (prefix) Kone 11001000 00010111 00010000 00000000 200.23.16.0/23 aliverkko aliverkkomaski Tietoliikenteen perusteet /2009/ Liisa Marttinen 58 29

NAT: Network Address Translation Vain ~ 4 miljardia osoitetta! rest of Internet 138.76.29.7 local network (esim. kotiverkko) 10.0.0/24 10.0.0.4 10.0.0.1 10.0.0.2 10.0.0.3 Kaikilla ulosmenevillä ja sisääntulevilla paketeilla sama IP-osoite 138.76.29.7 mutta eri porttinumeroita. Kotiverkossa käytössä sisäiset IP-osoitteet 10.0.0/24 (esim. DHCP:llä) Tietoliikenteen perusteet /2009/ Liisa Marttinen 59 1) Linkkitila: Dijkstran algoritmi Aluksi kaikilla reitittimillä on tiedossa verkon rakenne ja kaikkien linkkien kustannukset Kaikki reitittimet lähettävät tietonsa naapureistaan ja linkkikustannuksista naapureihin (mitatut /havaitut) joko kaikille muille tai jollekin keskussolmulle, joka välittää tiedon muille Reititin laskee Dijkstran algoritmilla edullisimman kustannuksen kaikkiin muihin kohteisiin Kokoaa näistä oman reititystaulunsa Merkinnät C(x,y) linkin x,y kustannus; jos eivät naapureita = D(v) toistaiseksi edullisin kustannus solmuun v p(v) solmun v edeltäjä reitillä N = solmujen joukko, N' = jo käsiteltyjen solmujen joukko Tietoliikenteen perusteet /2009/ Liisa Marttinen 60 30

Lyhyimmät reitit ja reititystaulukko Resulting shortest-path tree from u: v w KuRo08: Fig. 4.28 u z x y Resulting forwarding table in u: destination v x y w z link (u,v) (u,x) (u,x) (u,x) (u,x) Tietoliikenteen perusteet /2009/ Liisa Marttinen 61 2) Etäisyysvektorireititys (distance vector) Arpanet-verkon alkuperäinen reititysalgoritmi Käytössä useissa Internetin reititysprotokollissa RIP, BGP, Novell IPX, ISO IDRP Interaktiivinen, hajautettu ja asykroninen Tiedot tarkentuvat asteittain, iteratiivisesti Tietyin väliajoin, linkin tilan vaihtuessa, naapurin tietojen muuttuessa,.. Kukin solmu laskee itsenäisesti, mutta saa tietoa naapureiltaan Tietää / arvioi kustannuksen omiin naapureihinsa Kuulee naapureiden kustannukset muihin kohdesolmuihin, jotka nämä puolestaan ovat kuulleet omilta naapureiltaan Valitsee kullekin kohdesolmulle kuulemansa edullisimman reitin Tietoliikenteen perusteet /2009/ Liisa Marttinen 62 31

D x (y) = min{c(x,y) + D y (y), c(x,z) + D z (y)} = min{2+0, 7+1} = 2 D x (z) = min{c(x,y) + D y (z), c(x,z) + D z (z)} = min{2+1, 7+0} = 3 node x table cost to x y z x 0 2 7 y z node y table cost to x y z from from x y z 2 0 1 node z table cost to x y z from x y z 7 1 0 from from from x y z x y z x y z cost to x y z 0 2 3 2 0 1 7 1 0 cost to x y z 0 2 7 2 0 1 7 1 0 cost to x y z 0 2 7 2 0 1 3 1 0 cost to x y z Tietoliikenteen perusteet /2009/ Liisa Marttinen 63 from from from x y z x y z x y 0 2 3 2 0 1 3 1 0 cost to x y z 0 2 3 2 0 1 3 1 0 cost to x y z 0 2 3 2 0 1 z 3 1 0 x 2 y 7 1 z Huono uutinen etenee nopeasti: poisoned reverse A B C D E Ratkaisu count-to-infinity-ongelmaan! Ilmoita etäisyys Etäisyys A:han äärettömäksi naapurille, jonka kautta linkki D B (A) D c (A) D D (A) D E (A) kulkee. Kerro 2 3 4 muille oikea 3 4 etäisyys. 4 Tieto etenee joka vaihdossa yhden linkin yli Tietoliikenteen perusteet /2009/ Liisa Marttinen 64 32

3) Hierarkkinen reititys Reitityksen skaalautuus? Isossa verkossa runsaasti reitittimiä - Kaikki eivät voi tuntea kaikkia muita - Reititystaulut suuria, reittien laskeminen raskasta - Reititystietojen vaihtaminen kuluttaa linjakapasiteettiä Autonomiset järjestelmät AS (Autonomous Systems) Internet ~ verkkojen verkko Intra-AS routing Kukin verkko päättää itse sisäisestä reitityksestään RIP, OSPF Inter-As routing AS:t ilmoittelevat toisilleen, mihin muihin AS:iin niistä pääsee BGP (Border Gateway Protocol) Jo CIDR ja IPosoitteiden jakaminen lohkoina pienentää reititystauluja! netstat -r Tietoliikenteen perusteet /2009/ Liisa Marttinen 65 Kone A Sovellus (HTTP, SMTP) TCP Reply Request.. SYN =1.. Kone B Sovellus (HTTP, SMTP) TCP..FIN = 1.. IP IP TCP IP req IP IP TCPLinkkikerroksen req IP TCP req palvelut linkkikerros linkkikerros Tietoliikenteen perusteet /2009/ Liisa Marttinen 66 33

TCP/UDP IP/reititys Sovellusprotokolla Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros LAN WLAN Tietoliikenteen perusteet /2009/ Liisa Marttinen 67 Linkkikerroksen tehtäviä (2) Vuonvalvonta, puskurointi Kytkimessä on useita erinopeuksisia linkkejä Virhevalvonta signaali vaimenee, taustakohina häiritsee,... Kehyksessä on tarkistustietoa (error detection and correction bits) Vastaanottava solmu korjaa, jos pystyy Jos ei pysty, pyytää uudelleen tai hävittää Yksisuuntainen /kaksisuuntainen liikenne Yksisuuntainen: lähetysvuorojen hallinta sending node Esim. isäntäkone datagram frame adapter card link layer protocol physical link 1010010010 NIC (Network Interface Card) linkki- ja fyysinen kerros frame adapter card Esim. reititin Tietoliikenteen perusteet /2009/ Liisa Marttinen 68 34

Linkkikerroksen tehtäviä Kehystys (framing) Kehyksen rakenne ja koko riippuu siitä, millainen linkki on kyseessä Otsake, data, lopuke Kohteen ja lähteen osoittaminen Yhteiseen linkkiin voi olla liitettynä useita laitteita Käytössä laitetason MAC-osoite (Medium access control) Yhteisen linkin varaus ja käyttö (link access) Esim. langaton linkki, keskittimiin yhdistetyt linkit Luotettava siirto Langattomilla linkeillä suuri virhetodennäköisyys Linkkitaso huolehtii oikeellisuudesta Miksi tästä täytyy huolehtia vielä kuljetuskerroksella? Jotkut linkkityypit eivät huolehdi lainkaan! Jos kehys hävitettävä.. otsake data lopuke Tietoliikenteen perusteet /2009/ Liisa Marttinen 69 Pariteettitarkistus Pariteettibitti Parillinen vs. pariton pariteetti Virheryöpyssä jopa 50% voi jäädä huomaamatta Kaksiulotteinen pariteetti Erikseen horisontaalinen (parillinen) ja vertikaalinen (pariton) pariteetti Pystyy korjaamaan yhden bitin virheen. Hamming-koodi Korjaa yhden bitin virheen Tietoliikenteen perusteet /2009/ Liisa Marttinen 70 35

CRC-esimerkki Data: 101110 G: 1001, polynomina 1*x 3 + 0*x 2 + 0*x 1 +1*x 0 <D,R>: 101110??? Lähetä: 101110011 Modulo 2-aritmetiikka vähennyslasku yhteenlaskuna ei lainaamista, ei muistinumeroita = bittitason XOR 1+1 =0, 1+0 = 0+1 = 1, 0+0=0 KuRo08:Fig 5.8 Tietoliikenteen perusteet /2009/ Liisa Marttinen 71 Yksi kanava Kaksipisteyhteys (point-to-point) PPP-protokolla, puhelinyhteys (dial-up access) Ethernet-piuha kytkimen ja isäntäkoneen välissä Yleislähetysyhteys (broadcast) Alkuperäinen Ethernet, Ethernet keskittimen ja isäntäkoneen välissä, kaapelimodeemiyhteys (upstream), WLAN, satelliitti, KuRo08: Fig. 5.9 Tietoliikenteen perusteet /2009/ Liisa Marttinen 72 36

Lähetysvuorojen jakelu 1) Kanavanjakoprotokollat (channel partitioning protocol) Jaa kanavan käyttö 'viipaleisiin' (time slots, frequency, code) Kukin solmu saa oman viipaleensa TDMA, FDMA, CDMA käytä sinä tätä puolta, minä tätä toista 2) Kilpailuprotokollat (random access protocols) Se ottaa, joka ehtii. Jos sattuu törmäys, yritä myöhemmin uudelleen. Aloha,CSMA, CSMA/CD 3) Vuoronantoprotokollat (taking-turns protocols) Jaa käyttövuorot jollakin sovitulla tavalla: pollaus, vuoromerkki,... Minä ensin, sinä sitten. Tietoliikenteen perusteet /2009/ Liisa Marttinen 73 TDMA: Kehys (frame) slot 1 2 3 4 1 2 3 4 1 2 3 4 FDMA: 4 KHz 4 KHz = = link CDMA: Eri lähettäjillä omat keskenään ortogonaaliset sirukoodit biteille => yhteislähetyksestä kyetään erottamaan eri lähettäjät 37

Aloha Hawaijilla, 70-luvulla radiotietä varten Lähetä heti, kun on lähetettävää Ei mitään kuuntelua ennen lähetystä Kuuntele sitten, onnistuiko lähetys Lähiverkossa törmäys havaitaan 'heti', sillä siirtoviive on pieni (toisin kuin satelliitilla) Jos törmäys, niin odota satunnainen aika ja yritä uudelleen Yksinkertainen Törmäyksen td. suuri Max tehokkuus ~ 18% t 0-1 t 0 t 0 +1 Tietoliikenteen perusteet /2009/ Liisa Marttinen 75 CSMA/CD (with Collision Detection) Asema kuuntelee myös lähettämisen jälkeen Langallinen LAN: törmäys => 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? 2* maksimi etenemisviive solmujen välillä törmäyssignaali A A ei saa lopettaa ennenkuin törmäyssignaali olisi ehtinyt tulla! B Tietoliikenteen perusteet /2009/ Liisa Marttinen 76 38

Linkkikerroksen fyysinen osoite 32 bitin IP-osoite verkkokerroksella Reitityksen tapa viitata koneeseen Erilaisilla linkkikerroksilla omat tapansa osoittaa oikea linkki (~ verkkokortti) Siirtokehys on kuljetettava fyysisen linkin yli jollekin toiselle samaan verkkoon (LAN) kytketyistä laitteista MAC-osoite (Media Access Control Address) Käytetään myös nimiä LAN-osoite, fyysinen osoite, laiteosoite, Ethernet-osoite,... Liitetty valmistusvaiheessa kiinteästi laitteeseen Analogia: IP-osoite ~ katuosoite MAC-osoite ~ henkilötunnus Tietoliikenteen perusteet /2009/ Liisa Marttinen 77 ARP-protokolla (Address Resolution Protocol) Ratkaisuna ARP-protokolla ja ARP-taulu ARP-protokolla lähettää yleislähetysosoitteella kyselyn, jonka kaikki vastaanottavat. Oman osoitteensa tunnistava laite vastaa kyselijän MACosoitteeseen ja kertoo oman MAC-osoitteensa aa-bb-cc-dd-ee-ff, FF-FF-FF-FF-FF-FF Kenen IP-osoite on xx:yy:zz:vv? MACyleislähetysosoite: FF-FF-FF-FF-FF-FF kk-ll-mm-nn-oo-pp, aa-bb-cc-dd-ee-ff ARP-taulu pitää tallessa kyselyjen vastauksia: IP-osoite, MACosoite, TTL) Kussakin koneessa (myös reitittimessä) jokaiselle aliverkolle oma taulunsa Tiedot vanhenevat n. 20 minuutissa (time-to-live) Tietoliikenteen perusteet /2009/ Liisa Marttinen 78 39

Lähettäminen toiseen verkkoon (1) Ensin omalle reitittimelle sen MAC-osoitteella ja reititin ohjaa eteenpäin Reititystaulussa on verkko-osoite, jonne paketti seuraavaksi ohjattava Katso kohdeverkon ARP-taulusta kohteen MAC-osoite Jos ei ole taulussa, tee ARP-kysely kohdeverkon koneille A R B Reitittimellä on useita ARP-tauluja. Tietoliikenteen perusteet /2009/ Liisa Marttinen 79 10BaseT ja 100BaseT 10 Mbps tai 100Mbps (Fast Ethernet, FE) T = Twisted Pair eli kierretty parikaapeli Maks. etäisyys keskittimeen 100 m Koaksiaalikaapeli max. 500 m Keskitin (hub) toistaa bitit heti sellaisenaan muille Fyysisen tason toistin (repeater); Yleislähetys, Signaalin vahvistus Verkkokortit käsittelevät törmäykset Maks. 30 konetta / keskitin Keskitin osaa jättää huomiotta vikaantuneen kortin Kerää myös tietoa liikenteestä Törmäysten lkm, keskim. kehyskoko,... Tietoliikenteen perusteet /2009/ Liisa Marttinen 80 hub twisted pair 40

Gigabitin Ethernet (GE) 1 Gbps tai 10 Gbps Edelleen sama kehysformaatti Taaksepäin yhteensopiva Yhteiskäyttöiset linkit edelleen OK Koneiden yhdistely keskittimen välityksellä CSMA/CD Kaksipisteyhteydet ei törmäyksiä koneet yhdistetty kytkimien kautta pitkät välimatkat mahdollisia kaksisuuntainen täysivauhtinen siirto Käytetään yleisesti runkoverkoissa verkkojen yhdistely (reititin -> reititin) valokaapeli, myös cat5/cat6 parikaapeli switch fiber Tietoliikenteen perusteet /2009/ Liisa Marttinen 81 Ethernet-kehys Tahdistuskuvio (preample) (8 B) 7 tavussa 10101010 kellojen tahdistusta varten 8. tavu 10101011 kertoo varsinaisen kehyksen alkavan Kohteen ja lähteen MAC-osoitteet (6 + 6 B) Type (2 B) verkkoprotokolla, jolle vastaanottaja luovuttaa kehyksen datan IP, ARP, jokin muu esim, Apple Talk, Novell IPX,.. Data (46... 1500 B) Ethernet MTU = 1500 B CRC (4 B eli 32 bittiä) tarkistusbitit, tahdistuskuvio mukana laskennassa Tietoliikenteen perusteet /2009/ Liisa Marttinen 82 41

Ethernet varaus: CSMA/CD (klassinen Ethernet-verkko on yleislähetysverkko!) Carrier Sense Kuuntele, onko väylä vapaa (96 b:n ajan) Jos vapaa, lähetä heti Muuten odota ja lähetä, kun linja vapautuu Collision Detection Kun lähetetty, kuuntele onnistuiko Törmäys? Huomaa signaalin voimakkuudesta Lopeta kehyksen lähetys heti Lähetä 48 bitin sotkusignaali (jam): muutkin huomaavat varmasti Random Access Odota törmäyksen jälkeen satunnainen aika Tietoliikenteen perusteet /2009/ Liisa Marttinen 83 LAN, verkkosegmentit to external network 100 Mbps (fiber) router 1 Gbps 1 Gbps switch 100 Mbps (fiber) mail server 1 Gbps web server IP subnet 100 Mbps (fiber) Electrical Engineering Computer Science System Engineering Tietoliikenteen perusteet /2009/ Liisa Marttinen 84 42

Takaperin oppiminen: Kytkentätaulu (switching table) Aluksi taulu on tyhjä Saapuva kehys Lähteen MAC-osoite x, kohteen MAC-osoite y, tuloportti p, yms Lähde X ei ole taulussa Lisää (X, p,ttl) tauluun eli kytkin oppii, että osoite X on saavutettavissa portin p kautta Lähde X on taulussa => päivitä TTL Kohde Y ei ole taulussa Lähetetään kehys kaikkiin muihin portteihin = tulvitus (flooding) Opitaan myöhemmin Y:n oikea portti jostain sen lähettämästä kehyksestä Lähde X ja kohde Y ovat jo taulussa X ja Y samassa portisssa => hylkää kehys (on jo oikeassa aliverkossa) X ja Y eri porteissa => lähetä kehys Y:n porttiin Tietoliikenteen perusteet /2009/ Liisa Marttinen 85 43