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

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

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

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

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

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

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

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit)

Monimutkaisempi stop and wait -protokolla

Ongelma 1: Ei saada kolmea toistokuittausta

Tietoliikenne II (2 ov)

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

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

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

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

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

Tietoliikenne II (2 ov) Syksy 2004 Liisa Marttinen

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov) Syksy 2003 Liisa Marttinen

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

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

kynnysarvo (threshold)

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

kynnysarvo (threshold)

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1. Kuljetuspalvelu

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

3. Kuljetuskerros 3.1.

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/

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

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

Tehtävä 2: Tietoliikenneprotokolla

3. Kuljetuskerros 3.1. Kuljetuspalvelu

OSI ja Protokollapino

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

peittää verkkokerroksen puutteet

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1.

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end

6. Kuljetuskerros 6.1. Kuljetuspalvelu

Tietoliikenne II Kurssikoe

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

ELEC-C7241 Tietokoneverkot Kuljetuskerros

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Tietoliikenteen perusteet

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

TCP:n vuonohjaus (flow control)

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

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

Kuljetuskerros. Kirja sivut: ,

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

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

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

3. IP-kerroksen muita protokollia ja

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

Tietoliikenteen perusteet. Kuljetuskerros

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

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

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

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

Tietoliikenteen perusteet

Tietoliikenteen perusteet

Luento 5: Kuljetuskerros

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

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

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

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

Asiakkaan toimenpiteet

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

Salausmenetelmät (ei käsitellä tällä kurssilla)

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

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

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

Turvallisuus verkkokerroksella

Turvallisuus verkkokerroksella

AH-otsake. Turvallisuus verkkokerroksella. AH-otsake. AH-otsake. ESP-otsake. IP-otsake

S Tietoliikenneverkot S Luento 6: Liikenteenhallinta

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

Kuljetuskerroksen protokollat

Kuljetuskerroksen protokollat

Transkriptio:

TCP TCP:n peruspiirteiden toiminta tarkemmin osin vain harjoitustehtävissä TCP:n uusia piirteitä SACK Window scaling time stamping RED (Random Early Detection) ECN (Explicit Congestion Notification)

TCP-otsakkeen kentät Source port Destination port Sequence number TCP head. length Acknowledgement number U A P R S F R C S S Y I G K H T N N Window size Checksum Checksum Urgent pointer Options (0 or more 32 bit words) Data (optional)

TCP-optiot Optio-kenttä erilaisia valinnaisia piirteitä varten Option pituus on 40 tavua» data offset -kenttä = 4 bittiä kertoo otsakkeen pituuden 32 bitin sanoina => 15*4 tavua = 60 tavua» 60 tavua -20 tavua vakio-otsaketta => enintään 40 tavua optioita varten käytetään ilmoittamaan maksimi segmentin koko muita uusia piirteitä» aikaleimaus (timestamp)» ikkunan skaalaus (window scaling factor)

Erilaisia suorituskykyongelmia TCP-protokolla käytössä hyvin erilaisissa ympäristöissä» pitkän viipeen satelliittiyhteyksillä» erittäin nopeilla yhteyksillä» langattomilla yhteyksillä => suorituskykyongelmia otsakkeen kentät liian pieniä» ikkunankoko 16 bittiä rajoittaa lähetysnopeutta satelliittiyhteyksillä» järjestysnumero 32 bittiä rajoittaa lähetysnopeutta erittäin nopeilla yhteyksillä

Ikkunan skaalaus (Window scale factor) ikkunakoko = 16 bittiä => 65536 tavua» vuonvalvonnassa» kertoo vastaanottajan ikkunan = kuinka monta tavua voi lähettää ennenkuin täytyy jäädä odottamaan kuittausta jos käytössä ikkunan skaalaus -optio, ikkunakentän arvo kerrotaan 2**F, jossa F on skaalausoption arvo.» Suurin F:n arvo on 14 käytetään vain yhteyden aloituspyynnössä

Aikaleima (timestamp) Kaksi eri optiota Timestamp Value» lähtevissä segmenteissä, Timestamp Echo Reply» kuittauksessa» sama kuin kuitatun segmentin Timestamp arvo Voidaan käyttää missä tahansa datasegmentissä => kiertoviiveiden jatkuva tarkkailu helpompaa

Yhteyden muodostus perusmalli hyvin yksinkertainen ongelmana viivästetyneet kaksoiskappaleet» esim. yhteys pankkiin laskun maksamiseksi» lasku maksetaan useaan kertaan =>yksikäsitteisen yhteyden muodostaminen vaikeaa 12.2.2001 7

