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

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

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

ELEC-C7241 Tietokoneverkot Kuljetuskerros

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

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

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

Kuljetuskerros. Kirja sivut: ,

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

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

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

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

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

OSI ja Protokollapino

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Monimutkaisempi stop and wait -protokolla

3. Kuljetuskerros 3.1.

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

Tietoliikenteen perusteet

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

kynnysarvo (threshold)

kynnysarvo (threshold)

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

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

Kuljetuskerroksen protokollat

11/20/ Siirron optimointi

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

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

S Teletekniikan perusteet

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

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

Miten Internet toimii?

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2012

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

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

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

Tehtävä 2: Tietoliikenneprotokolla

Tietoliikenne II Kurssikoe

Chapter 3 Transport Layer. Kuljetuskerros

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

Kertaus. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2011

Kertaus. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

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

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat

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

Miten Internet toimii?

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

Internet Protocol version 6. IPv6

TCP/IP-protokollapino. Verkkokerros ja Internetprotokolla. Sisältö. Viime luennolla. Matti Siekkinen

Kertaus. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2012

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

Siirto- ja verkkokerrokset. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014

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

Protokollien yleiset toiminnot

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

ITKP104 Tietoverkot - Teoria 3

TCP:n vuonohjaus (flow control)

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit)

Tietoliikenteen perusteet: Kokeeseen tulevista asioista

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Pertti Pennanen OSI 1 (4) EDUPOLI ICTPro

T Tietokoneverkot kertaus

Chapter 3 Transport Layer. Kuljetuskerros

Miten Internet toimii. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2013

Ongelma 1: Ei saada kolmea toistokuittausta

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

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

Tietoliikenne II (2 ov)

Luento 5: Kuljetuskerros

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end

6. Kuljetuskerros 6.1. Kuljetuspalvelu

Linkkikerros, tiedonsiirron perusteet. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

Chapter 3 Transport Layer. Kuljetuskerros

Tietoliikenne II (2 ov)

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

Verkkokerros ja Internetprotokolla

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

peittää verkkokerroksen puutteet

Lisää reititystä. Tietokoneverkot 2009 (4 op) Syksy Futurice Oy. Lisää reititystä. Jaakko Kangasharju

Transkriptio:

TCP/IP-protokollapino Kuljetuskerros Matti Siekkinen T-110.2100 Johdatus tietoliikenteeseen kevät 2010 kerros Middleware: HTTP, SSL, XML... Kuljetuskerros: TCP, UDP,... Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, MPLS, WLAN, GPRS... Asiakas/palvelinsovellukset ja monenväliset palveluarkkitehtuurit Tiedonsiirto päästä päähän, Internetin yli (end to end) Tiedonsiirto yhden linkin yli 2 Sisältö Kuljetuskerroksen tehtävä ja ominaisuudet UDP (User Datagram Protocol) Luotettava tiedonsiirto TCP (Transmission Control Protocol) Ruuhkanhallinnan perusteet Tämän luennon jälkeen Ymmärrätte: kuljetuskerroksen tehtävän ja toiminnan luotettavan tiedonsiirron erityyppiset menetelmät UDP:n ja TCP:n toimintaperiaatteet Tiedostatte: Mitä on ruuhkanhallinta ja miksi sitä tarvitaan 3 4

Kuljetuskerroksen tehtävä Kuljetuskerros yhdistää sovelluksia Viestejä päätelaitteen sovelluksesta toiseen (end-to-end) Aktiivisia sovelluksia voi olla monia yhtäaikaa yhdessä päätelaitteessa Kuljetuskerros tarjoaa sovelluksille erilaisia palveluita Luotettava/epäluotettava tiedonsiirto Viestinvälitys (grammi) tai tavuvirta Kuljetuskerros toteutetaan eri protokollilla, jotka ovat vaihtoehtoisia TCP tarjoaa luotettavan tavuvirran palveluna sovellukselle UDP tarjoaa epäluotettavan viestinvälityksen palveluna Myös muita, ei käsitellä tällä kurssilla Kuljetuskerroksen ominaisuuksia Portti Jokaisella päätelaitteella on osoite (IP) Portti (16-bittinen numero) identifioi sovelluksen päätelaitteessa Monta aktiivista yhtäaikaisesti Well-known port numbers: 0-1023 Varattuja, esim. 80=HTTP, 53=DNS Internet Assigned Numbers Authority: www.iana.org Socket rajapinta Sovelluksen ja kuljetuskerroksen protokollan välissä Porttinumero määräytyy sokettia luodessa Data välitetään segmentteinä UDP viesti, TCP tavuvirran osa Kapseloidaan pakettiin alemmalla kerroksella (IP) 5 6 UDP User Datagram Protocol Standardi RFC-768 UDP tarjoaa epäluotettavan yhteydettömän kuljetuspalvelun Kevyt, ei tilaa, ei yhteydenmuodostusta, helppo toteuttaa Datagrammien välitys päätelaitteessa Kohdeosoitteen ja kohdeportin avulla UDP UDP välittää grammeja (viesti) Source port Length Data Destination port UDP checksum Tarkistussummaan lasketaan sekä otsake että Ei ole välttämätön UDP-sovelluksia: DNS, Radius, NTP, SNMP, RTP (VoIP) 7 8

