3. Remote Procedure Call (RPC)



Relevanta dokument
DIG IN TO Nätverksteknologier

Repetition DK2 Middleware, P2P, Multimediatransport. Stefan Alfredsson 18 Mars 2005

DIG IN TO Nätverksteknologier

Distribuerade affärssystem

Föreläsning 5. Vägval. Vägval: önskvärda egenskaper. Mål:

Tentamen Nätverksprogrammering Lösningsförslag

Tentamen i Datorkommunikation den 10 mars 2014

5 Internet, TCP/IP och Applikationer

Instuderingsfrågor ETS052 Datorkommuniktion

Tillförlitlig dataöverföring Egenskaper hos en länk Accessmetoder. Jens A Andersson

DA 2012: F13. Nätverk 2 Ann-Sofi Åhn

Tillförlitlig dataöverföring. Jens A Andersson

1. Internets Applikationer 8 poäng

Vad är Internet? - Flera olika slags nät - Vill kunna kommunicera över dessa nät - Vad gör man?

KomSys Hela kursen på en föreläsning ;-) Jens A Andersson

TCP/IP och Internetadressering

Lösningar till tentan i ETS052 Datorkommunikation

5 Internet, TCP/IP och Tillämpningar

Kapitel 3 o 4. Tillförlitlig dataöverföring. (Maria Kihl)

Följande signaler har kodats med Manchester. Hur ser bitströmmen ut om den inleds med en 0:a?

5. Internet, TCP/IP tillämpningar och säkerhet

LTH, Institutionen för Elektro- och Informationsteknik (EIT) ETS052 Datorkommunikation Sluttentamen: , 08-13

Kapitel 3 o 4 Att skicka signaler på en länk Tillförlitlig dataöverföring. Att göra. Att sända information mellan datorer

Föreläsning 5: ARP (hur hitta MAC-adress) IPv4, IPv6 Transportprotokoll (TCP) Jens A Andersson

QuickTime Streaming Server, en introduktion

SPID och identifiering av obfuskerade protokoll

LTH, Institutionen för Elektro- och Informationsteknik (EIT)

F8 Meddelandesändning med UDP

WWW. Exempel på klientsidan. Överföring av en html-fil. Snyggare variant. Verkligt format. Meddelandeformat för begäran HTTP

Lösningar till tentan i ETS052 Datorkommunikation

TENTAMEN FÖR KURS DAV C03, DATAKOMMUNIKATION II 5p Sid 1 av 6 Torsdag kl

Uppgift: Design and evaluation of a TCP proxy which provides secure tunneling to another TCP proxy.

Testtentamen i kursen TDTS04 Datornät och distribuerade system vt 2009

Transportnivån. Kommunikation mellan processer. Kommunikation mellan processer. Sockets och TCP. UDP (User Datagram Protocol) Checksumman

Tentamen Nätverksprogrammering Lösningsförslag

Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk. Jens A Andersson


Hanna Germundsson, Karl-Johan Lundberg.

Tentamen i datakommunikation EDA343/DIT420 Vt 2011

Transport Layer. Transport Layer. F9 Meddelandesändning med UDP EDA095 Nätverksprogrammering. Java och UDP TCP/UDP

Question 2. a) reliable delivery. 5 June

Laboration 2: Ett kommunikationssystem

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

IPv6 Jonas Aronsson 3TEa

Denial of Services attacker. en översikt

Christer Scheja TAC AB

Tentamen, Distribuerade System/Programvaruarkitektur

Real-time requirements for online games

Föreläsning 5: ARP (hur hitta MAC-adress) Från applikation till applikation

Lösningar ETS052 Datorkommunikation,

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Internet. Internet hur kom det till? Internets framväxt. Ett hierarkiskt uppbyggt telenät Kretskopplat/circuit switching

IT för personligt arbete F2

Datakom II (MNP) ht 1998 Bengt Ahlgren 1. Vad är speciellt med implementering av kommunikationsprotokoll?

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

IP Från användare till användare Vägval DNS Jens A Andersson (Maria Kihl) Att skicka data över flera länkar. Nätprotokoll