Yhteydenmuodostus: perusmalli CONNECT TL CR TL Hyvin yksinkertaista! ACK SEND DT 12.2.2001 8

CR CR ACK DT DT Yhteyden muodostus ruuhkaisessa verkossa Jokainen paketti lähetetään kahteen kertaan DT CLOSE CLOSE ACK CR DT CLOSE Kun yhteys on purettu, viivästyneet kaksoiskappaleet saapuvat Ne tulkitaan uudeksi yhteydeksi, ja data otetaan vastaan kahteen kertaan!

Ongelman ratkaisuehdotuksia: kertakäyttöiset kuljetusosoitteet» nimipalvelu? yhteystunnus jokaiselle yhteydelle yhteyden purkamisen jälkeen sen TPDU:t epäkelpoja» lista epäkelvoista yhteystunnuksista kuinka kauan historiatietoja säilytettävä? entä jos kone kaatuu ja unohtaa tietonsa? rajallinen elinikä paketeille» elinaikalaskuri, hyppylaskuri 12.2.2001 10

Tomlinsonin menetelmä koneessa vikasietoinen kello» etenevä laskuri» vaikka kone kaatuu, laskuri toimii yhteyttä muodostettaessa» kellon bitit ilmoittavat numeroinnin aloituskohdan» bittejä riittävästi (32 bittiä) jotta uudelleen käytöön vasta riittävän pitkän ajan päästä vanhoilla numeroilla varustetut segmentit ehtivät hävitä yhteydellä ei koskaan kahta saman numeroista segmenttiä 12.2.2001 11

k bittiä Kello: järjestysnumero: Eri yhteyksillä numerointi aloitetaan eri kohdasta 12.2.2001 12

Kun kone kaatuu» se kadottaa tiedon viimeksi käytetystä järjestysnumerosta» uusi numero ei saa olla sama kuin jonkun vielä elossa olevan TPDU:n Miten selvitään tilanteesta? odotetaan T aikayksikköä» kaikki aikaisemmat TPDU:t varmasti kadonneet ja voidaan aloittaa, mistä numerosta tahansa» entä, jos T on pitkä kielletyn alueen (forbidden region) käyttö» ei oteta käyttöön numeroita, joiden duplikaatit voivat olla vielä elossa

järjestysnumerot Kielletty alue aina ennen uuden paketin lähettämistä tarkistetaan, ettei järjestysnumero ole kielletyllä alueella aika

Kolminkertainen kättely CR(nro=x) CA(nro=y, ack=x) DATA(nro=x,ack=y) yhteyspyynnössä pyytäjän nro x vahvistuksessa sekä pyytäjän että suostujan numero ensimmäisessä datalähetyksessä molemmat numerot

Kuittaukset TCP:ssä TCP käyttää kumulatiivista kuittausta kuittaus varmistaa lähettäjälle, että kaikki segmentit kuitattuun segmenttiin saakka ovat saapuneet kunnolla perille väärässä järjestyksessä saapuneita segmenttejä ei kuitata ei käytetä NAK-kuittausta duplicate ACK = virhetilanteissa lähetetään uudelleen kuittaus samasta jo kuitatusta segmentistä

Uudelleenlähettäminen TCP lähettää segmentin uudestaan, kun ajastin laukeaa TCP ei automaattisesti lähetä kaikkia puuttuvan segmentin jälkeisiä segmenttejä uudelleen timeout Seq=92, 8 B dataa Seq=100, 20 B dataa ACK= 120 Seq=92, 8 B dataa

Vain osin Go-Back -N -tyyppinen Oletetaan, että segmentit 1-N tulevat oikein perille ja kuittaus esim. segmenttiin 1 katoaa. Jos muut kuittaukset tulevat perille, enintään yksi segmentti 1 uudelleenlähetetään. Eikä sitäkään tarvitse lähettää, jos seuraava kuittaus tulee ennen ajastimen laukeamista timeout Seq=92, 8 B dataa Seq=100, 20 B dataa ACK =100 ACK= 120

Kuittaukset voivat kadota Erilliset kuittaukset eli pelkät ACK:it eivät sisällä yhtään tavua dataa, joten niitä ei numeroida eikä kuitata. Kuittauksia voi helposti hävitä Kumulatiivisissa kuittauksissa seuraava kuittaus paikkaa hävinneen informaation

