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

Samankaltaiset tiedostot
kynnysarvo (threshold)

kynnysarvo (threshold)

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

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/

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

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

6. Kuljetuskerros 6.1. Kuljetuspalvelu

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1.

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1. Kuljetuspalvelu. Internetin kuljetuskerros. kuljetuspalvelut parantavat verkkopalveluja

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu

peittää verkkokerroksen puutteet

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

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

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

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Monimutkaisempi stop and wait -protokolla

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Tietoliikenne II Kurssikoe

TCP:n vuonohjaus (flow control)

3. Kuljetuskerros 3.1.

ELEC-C7241 Tietokoneverkot Kuljetuskerros

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

Ongelma 1: Ei saada kolmea toistokuittausta

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

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ä

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit)

3. Kuljetuskerros 3.1. Kuljetuspalvelu

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

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

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

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

Tietoliikenteen perusteet

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov) Sisällysluettelo jatkuu. Tietoliikenne II. Alustava sisällysluettelo. Suoritus

OSI ja Protokollapino

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

Kuljetuskerroksen protokollat

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

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

Kuljetuskerroksen protokollat

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

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

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Kuljetuskerroksen protokollat

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

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

ITKP104 Tietoverkot - Teoria 3

Tehtävä 2: Tietoliikenneprotokolla

Tietoliikenteen perusteet

Tietoliikenteen perusteet

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

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

S Tietoliikenneverkot S Luento 6: Liikenteenhallinta

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

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

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

Tietoliikenteen perusteet: Kokeeseen tulevista asioista

Tietoliikenteen perusteet. Kuljetuskerros

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

Tietoliikenteen perusteet. Kuljetuskerros

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

3. IP-kerroksen muita protokollia ja

S Teletekniikan perusteet

Luento 5: Kuljetuskerros

Kuljetuskerros. Kirja sivut: ,

Tietoliikenne II (2 ov) Syksy 2004 Liisa Marttinen

Chapter 3 Transport Layer. Kuljetuskerros

Chapter 3 Transport Layer. Kuljetuskerros

Tietoliikenne II (2 ov)

Chapter 3 Transport Layer. Kuljetuskerros

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

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

Tietoliikenne II (2 ov)

Tietoliikenne II. Tietoliikenne II (2 ov) Alustava sisällysluettelo. Sisällysluettelo jatkuu. Suoritus. Syksy 2003 Liisa Marttinen

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Tiivistelmä Kunal Shahin Master of Science -työstä: Simulation Based Study of TCP Fairness in Multi-Hop Wireless Networks

Transkriptio:

kynnysarvo (threshold) varoitusarvo = tästä lähtien syytä varoa ruuhkaa aluksi 64 K kynnysarvoon saakka voidaan kasvattaa ruuhkaikkunaa eksponentiaalisesti kynnysarvon saavuttamisen jälkeen kasvatetaan ruuhkaikkunaa vain lineaarisesti = kasvatetaan kuittausten jälkeen vain yhdellä edetään hyvin varovaisesti! jos ajastin ehtii laueta => ruuhkatilanne kynnysarvoksi puolet nykyisestä ruuhkaikkunan arvosta hitaalla aloituksella etsitään taas uusi sopiva ruuhkaikkunan arvo ruuhkaikkunan arvoksi segmentti ruuhkaikkunaa kasvatetaan aluksi eksponentiaalisesti eli kaksinkertaistetaan kun ikkunallinen on kuitattu kynnysarvon saavuttamisen jälkeen kasvatetaan vain segmentti kerrallaan kunnes taas havaitaan ruuhka ja aloitetaan ruuhkaikkunan uuden arvon etsiminen 6.2.2002 79 6.2.2002 0 Uudelleenlähetysjastimen hallinta uudelleenlähetysajastin (retransmission timer) asetetaan aina kun segmentti lähetetään ruuhkaa, jos kuittaus ei saavu ajoissa mikä on sopiva ajastimen aika? kuittaus aika vaihtelee suuresti vaihtelu on myös nopeaa dynaaminen arvo saadaan jatkuvien verkon suorituskykymittauksien perusteella RTT arvio kiertoviiveelle (round-trip time) mitataan jokaisen lähetetyn segmentin kiertoviive M RTT = αrtt + (-α)μ, tyypillisesti α = 7/ uudelleenlähetysajastimen arvo βrtt aluksi β oli aina 2 parannus: otetaan huomioon myös poikkeama D (deviation) oletetun ja saadun kiertoviiveen välillä RTT-M D = α D + (- α) RTT-M ajastimen arvo = RTT +4*D 6.2.2002 6.2.2002 2 Hidas aloitus: Lähetysmäärä kasvaa eksponentiaalisesti uudelleenlähetysten vaikutus ajastimeen kumpaan segmenttiin kuittaus kohdistuu? Karnin algoritmi ei oteta huomioon uudelleenlähettyjen segmenttien kuittauksia RTT:n laskemisessa 6.2.2002 3

