ELEC-C7241 Tietokoneverkot Kuljetuskerros

Samankaltaiset tiedostot
Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

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 2013

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

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. CSE-C2400 Tietokoneverkot (osa 1) (osa 2) Matti Siekkinen. Tietokoneverkot 2016

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

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

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1.

Kuljetuskerroksen protokollat

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

Kuljetuskerroksen protokollat

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

kynnysarvo (threshold)

kynnysarvo (threshold)

Monimutkaisempi stop and wait -protokolla

Tietoliikenteen perusteet

Kuljetuskerroksen protokollat

OSI ja Protokollapino

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Kuljetuskerros. Kirja sivut: ,

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

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

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

Tietoliikenne II Kurssikoe

S Teletekniikan perusteet

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

TCP:n vuonohjaus (flow control)

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

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

Chapter 3 Transport Layer. Kuljetuskerros

Ongelma 1: Ei saada kolmea toistokuittausta

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit)

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

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/

11/20/ Siirron optimointi

Tietoliikenne II (2 ov)

Yhteenveto. CSE-C2400 Tietokoneverkot Matti Siekkinen

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat

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

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

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

Luento 5: Kuljetuskerros

Tehtävä 2: Tietoliikenneprotokolla

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

Tietoliikenne II (2 ov)

Yhteenveto. CSE-C2400 Tietokoneverkot

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

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

ITKP104 Tietoverkot - Teoria 3

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

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,

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

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

T Tietokoneverkot kertaus

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

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

Miten Internet toimii?

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

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

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

Tietoliikenteen perusteet. Kuljetuskerros

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

Tietoliikenteen perusteet. Kuljetuskerros

Internet ja tietoverkot 2015 Harjoitus 7: Kertaus

Kuljetuskerros. Chapter 3 Transport Layer. Kuljetuskerros. Kuljetuspalvelut ja -protokollat. Kuljetuskerros vs. verkkokerros

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ä

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

Tietoliikenteen perusteet. Kuljetuskerros

Chapter 3 Transport Layer. Kuljetuskerros

Chapter 3 Transport Layer. Kuljetuskerros

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2012

Pertti Pennanen OSI 1 (4) EDUPOLI ICTPro

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

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

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

Protokollien yleiset toiminnot

Tietoliikenteen perusteet

Tietoliikenteen perusteet

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Transkriptio:

ELEC-C7241 Tietokoneverkot Kuljetuskerros Pasi Sarolahti (kalvoja Matti Siekkiseltä) 23.1.2018

Laskareista Lisävuoro ke 16-18 U8 Edelleen myös ke 14-16 ja pe 12-14 Ke 14 16 tällä viikolla poikkeuksellisesti TU5:ssä Huoneen kapasiteetti: 40 henkilöä 23.1.2018 2

Työjärjestys Palautetta Yleistä kuljetuskerroksesta UDP Luotettavan protokollan ominaisuuksia Tauko Mininet - demo TCP Ruuhkanhallinta 23.1.2018 3

Palautteesta Materiaali paremmin onnistunut kuin edellisellä kierroksella Tehtävät kuivia, lisää ohjelmointia Enemmän automaattitehtäviä esseiden sijaan Ajastintehtävä hankala QUIC kiinnostava, tiedonhaku ok 22.1.2018 4

Internet-protokollapino Ohjelmistot (software) Sähköposti Facebook Web-selain Käyttöjärjestelmä (operating system, OS) Laiteajurit (drivers) Toteuttaa hajautetun palvelun Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros Erottaa sovellukset toisistaan yhdessä koneessa ja huolehtii yhteyksistä palvelun osien välillä Erottaa Internetverkon koneet toisistaan ja huolehtii yhteyksistä niiden välillä Sama kuin yllä, mutta lähiverkossa

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 (datagrammi) 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 6

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 Applications DNS IRC xyz 53 6667 65000 Transport (TCP/UDP) IP 7

Kuljetuskerroksen ominaisuuksia Pistokerajapinta 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) 8

Kapselointi (encapsulation) Ylemmän kerroksen protokollan viesti kapseloidaan alemman kerroksen viestin sisään Otsake (header) eteen Dekapseloidaan toisessa päässä Sovelluksen lähettämä data kapseloidaan kuljetuskerroksen (TCP tai UDP) segmenttiin otsakkeet HTTP appl. data tietosisältö (payload) TCP/UDP segment IPv4/6 packet Ethernet/ Wi-Fi/ frame CRC