Duplicate Ack ensikuittaus (first-time ACK) segmentin ensimmäinen kuittaus tähän saakka kaikki on kunnossa toistokuittaus (duplicate ACK) vastaanottaja kuittaa viimeksi saatua hyväksyttyä segmenttiä aina kun saa virheellisen tai väärässä järjestyksessä tulevan segmentin NAKin korvike, jolla ilmoitetaan ongelmista lähettäjälle

Nopea uudelleenlähetys (Fast retransmit) Kun lähettäjä vastaanottaa 3 toistokuittausta samalle segmentille, se lähettää heti puuttuvan segmentin uudestaan eikä odota segmentin ajastimen laukeamista Seq 0 ensikuittaus toistokuittaukset (3 kpl) Seq 100 ACK = 100 kaikissa näissä kuittauksissa ACK =600

Viivästetty ACK (Delayed ACK) Ei tarvitse välttämättä kuitata jokaista segmenttiä kuitenkin kuitattava ainakin joka toinen ja viive saa olla korkeintaan 500 ms, usein noin 200ms Hyöty: kuittaus kulkee datan mukana samalla kertaa ikkunan muotos, kuittaus ja kaiutus Haitta: kiertoviiveen laskeminen, pakettien kellotus

Suorituskykyongelmia! Kun useita segmenttejä katoaa samasta ikkunasta Seq 0 Segmentit hävivät Seq 0 Seq 1 ACK 0 ACK 1 Joka kierroksella pystytään uudelleenlähettämään vain yksi kadonnut segmentti!! Entä jos suuri kiertoviive

SACK (Selective Acknowledgement) RFC 2018 TCP Selective Acknowledgement Options. M. Mathis, J. Mahdavi, S.Floyd, A. Romanow. October 1996. (Status: PROPOSED STANDARD) INTERNET DRAFT Mark Allman, Ethan Blanton. "A Conservative SACK-based Loss Recovery Algorithm for TCP". (draft-allman-tcp-sack-02.txt), January, 2001

Kumulatiivinen kuittaus paljastaa aina vain yhden puuttuvan kerrallaan SACK paljastaa kaikki puuttuvat» ilmoittamalla, mitkä segmenttivälit on jo vastaanotettu Esim. Segmentin koko 1000 tavua 1. segmentti katoaa ja muut tulevat perille segmentin 2 kuittaus: ACK 0, 1000: 2000 segmentin 10 kuittaus:ack 0, 1000: 10000 1. ja 3. segmentti katoavat segmentin 10 kuittaus: ACK 0, 1000:2000 3000:10000

SACK-optiot SACK- permitted yhteyden muodostuksessa eli vain SYN-segmentissä ilmoittamaan, että yhteydellä voidaan käyttää SACK-kuittauksia SACK-optio (type = 4, length = 2) kuljettaa lisäinformaatiota saapuneista segmenteistä eli kertoo, mitkä tavupätkät ovat jo valmiina vastaanottajan puskurissa kuljetetaan TCP-segmentin optio-osassa

TCP:n SACK-optio 1. Lohkon alku 1. Lohkon loppu 2. Lohkon alku 2. Lohkon loppu 3. Lohkon alku 3.lohkon loppu Optiotyyppi 5 pituus 4 lohkoa mahtuu yhteen TCP-segmenttiin, jossa optiolle on varattu 40 tavua, jos ei käytetä muita optioita kuten aikaleimaa (timestamp).

Vain neuvoa-antava! Ohjeellista tietoa lähettäjälle vastaanottaja voi tarvittaessa poistaa SACKoptiossa ilmoittamiaan tavuja puskureistaan Jos vastaanottaja käyttää SACK-optiota, niin sitä on käytettävä aina kun vastaanottajalla on puskureissaan epäjärjestyksessä olevaa dataa tällöin kaikissa ACK:ssa on oltava ajantasalla oleva tieto siitä, mitkä tavut on jo puskureissa

TCP-ruuhkanvalvonta Lähettäjä verkko vastaanottaja datasegmentit ACK toimii lähetyksen tahdistajana putkestä poistunut dataa, joten voidaan lähettää sama määrä lisää

TCP self-clocking TCP tahdistaa itse oman lähetyksensä ACK:ien avulla nopeutta voi rajoittaa» verkko ruuhkan takia syytä vielä pienentää lähetysnopeutta» vastaanottaja lähetysnopeus ok lähettäjä ei voi tietää kumpi