4 Paket- och kretskopplade nät

Grundläggande nätverksteknik. F2: Kapitel 2 och 3

Föreskrift OM INTEROPERABILITET AV KOMMUNIKATIONSNÄT OCH KOMMUNIKATIONSTJÄNSTER. Meddelad i Helsingfors den 24 november 2010

TENTAMEN. Kurskod/Kurs: 5DV013, Datakommunikation och datornät 5DV065, Datakommunikation och Internet

Mattias Wiggberg 1. Orientera på Internet. IP-adress. IP-adresserna räcker inte... Mer om IP-adresser

TDTS04 Datornät och distribuerade system, 15 mars 2010 Svar sammanställda av Juha Takkinen, IDA,

Internetprotokollen. Maria Kihl

DIG IN TO Administration av nätverk- och serverutrustning

Datakommunikation vad är det?

Datalänklagret. Datalänklagret ska:

DIG IN TO Nätverksteknologier

Laborationer onsdag/fredag. Laborationer onsdag/fredag. Tillförlitlig dataöverföring Multiplexering Lokala nät (inledning) Labbmanual

Elektronisk tullräkning Sid 1(9) Samverkansspecifikation. Version: 1.0 SAMVERKANSSPECIFIKATION. för. e-tullräkning

Kihl & Andersson: , 4.5 Stallings: , , (7.3)

Kapitel 6, 7, o 8: IP DNS Vägval Från användare till användare Jens A Andersson (Maria Kihl) Att skicka data över flera länkar.

Grundläggande nätverksteknik. F3: Kapitel 4 och 5

Grundläggande datavetenskap, 4p

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

Denna genomgång behandlar följande: IP (v4) Nätmasken ARP Adresstilldelning och DHCP

Föreläsning 5: Stora datanät Från användare till användare ARP

Länkhantering (feldetektering, felhantering, flödeskontroll) Maria Kihl

Datainsamling över Internet

2D1395, Datasäkerhet. GF3 Paketfiltrering

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Kapitel 3 o 4. Tillförlitlig dataöverföring. (Maria Kihl)

IP routinghierarkier. Robert Löfman Institutionen för informationsbehandling Åbo Akademi, FIN Åbo, Finland e post: robert.lofman@abo.nospam.

Request for Transfer. Beskrivning av tjänsten. Januari 2017

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

Tillförlitlig dataöverföring Egenskaper hos en länk Accessmetoder. Jens A Andersson

Denna genomgång behandlar följande:

Informationsteknologi sommarkurs 5p, Datakommunikation

Tentamen Nätverksprogrammering Lösningsförslag

Kihl & Andersson: , Stallings: , , DHCP beskrivs även bra på

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

BEHANDLING AV MEDDELANDEBLANKETTEN Ver 1.04b

Ver Guide. Nätverk

Datakommunika,on på Internet

Hjälpprotokoll till IP

4 Paket- och kretskopplade nät

Transportskiktet. Sidorna , i boken

Nätverk och Java, grunder Föreläsning 0: 0: Introduktion till Internet

BEAst rekommendation för hantering av bilagor till elektroniska fakturor

Brandväggar och portöppningar. Manual

Transportskiktets uppgifter. Transportskiktet UDP. UDP-kapning (DNS) DNS-sökning, Ethernet-ram <#>

Transkript:

5.18 3. Remote Procedure Call (RPC) Allmän kommunikationsparadigm: request / reply En klientprocess sänder en förfrågan till en serverprocess som svarar med ett svarsmeddelande klient förfrågan server blockerad Klienten / servern är blockeradmedandenväntar på svar / förfrågningar blockerad exekverande Ett RPC-system tillåter att program anropar både lokala och icke-lokala procedurer. Dvs. RPC är en mekanism för att strukturera distribuerade system och består av två komponenter: Ett tillförlitligt protokoll för överföring av fråge- / svars meddelanden mellan en klient(anropande process) och server (anropad process). Kompilator-stump (stub): understöd i programmeringsspråkets kompilator för att svar omforma anropets argument till ett frågemeddelande omforma frågemeddelandet tillbaka till anropets argument omforma resultatet till ett svarsmeddelande omforma svarsmeddelandet tillbaka till procedurresultatet blockerad Om de anropade procedurerna är metoder för icke-lokala objekt i ett objektorienterar språk kallas RPC RMI (remote method invocation) Anropande process (klient) Anropad process (server) argument resultat argument resultat Klient-stub Server-stub förfrågan svar förfrågan svar RPCprotokoll RPCprotokoll