UDP-kaappaus: dig (DNS) UDP-kaappaus: DNS kysely siekkine@b128-dell:~$ dig www.hs.fi ; <<>> DiG 9.4.2-P2 <<>> www.hs.fi ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50872 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 ;; QUESTION SECTION: ;www.hs.fi. IN A ;; ANSWER SECTION: www.hs.fi. 600 IN A 194.137.237.63 ;; AUTHORITY SECTION: hs.fi. 600 IN NS ns4.sanoma.fi. hs.fi. 600 IN NS ns3.sanoma.fi. hs.fi. 600 IN NS ns2.sanoma.fi. hs.fi. 600 IN NS ns1.sanoma.fi. ;; ADDITIONAL SECTION: ns1.sanoma.fi. 27395 IN A 194.137.237.33 ns2.sanoma.fi. 27395 IN A 194.137.237.34 ns3.sanoma.fi. 58894 IN A 195.165.77.83 ns4.sanoma.fi. 58894 IN A 195.165.77.84 ;; Query time: 54 msec ;; SERVER: 130.233.192.1#53(130.233.192.1) ;; WHEN: Thu Feb 18 22:01:29 2010 ;; MSG SIZE rcvd: 186 9 10 UDP-kaappaus: DNS vastaus Sisältö Kuljetuskerroksen tehtävä ja ominaisuudet UDP (User Datagram Protocol) Luotettava tiedonsiirto TCP (Transmission Control Protocol) Ruuhkanhallinnan perusteet 11 12

Luotettava tiedonsiirto Luotettava tiedonsiirto Linkit eivät ole luotettavia Bittivirheet korruptoivat paketteja Esim. langattomat linkit Alempi verkkokerros (IP) ei ole luotettava Reittittimet tietoisesti pudottavat paketteja Kuljetuskerros varmistaa että lähetetty tieto pääsee ehjänä perille Lähettävältä sovelluksesta vastaanottavalle sovellukselle Miksi kuljetuskerros? kerros Redundanttia samaa toiminnallisuuden toteuttamista Alemmat kerrokset Per-hop (linkki) luotettavuus ei aina riitä Paketit voivat korruptoitua reitittimen muistissa ARQ: Automatic Repeat Request Virheenkorjauksen konsepti Oikeastaan joukko tekniikoita mm. TCP hyödyntää tätä Kuittaukset ja segmentin uudelleenlähetys Muitakin on.. Forward Error Correction (FEC) Hybridit 13 14 ARQ mekanismit Tarkistesumma Korruptoituneen segmentin havaitseminen : positiivinen kuittaus Vastaanotin segmentin ok N: negatiivinen kuittaus Segmentti rikki, lähetä uudelleen Sekvenssinumerot Erottaa uuden n uudelleenlähetetystä Esim. korruptoitunut Ajastimet Lähetä uudelleen paketti jollei kuulu kuittausta Kadonneiden pakettien aiheuttamat tilanteet waiting for ack aika A N B sama segmentti segmentti korruptoitunut 15 16

