6. De Transportlaag. Transportlaag introductie

Vergelijkbare documenten
in3001: Datacommunicatie en netwerken: Transportlaag

IN2220 Computernetwerken: Transportlaag

Bij rekenvragen de berekening opschrijven. Bij beredeneringsvragen de motivering geven.

Computerarchitectuur en netwerken. TCP congestion control Netwerklaag

4IP = Internet Protocol 4Protocol gebruikt op netwerk laag in het internet 4Geen betrouwbaarheid

Computerarchitectuur en netwerken. TCP congestion control Netwerklaag

LAN, MAN, WAN. Telematica. Schakeltechnieken. Circuitschakeling. 4Wordt vooral gebruikt in het telefoonnetwerk 4Communicatie bestaat uit 3 fasen:

Computerarchitectuur en netwerken. Transportlaag

Inhoud. Packet Tracer x. Labs xi

Outline. Transport Layer Design Goals. EEC-484/584 Computer Networks. Services Provided to the Upper Layers. Lecture 16. Wenbing Zhao

Modem en Codec. Telematica. Amplitude-modulatie. Frequentie-modulatie. Soorten modems. Fase-modulatie

Infrastructuur Samengesteld door Leon Wetzel

Hoofdstuk 15. Computernetwerken

Tweede deeltentamen Netwerken (INFONW) 29 juni 2009

Computerarchitectuur en netwerken. Multicast protocollen Datalinklaag/LANs

OSI model. Networking Fundamentals. Roland Sellis

Computernetwerken Deel 2

Tentamen Telematica Systemen en Toepassingen (261000) 8 november

Netwerken. 6 januari 2014 David N. Jansen

Tentamen Telematica Systemen en Toepassingen (261000) 7 november 2007,

Tentamen Telematica Systemen en Toepassingen ( /1) 9 november 2011,

Computerarchitectuur en netwerken. Transportlaag

Computerarchitectuur en netwerken. Multimedia in netwerken

Examen Telematica Systemen en Toepassingen (261000) 22 juni 2004

Inhoud Het netwerk verkennen 1 2 Confi gureren van het IOS 41

Op dit lesmateriaal is een Creative Commons licentie van toepassing Remie Woudt

Computerarchitectuur en netwerken. Multicast protocollen Datalinklaag/LANs

Computernetwerken! SMTP Simple Mail Transfer Protocol, POP Post Ofice Procotol

xxter Mobotix T24 configuratie

Presentatie TCP/IP voor LPCB Nederland 20 en 28 juni 2011

LAN segment. Virtual local area network. Twee LAN segmenten. Evolutie. een enkelvoudige hub of switch is een fysisch LAN segment (Ethernet segment)

DSLSTL. Handleiding Copyright Handleiding DSLSTL Pagina 1 of 11

Computerarchitectuur en netwerken. Multimedia in netwerken

Netwerksimulatie Verslag 1

RUCKUS UNLEASHED GATEWAY

Part 17-A INTERNET: basisbegrippen techniek & beveiliging

IP & Filtering. philip@pub.telenet.be

Tentamen Telematica Systemen en Toepassingen (261000) 3 november 2004

DJANAH, EEN TOTAL CONVERSATION VIDEO TELEFOON IN DE WEB BROWSER TECHNISCHE EISEN VOOR TOLK OP AFSTAND OP LOCATIE, NETWERK EN COMPUTERS

Hoofdstuk 15. Computernetwerken

Tentamen Telematica Systemen en Toepassingen (261000) 3 november 2010,

In figuur 1 is de traditionele oplossing afgebeeld om LAN's onderling aan elkaar te koppelen via gehuurde WAN-verbindingen.

QoS / Quality Of Service

Datacommunicatie Computercommunicatie

Het begrip 'Proces' Proces-toestand

NGN. Wageningen, 30 oktober Iljitsch van Beijnum

Tentamen Telematica Systemen en Toepassingen (261000) 4 november 2009,

Reliable Messaging. Marc de Graauw

Temperatuur logger synchronisatie

Computernetwerken: Opgeloste vragen. Kenneth Hoste

IN1805 I Operating System Concepten

BRIGHT-NET INSTALLATIE HANDLEIDING

chello academy cursusboek TCP/IP Een handleiding over het Transmission Control Protocol/Internet Protocol