Ikkuna täyttyy ja lähettäjän täytyy odottaa kunnes kadonneen sanoman ajastin laukeaa Sitten aloitetaan taas hitaalla aloituksella Hidas aloitus: segmentti katoaa ja kuittausta ei tule => kadonneen segmentin ajastin laukeaa aikanaan Tahoe-versio Parannuksia ruuhkanvalvontaan Nopea uudelleenlähetys (Fast Retransmit) ei odoteta ajastimen laukeamista ennen uudelleenlähetystä vastaanottaja kuittaa jokaisen paketin kun vastaanottaja huomaa puuttuvan paketin, se lähettää uudelleen edellisen paketin kuittauksen Duplicate ACK (~ NAK) kun lähettäjä saa useita (3) peräkkäisiä saman paketin toistokuittauksta=> se havaitsee tästä paketin puuttuvan ja lähettää sen heti uudelleen => nopeampi uudelleenlähetys 6.2.2002 6 Nopea toipuminen (Fast Recovery) kun kadonnut paketti huomataan nopealla toipumisella, ei aloiteta alusta hitaalla aloituksella vaan pudotetaan ruuhkaikkuna puoleen ja jatketaan normaalilla lineaarisella kasvattamisella Mitä hyötyä tästä on? Miksi voidaan huoletta tehdä näin? ack Ajastin laukeaa 2 ja 3 Virhetilanteessa tavallista hidasta aloitusta käytettäessä lähetetään, kunnes ikkuna täyttyy ja sitten jäädään odottamaan ajastimen laukeamista Väärässä järjestyksessä tulleita sanomia ei hyväksytä => toistokuittauksia Aloitetaan hidas aloitus: ensin segmentti ja vasta sen kuittauksen saavuttua 2 segmenttiä, sitten 4. Ja tämän jälkeen kasvatetaan lineaarisesti 5, 6, 7,,9, jne. 6.2.2002 7 ack ajastin ack 9 9 ja 0 Hidas aloitus: kun ikkuna täyttyy jäädään odottamaan kuittauksia tai ajastimen laukeamista TCP-protokolla usein tallettaa väärässä järjestyksessä tulleet segmentit eli ei toimi täysin go back -protokollan tavoin. ack 9 9-2 3-7 Nopea uudelleenlähetys ja nopea toipuminen: kolmen toistokuittauksen jälkeen lähetetään pyydetty segmentti uudestaan TCP-protokolla usein tallettaa väärässä järjestyksessä tulleet segmentit ruuhkaikkuna puolitetaan ( => 4) ja lähetystä jatketaan kasvattamalla lähetysmäärää lineaarisesti Reno-versio