5.19 Varför? Varje RPC protkoll måste: Kunna identifiera de anropade procedurerna Namnrymden bör vara hierarkisk och implementeras m.h.a. ett fält för varje nivå i request-meddelandet. Synkronisera frågor och svar Varje request/reply-par identifieras m.h.a. ett id-nummer i ett IDfält i meddelandena. Problem: En klient maskin som sänt en begäran kan om den crachar sända en orelaterad begäran med samma idnummer efter att den boot at. Servern förkastar denna som duplikat Lösning: Boot-ID används dvs. ett request/reply-par identifieras av sitt id-nummer och boot-id. Dessutom erbjuds ofta, om RPC utnyttjar underliggande protokoll som ej erbjuder dessa tjänster (t.ex. UDP/IP) eller dessa tjänster kan implementeras effektivare av RPC-protokollet : Pålitlig överföring av meddelanden Understöd för överföring av stora meddelanden m.h.a. framentering/reasemblering Pålitlig överföring Klient Server Både klienten och servern en klocka vid sändning av ett meddelande och sparar en kopia tills meddelandet blivit kvitterat. Om utlöper sänds meddelandet på nytt. Detta sker ett antal gånger innan klienten / servern ger upp. Request ACK Reply ACK. Boot ID är ett nummer som inkrementeras varje gång maskinen rebootar svaret produceras

5.20 Varför? Implicit kvittering: Om protokollet är sekventiellt (klienten sänder ej en ny fråga förrän svaret på den föregående mottagits): kvitterar Reply-meddelandet ett Klient Server Request-meddelandet och ett Request-meddelande kvitterar det föregående Reply-meddelandet. Problem: Ett sekventiellt protokoll är för ineffektivt Lösning: RPC implementerar en kanal abstraktion m.h.a. ett kanal- ID - i meddelandena ingår ett kanalid-fält och högst en aktiv transaktion per kanal tillåts Request 1 Reply 1 Request 2 Reply 2. Problem: Tiden för serverprocessen att producera ett svar kan vara hur lång som helst. Klienten bör kunna skilja mellan en långsam server och en "död" server. Lösning: Klienten sänder periodiskt ett are-you-alive - meddelande (m.h.a en klocka) som servern besvarar med ett ACK-meddelande. (smart sender - dumb resierver principen ger mera skalbara system) Högst-en-gång (at-most-once) semantik: Högst en kopia av varje request-meddelande levereras åt server (eller ingen alls om nätet eller servern ej fungerar). Kan implementeras m.h.a sekvensnummer: request-meddelandena på varje kanal numreras och servern håller reda på aktuellt nummer för varje kanal.

5.21 Framentering/reasemblering Sändaren (klient eller server) indelar ett långt meddelande i fragment (numrerade 0,1,2,...) Varje fragment innehåller sekvensnumret samt en flagga som anger om fragmentet är det sista eller ej eller om hela meddelandet ingår i fragmentet Mottagaren kvitterar varje fragment med sekvensnummeret för det senas korrekt mottagna fragmentet i ordningsföljd samt alla saknade fragments nummer (impl. bitvektor relatift det korrekta numret). Dessutom kvitterar mottagaren varje korrekt frament som ej mottagits i ordningsföljd Sändaren sänder de saknade fragmenten på nytt. Klient Server fragt 5 fragt 6 frag 7 frag 8 frag 9 frag 10 kvitteringar ej utritade Fack Fack: 5 0x06=10110 frag 6 frag 9 kvitteringar ej utritade frag 10