Basis Netwerkconfiguratie. Ing. Tijl Deneut Lector Toegepaste Informatica Howest Onderzoeker XiaK, UGent

Computerarchitectuur en netwerken. Inleiding NETWERKEN

Configureren van de Wireless Breedband Router.

Toetsmatrijs examen 8432

Taxis Pitane. Transporter. Censys BV Eindhoven

5. De netwerklaag. De funktie van de netwerklaag - De datalink brengt frames van het ene punt van een transmissiekanaal naar een ander.

5. De netwerklaag. De funktie van de netwerklaag

Hier kunt u alle schijven en mappen afscannen op audio bestanden die ondersteund worden door de MP (mp3 en wma).

SIP analyse. Handleiding

API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8

Les D-02 Datacommunicatie op Ethernet en Wifi netwerken

Revisie geschiedenis. [XXTER & KNX via IP]

The OSI Reference Model

computernetwerken - antwoorden

Communications and Networking: An Introduction

Veelgestelde vragen Corporate en Zakelijk Internet

Wat basiskennis... IPv4, is het einde nabij? Applicatie. Sessie. Fysiek

Uitwerking 1 Netwerken, toets 3 (INFONW) 31 januari 2005

Examen Telematica Systemen en Toepassingen (261000) 18 augustus 2004

Het koppelen van de u-remote aan de AC500-eco via Modbus TCP. A quick start guide. Jaap Ruiten

MULTIMEDIABOX.nl Custom made solutions hardware & software. Advanced Menu

N.B.: Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 13

5-1. De funktie van de netwerklaag - De datalink brengt frames van het ene punt van een transmissiekanaal naar een ander. 5.

Xelion ESPA koppeling Handleiding Beheer V1.6

TCP/IP-stack extensies Onderzoeksproject in opdracht van SURFnet

Computerarchitectuur en netwerken. Gedistribueerde IPC

Communicatienetwerken Antwoorden en vragen Met dank aan:

2 Het ISO-OSI-model en het

Implementatie van een HTTP-server mbv sockets

Computerarchitectuur en netwerken. Inleiding NETWERKEN

Configureren van een VPN L2TP/IPSEC verbinding

OSI-model. Mogelijke toepassingen van netwerken. Protocollen. Eenvoudig MS-DOS netwerk (LAN) Novell, IPX / SPX. Applicatie laag.

CPU scheduling : introductie

Verslag Project Gedistribueerde Systemen

1. Controleren van de aansluiting op de splitter

Installatie & Configuratiehandleiding. Socket Server. OpenAT applicatie

Koppelen Centix Datacollecter aan RS-485 bus d.m.v. de Moxa 5150.

Handleiding Remote Engineer Client

Instellingen Microsoft ISA server

1945, eerste DC. Eigen logo

OP6800/ OP6810: C-programmeerbare besturingscontrollers: OP6800-serie.

BRIGHT-NET INSTALLATIE HANDLEIDING

Virtueel Geheugen en demand paging (1)

Connectivity SQL Er kan geen verbinding worden gemaakt met de SQL server

Transcriptie:

6. De Transportlaag 1 Transportlaag introductie taak: betrouwbaar en goedkoop datatransport van bronproces naar doelproces. Transportlaag is alleen in bron- en doelmachine aanwezig Transportlaag levert diensten aan hogere lagen; Volgens OSI aan de sessielaag. Transportlaag kan ook rechtstreeks diensten leveren aan de applicatielaag. de dienst wordt uitgevoerd door transportentiteiten Een transportentiteit wisselt TPDU's uit met zijn peer aan de andere kant TPDU's worden uitgewisseld door ze aan te bieden aan de netwerklaag 2

Transportlaag Entiteiten, adressen, TPDU's Applicatie of Sessielaag Applicatie of Sessielaag Transport Adres Transport Entiteit TPDU 's Transport Entiteit Netwerk Adres Netwerklaag Netwerklaag 3 Transportlaag vergelijking met netwerklaag Transportdiensten lijken op netwerkdiensten, b.v. verbindingsgericht/verbindingsloze diensten addressering stroombeheersing maar: netwerklaag is onderdeel van het (communicatie)subnet ; transportlaag kan fouten van de netwerklaag herstellen. 4

