Kuljetuskerroksen protokollat. Kuljetuskerroksen tarkoitus. Luotettava vai epäluotettava?

Samankaltaiset tiedostot
Kuljetuskerroksen protokollat

Kuljetuskerroksen protokollat

Kuljetuskerroksen protokollat. Luotettava vai epäluotettava? Kuljetuskerroksen tarkoitus. Tietosähkeen kapselointi. Portit ja (de)multipleksaus

Kuljetuskerroksen protokollat

ELEC-C7241 Tietokoneverkot Kuljetuskerros

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

Kuljetuskerros. Matti Siekkinen. T Johdatus tietoliikenteeseen kevät 2011

TCP/IP-protokollapino. Kuljetuskerros. Tämän luennon jälkeen. Sisältö. Matti Siekkinen. Ymmärrätte:

OSI ja Protokollapino

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

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

kynnysarvo (threshold)

kynnysarvo (threshold)

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Kuljetuskerros. CSE-C2400 Tietokoneverkot (osa 1) (osa 2) Matti Siekkinen. Tietokoneverkot 2014

3. Kuljetuskerros 3.1.

Kuljetuskerros. Matti Siekkinen. T Johdatus tietoliikenteeseen kevät 2013

Kuljetuskerros. CSE-C2400 Tietokoneverkot (osa 1) (osa 2) Matti Siekkinen. Tietokoneverkot 2014

3. Kuljetuskerros 3.1. Kuljetuspalvelu

TCP:n vuonohjaus (flow control)

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

Kuljetuskerros. Kirja sivut: ,

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

Kuittaukset ACK. NAK-kuittaus. kumulatiivinen ACK. yksittäinen ACK. sanoma virheellinen tai puuttuu. tähän saakka kaikki ok!

Kuittaukset. Miksi? Miksi? Negatiiviset kuittaukset NAK-kuittauksilla voidaan nopeuttaa uudelleenlähettämistä. Ikkunankoko ACK

Kuittaukset. tähän saakka kaikki ok! Go-Back N. sanoma virheellinen tai puuttuu

T Tietokoneverkot kertaus

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

Tietoliikenteen perusteet

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

11/20/ Siirron optimointi

on yksi keskeisimpiä toimintoja Internetin toiminnan varmistamiseksi Internetin ruuhkanhallinta pitkälti

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

TCP. TCP:n peruspiirteiden toiminta tarkemmin. TCP:n uusia piirteitä. osin vain harjoitustehtävissä

TCP:n peruspiirteiden toiminta tarkemmin. osin vain harjoitustehtävissä. TCP:n uusia piirteitä

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/

Kuljetuskerroksen tehtävä. Kuljetuskerros UDP. UDP-kaappaus (DNS) DNS-haku, Ethernet-kehys <#>

TCP. TCP-optiot. Erilaisia suorituskykyongelmia. Aikaleima (timestamp) TCP:n peruspiirteiden toiminta tarkemmin. TCP:n uusia piirteitä.

Tietoliikenne II Kurssikoe

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat. Protokollien kerrosrakenne. Mitä monimutkaisuutta?

Esimerkki jatkuu. ajastin laukeaa, uudelleen sanoma 2. <seq = 6, data = m6>

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

Kuljetuskerros. CSE-C2400 Tietokoneverkot (osa 1) (osa 2) Matti Siekkinen. Tietokoneverkot 2016

Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros)

Kuljetuskerros. CSE-C2400 Tietokoneverkot (osa 1) (osa 2) Matti Siekkinen. Tietokoneverkot 2014

Ongelma 1: Ei saada kolmea toistokuittausta

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit)

Kuljetuskerros. CSE-C2400 Tietokoneverkot (osa 1) (osa 2) Matti Siekkinen. Tietokoneverkot 2014

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

TCP. TCP-optiot. Erilaisia suorituskykyongelmia. Aikaleima (timestamp) TCP:n peruspiirteiden toiminta tarkemmin. TCP:n uusia piirteitä.

Chapter 3 Transport Layer. Kuljetuskerros