5.24 4. Real-Time Transport Protocol (RTP) Transportprotokoll för realtids och multimedia applikationer. Realtids applikation = applikation med höga krav på att meddelanden anländer i tid. Multimedia applikationer (involverar ljud, bild och data) indelas i två klasser: Interaktiva applikationer. T.ex. Internet telefoni, videokonferensverktyg (vic), audiokonferensverktyg (vat). Strömmande applikationer, överför ljud och bild streams från en server till en klient - ej lika höga realtids krav Ett RTP-protokoll måste vara tillräckligt allmänt för att kunna betjäna olika typer applikationer och bör tillåta interaktion mellan olika applikationer. Protokoll stack för multimedia applikationer Applikation RTP UDP IP subnät

5.25 Krav och funktionelitet: 1. Ett RTP-protokoll bör tillåta att likartade applikationer opererar tillsammans (deltagarna i en audiokonferens bör ej behöva använda samma audiokonferens implementation) Detta innebär att protokollet bör tillåta att man kommer överens om vilka metoder som skall användas för att koda och packa ljud och video.=> RTP kan meddela val av kodningsmetod eg. kodningsalgoritm. 2. Mottagaren av en dataström bör kunna räkna ut tidsförhållandena mellan mottagen data (data placeras i en playback buffert för att jämna ut jitter, varifrån det spelas upp). Detta kräver att data måste tidstämplas. => Tidstämpling av paket 3. Synkronisation av flere mediaströmmar, t.ex. ljud och bild från en sändare. 4. Omtransmission är vanligen ej möjligt p.g.a. de höga realtidskraven (applikationerna kan hantera paketförlust om de är medvetna om detta). Applikationer kan minska behovet av bandbredd vid rusning genom att sänka kvaliteten på överförd data (ändra parametrarna i kodningsalgoritmen). Detta kräver att mottagaren meddelar sändaren om förlust av paket => Indikation av paket förlust 5. Indikation av ram gränser, t.ex. sammanhängande ljud (talkspurt) kan indelas i ramar separerade av perioder av tystnad. 6. Identifiering av sändare på ett användarvänligt sätt (dvs. ej IPadresser) => Assosiering av teckensträngar, med sändare 7. Ett RTP-protokoll bör utnyttja bandbredden väl, dvs. overhead bitar i headern bör undvikas om möjligt. (Ljud sänds i små paket) => Korta pakethuvud

5.26 V (2 bitar): Versions nummer =2 0 16 31 P (1 bit): Indikerar utfyllnad (padding)en V P X CC M PT Sequence nr biträcker ty storleken på padfältet Timestamp placeras i padfältet SSRC id X (1 bit): Indikerar att ett extra pakethuvud CSRC id ingår i paketet... CC (4 bitar): Antal sändare Extension header M (1 bit): Markerar början på en ram RTP payload PT (7 bitar): Payload Type, anger vilken typ av multimedia paketet innehåller Paketformat Användningen av M- och PT-fälten bestäms av applikationen Timestamp Tidsstämpel SSRC id Synchronization source identifikation, identifierar en RTP ströms sändare (oberoende av lågnivå-protokoll, det kan finnas flera i en värd CSRC id Contributing source identifikation, används endast om flera datastömmar sänds som en ström (SSRC är id för strömmen, CSRC listar delatagarna) Extension header

5.27 Kontroll protokoll, RTCP RTCP tillhandahåller en kontrollström assossierad med en data ström för en multimedia applikation. De viktigaste funktionerna är: Ge respons på applikationens och nätverkets prestation Korrelera och synkronisera olika mediaströmmar från samma sändare Överföra en sändares identitet till ett användargränssnitt Synkronisation av mediaströmmar: RTCP definierar följande pakettyper Sändar raport - med vilket aktiva sändare meddela statistik om trafiken (sändningar/mottagningar) Mottagar raport - med vilket mottagare som ej är sändare meddela statistik om mottagningar Källbeskrivning - överför information t.ex. CNAME på sändare, vem pratar,... Applikationsspesifik kontroll raport.