Transportlaag Transportdienst primitieven (1) Transportdienst primitieven vormen het interface tussen de applicatie en de transportdienst. Verschil met netwerkdienst interface: Transport interface is eenvoudiger, want Netwerk interface bestemd voor de transportentiteit, maar Transport interface ook bestemd voor gebruikers (programmeurs) Transportlaag levert betrouwbare service, transportentiteit zorgt ervoor dat problemen onzichtbaar zijn voor de gebruiker. 5 Transportlaag Transportprimitieven (2) voorbeeld: eenvoudige verbindingsgerichte transportdienst primitieven: LISTEN CONNECT SEND RECEIVE DISCONNECT bij één server en meerdere clients maken van verbinding door: server: LISTEN; client: CONNECT voor data-transport: client en server : SEND en RECEIVE voor beëindigen van de verbinding: client en server gebruiken: DISCONNECT 6

CR ontvangen Transportlaag Transportprimitieven (3) server client IDLE Connect uitgevoerd PASSIVE CONNECT PENDING Connect uitgevoerd CONNECTED CR ontvangen ACTIVE CONNECT PENDING PASSIVE DISCONNECT PENDING Disconnect uitgevoerd Italics = TPDU ontvangen DR ontvangen IDLE Disconnect uitgevoerd vet = primitive uitgevoerd DR ontvangen ACTIVE DISCONNECT PENDING 7 Transportlaag Transportprimitieven (4) Voorbeeld: UNIX en TCP Gaat uit van een client en een server Server: creëert een socket m.b.v. socket system call koppelt socket aan TCP/IP adres d.m.v bind kondigt bereidheid tot verbinding aan d.m.v. listen accepteert verbinding d.m.v accept, krijgt hierbij een nieuwe socket ontvangen en zenden van buffers d.m.v. read en write (via socket) 8

Transportlaag Transportprimitieven (5) Voorbeeld UNIX en TCP (vervolg) Client: creëert socket d.m.v. socket vraagt verbinding d.m.v connect zenden en ontvangen van buffers d.m.v. write en read (m.b.v sockets) N.B. Dit betekent dat servers vaak permanent aanwezig zijn, wachtend tot er een verzoek van een client binnenkomt. Dit type processen wordt daemons genoemd. 9 Transportlaag Transportprimitieven (6) Server Client 6 accept proces A socket 1 4 7 read listen 3 10 9 write 8 socket2 socket1 socket read write proces B socket bind 2 5 connect AdresA voorbeeld: UNIX en TCP/IP 10

Transportprotocollen introductie Gelijkenis met datalinkprotocollen foutbeheersing volgorde bewaking stroombeheersing verschillen met datalink protocollen datalink laag communiceert via één fysiek kanaal, transportlaag communiceert via subnet, gevolgen voor: adressering maken van een verbinding geheugencapaciteit in het subnet kwantiteit: groot aantal buffers, dynamisch variërend 11 Transportprotocollen adressering (1) Transport adressen TSAP's (b.v. IP-adres + poortnummer) Netwerk adressen NSAP's (b.v. IP-adres) 1 transport entiteit support meerdere TSAP's sommige machines hebben ook meerdere NSAP's Mogelijkheden om verbinding tot stand te brengen: bekende TSAP (vast) Initial Connection Protocol (proces server creëert een server) voorbeeld: UNIX: Inetd name server of directory server voorbeeld: Internet: Domain Name System (DNS) 12

Transportprotocollen adressering(2) Inetd (internet daemon) maakt het mogelijkhet aantal daemons te beperken inetd is a.h.w. een superdaemon luistert naar een groot aantal poorten (opgegeven in /etc/inetd/conf en /etc/services) Wanneer een request bij één van deze poorten binnenkomt, zorgt inetd ervoor dat de code van de bijbehorende server wordt uitgevoerd. voordeel van inetd: minder daemons nodig (minder overhead) eenvoudiger server programma's 13 Transportprotocollen Het maken van een verbinding (1) In principe één transportentiteit geeft CR TPDU, en wacht op CA TPDU probleem: duplicaat TPDU's (gevolg van aflopen van timer) Oplossing: maximum leeftijd voor pakketten vaststellen. daarna te garanderen dat geen duplicaat-tpdu's niet mogelijk zijn. 14