Kohina (Noise) 1.4. Tietoliikenneohjelmistot eli protokollat. Signaalin vahvistaminen

Kohina (Noise) Signaalia häiritsee kohina. aina taustalla esiintyvää sähkömagneettista aaltoliikettä terminen kohina. elektronien liikkeestä johtuva,

Tietoliikenne II (2 ov) Tietoliikenne II. Sisällysluettelo jatkuu. Alustava sisällysluettelo. Suoritus. Täydennystä Tietoliikenne I -kurssin asioihin

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

S Teletekniikan perusteet

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

6. Kuljetuskerros 6.1. Kuljetuspalvelu

Tehtävä 2: Tietoliikenneprotokolla

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

Chapter 3 Transport Layer. Kuljetuskerros

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end. kuljetuspalvelut parantavat verkkopalveluja Kuljetuskerroksen toiminta

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

Ratkaisu: Miksi lähetetään uusi paketti? SACK (Selective Acknowledgement) Nopea toipuminen ei onnistu! Limited Transmit

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end

M. Allman, H. Balakrishnan, S. Floyd. January (Status: PROPOSED STANDARD) Lähettäjä ei saa kolmea toistokuittausta =>

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2012

M. Allman, H. Balakrishnan, S. Floyd. January Lähettäjä ei saa kolmea toistokuittausta =>

3. Kuljetuskerros 3.1.

Kuljetus- ja verkkokerrokset. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2011

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Tietoliikenne II (2 ov)

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Tietoliikenteen perusteet. Kuljetuskerros

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

T Tietokoneverkot

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

Tämän kurssin sisältö. Esitiedot. Tietoa tästä kurssista. Ilmoittautuminen. Kurssin osasuoritukset ja arvostelu. T Tietokoneverkot

Tietoliikenteen perusteet. Kuljetuskerros

Miten Internet toimii?

Vuonohjaus: ikkunamekanismi

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Transkriptio:

Kuljetuskerroksen protokollat Sovelluskerros Sovelluskerros User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Kuljetuskerros Verkkokerros Linkkikerros TCP, UDP Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros Fyysinen kerros Internet 1 2 Kuljetuskerroksen tarkoitus Luotettava vai epäluotettava? Kuljetuskerros tarjoaa viestintää sovellukselta sovellukselle (= päästä-päähän viestintä) Jonkinlainen yhteys Voi olla luotettavaa tai epäluotettavaa Useamman eri sovelluksen mahdollista käyttää 3 TCP luotettava kuljetuspalvelu Asiakas-palvelu-mallin sovellukset, jossa tila esim. tiedostonsiirto ja sähköposti (store&forward) UDP best effort kuljetuspalvelu Pyyntö-vastaus-mallin sovellukset, tilaton Tehokkuutta tarvitsevat, joille kuittaukset ei riitä esim. verkohallinta ja tosiaikapalvelut (kuittausten lisäksi aikaleimat) 4

do what I mean Tietosähkeen kapselointi sovelluksen data TCP segmentti IP-otsikko paketti Ethernet kehys CRC Portit ja (de)multipleksaus Tunnetut portit standardiprotokollille RFC 2780 (&4443) 0-1023 Rekisteröidyt portit palveluille 1024-49151 Dynaamiset/yksityiset portit 49152-65535 Sovelluskerros DNS IRC xyz 53 6667 65000 Kuljetuskerros (UDP) Verkkokerros (IP) 5 6 UDP:n ja TCP:n tarkastussumma Tarkastussumma lasketaan pseudo-otsikosta, kuljetuskerroksen otsikosta ja datasta Tarkastussumma on nolla ennen laskentaa Jaetaan 16 bitin lohkoihin ja lasketaan yhden komplementtisumma lohkoista Otetaan lopputuloksesta yhden komplementti Kaksi nollan arvoa: toinen summa on nolla (ykkösiä) (ja UDP:ssä toinen käyttämättä (nollia)) Pseudo-otsikko 0 8 16 31 LÄHTEEN IP-OSOITE KOHTEEN IP-OSOITE NOLLA PROTOKOLLA KULJ. PAKET.PITUUS Pseudo-otsikkoa käytetään varmistamaan, että paketti on saavuttanut oikean määränpään IP-osoitteet IP-otsikosta Protokollan numero (17 = UDP, 6= TCP) IP-otsikosta Kuljetuskerroksen tietosähkeen koko Pseudo-otsikkoa ei lähetetä verkon yli 7 8