UDP

UDP User Datagram Protocol Standardi RFC-768 UDP tarjoaa epäluotettavan yhteydettömän kuljetuspalvelun Minimaalinen kuljetuskerroksen protokolla Kevyt, ei tilaa, ei yhteydenmuodostusta, helppo toteuttaa Datagrammien välitys päätelaitteessa Kohdeosoitteen ja kohdeportin avulla 11

UDP UDP välittää datagrammeja (viesti) lähettäjän porttinro pituus viestin sisältö vastaanottajan porttinro UDP tarkistesumma otsake Kaikki otsakkeen kentät 16 bittiä pitkiä Tarkistussummaan lasketaan sekä otsake että data Ei ole välttämätön 12

Luotettavan tiedonsiirtoprotokollan rakentaminen 23.1.2018 13

Putkitus Useita segmenttejä matkalla yhtäaikaisesti Tarvitaan riittävä numeroavaruus sekvenssinumeroille Liukuva ikkuna (sliding window) Suurin vastaanotettu kuittaus Lähettäjä Seuraavaksi lähetettävä Vastaanottaja Seuraavaksi odotettu Suurin hyväksyttävissä Lähettäjän ikkuna Vastaanottajan ikkuna Lähetetty & kuitattu Lähetetty & kuittaamaton Vastaanotettu & kuitattu Hyväksyttävissä Voidaan lähettää Ei käytettävissä Ei käytettävissä 14

Putkitus Useita segmenttejä matkalla yhtäaikaisesti Tarvitaan riittävä numeroavaruus sekvenssinumeroille Liukuva ikkuna (sliding window) Suurin vastaanotettu kuittaus Lähettäjä Seuraavaksi lähetettävä Vastaanottaja Seuraavaksi odotettu Suurin hyväksyttävissä Lähettäjän ikkuna Vastaanottajan ikkuna Lähetetty & kuitattu Lähetetty & kuittaamaton Vastaanotettu & kuitattu Hyväksyttävissä Voidaan lähettää Ei käytettävissä Ei käytettävissä 15

Go-Back-N 16

Selective Repeat 17

TCP

TCP-yhteyden muodostaminen Asiakas three-way handshake SYN-paketit alustavat sekvenssinumerot satunnaisluvuilla x ja y Mahdolliset vanhat vielä matkalla olevat paketit eivät sotke yhteyttä Kolmas paketti varmistaa ettei palvelin jää turhaan odottelemaan asiakasta SYN+ACK häviää tai asiakas keskeyttää SYN, sekv x SYN, sekv y + ACK x+1 ACK y+1 Voi sisältää jo dataa Palvelin 19

TCP:n toiminta Kolme päätehtävää kun yhteys on muodostettu 1. Virheenkorjaus Epäluotettavan verkkokerroksen takia 2. Vuonhallinta Otetaan huomioon hidas vastaanottava sovellus 3. Ruuhkanhallinta Vältetään verkon ylikuormitustilanteita Lähettäjä Vastaanottaja Sovellus puskurit Sovellus TCP Verkko TCP Lisäksi: pidä suorituskyky mahdollisimman hyvänä

TCP virheenkorjauksen ajastin Ajastimen sopiva pituus Pidempi kuin kiertoviive Muuten uudelleenlähetetään vielä matkalla olevia paketteja Mahdollisimman lyhyt jotta reagoidaan nopeasti virheisiin Pitää säätää koko ajan koska kiertoviive vaihtelee myös läh. vo ajastimen pituus data 1 ACK 2 21

TCP:n uudelleenlähetysajastin 22

Fast Retransmit Host A Host B Kuittaus kertoo aina seuraavan puuttuvan paketin sekvenssinron à Duplikaattikuittaukset merkitsee kadonnutta tai virheellistä pakettia! FR: Ei odoteta ajastinta vaan uudelleenlähetetään heti 3 duplikaattikuittauksen jälkeen Miksi odottaa kolme duplikaattia? Joskus verkko uudelleenjärjestää paketteja à vältetään turhia uudelleenlähetyksiä seq # x1 seq # x2 seq # x3 seq # x4 seq # x5 kolme duplikaattikuittausta timeout X ACK x1 ACK x1 ACK x1 ACK x1 time

TCP vuonhallinta Eli flow control Vastaanottava sovellus kuluttaa dataa 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 puskurit vastaanottaja sovellus TCP verkko TCP 24