Transportprotocollen Het maken van een verbinding (2) Unieke nummering bij eindige levensduur (T) van TPDU's Methode van Tomlinson, basisprincipes: ieder systeem heeft een TOD klok klok loopt door als systeem down TPDU's krijgen nummers nummer van eerste TPDU gebaseerd op laatste k-bits van waarde van TOD-klok nummer van volgende TPDU steeds 1 hoger verboden gebied zorgt ervoor dat nooit 2 TPDU's kunnen bestaan met hetzelfde nummer en van dezelfde afzender 15 Transportprotocollen Het maken van een verbinding (3) Methode Tomlinson NR T Verboden gebied Aanvankelijke volgnummers mogelijke verdere volgnummers TIJD 16

Transportprotocollen Het maken van een verbinding (4) Bij verzenden van een TPDU eerst te controleren of deze niet in het verboden gebied valt. Dit kan als gevolg van: te snel aanbod van TPDU's te traag aanbod van TPDU's 17 Transportprotocollen Het maken van een verbinding (5) Probleem: hoe worden beide partijen het eens over de te gebruiken nummers? oplossing: Drievoudige handdruk (three-way handshake) Een three-way handshake is een mechanisme waarbij 3 PDU's worden overgebracht. Stel A is de initiatiefnemer en B is de andere partij. 1. Een verzoek van A naar B 2. Een reactie van B op 1) 3. Een reactie van A op 2) Een vertraagde TPDU kan daardoor geen verbinding veroorzaken. 18

Transportprotocollen Het maken van een verbinding (6) Drievoudige handdruk, scenario zonder fouten CR(x) CA(y,ack(x)) DATA(x,ack(y),data) Tijd 19 Transportprotocollen het verbreken van verbindingen (1) Asymmetrisch: één partij geeft DISCONNECT. probleem: mogelijk verlies van data Symmetrisch: beide partijen moeten het eens zijn. probleem: Het twee-leger probleem redelijke oplossing: three-way handshake met time-out. 20

Transportprotocollen Het verbreken van verbindingen (2) Het twee-leger probleem B B W 21 Transportprotocollen Het verbreken van verbindingen (3) Drievoudige handshake voor het verbreken van een verbinding Zet timer DR DC Zet timer ACK herhaal DR eindig verbinding 22

Buffering en Flow control (1) vergelijkbaar met datalinklaag overeenkomst: glijdend venster verschil router heeft weinig lijnen, een host heeft veel verbindingen voor de transportentiteiten geldt: Bij onbetrouwbare netwerkdienst: zender moet TPDU's altijd bewaren, totdat zij bevestigd zijn bij betrouwbare netwerkdienst: als de ontvanger garandeert dat TPDU's worden geaccepteerd : zender hoeft niet TPDU's te bewaren anders wel 23 Buffering and Flow Control (2) Flow control in T-laag gebaseerd op een sliding-window protocol met variabele window size ACK ontkoppelt van verschuiven van window Window size bepaalt door credit Voorbeeld 01234567 01234567 b0 b1 Ack 1, Credit 1 Geeft kans op deadlock bij credit 0 24

Buffers en Flow Control (3) netwerkcapaciteit Flow control primair bedoeld om ontvanger te beschermen tegen te snelle zender Zender moet ook afgeremd worden wanneer hij meer dreigt te zenden dan capaciteit van het subnet toelaat zender moet maximaal uitstaande TPDU's (windowsize) aanpassen aan capaciteit van het subnetwerk capaciteit van subnet is c TPDU's per seconde 'cyclustijd' van subnet is r seconde windowsize w = cr c en r variëren en moeten regelmatig (door de zender) bepaald worden. 25 Multiplexing Opwaartse multiplexing: meerdere transportverbindingen over 1 virtueel circuit aspecten tsap tsap tsap kosten respons id nodig in transportheader nsap Neerwaartse multiplexing: één transportverbinding gebruikt meerdere virtuele circuits aspecten grotere bandbreedte (mits onderliggende lagen voldoende) tsap nsap nsap nsap 26

