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



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

Kuljetuskerroksen protokollat

Kuljetuskerroksen protokollat

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

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

OSI ja Protokollapino

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

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

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:

kynnysarvo (threshold)

kynnysarvo (threshold)

3. Kuljetuskerros 3.1.

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Monimutkaisempi stop and wait -protokolla

Kuljetuskerros. Kirja sivut: ,

Monimutkaisempi stop and wait -protokolla

TCP:n vuonohjaus (flow control)

Monimutkaisempi stop and wait -protokolla

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

T Tietokoneverkot kertaus

Tietoliikenteen perusteet

Tietoliikenne II Kurssikoe

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

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

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat

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

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

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

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

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

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ä.

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

11/20/ Siirron optimointi

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

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/

Chapter 3 Transport Layer. Kuljetuskerros

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

Ongelma 1: Ei saada kolmea toistokuittausta

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit)

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,

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

S Teletekniikan perusteet

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

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

Chapter 3 Transport Layer. Kuljetuskerros

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

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ä.

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

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

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

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2012

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

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end

6. Kuljetuskerros 6.1. Kuljetuspalvelu

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

Tehtävä 2: Tietoliikenneprotokolla

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

Internet ja tietoverkot 2015 Harjoitus 7: Kertaus

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 2013

Tietoliikenne II (2 ov)

Tietoliikenteen perusteet. Kuljetuskerros

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

Miten Internet toimii?

Vuonohjaus: ikkunamekanismi

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1.

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

WWW-sivu. Miten Internet toimii? World Wide Web. HTML-koodi. HTTP-istunto URL <#>

Tietoliikenteen perusteet. Kuljetuskerros

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

Tietoliikenteen perusteet. Kuljetuskerros

3. IP-kerroksen muita protokollia ja

Transkriptio:

do what I mean 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 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 1

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 2

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 3

do what I mean 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 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 4

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 passive active open / syn close/ 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 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 5

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 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 6

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 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 7

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 19 & 21.9. Reititys, Kazi Zahid Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros 43 44 8