waiting for ack kuittaus korruptoitunut A B sama segmentti uusi segmentti -> anna sovellukselle ARQ mekanismit Tarkistesumma Korruptoituneen segmentin havaitseminen : positiivinen kuittaus Vastaanotin segmentin ok N: negatiivinen kuittaus Segmentti rikki, lähetä uudelleen Sekvenssinumerot Erottaa uuden n uudelleenlähetetystä Esim. korruptoitunut kuittaus Ajastimet Lähetä uudelleen paketti jollei kuulu kuittausta Kadonneiden pakettien aiheuttamat tilanteet 17 18 A 1 waiting for ack sama kuittaus 2 segmentti korruptoitunut duplikaatti -> hylkää 2 B ARQ mekanismit Tarkistesumma Korruptoituneen segmentin havaitseminen : positiivinen kuittaus Vastaanotin segmentin ok N: negatiivinen kuittaus Segmentti rikki, lähetä uudelleen Sekvenssinumerot Erottaa uuden n uudelleenlähetetystä Esim. korruptoitunut kuittaus Ajastimet Lähetä uudelleen paketti jollei kuulu kuittausta Kadonneiden pakettien aiheuttamat tilanteet 19 20

A 1 sama kuittaus 2 segmentti korruptoitunut duplikaatti -> hylkää timeout X 2 2 B Stop-and-wait Vain yksi segmentti matkalla kerrallaan Uusi lähetetään kuittauksen tai timeoutin jälkeen 1-bittinen sekvenssinumero riittää Uusi segmentti, sekvenssinro vaihtuu Uudelleenlähetys, sama sekvenssinro Yksi bitti ei riitä, jos verkko saattaa kopioida kehyksiä Ei ole kovinkaan tehokas Linkin käyttöaste jää matalaksi Ratkaisu: segmenttien putkitus (pipelining) 21 22 Putkitus Useita segmenttejä matkalla yhtäaikaisesti Tarvitaan riittävä numeroavaruus sekvenssinumeroille Liukuva ikkuna (sliding window) Lähettäjä Suurin vastaanotettu kuittaus Lähetetty & kuitattu Voidaan lähettää Seuraavaksi lähetettävä Lähettäjän ikkuna Lähetetty & kuittaamaton Ei käytettävissä Go-Back-N ja Selective Repeat protokollat Huomattavasti parempi käyttöaste Riippuu viiveestä Seuraavaksi odotettu Vastaanotettu & kuitattu n ikkuna Suurin hyväksyttävissä Hyväksyttävissä Ei käytettävissä 23 Go-Back-N Segmentin kadotessa se ja kaikki sen jälkeen jo lähetetyt uudelleenlähetetään (eli go-back-n) Lähettäjä havaitsee kehyksen katoamisen aikakatkaisulla (timeout) Lähettäjällä ikkunan suuruinen puskuri Kumulatiiviset kuittaukset kuittaa vain oikeassa järjestyksessä saapuvat segmentit Ehjänä mutta väärässä järjestyksessä vastaanotetut hylätään Kuittauksen katoaminen ei vaarallista Myöhempi kuittaus korvaa sen TCP samankaltainen kuin Go-Back-N 24

Go-Back-N Selective Repeat Go-Back-N tehokkuus kärsii jos pitkä viive ja iso kaistanleveys Yksi kadonnut segmentti aiheuttaa paljon turhia uudelleenlähetyksiä Selective Repeat kuittaa erikseen jokaisen segmentin Lähettäjä uudelleenlähettää vain ei kuitatut segmentit lla on oltava riittävän suuri puskuri 25 26 Selective Repeat TCP Transmission Control Protocol Standardi RFC-793 Yhteydellinen protokolla Full duplex a molempiin suuntiin samanaikaisesti Luotettava tavuvirta Jakaa sovelluksen lähettämän tavuvirta segmentteihin Nämä kapseloidaan IP-paketeiksi Ominaisuuksia Kolmivaiheinen yhteyden muodostus ARQ virheenkorjaus Vuonhallinta Ruuhkanhallinta TCP on useimpien sovellusten käyttämä: SMTP, HTTP (WWW)... 27 28