Herstel na storingen (1) storing in netwerklaag (verbinding weg, of datagrammen zoek), eenvoudig op te lossen door transportlaag host down is moeilijk (transportlaag in host) Bij stop-and-wait protocol, 2 mogelijke toestanden van andere partij op het moment van down gaan: T1: wel uitstaande TPDU's T0: geen uitstaande TPDU's mogelijke acties bij het weer opkomen hangen samen met de manier waarop berichten vanuit de transportentiteit worden doorgegeven aan de transportgebruiker: eerst bericht doorgeven, daarna ACK sturen, of eerst ACK sturen en daarna bericht doorgeven 27 Herstel na Storingen (2) Mogelijke acties van zender, na down en herstart van de ontvanger: Ontvangende host AW (eerst ACK, daarna Write naar appl. of WA (eerst naar appl., daarna ACK) C = Crash, geeft aan waar Crash optreedt Ontvanger Zender C(AW) AC(W) AWC C(WA) WC(A) WAC Altijd R O.K. O.K. dubbel O.K. dubbel dubbel nooit R kwijt kwijt O.K. kwijt O.K. O.K. R als in T0 kwijt O.K. dubbel kwijt O.K. dubbel R als in T1 O.K. kwijt O.K. O.K. dubbel O.K. R betekent: retransmissie van laatst verzonden TPDU 28

Herstel na storingen (3) Bij host down is er geen strategie die onder alle omstandigheden goed werkt. Algemeen: Echte end-to-end bevestiging is niet te bereiken. (d.w.z. bevestiging betekent: het werk is gedaan, uitblijven betekent: het werk is niet gedaan) 29 Representatie van transportprotocollen (1) Een eenvoudig voorbeeld aanname: netwerkdiensten verbindingsgericht, foutloos Transportentiteit gerealiseerd als library functies in de user address space. 5 primitieven (LISTEN, CONNECT, etc) 6 types pakketten (Call-req, DataPkt, etc) 1 Timeout geeft in totaal 12 mogelijke events 7 mogelijke toestanden (IDLE, WAITING, etc) Het protocol is op verschillende manieren te representeren 30

Representatie van transportprotocollen (2) Eindige toestandsmachine in matrixvorm toestanden events p1:a1/t x p2:a2/t y p i predikaat; geeft voorwaarde, a i uit te voeren actie t i toestand, de nieuwe toestand 31 Representatie van transportprotocollen (3) Eindige toestandsmachine in matrixvorm voordelen van de matrixrepresentatie: volledig eenvoudige implementatie (soms) aansluiting op documentatie van de standaard 32

Representatie van transportprotocollen (4) d.m.v toestandovergangsdiagram WAITING SENDING CONNECT Clear _req Call_acc Clear_req SEND LISTEN Call_req IDLE ESTAB LISHED TIMEOUT DISCONNECT LISTEN Call_req RECEIVE QUEUED Data Clear_req RECEIVING DISCONNECT DISCON NECTING Clear_req, Clear_conf 33 Representatie van transportprotocollen (5) d.m.v toestandovergangsdiagram toestand bestaat soms uit meerdere toestanden volledige toestand wordt bepaald door variabelen blijkt uit predicaten in de matrix representatie voorbeeld: in IDLE toestand nog te onderscheiden: P1: connection table full P2: Call_req pending P3: LISTEN pending Alle mogelijke combinaties hiervan eveneens opnemen in toestandsdiagram. laat omvang aanzienlijk toenemen. 34

Representatie van transportprotocollen (6) d.m.v toestandovergangsdiagram Voordelen van representatie d.m.v. diagram: mogelijke gang van zaken beter te volgen Nadelen: moeilijker beoordelen van de volledigheid moeilijker implementatie 35 UDP (User Data Protocol) UDP is het verbindingsloze transportprotocol in Internet nuttig als er maar één bericht verzonden hoeft te worden. applicatie moet zelf nagaan of bericht is aangekomen. (goed mogelijk als het om een request-respons toepassing gaat) UDP header (8 bytes) bron poort doel poort lengte checksum 36

RPC (Remote Procedure Call) maakt het mogelijk functies in andere machines aan te roepen alsof het in de eigen address space is. past in client/server model gebruikt UDP of TCP het aanroepende programma (de client) bevat: een normale functie aanroep een stub (de client-stub) in plaats van de functie de stub zorgt voor marshalling (het verpakken van de parameters ) creatie van een bericht (waarin de parameters) voor de server het verzenden naar de server het uitpakken en doorgeven van het resultaat van de functie, de aanroeper is geblokkeerd tot het resultaat er is 37 RPC (2) De server bevat de aangeroepen functie stub (server stub), draagt zorg voor het uitpakken van de parameters het aanroepen van de functie het verpakken van het resultaat het versturen van het resultaat naar de client 38

RPC (3) 39 RPC (4) Uitvoering van een remote procedure lijkt op uitvoering van een locale procedure, belangrijkste verschillen: tijdsduur beperkingen aan parameter types b.v geen pointers geen globale variabelen probleem als antwoord uitblijft procedure mag alleen opnieuw gestart wordt als deze een idempotente operatie uitvoert 40

RTP (Real-time Transport Protocol) Voor Real time multimedia toepassingen gebruikt UDP werkwijze: verschillende streams worden gemultiplexed en gecodeerd in RTP pakketten RTP pakketten worden verpakt in UDP pakketten UDP stroom unicasting of multicasting RTP pakketten genummerd inhoud van ontbrekende pakketten schatten door interpolatie verschillende profielen mogelijk, bv GSM encoding, MP3 etc. time stamping relatief t.o.v. begin, bevordert correct afspelen RTCP (Real-time Transport Control Protocol) voor besturing (feedback) 41 RTP (2) 42

TCP introductie TCP (Transmission Control Protocol) ontstaan als het verbindingsgerichte transportprotocol van ARPA (DoD) TCP/IP protocolsuite standaard binnen Internet TCP beschreven in RFC's: 793 (1981), 1122 (1989), 1323 (1992) Verbindingsloze transportprotocol heet UDP (User Datagram Protocol) 43 TCP service verbinding tussen sockets socket komt overeen met TSAP, is: IP adres + poort ; (32 bits + 16 bits) 'well-known' ports voor standaard services (RFC 1700) b.v. FTP = poort 21; TELNET = poort 23 full duplex point-to-point (geen multicast, geen broadcast) byte stream (geen message stream) PUSH flag, d.w.z. verzend nu urgent data flag t.b.v. interrupts (b.v. ^C) 44

TCP protocol (1) bytes zijn genummerd (32 bits) data wordt verzonden in segmenten. (segment bevat header + data) segmentgrootte beperkt door IP-payload (64K) maximum transfer unit (MTU) per netwerk (b.v. 2K) flow control d.m.v. sliding window protocol met variabele grootte complicaties: segmenten kunnen gefragmenteerd zijn segmenten kunnen in de verkeerde volgorde aankomen opnieuw verzonden segementen kunnen anders gefragmenteerd zijn 45 TCP protocol (2) segment header vast deel, bevat o.a. bron- en doelpoort bytenummer (van eerste byte in dit segment) ACK-nummer (bevestigt alle voorgaande bytenummers) URG pointer PSH bit SYN bit, FIN bit, ACK bit Checksum (houdt rekening met pseudoheader) options: max TCP payload (default 536) windowsize scale factor selective repeat i.p.v. go-back-n bij hertransmissie 46

TCP protocol (3) pseudo header 47 TCP verbinding maken/opheffen Verbindingen maken d.m.v. 3-way handshake (Bij call collision één verbinding) nummering starten m.b.v. klok maximale packet lifetime 120 seconden full duplex verbinding verder te beschouwen als 2 simplex verbindingen. Elke simplex verbinding te beëindigen door FIN-bit Verbinding opgeheven als beide simplex verbindingen beëindigd. 48

TCP Transmissie policy Basis: sliding window protocol met variabele windowsize probleem bij interactieve toepassingen, b.v. bij editor, verbetering: Nagles algoritme Eerste byte meteen verzenden, volgende bytes bufferen tot ACK ontvangen is. (niet geschikt voor muis) probleem: Silly window syndroom d.w.z. ontvanger neemt iedere keer 1 byte van buffer en past windowsize met 1 aan. oplossing van Clark: ontvanger stuurt alleen nieuw windowsize, wanneer hij voldoende vrije ruimte heeft. 49 TCP congestion control (1) aanname: transmissie time-outs veroorzaakt door congestie congestie control : door afremmen van de zenders die te maken hebben met transmissie time-outs methode: naast window t.b.v. ontvanger, ook window t.b.v congestion control kleinste van beide windows wordt gebruikt 50

TCP congestion control (2) Bepaling van window t.b.v congestion control: start met windowsize = eenmaal max segmentsize als ACK binnen vóór timeout, verdubbel windowsize verdubbel steeds als er geen timeout is, (dit heet het slow start algoritme) als er een timeout optreedt of een treshold waarde wordt bereikt: bij timeout: halveer treshold en begin opnieuw met slow start bij treshold: verhoog windowsize steeds met vast bedrag tot window t.g.v ontvanger is bereikt 51 TCP congestion control (3) 52

TCP Timer management A. Retransmissie timer (T R ) wordt gezet bij verzenden van een pakket. Als ACK niet binnen voor aflopen van timer, dan retransmissie Baseren op Round Trip Time (RTT) dynamisch aanpassen ( exponentieel gemiddelde ) Jacobson's algoritme RTT := α RTT + (1- α ) M M is laatst gemeten RTT D is gemiddelde afwijking, ook dynamisch aanpassen: D := α D + ( 1-α ) RTT -M timeout waarde = RTT + 4*D Als timeout optreedt RTT verdubbelen (Karn's Algoritme) 53 TCP timer management B. persistentie timer (T P ) Als zender bij windowsize 0, gedurende tijd T p niets van de ontvanger heeft gehoord, zendt zender een verzoek om de windowsize mee te delen (anders misschien deadlock) C. Keep-alive timer (T A ) Als een verbinding gedurende tijd T A inactief is geweest, wordt door één zijde aan de andere kant gevraagd of deze er nog is. D. timed wait state (T C ) Bij een close wordt 2 maal de maximum packet lifetime gewacht of er nog een TPDU onderweg is. 54