hidas aloitus ja ruuhkan valvonta ongelmallisia langattomassa yhteydessä Miksi? Lisäparannuksia ruuhkanhallintaan esim. Vegas ruuhkan ennustaminen ennen ajastimen laukeamista ruuhkaikkunaa ei kasvateta aina ruuhkaan asti RED (random early detection) entä UDP? 6.2.2002 9 TCP langattomassa verkossa monet TCP-toteutukset optimoitu luotettaville lankaverkoille => suorituskyky langattomissa verkoissa erittäin huono ruuhkanvalvonta-algoritmi olettaa ajastimen laukeamisen johtuvan ruuhkasta lähettämistä hidastetaan, jotta verkon kuormitus pienenisi ja ruuhkaa ei syntyisi langattomat yhteydet ovat epäluotettavia ja paketteja katoaa kadonneet paketit syytä lähettää nopeasti uudelleen lähetystä pitäisi päinvastoin nopeuttaa! 6.2.2002 92 TCP-yhteyden hallinta yhteys muodostetaan kolminkertaisella kättelyllä passiivinen osapuoli kuuntelee SOCKET BIND LISTEN ACCEPT aktiivinen osapuoli aloittaa yhteydenmuodostuksen CONNECT 6.2.2002 93 CONNECT-primitiivi parametreina IP-osoite ja porttinumero suurin hyväksyttävä segmentin koko muuta tietoa, esim. salasana TCP-segmentti, jossasyn-segmentti SYN = ACK = 0 6.2.2002 94 TCP TCP SOCKET CONNECT SOCKET LISTEN ACCEPT SEND RECEIVE SEND RECEIVE Asiakkaan Kolminkertainen kättely = TCP-yhteyden muodostus Yhteydenotto Tavuvirta putkessa Datan siirto Yhteys Asiakkaan tavuja tavuja Yhteys TCP-yhteyden muodostaminen 6.2.2002 95 Pistoke + TCP = tavuputki prosessien välissä 6.2.2002 96

TCP-yhteys on tavuvirtaa, ei sanomavirtaa lähetettäessä neljä 52 tavun pätkää vastaanottaja saa joko neljä 52 tavun pätkää kaksi 024 tavun pätkää yhden 204 tavun pätkän Segmentit lähetetään neljänä eri IP-pakettina Ne luovutetaan vastaanottajalle yhdellä READ- kutsulla A B C D A B C D neljä 52 tavun segmenttiä yksi 204 tavun data 6.2.2002 97 SEND(DATA) CLOSE yhteyden purkaminen discon. data discon. CLOSE asiakas jää odottamaan mahdollista dataa palvelimelta symmetrinen yhteyden purku asiakas vapautetaan 6.2.2002 9 C-rutiineina int socket(int domain, int type, int protocol) palvelin: int bind (int socket, struct sockaddr *address, int addr_len) int listen(int socket, int backlog) int accept(int socket, struct sockaddr *address, int *addr_len asiakas: int connect (intsocket, struct sockaddr *address, int addr_len) 6.2.2002 99 int send(int socket, char *message, int msg_len, int flags) sanoman lähetys annetun pistokkeen kautta int recv(int socket, char *buffer, int buf_len, int flags) sanoma vastaanotto annetusta pistokkeesta ilmoitettuun puskuriin 6.2.2002 00 Pistokeohjelmointia Javalla Socket Socket = new Socket( hostname, 679); Socket.close(); ServerSocket welcomesocket = new Server Socket (679); Socket connectionsocket = welcomesocket; accept() (esimerkki kirjassa Kurose, Ross, Computer Networking, A Top-Down Approach Featuring the Interbet) 6.2.2002 0 Pistokeohjelmointi Pistokeohjelmointia ja yleensä hajautettujen verkkosovellusten tekemistä opetellaan erillisellä kurssilla Verkkosovellusten toteuttaminen (järjestetään keväällä 2002) 6.2.2002 02

Yhteenveto Kuljetuskerroksen palvelut UDP TCP luotettava tavuvirta yhteyden muodostus ja purku numerointi, tarkistussumma, kuittaus, uudelleenlähetys, Go-back N vuonvalvonta: vastaanottoikkuna (liukuva ikkuna) ruuhkanhallinta: hidas aloitus ohjelmointi 6.2.2002 03