TCP yhteys Yksiselitteisesti identifioidaan neljällä parametrilla Lähettäjän ja vastaanottajan osoitteet ja porttinumerot Segmenttien ohjaus (demux) päätelaitteessa Kaikki neljä parametria tarkistetaan Eroaa UDP:sta TCP soketti Vastaanottava soketti palvelun portissa Esim. portti 80 Web-palvelimessa Uusi soketti luodaan välittömästi uutta yhteyttä muodostettaessa 29 TCP-yhteyden muodostaminen three-way handshake Asiakas SYN, sekv x SYN, sekv y + x+1 y+1 SYN-paketit alustavat sekvenssinumerot satunnaisluvuilla x ja y Mahdollisia vanhoja vielä matkalla olevia paketit eivät sotke yhteyttä Kolmas paketti varmistaa ettei palvelin jää turhaan odottelemaan asiakasta Esim. SYN+ häviää Palvelin Voi sisältää jo a 30 TCP-yhteyden sulkeminen Voi olla yhdessä paketissä Client FIN FIN Server Kumpi tahansa osapuoli voi aloittaa sulkemisen Molemmat simplex-yhteydet suljetaan erikseen FIN paketin lähettämisen jälkeen ajastin käynnistyy Yhteys ei jää roikkumaan auki kuittausten hävitessä 31 TCP virheenkorjaus Go-Back-N tyyppinen ARQ Ajastimet, tarkistussummat, uudelleenlähetykset Suurin ero: TCP uudelleenlähettää vain kadonneet segmentit puskuroi myös epäjärjestyksessä tulleita segmenttejä Kumulatiiviset (positiiviset) kuittaukset Indikoi mitä sekvenssinumeroa vastaanottaja odottaa seuraavaksi Lasketaan tavuina aloitussekvenssinrosta Delayed s menetelmä: 1 kuittaus per 2 täyttä segmenttiä Lisäksi on mahdollista käyttää Selective Repeatia TCP S (selective acknowledgments) optio Virheenkorjauksesta tulee GBN+SR hybridi 32

TCP virheenkorjauksen ajastin Uudelleenlähetyksen ajastin Eli Retransmission timeout (RTO) Jokaisella segmentillä oma Ajastimen pituuden määritys Pitää olla: pidempi kuin edestakainen viive (RTT: Round trip time) mahdollisimman lyhyt jotta reagoidaan nopeasti virheisiin Säädellään koko ajan koska RTT vaihtelee myös RTT lasketaan painotettuna liikkuvana keskiarvona viiveestä RTT = (α*oldrtt)+((1-α)*newrttsample) (suositeltu α=0,9) RTO = β*rtt, β>1 (suositeltu β=2) Viiveen jatkuva mittaus Kulunut aika paketin lähetyksen ja sen kuittauksen vastaanottamisen välillä TCP vuonhallinta Eli flow control Vastaanottava sovellus kuluttaa a tietyllä nopeudella TCP yhteyden yli voidaan joskus lähettää tätä nopeammin Vuonhallinta varmistaa ettei näin tapahdu Menetelmä perustuu liukuvan ikkunan koon vaihteluun lähettäjä sovellus TCP puskurit verkko vastaanottaja sovellus TCP 33 34 Lähettäjä kirjoittaa TCP Vuonhallinta SEQ=0 0 4K Tyhjä Lähettäjä kirjoittaa TCP Vuonhallinta SEQ=0 0 4K Tyhjä =2048 WIN=2048 Lähettävä sovellus lähettää, vastaanottajan puskuri on nyt puolitäynnä. kuittaa ensimmäiset 2048 tavua ja ilmoittaa lähettäjälle että mahtuu vielä 2048 tavua. 35 36

Lähettäjä kirjoittaa kirjoittaa TCP Vuonhallinta SEQ=0 =2048 WIN=2048 0 4K Tyhjä Lähettäjä kirjoittaa kirjoittaa TCP Vuonhallinta SEQ=0 =2048 WIN=2048 0 4K Tyhjä SEQ=2048 Täysi Lähetys estetty SEQ=2048 =4096 WIN=0 Täysi Lähettävä sovellus lähettää toiset. n puskuri on nyt täynnä ja uuden n lähetys estetään. kuittaa seuraavat 2048 (yht. 4096) tavua ja ilmoittaa lähettäjälle ettei mahdu enempää. Uuden n lähetys on estetty. 37 38 Lähettäjä kirjoittaa kirjoittaa TCP Vuonhallinta SEQ=0 =2048 WIN=2048 0 4K Tyhjä Lähettäjä kirjoittaa kirjoittaa TCP Vuonhallinta SEQ=0 =2048 WIN=2048 0 4K Tyhjä Lähetys estetty SEQ=2048 =4096 WIN=0 =4096 WIN=2048 Täysi Lähetys estetty SEQ=2048 =4096 WIN=0 =4096 WIN=2048 Täysi Voi lähettää Vastaanottava sovellus lukee 2048 tavua puskurista ja TCP ilmoittaa lähettäjälle että taas mahtuu. Lähettäjä voi nyt lähettää uudet. Voi lähettää kirjoittaa 1K 1K SEQ=4096 Lähettävä sovellus kirjoittaa 1K. Vastaanottavan TCP:n puskurissa on 1K tilaa. 1K 39 40