Draadloos TCP TCP protocol functioneert correct in bij draadloze verbinding probleem: performance oorzaak: congestie control werkt averechts Pakket verlies nu meestal niet door congestie bij pakketverlies meer paketten zenden I.p.v. vertragen probleem: inhomogene paden: half kabel, half draadloos zender A basisstation B ontvanger C 55 Draadloos TCP Oplossingen voor inhomogeen pad: indirect TCP: splits verbinding in 2 TCP-verbindingen bij timeouts over AB, moet A vertragen bij timeouts over BC, moet B snel opnieuw zenden nadeel: bevestiging door B (naar A) betekent niet dat C het segment ontvangen heeft. Uitbreiden netwerklaag in B met snooping agent snooping agent bewaakt de overdracht van B naar C, zorgt eventueel voor retransmissie nadeel: kans op timeout van A en ten onrechte aanname van congestie 56

Draadloos UDP UDP functioneert correct bij draadloze verbindingen probleem: UDP wordt minder betrouwbaar gevolg: applicatie heeft vaker te maken met verloren berichten. Recovery kan duur zijn. 57 Performance problemen congestie onbalans systeem te traag voor net systeem slecht getuned synchrone overload b.v. broadcast storm massale reboot na stroomstoring window size (ideaal window is produkt van bandbreedte en delay) jitter (is variatie in delay) 58

