330 likes | 469 Views
Tietoliikenne II (2 ov). Kevät 2001 Liisa Marttinen Kurssikirja: Tanenbaum, Computer Networks (3. Painos). Tietoliikenne I. Tietoliikenne (4 ov) (ei enää luennoida). (2 ov). Tietoliikenne II (2 ov). Digitaalinen signaalin-käsittely.
E N D
Tietoliikenne II (2 ov) Kevät 2001 Liisa Marttinen Kurssikirja: Tanenbaum, Computer Networks (3. Painos)
Tietoliikenne I Tietoliikenne (4 ov) (ei enää luennoida) (2 ov) Tietoliikenne II (2 ov) Digitaalinen signaalin-käsittely Verkkosovellusten toteuttaminen (4 ov) ATM-tietoliikenne Laajakaistaiset IP-verkot
Tietoliikenne II Kertausta ja täydennystä Tietoliikenne I -kurssin asioihin • perusteellisemmin • laajemmin • ‘teoreettisemmin’ • perus-, linkki- ja MAC-kerros • reititys, IPv6 • TCP-protokollan suorituskyky • DNS, ..
Suoritus • ‘välikoe’ maks. 50 p • pe 9.3. klo 14-18 • ‘kurssiaktiivisuus’ maks. 20 p • traditionaaliset harjoitukset • miniesseet (1-3 sivua) ja -esitelmät • keskusteluaktiivisuus yms • 30 p => 1-, 51 => 3
Kerrosajattelu • OSI-, TCP/IP-viitemalli • eri kerrosten toiminta • kommunikointi kerrosten välillä • tiedonsiirto sovellukselta toiselle • esimerkki siitä, mitä kaikkea tapahtuu, kun sovellus lähettää viestin toiselle sovellukselle kerrosmallia käyttäen
Peruskerros • siirtovälineet, bittien lähettäminen • Siirtoyhteyskerros • siirtokanava ja sen käyttö tiedonsiirtoon • Verkkokerros • reititys • IPv6 • Kuljetuskerros • TCP:n eri versiot ja niiden suorituskyky
Istuntokerros • Esitystapakerros • Sovelluskerros
Kerrosmalli HTTP, SMTP, HTTP, SMTP, Sovelluskerros (Present.) (Present.) (Session) (Session) Kuljetuskerros TCP,UDP TCP, UDP Verkkok. IP Verkkok. IP IP Linkkik. PPP Ethernet Linkkik. PPP Ethernet Fyysinen kerros Fyysinen kerros
asiakas Sovellusprotokolla palvelin HTTP HTTP GET(verkkosivu) RESPONSE(verkkosivu) Kuljetuskerros TCP,UDP TCP, UDP Verkkok. IP Verkkok. IP IP Linkkik. PPP Ethernet Linkkik. PPP Ethernet Fyysinen kerros Fyysinen kerros
Kone A Kerrosmalli Kone B kerros n+1 kerros n+1 n+1 -kerroksen protokollaviestit= n+1 -PDU:T palveluprimitiivit palveluprimitiivit kerros n kerros n n-kerroksen protokollaviestit = n-PDU:T palveluprimitiivit palveluprimitiivit kerros n-1 n-1 -kerroksen protokollaviestit= n-1 -PDU:T kerros n-1
Palveluprimitiivit N+1-kerros N+1-kerros N-kerroksen palvelut Connect.request Connect.indication N-PDU:t Connect.response Connect.confirm Vahvistettu palvelu Data.request Data.indication Vahvistamaton palvelu
OSI-kerrosmalli kerros n+1 N-IDU n+1 -PDU:T N-ICI N-SDU SAP = Service Access Point kerros n N-SDU N-ICI N-1-IDU n-PDU N-1-SDU N-SDU N-1-ICI
Huom! Kukin kerros näkee vain oman otsakkeensa. Loppu on dataa. M H4 M1 H4 M2 H3 H4 M1 H4 M2 H2 H3 H4 M1 H2 H4 M2 Kerros 5 4 3 2 1 H1 H2 H3 H4 H1 M1 H2 H4 Esimerkki sanoman M lähettämisestä 5-kerroksisessa protokollapinossa. H1 M2
M1 M2 H4 M1 H4 M2 M1 M2 H2 H3 H4 H2 H4 H1 H2 H3 H4 H1 M1 H2 H4 H1 M2 Kerros 5 4 3 2 1 H3 H4 M1 H4 M2 Esimerkki sanoman M vastaanottamisesta 5-kerroksisessa protokollapinossa
selain palvelinkone Verkkosivun haku GET(URL) HTTP HTTP http://www.cs.Helsinki.FI/kokeet/lkokeetkev01.html RESPONSE(kokeet/lkokeetkev01.html) Selain selvittää palvelinkoneen IP-osoitteen ja muodostaa tähän koneeseen TCP-yhteyden . TCP-yhteyttä käyttäen selain lähettää GET-pyynnön ja saa vastaukseksi halutun sivun, jonka se sitten voi näyttää käyttäjälleen. TCP,UDP TCP,UDP IP IP
selain Sovelluskerros palvelin: www.cs.Helsinki.FI HTTP HTTP GET(URL) RESPONSE(kokeet/lkokeetkev01.html) TCP (yhteydellinen, luotettava yhteys) TCP-yhteyttä käyttäen selain lähettää GET-pyynnön ja saa vastaukseksi halutun sivun, jonka se sitten voi näyttää käyttäjälleen.
Miten selain selvittää palvelinkoneen IP-osoitteen? Selain kutsuu kirjasto-ohjelmaa Resolver IP-osoite = verkko-osoite + koneosoite Domain Name Server (local) Resolver 128.214.4.114 Query(www.cs.Helsinki.FI) Response(128.214.4.29) UDP (yhteydetön, epäluotettava yhteys) Resolver lähettää UDP-tietosähkeenä kyselyn paikallliselle DNS:lle ( ja tarvittaessa muillekin) ja palauttaa saamansa IP-osoitteen selaimelle.
DNS (Domain Name System) • domain-nimet (aluenimet) • hierarkiset, yksikäsitteiset nimet • int, com, edu, gov, mil, org, net • maakoodit: fi, se uk, us, jp, … • alueen sisällä yksikäsitteiset nimet: alialueet, koneet • hajautettu nimihakemisto • domain-nimien ja sähköpostiosoitteiden muuttamiseksi IP-osoitteiksi • resurssitietueet (resource record) • IP-osoite, IP-alias, sähköpostin välittäjä, ...
Miten selain muodostaa TCP- tai UDP-yhteyden? TCP-osoite = IP-osoite + porttinumero ( tässä 80) Selain käyttää palveluprimitiivejä 128.214.4.29 kuuntelee porttia 80 www-palvelin Selain SOCKET CONNECT(128.214.29, 80) SEND (data) RECEIVE(data) Connection Request TCP TCP TCP-PDU:ita Connection Accept verkkokerros (IP)
Miten selain muodostaa TCP- tai UDP-yhteyden? Selain käyttää palveluprimitiivejä 128.214.4.29 kuuntelee porttia 80 www-palvelin Selain SOCKET CONNECT(128.214.29, 80) SEND (data) RECEIVE(data) Connection Request TCP TCP TCP-PDU:ita Connection Accept verkkokerros (IP)
SOCKET (osoiteformaatti, palvelutyyppi, protokolla) palauttaa tiedostokuvaajan = pistokkeen osoitteen BIND (80) antaa pistokkeelle osoitteen (tässä portti 80) LISTEN(jonon pituus) halukas ottamaan vastaan palvelupyyntöjä ACCEPT lukkiutuu odottamaan palvelupyyntöjä Kun yhteyspyyntö -TPDU tulee, niin kuljetusolio luo uuden pistokkeen, jolla on samanlaiset ominaisuudet, ja palauttaa sen tiedostokuvaajan. Palvelin voi nyt luoda uuden prosessin tätä yhteyttä palvelemaan (= SEND, RECEIVE, CLOSE) ja jäädä itse odottamaan seuraavaa yhteydenmuodostuspyyntöä. PALVELIMEN TOIMINTA
SOCKET (osoiteformaatti, palvelutyyppi, protokolla) palauttaa tiedostokuvaajan = pistokkeen osoitteen CONNECT lukitsee asiakkaan odotustilaan ja aloittaa yhteyden muodostuksen Kun yhteys on kunnossa, asiakasprosessi vapautetaan ja TCP-yhteys on valmis. Kumpikin puoli voi lähettää (SEND) ja vastaanottaa (RECEIVE) dataa. Asiakkaan toimenpiteet
selain palvelin: www.cs.Helsinki.FI TCP-kuljetuspalvelu SOCKET BIND LISTEN ACCEPT TCP PDUt SOCKET CONNECT Uusi pistoke yhteyttä varten Connreq Connack Data Data SEND(QUERY) RECEIVE RECEIVE SEND (response)
selain palvelinkone Kuljetuspalvelun toteuttaminen HTTP HTTP GET(URL) RESPONSE(page) Luotettava kuljetuspalvelu TCP TCP TCP-kerroksen täytyy toteuttaa itse luotettava kuljetuspalvelu epäluotettavan IP-kerroksen päälle! IP-kerroksen palvelut (eivät ole luotettavat)
IPv6 • IPv4:n osoitteet loppuvat • isompi osoitekenttä • Next Generation IP • muita parannuksia • tehokkuus • muuttunut käyttöympäristö • uudet käyttötarpeet • käyttökokemus
IP-kerroksen epäluotettavuus • TPC-PDU eli segmentti • katoaa kokonaan tai vain osa tulee perille • virheellinen osoite, reitittimen tai vastaanottajan puskurit täynnä, • vääristyä • ei datan virhetarkistuksia • saapua väärässä järjestyksessä • pakettiverkko, jossa eri paketit kulkevat eri kautta • viipyä hyvinkin pitkään matkalla • vikaantunut reititin
TCP-kerroksen tehtävät • Huomata virheet ja toipua niistä • järjestysnumerot segmenteille (tavunumerointi) • tarkistussumma • kuittaukset ja uudelleenlähetykset • uudelleenlähetysajastin • vuonvalvontamekanismi • ruuhkanvalvontamekanismi • kolminkertainen kättely • yhteyden muodostuksessa että yhteyden purussa
Yhteydellinen kuljetuspalvelu TCP TCP Yhteydenmuodostus Datansiirto Yhteydenpurku IP-kerroksen palvelut (eivät ole luotettavat)
Yhteydellinen kuljetuspalvelu CONNECT REQUEST TCP TCP CONNECT ACK DATA DATA DATA DISCONNECT DISCONNECT IP-kerroksen palvelut
TCP-otsakkeen kentät Source port Destination port Sequence number Acknowledgement number U A P R S F TCP head. length R C S S Y I Window size Window size GK H T N N Checksum Urgent pointer Checksum Options (0 or more 32 bit words) Data (optional)
TCP-SEGMENTIT SYN =1, ACK=0, SEQ = X SYN =1, ACK=1, Acknro =x+1, SEQ = y ACK=1, Acknro = y+1, SEQ=x+1, data ACK=1, Acknro = x+2, SEQ=y+1, data ACK=1, Acknro = x+2, SEQ=y+2, data FIN=1, ACK=1, Acknro= x+2, SEQ=y+3 FIN=1, ACK=1, Acknro=y+4, SEQ=X+2
0 8 16 24 31 A:0 verkko-os. koneosoite B:10 verkko-osoite koneosoite C:110 verkko-osoite koneos. D:1110 monilähetysosoite E:11110 varatttu tulevaan käyttöön IP-osoitteiden muodot
Version Header Length Type of Service Datagram Length (bytes) 16-bit Identifier