Kuljetuskerroksen protokollat

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

Kuljetuskerroksen protokollat

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

Kuljetuskerroksen protokollat

ELEC-C7241 Tietokoneverkot Kuljetuskerros

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

3. Kuljetuskerros 3.1. Kuljetuspalvelu

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

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

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

kynnysarvo (threshold)

kynnysarvo (threshold)

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

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

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

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

OSI ja Protokollapino

3. Kuljetuskerros 3.1.

T Tietokoneverkot kertaus

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Monimutkaisempi stop and wait -protokolla

TCP:n vuonohjaus (flow control)

Kuljetuskerros. Kirja sivut: ,

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

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

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

Tietoliikenteen perusteet

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

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

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

Tietoliikenne II Kurssikoe

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

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat

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

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

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

11/20/ Siirron optimointi

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/

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ä

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

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

Chapter 3 Transport Layer. Kuljetuskerros

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 2016

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

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

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,

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

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

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

S Teletekniikan perusteet

Chapter 3 Transport Layer. Kuljetuskerros

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

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

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

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

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

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Tehtävä 2: Tietoliikenneprotokolla

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end

6. Kuljetuskerros 6.1. Kuljetuspalvelu

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

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

Tietoliikenne II (2 ov)

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

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

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

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

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2012

Tietoliikenteen perusteet. Kuljetuskerros

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

T Tietokoneverkot

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1.

Internet ja tietoverkot 2015 Harjoitus 7: Kertaus

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

Internet ja tietoverkot. 3 Kuljetusprotokollat Luotettava ja epäluotettava tiedonsiirto

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

Vuonohjaus: ikkunamekanismi

Chapter 3 Transport Layer. Kuljetuskerros

Tietoliikenne II (2 ov)

Tietoliikenteen perusteet: Kokeeseen tulevista asioista

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Miten Internet toimii?

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 1

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 2

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 3

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 4

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 19 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 20 5

do what I mean TCP:n optiot Sekvenssinumerot 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 21 Käytetään kuittauksissa Alkaa jostain arvosta (ei aina ykkösestä) Laskee tietovuon oktetteja alkuarvosta eteenpäin Käytetään kumpaankin suuntaan erillisiä 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 6

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 TCP:n tilakone anything / reset CLOSED close/ active open / syn 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 fin / ack CLOSING ack/ FIN fin-ack / ack WAIT1 ack / FIN WAIT2 fin / ack ack LAST ACK close/fin 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) Seuraavaksi: TCP:n sopeuttaminen verkkoon Ikkunan koko Uudelleenlähetysten ajankohta ja kuittaukset Vuon- ja ruuhkanhallinta 27 28 7

lähetetty ja kuitattu Liukuva ikkuna ikkuna 1 2 3 4 5 6 7 8 9 10 11 12 13... Tehostaa tiedonsiirtoa lähetetty lähettämättömät muttei kuitattu 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 29 30 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 Vastaanottajan 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 31 32 8

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 33 34 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 35 36 9

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, 37 38 Vuon- ja ruuhkanhallinta 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 Ruuhkaikkuna 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 aloitetaan alusta 39 40 10

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 Tietoturva: 29.9 TLS & SSH 25.9. IPsec Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros 43 44 11