Lähettäjä Sovellus kirjoittaa 2K sokettiin TCP Vuonhallinta 2K SEQ=0 Vastaanottaja 0 4K Tyhjä 2K Lähettävä sovellus lähettää 2K, vastaanottajan puskuri on nyt puolitäynnä. 25

Lähettäjä Sovellus kirjoittaa 2K sokettiin TCP Vuonhallinta 2K SEQ=0 ACK=2048 WIN=2048 Vastaanottaja 0 4K Tyhjä 2K Vastaanottaja kuittaa ensimmäiset 2048 tavua ja ilmoittaa lähettäjälle että mahtuu vielä 2048 tavua. 26

Lähettäjä Sovellus kirjoittaa 2K sokettiin Sovellus kirjoittaa 2K sokettiin TCP Vuonhallinta 2K SEQ=0 ACK=2048 WIN=2048 2K SEQ=2048 Vastaanottaja 0 4K Tyhjä 2K Täysi Lähettävä sovellus lähettää toiset 2K. Vastaanottajan puskuri on nyt täynnä ja uuden datan lähetys estetään. 27

Lähettäjä Sovellus kirjoittaa 2K sokettiin Sovellus kirjoittaa 2K sokettiin Lähetys estetty TCP Vuonhallinta 2K SEQ=0 ACK=2048 WIN=2048 2K SEQ=2048 ACK=4096 WIN=0 Vastaanottaja 0 4K Tyhjä 2K Täysi Vastaanottaja kuittaa seuraavat 2048 (yht. 4096) tavua ja ilmoittaa lähettäjälle ettei mahdu enempää. Uuden datan lähetys on estetty. 28

Lähettäjä Sovellus kirjoittaa 2K sokettiin Sovellus kirjoittaa 2K sokettiin { Lähetys estetty TCP Vuonhallinta 2K SEQ=0 ACK=2048 WIN=2048 2K SEQ=2048 ACK=4096 WIN=0 ACK=4096 WIN=2048 Vastaanottaja 0 4K Tyhjä 2K Täysi 2K Voi lähettää 2K Vastaanottava sovellus lukee 2048 tavua soketista ja TCP ilmoittaa lähettäjälle että taas mahtuu. Lähettäjä voi nyt lähettää uudet 2K. 29

Lähettäjä Sovellus kirjoittaa 2K sokettiin Sovellus kirjoittaa 2K sokettiin Lähetys estetty { TCP Vuonhallinta 2K SEQ=0 ACK=2048 WIN=2048 2K SEQ=2048 ACK=4096 WIN=0 ACK=4096 WIN=2048 Vastaanottaja 0 4K Tyhjä 2K Täysi 2K Voi lähettää 2K 1K SEQ=4096 1K 2K Sovellus kirjoittaa 1K sokettiin Lähettävä sovellus kirjoittaa 1K sokettiin. Vastaanottavan TCP:n puskurissa on 1K tilaa. 30

Ruuhkanhallinta

Ruuhkanhallinta: Miksi? Verkkoelementeissä (reitittimet) on puskurit FIFO+drop tail Puskurin täyttyessä paketit joutuvat jonottamaanà viive kasvaa Puskurien ollessa täynnä uudet paketit pudotetaan läpisyöttö viive 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! Reitittimet tekevät enenevästi turhaa työtä Esim. paketin pudottaa loppusuoralla oleva reititin

Slow Start (SS) Aloitetaan hitaasti: lähetetään vain yksi segmentti (cwnd=1) Jokainen uusi kuittaus kasvattaa ruuhkaikkunaa yhdellä RTT Host A Host B Ikkunan koko kasvaa exponentiaalisesti Ideana on uuden yhteyden lähetysnopeuden nopea kasvattaminen SS käytössä: Uuden TCP-yhteyden alussa RTO ajastimen laukeamisen jälkeen à ruuhkatilanne aika

Congestion Avoidance (CA) Lähestytään verkon (polun) kapasiteettia varovaisemmin Kasvatetaan ruuhkaikkunaa yhdellä kun vastaanotettu ikkunan verran kuittauksia (eli +1 per RTT) RTT Host A Host B Periaate on välttää pahoja ruuhkatilanteita Verkon vaikea toipua (uudelleenlähetykset) time 34

TCP slow start ja timeout 35

TCP fast retransmit 36