Performance Meten (1) interessante gegevens: Round Trip Time (RTT) aantal retransmissies (als percentage) effectieve bandbreedte (bits/s) 59 Performance Meten(2) Punten van aandacht sample size representativiteit klok resolutie controleerbare omgeving caching en buffering begrijpen wat je meet oppassen met extrapolatie 60

Performance Design aspecten CPUsnelheid vaak belangrijker dan netwerkcapaciteit beperk aantal TPDU's minimaliseer aantal contextswitches buffers zo weinig mogelijk copiëren congestie voorkomen is beter dan genezen time-out waarden conservatief kiezen software van communicatiefuncties optimaliseren op de meest voorkomende situaties ( normale foutloze overdracht) 61 Giga-bit netwerken (1) Problemen: sequencenummers te klein communicatiesnelheid is sneller toegenomen dan CPUsnelheid go-back-n slecht bij verbindingen met groot bandbreedtedelay produkt bij grote bandbreedte is de delay de beperkende factor voor nieuwe toepassingen (multimedia ) is de variatie in de delay belangrijker dan een lage gemiddelde delay. 62

Giga-bit netwerken (2) Aanbevelingen voor oplossingen Uitgangspunt: bandbreedte is geen probleem meer protocol processing moet snel speciale hardware (alleen voor eenvoudige protocollen) software richten op performance terugkoppeling vermijden sliding window protocol vervangen door gegarandeerde capaciteit slow start algoritme (Jacobson) vervangen door het reserveren van resources door zender, ontvanger en netwerk 63 Giga-bit netwerken (3) Aanbevelingen (vervolg) packet layout aanpassen velden op gemakkelijke grenzen velden groot genoeg voor nieuwe situatie (b.v. grotere sequence nummers) aparte checksums voor header en data maximale datasize groot eerste data meezenden met connectie request 64