User Datagram Protocol (UDP) User Datagram Protocol (UDP) s. 326-330 Kevyt protokolla IP:n toiminnallisuuden lisäksi portit Sovelluskerroksen toimittama data pakataan sellaisenaan kuljetettavaksi (ei pilkota) Epäluotettava yhteydetön palvelu Ei kuittauksia eikä uudelleenlähetystä Tarkastussumma (virheiden havaitsemiseksi) on vapaaehtoinen IPv4:ssä ja pakollinen IPv6:ssa 9 10 UDP tietosähke 0 16 31 UDP LÄHDE PORTTI UDP KOHDEPORTTI UDP VIESTIN PITUUS UDP TARKASTUSSUMMA DATA... Lähdeportti ja tarkastussumma ovat vapaaehtoisia Tarkastussumma pakollinen IPv6:n kanssa Pituus: otsikko ja data oktetteina Portit toimivat aliosoitteina isäntäkoneen sisällä Yhteenveto UDP:stä UDP tarjoaa yhteydettömän epäluotettavan kuljetuspalvelun UDP lisää IP:n palveluun vain multipleksauksen (portit) 11 12

Lähteet RFC 768 - User Datagram Protocol, 1980 RFC 1122 - Requirements for Internet Hosts - Communication Layers, 1989 http://www.iana.org/numbers.html Katsokaa digitaalitekniikan kirjasta komplementtisummien laskemisesta (S-88.1110) Transmission Control Protocol s. 280-326 13 14 (sisällysluettelo) TCP yleisesti: ominaisuus ja yhteys TCP-otsikko Yhteyden avaus ja sulkeminen (tilakone) Kuittaukset ja uudelleenlähetys Lähetys- ja vastaanottoikkunat Ruuhkanhallinta TCP:n ominaisuudet Transmission Control Protocol (TCP) Yhteydellinen Päästä-päähän (prosessilta-prosessille) Luotettava (ei kuitenkaan turvallisuusmielessä) Kaksisuuntainen Sovellukset tarvitsevat usein luotettavaa yhteyttä epäluotettavan verkon yli 15 16

Luotettavan kuljetuspalvelun ominaisuudet Virtaorientoitunut (stream orientation) Strukturoimaton virta (unstructured stream) Virtuaalinen piirikytkentä (virtual circuit connection) Puskuroitu tiedonsiirto (buffered transfer) Kaksisuuntainen (full duplex connection) Luotettavan kuljetuspalvelun toteutus Perustiedonsiirto Luotettava (tieto menee perille) (reliability) Vuonvalvonta (flow control) Limitys (multiplexing) Yhteydet (connections) Palvelunlaatu ja turvallisuus 17 18 Yhteys Tunniste: kaksi päätepistettä (endpoint) Päätepiste: (isäntäkone, portti) -pari esim: (130.233.45.31, 6000) & (130.233.220.31, 85) Yhteyden hallitsemiseen tarvittavaa tilatietoa Ikkunoiden koot, soketit (sockets), sekvenssinumerot, jne TCP-otsikko (RFC 793) 0 10 20 31 Lähdeportti Kohdeportti Sekvenssinumero Kuittausnumero otsi- U A P R S F kon Varattu R C S S Y I Ikkunan koko pituus G K H T N N Tarkastussumma Urgent-pointteri Optiot Padding data 19 20