TCP-otsake 0 15 31 Source port number virheenkorjaus Hdrl en Mistä alkaa (optiot) Rese rv. Acknowledgment number Flags TCP checksum Sequence number Options (if any) Data (if any) Destination port number Window size Urgent pointer vuonhallinta TCP-otsake: liput (flags) Liput ovat bittejä URG viestin urgent pointer osoittaa an, joka on aiheellista lukea ohi jonossa olevan n Esim. käyttäjä näppäilee interrupt-komennon kesken telnet-istunnon : kuittausnumero on aktiivinen PSH: tämän jälkeen ei toistaiseksi uutta a, välitä heti eteenpäin ei odoteta segmentin täyttymistä RST: resetoi yhteys SYN: yhteyden avaus FIN: yhteyden sulkeminen 41 42 TCP-otsake: optiot MSS: suurimman sallitun segmentin koko Window scaling: sovitaan kerroin jolla vastaanottajan ikkunan koko kerrotaan Tarvitaan koska window kenttä on usein liian pieni (max ~65KB) nykyaikaisille kaistanleveyksille Saadaan käyttöaste korkeammaksi S: Selective Repeat tyyliset kuittaukset Myös monia muita... Ruuhkanhallinta: Miksi? Verkon hetkellinen jäljellä oleva vapaa kaista vaihtelee Voi olla vähemmän kuin lähettävän ja vastaanottavan sovellusten kapasiteetti -> pelkkä vuonhallinta ei riitä Monta lähettäjää jakaa samoja verkkoresursseja Verkko voi siis olla pullonkaula Ruuhkanhallinta varmistaa että verkkoa ei ylikuormiteta lähettäjä sovellus TCP puskurit verkko vastaanottaja sovellus TCP 43 44

läpisyöttö viive Ruuhkanhallinta: Miksi? Verkkoelementeissä (reitittimet) on puskurit FIFO+drop tail Puskurin täyttyessä paketit joutuvat jonottamaan -> viive kasvaa Puskurien ollessa täynnä uudet paketit pudotetaan kuorma Paketteja pudotetaan Congestion collapse : Pudotettujen pakettien uudelleenlähetys Kasvattaa lisää kuormaa Uudelleenlähetetään tarpeettomasti vielä matkalla olevia paketteja Viive kasvaa nopeasti -> RTO ei pysy perässä Viive kasvaa yli maksimi RTOn Lisää edelleen kuormaa! Vrt. tulen sammuttaminen bensalla Reitittimet tekevät enenevästi turhaa työtä Esim. paketin pudottaa loppusuoralla oleva reititin Periaate: TCP Ruuhkanhallinta Kontrolloi jatkuvasti TCP lähetysnopeutta Kasvata nopeutta kun kaikki menee hyvin Pienennä nopeutta kun havaitaan ruuhkaa Esim. segmenttejä katoaa Miten? Ruuhkaikkunan (eli congestion window cwnd) avulla: lähetetyt kuittaamattomat tavut min(cwnd, rwnd) Lähetysnopeutta säädellään muuttamalla ruuhkaikkunan kokoa vuonhallinta Yhteenveto Kuljetuskerros tarvitaan yhdistämään sovelluksia Verkkokerros välittää viestejä koneelta koneelle Monia aktiivisia sovelluksia yhtäaikaa päätelaitteen sisällä Erityyppisiä palveluita UDP: epäluotettavan viestinvälitys TCP: luotettavan tavuvirta TCP:n ominaisuuksia ARQ virheenkorjaus Vuonhallinta vastaanottavan sovelluksen suojaksi Ruuhkanhallinta tarvitaan verkon ylikuormittumisen estämiseksi Ensi luennolla Verkkokerros eli IP-kerros Miten segmentit kulkevat lähettäjältä vastaanottajalle? Osoitteet, reititys ja forwardointi Myös ICMP, NAT(Network Address Translation), ARP, DHCP 47 48

Lisää TCP:tä Jatkokursseilla Miten TCP:n ruuhkanhallinta toimii? Tuhat ja yksi TCP versiota Mitä haasteita langattomat verkot luovat kuljetuskerrokselle? SCTP ja DCCP 49