do what I mean TCP:n optiot 2 = Suurin sekmentin koko (yhteyttä avatessa) Yhteyttä muodostettaessa osapuolet sopivat suurimman sallitun sekmentin koon (maximum segment size MSS) 1 = No-operation Joskus optioiden välissä 0 = Optioiden loppu Kaikkien optioiden jälkeen Sekvenssinumerot Käytetään kuittauksissa Alkaa jostain arvosta (ei aina ykkösestä) Laskee tietovuon oktetteja alkuarvosta eteenpäin Käytetään kumpaankin suuntaan erillisiä 21 22 Yhteyden muodostus Kolmitiekättely (three-way handshake) <SEQ=100><SYN> <SEQ=300><ACK=101><SYN><ACK> <SEQ=101><ACK=301><ACK> kolmas viesti voi sisältää myös dataa: <SEQ=101><ACK=301><ACK><DATA> Yhteyden sulkeminen Modifioitu kolmitiekättely Jos toisella osapuolella ei ole enää dataa lähetettäväksi, yhteys voidaan sulkea yhteen suuntaan: Lähettäjä lähettää sekmentin, jossa FIN-bitti asetettu Vastaanottaja kuittaa viestin Kun toiseenkin suuntaan lähetettävä data loppuu Vastaanottaja lähettää FIN-viestin Lähettäjä kuittaa viestin 23 24

Keepalive TCP-yhteydet pitää sulkea erikseen Sulkemattomat yhteydet kuormittavat palvelimia Palvelin saattaa pitää ajastinta tarkastaakseen, että asiakas on edelleen hengissä Palvelin lähettää segmentin, jonka sekvenssinumero on jo käytetty (edellinen) Asiakas lähettää kuittauksen (seuraavaksi odottamastaan sekvenssinumerosta) 10 vastaamattoman kyselyn jälkeen palvelin lopettaa yhteyden 25 FIN WAIT1 TCP:n tilakone anything / reset CLOSED active open / syn close/ passive close timeout/ open SYN LISTEN reset send / syn SENT CLOSE syn / reset syn / syn+ack / syn+ack syn+ack ack WAIT fin / ack SYN ESTABLISHDED REC ack close / fin CLOSING ack/ fin / ack fin-ack / ack ack / FIN WAIT2 ack LAST ACK close/fin fin / ack TIMED WAIT 26 Luotettava tiedonsiirto Tieto välitetään koneelta toiselle ilman duplikaatteja tai häviöitä Positiiviset kuittaukset Uudelleenlähetys Virheiden havaitseminen (ajastimet ja tarkastussummat) TCP:n sopeuttaminen verkkoon Uudelleenlähetysten ajankohta ja kuittaukset Ikkunan koko Ruuhkanhallinta 27 28

Kumulatiiviset kuittaukset Helppo muodostaa ja yksiselitteisiä Hävinnyt kuittaus ei välttämättä aiheuta uudelleenlähetystä Yhdessä viestissä kuitataan useampi segmentti Lähetetään uudestaan joko kaikki tai vain ensimmäinen kuittaamaton sekmentti Kolmas sama kuittaus johtaa uudelleenlähetykseen Kuittausten moniselitteisyys Viittaako kuittaus alkuperäiseen vai uudelleenlähetettyyn pakettiin? alkuperäinen viesti: pitkät timeout-ajat uudelleenlähetetty: liian lyhyt timeout Karnin algoritmi: uudelleenlähetettyjen segmenttien edestakaista kulkuaikaa ei huomioida uudelleenlähetysajan laskemisessa 29 30 Uudelleenlähetysten ajastus Uudelleenlähetysajastinta muutetaan yhteyden tehokkuuden mukaan perustuen edellisiin viesteihin ja niiden kuittauksiin Uudelleenlähetysajastin (Retransmission timeout RTO) Edestakainen kulkuaika (round trip time RTT) Uudelleenlähetysalgoritmi Alkuperäinen algoritmi: RTT = (α*oldrtt)+((1-α)*newrttsample) (suositus α=0,9) RTO: β*rtt, β>1 (suositus alunperin: β=2) Ei kovin hyvä, sillä algoritmi ei huomioi sitä, että RTT saattaa muuttua paljon 31 32

Uusi uudelleenlähetysalgoritmi Uusi algoritmi (RFC 2988): Aluksi: RTO = 3 s 1. mitatun RTO:n jälkeen SRTT R (smoothed round trip time) RTTvar R/2 (RTT:n varianssi) RTO SRTT + max (G, K*RTTvar), missä K=4 ja G kellon tarkkuus Uusi uudelleenlähetysalgoritmi (2) jatkossa RTTvar (1- β)*rttvar+ β* SRTT-newRTTsample SRTT (1- α)*srtt+ α*newrttsample missä α = 1/8 ja β= 1/4 RTO SRTT+max(G, K*RTTvar) Jos laskettu RTO < 1 s, arvo tulee pyöristää 1s. RTO:n maksimiarvo voidaan asettaa 60 sekuntiin, 33 34 lähetetty ja kuitattu Liukuva ikkuna ikkuna 1 2 3 4 5 6 7 8 9 10 11 12 13... lähetetty muttei kuitattu lähettämättömät Tehostaa tiedonsiirtoa Paketti voidaan lähettää ennen kuin edellinen on kuitattu Kuittaamattomille paketeille puskuri TCP:n ikkunamekanismi Päästä-päähän vuon kontrollointiin Myös ruuhkan välttämiseen Kummassakin päässä kaksi ikkunaa Yksi lähetetyille ja toinen vastaanotetuille Ikkunan koko voi muuttua Riippuu vastaanottajan käsittelykapasiteetista 35 36

Silly Window Syndrome (SWS) Eli lähetetään vähän dataa verrattuna otsikkoon Vaatii enemmän prosessointia ja laskentaa Sovellukset toimivat eri nopeuksilla Vastaanottajan puskuri tulee täyteen Vastaanottaja lukee yhden oktetin ja ilmoittaa ikkunan kooksi: 1 Lähettäjä lähettää yhden oktetin dataa TCP-paketissa Silly window voi tapahtua sekä lähettäjän että vastaanottajan puolella SWS:n välttäminen Vastsaanottajan puolella Mainostetaan vain merkittävänkokoista ikkunaa Viivästetyt kuittaukset Lähettäjän puolella Odotetaan kunnes dataa on suurimman sallitun sekmentin verran Odotetaan kunnes kuittaukset ovat saapuneet 37 38 Ruuhkanhallinta Ruuhkaikkuna Yhteyden alussa verkon tilanne tuntematon Verkossa matkan varrella (esim. jossain reitittimessä) on ruuhkaa Eli viive kasvaa TCP:n lähetysnopeutta pienennetään lisäruuhkan aiheuttamisen välttämiseksi ICMP source quench viesti ruuhkatilanteesta Lähetysikkunaa kasvatetaan hitaasti Jos paketteja häviää (saadaan kolme kuittaus edellisestä vastaanotetusta) Pienennetään ruuhkaikkuna puoleen käytössä olleesta Jos RTO-ajastin menee nollaan Pienennetään ruuhkaikkuna yhteen 39 40

Globaali synkronoituminen Verkossa ruuhkaa, ja tilanne ohi Kaikki alkavat lähettää yhtäaikaa Reitittimissä Random Early Discard (RED) jono täysi hylkää tietosähke jono melkein täysi tietosähke hylätään jollain todennäköisyydellä jono ei ole täysi kaikki välitetään eteenpäin Yhteenveto Transmission Control Protocol (TCP) tarjoaa yhteydellistä ja luotettavaa kuljetuspalvelua Verkkoa käytetään tehokkaasti Vuokontrolli kertoo kuinka paljon dataa kumpikin päätepiste pystyy käsittelemään 41 42 Lähteet Seuraavat luennot RFC 4614 A Roadmap for TCP Specification Documents, 2006 RFC 793 Transmission Control Protocol, 1981 RFC 1122 Requirements for Internet Hosts Communication Layers,1989 RFC 2581 TCP Congestion Control, 1999 RFC 2988 Computing TCP's Retransmission Timer, 2000 RFC 3168 - The Addition of Explicit Congestion Notification (ECN) to IP, 2001 27.9 Nimipalvelu, Bength Sahlin 25.9. Reititys, osa 2, Janne Lindqvist Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros 43 44