KTN1. Gruppe 502. Håkon Sandsmark, Torbjørn Kvåle, Kristoffer Eckhoff, Daniel Børseth og Steffen Amundsen

Like dokumenter
Gruppe KTN2 innlevering. Endringer gjort siden KTN1:

KTN1 - Design av forbindelsesorientert protokoll

ITF20205 Datakommunikasjon - høsten 2011

Nettverkslaget. Fragmentering/framsending Internetworking IP

in270 Datakommunikasjon, vår 03 forelesningsnotater, kap. 4

Socket og ServerSocket

Jentetreff INF1000 Debugging i Java

Løsningsforslag Gruppeoppgaver, 28. april 2. mai. 1. Metningskontroll ( Congestion control ) og ressursallokering.

Kapittel 4: Transportlaget

Forelesning 1. Introduksjon til (eller repetisjon av) TCP/IP Datasikkerhet

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

DecisionMaker Frequent error codes (valid from version 7.x and up)

Og her følger svaret fra Wikborg og Rein (Styret i Sanderød Vel) datert (sendt per mail) 29. juni 2015

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL

INF Puslegruppa - Kom i gang med PusleChat

Grunnleggende testteori

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

(MVC - Model, View, Control)

AlgDat 10. Forelesning 2. Gunnar Misund

IT Grunnkurs Nettverk 3 av 4

INF Obligatorisk innlevering 5

Automatisert Robusthetstesting. Erik Arisholm Testify AS

INF Hjemmeeksamen 2

=Systemutviklingsprosjekt - WATCH - Gruppe 208=

Grunnleggende testteori. Etter Hans Schaefer

SQL Server guide til e-lector

2EOLJDWRULVNRSSJDYHQU L GDWDNRPPXQLNDVMRQ + VWHQ.,QQOHYHULQJVIULVWRNWREHU *MHQQRPJnVWRUVGDJRNWREHU

IN uke 1. Komme i gang med programmering

Linklaget. Olav Lysne. (med bidrag fra Stein Gjessing og Frank Eliassen) Oppsummering 1

Praktisk informasjon. Forelesning 1. Forelesningsform. Lærebok. Lærebok forts. Eksamen. Forelesninger. ØvingerØvinger

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Tuberkulosescreening fra et brukerperspektiv. Frokostmøte LHLI,

Innholdsfortegnelse... 1 Endringslogg UD BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS

Trådløsnett med Windows Vista. Wireless network with Windows Vista

Trådløsnett med Windows XP. Wireless network with Windows XP

Tilkobling og Triggere

Hva består Internett av?

Testsituasjon Resultat Kommentar. Fungerer som det skal!

INF329,HØST

EKSAMEN I FAG TDT MMI Lørdag 11. august 2012 Tid: kl

PSY 1002 Statistikk og metode. Frode Svartdal April 2016

Grunnleggende testteori

Administrasjon av postnummersystemet i Norge Post code administration in Norway. Frode Wold, Norway Post Nordic Address Forum, Iceland 5-6.

2 Om statiske variable/konstanter og statiske metoder.

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang

Trådløssamling NORDUnet Stockholm Tom Ivar Myren

Feilmeldinger, brukerinput og kontrollflyt

INF 1010, vår 2005 Løsningsforslag uke 11

Kapittel 8: Programutvikling

INF3190 Obligatorisk oppgave: Eksternt administrasjonsverktøy med datastreaming

E-post fra Aditro Lønn

Slope-Intercept Formula

Kjørehjelperen Testdokumentasjon

... Annita Fjuk DESIGN THINKING

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

UNIVERSITETET I OSLO

EKSAMEN I FAG TDT MMI Lørdag 4. juni 2005 Tid: kl

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner for KID bytte kvitteringsliste L02625 levert i CSV format

INF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner kvitteringsliste L00202 levert i CSV fil

Scan Secure GTS PAS

INF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2

En algoritme for permutasjonsgenerering

kpmg AS Senior revisor

Eksamen i Internetteknologi Fagkode: ITE1526

Universitetet i Oslo Institutt for informatikk. Eskild Busch. UML hefte

GJENNOMGANG UKESOPPGAVER 9 TESTING

SuperOffice hurtigstart guide

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

3.3 Case 3: Opprette en bruker Case 4: Endre en bruker... 8

Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000

Leveringsguiden. tjeneste for henting av informasjon om Postens transportprodukter. Versjonshistorikk: nummer 30.mars à jour.

IP Internet. Tjenestemodell. Sammensetning av nettverk. Protokollstack

Linklaget - avslutning

IN uke 1. Komme i gang med programmering

Se vedlagte skisse som viser hvordan det er tenkt. Dette har også grunneier bekreftet til oss vil være ok.

Løsningsforslag Gruppeoppgaver mars 2003

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

Dagens tema: 12 gode råd for en kompilatorskriver

TB-615 / TB-617 Wireless slim keyboard. EN User guide SE Användarhandledning FI Käyttöohje DK Brugervejledning NO Bruksanvisning

Linklaget. Feildeteksjon/feilretting - pålitelig overføring. Foreleser: Kjell Åge Bringsrud kjellb 2/17/2004 1

2 Om statiske variable/konstanter og statiske metoder.

Sikkerhets skannere. Sikkerhets/sårbarhets skannere

Løsningsskisse til avsluttende eksamen i TDT4105 Informasjonsteknologi, grunnkurs Torsdag 8. desember :00 13:00

MAT-INF 1100: Obligatorisk oppgave 1

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?

Testrapport for Sir Jerky Leap

6107 Operativsystemer og nettverk

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004

Bestille trykk av doktoravhandling Ordering printing of PhD Thesis

INFO TAXI REMOTE. Taxi Management CONTROL SYSTEM (TMCS)

Elektronisk termostat med spareprogram. Lysende LCD display øverst på ovnen for enkel betjening.

SEPA og M3. Svein Frode Nordby, Infor Norway. Infoteam / Webinar / Nov 25, 2016

INF2270. Input / Output (I/O)

6105 Windows Server og datanett

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl

IN2010: Algoritmer og Datastrukturer Series 2

INF1010 våren januar. Objektorientering i Java

Transkript:

KTN1 Gruppe 502 Håkon Sandsmark, Torbjørn Kvåle, Kristoffer Eckhoff, Daniel Børseth og Steffen Amundsen 12.3.2009

2 KTN1 Gruppe 502 Innhold Innhold...2 Sekvensdiagram over kommunikasjon mellom A1 og A2...3 Tilstandsdiagram for A1...4 Design og realisering av A1 en tilkoblingsorientert forbindelse...6 Feilhåndtering...7 Testing av A1...8 Test 1 A2 uten feil...8 Test 2 A2 med feilsannsynligheter på 10 % og 50 %...10 Test 3 A2 med flere feil samtidig...12 Test 4 A2 med alle feil samtidig...14

3 KTN1 Gruppe 502 Sekvensdiagram over kommunikasjon mellom A1 og A2

4 KTN1 Gruppe 502 Tilstandsdiagram for A1 [mislykket] Koble til Kobler fra Kobler opp Koble fra Sender [vellykket] Mottar Send Inaktiv Lytt Motta Avbryt lytting Lytter Kobler opp Koble til Send forespørsel [vellykket tilkobling] Lytter etter Svar Inaktiv [answertime>timeout] Meld fra om feil [try_count>max_try_count]

5 KTN1 Gruppe 502 Motta Mottar [Vellykket] Inaktiv Mottar Meld fra om feil [try_count>max_try_count] [mislykket] Sender Send [Vellykket] Inaktiv Sender Meld fra om feil [try_count>max_try_count] [mislykket] Se sekvensdiagrammet for en beskrivelse av kvitteringssystemet.

6 KTN1 Gruppe 502 Design og realisering av A1 en tilkoblingsorientert forbindelse Overordnet struktur A1 er en tilkoblingsorientert forbindelse realisert som en Java klasse som implementerer grensesnittet Connection med disse metodene: void connect(inetaddress remoteaddress, int remoteport) void accept() void send(string msg) String receive() void close() Vi skal realisere disse metodene ved hjelp av A2, som er en ferdiglaget tilkoblingsløs forbindelse med disse metodene: send(ktndatagram inpacket) receive(int port) cancelreceive() Problemer 1. A2 er tilkoblingsløs, mens A1 skal være tilkoblingsorientert. 2. A2 er ikke feilfri, mens A1 skal være feilfri. 3. A2 kan kun sende KtnDatagram, mens A1 skal kunne sende String. Løsninger 1. Vi må implementere en handshake mekanisme for å opprette en forbindelse. 2. To typer feil kan oppstå: endring av datagraminnhold (a) og tap av datagram (b). a. Vi løser førstnevnte problem ved å sende med en kontrollverdi (checksum) som beregnes ut fra innholdet i datagrammet etter en spesifisert algoritme (for eksempel SHA 1). Mottaker sjekker om mottatt kontrollverdi stemmer overens med mottatt innhold ved å benytte samme algoritme. Mottaker ber om retransmisjon dersom kontrollen mislyktes. b. For å oppdage tap, sender vi bekreftelser på mottatt innhold. Sender har en nedtellsingsklokke per datagram som sendes, og klokken går av dersom han ikke mottar en bekreftelse på sendt datagram innen en bestemt tidsfrist. Datagrammet sendes da på nytt. Slik vil sender hele tiden vite om datagrammene er mottatt. 3. En String må omformes til ett eller flere KtnDatagram på en avtalt måte. Disse må nummereres og settes sammen i samme rekkefølge hos mottaker.

7 KTN1 Gruppe 502 Feilhåndtering Problemstilling: Alle feil som oppstår i det underliggende A2 skal tas hånd i A1, og skal være transparente (usynlige) for applikasjonen. Kun om feilene er så alvorlige at forbindelsen er/kan regnes som brutt skal applikasjonen oppdage disse. Hvilke tiltak kan gjøres for å unngå feilene i tabell 1. Tabell 1: (A2 Ud, 3.1 Errors, [Table 1]) Name Cause Consequence Package lost The package did not manage to come through to the destination The packet does not arrive at the destination and the information is lost. Package delayed Package has errors Ghost package The package got delayed somewhere but appears eventually after some delay. The package has been contaminated somewhere along the way and is not valid any more. The checksum is wrong. A package from nowhere or anywhere appears to belong The package may occur twice as the package may be retransmitted because it was thought to be lost. The package can contain the wrong information when arriving at the destination. If the header is altered, then it can end up at the wrong computer. A packet that should not be received is received. Can Diskusjon og løsning: For å løse problemene i tabell 1 skal det lages et connection oriented interface. Ved diskusjon har vi kommet fram til følgende løsning som er basert på en implementasjon av tcp protokollen. Package lost: - Implementering av handshaking før sending av pakker i transportlaget - ACK og sequence nummer i datagram som sendes mellom klient/tjener. Nødvending for å sjekke at en pakke har kommet fram. - TCP timeout: Tid før pakker retransmiteres. - Retransmisjon av pakker som mistes. Oppbygging av pakker som er out of order, som følge av tap av pakker, skjer i tjenerens applikasjon Package delayed: - Nesten samme problemløsning som ved misting av pakker. - Hvis pakker som sendes ikke kommer fram før timeout anses de som mistet. Og må retransmiteres fra host. - Pakker som kommer fram til klient, og som klient allerede har mottatt forkastes Package has errors: - SHA 1 checksum for sjekking av pakker - Retransmisjon om pakkers checksum ikke er korrekt Ghost package: - Bruker også her checksum, sammen med sequence number for å kontrollere om pakken er ønskelig.

8 KTN1 Gruppe 502 Testing av A1 Test 1 A2 uten feil Innledning Vi skal sjekke om en instans av A1 klarer å koble seg opp, sende en tekststreng og koble seg fra en annen instans av A1 via en feilfri A2. Hva vi skal teste Vi skal teste at: oppkoblingen fungerer tekststrengen kommer fram det er samme tekststreng som kommer fram frakoblingen fungerer Hvordan skal vi teste Vi lager en klasse som simulerer en applikasjon. Så lager vi to instanser av denne applikasjonen på samme datamaskin og prøver å koble dem sammen med host localhost. Deretter sender vi en tekststreng som er så kort at den slipper å bli delt opp i flere KtnDatagram. Så prøver vi å sende vi en tekststreng som er så lang at den må deles opp i flere KtnDatagram. Til slutt tester vi om frakoblingen fungerer. Godkjenningskriterier Testen blir godkjent hvis alle følgende krav er oppfylt: oppkoblingen fungerer og er aktiv i begge applikasjoner samme tekststreng kommer fram den ene applikasjonen oppfatter at den andre ønsker å koble fra, og frakoblingen blir gjennomført Avbruddskriterier Testen blir avbrutt hvis: vi får feilmelding i løpet av testen ikke tilkoblingen fungerer i begge ender ikke samme tekststreng kommer fram ikke frakoblingen fungerer Hvis vi får et avbrudd, analyserer vi resultatet før vi går gjennom koden og fikser problemet. Deretter begynner vi å teste på nytt igjen.

9 KTN1 Gruppe 502 Omgivelser Stiller krav om at: A2 er riktig programmert At kommunikasjon via localhost fungerer Risikoanalyse Ting som kan gå galt er: Alle punktene under Hva vi skal teste kan gå galt. o Tiltak: Feilene må analyseres og fikses. Vi kan ha skrevet testen/applikasjonen feil o Tiltak: Dersom dette mistenkes (for eksempel fordi vi ikke finner noen feil i A1), må vi gå gjennom testkoden og fikse den Avhengigheter Både testing av sending og testing av frakobling avhenger av at oppkoblingen fungerer. Testing av at det er samme tekststreng som kommer fram, avhenger av at tekststrengen kommer fram (!).

10 KTN1 Gruppe 502 Test 2 A2 med feilsannsynligheter på 10 % og 50 % Innledning Vi skal kontrollere hver feilkategori isolert med sannsynlighet på 10 % og 50 %. Vi planlegger følgende tester: Feil \ feilsannsynlighet 10 % 50 % Pakketap Pakkeforsinkelse Pakkefeil Spøkelsespakke Hva vi skal teste Vi skal teste at: tapte pakker retransmitteres at duplikate pakker blir ignorert at kontrollalgoritmen oppdager pakkefeil og ber om retransmisjon at uønskede pakker ignoreres Hvordan skal vi teste Vi utfører denne testen når test 1 er godkjent, og dermed kan vi også utføre denne testen ute hos applikasjonen. Vi stiller inn feilsannsynlighetene i settings.xml og kjører koden for hvert tilfelle i tabellen ovenfor. Vi sender en tekststreng som må deles opp i flere KtnDatagram og sjekker om samme tekststreng dukker opp i andre enden. Godkjenningskriterier Testen blir godkjent hvis alle følgende krav er oppfylt: samme tekststreng dukker opp i andre enden ved alle kombinasjoner av feil og feilsannsynligheter Avbruddskriterier Testen blir avbrutt hvis: vi får feilmelding i løpet av testen ikke samme tekststreng kommer fram Hvis vi får et avbrudd, analyserer vi resultatet før vi går gjennom koden og fikser problemet. Deretter begynner vi å teste på nytt igjen.

11 KTN1 Gruppe 502 Omgivelser Stiller krav om at: A2 er riktig programmert at test 1 avdekket alle feil, som for eksempel i oppdeling og sammensetting av KtnDatagram Risikoanalyse Ting som kan gå galt: at ikke sender oppdager pakketap og retransmitterer pakken o Tiltak: Vi må se på stoppeklokken som tar tiden på godkjenning at vi bruker duplikate pakker o Tiltak: Sjekke mekanismen som organiserer pakker på mottakersiden at pakkefeil ikke oppdages o Tiltak: Gjennomgå kontrollalgoritmen at vi lar oss lure av spøkelsespakker o Tiltak: Sjekke mekanismen som organiserer pakker på mottakersiden Avhengigheter Alt avhenger av at mekanismene som ble testet i test 1 fungerer som de skal.

12 KTN1 Gruppe 502 Test 3 A2 med flere feil samtidig Innledning Vi skal kontrollere A1 når flere feilkategorier er representert samtidig. Feil Feilsannsynlighet 1. Pakketap og pakkeforsinkelse 10 % på begge 2. Pakketap og pakkeforsinkelse 50 % på begge 3. Pakkeforsinkelse og spøkelsespakke 10 % på begge 4. Pakkeforsinkelse og spøkelsespakke 50 % på begge 5. Pakkefeil og spøkelsespakke 10 % på begge 6. Pakkefeil og spøkelsespakke 50 % på begge Vi setter sammen de feilene som vi antar påvirker hverandre: 1 og 2: Pakketap kan forveksles med pakkeforsinkelse. 3 og 4: Spøkelsespakker kan bli tatt for god fisk dersom den pakken vi virkelig ønsker er forsinket. 5 og 6: Pakker med feil og spøkelsespakker er begge uønsket, men vi ønsker kun retransmisjon av pakker med feil, og ikke av spøkelsespakkene. Vi øker feilsannsynligheten til 50 % dersom første test med 10 % sannsynlighet var vellykket. Hva vi skal teste Vi skal teste at: A1 setter en fornuftig tidsfrist på pakkebekreftelse slik at vi klarer å skille mellom tap og forsinkelse (for å gjøre A1 så effektiv som mulig) at spøkelsespakker ikke blir godtatt (for å gjøre A1 feilfri) at vi ber om retransmisjon av alle feilpakker (eventuelt lar være å sende bekreftelse, helst førstnevnte for størst effektivitet) at vi ber om retransmisjon av så få spøkelsespakker som mulig (antar at sender skjønner at denne er uineteressant, eller kanskje at den sender en duplikat pakke). Det vil nok fungere uansett, men best å unngå for høy effektivitet. Hvordan skal vi teste I denne testen holder det ikke å sjekke at riktig tekststreng kommer fram, vi må også sjekke for unødvendige retransmisjoner m.m. Derfor må vi bruke loggefunksjonaliteten i admin systemet for å sjekke hvilke pakker som blir sendt.

13 KTN1 Gruppe 502 Godkjenningskriterier Testen blir godkjent hvis alle følgende krav er oppfylt: samme tekststreng dukker opp i andre enden det skjer innen rimelig tid og uten for mange unødvendige pakkesendinger Avbruddskriterier Testen blir avbrutt hvis: vi får feilmelding i løpet av testen ikke samme tekststreng kommer fram ting tar usannsynlig lang tid Hvis vi får et avbrudd, analyserer vi feilmeldingen/loggen før vi går gjennom koden og fikser problemet. Deretter begynner vi å teste på nytt igjen. Omgivelser Stiller krav om at: A2 er riktig programmert at test 1 avdekket alle feil, som for eksempel i oppdeling og sammensetting av KtnDatagram Risikoanalyse Ting som kan gå galt: det samme som i test 2 Avhengigheter Alt avhenger av at mekanismene som ble testet i test 1 fungerer som de skal.

14 KTN1 Gruppe 502 Test 4 A2 med alle feil samtidig Innledning Vi skal kontrollere A1 når alle feilkategorier er representert samtidig. Her er målet å få gjennomført en så realistisk test som mulig, så vi vil prøve å benytte høye, men realistisk fordelte feilsannsynligheter. Feil Feilsannsynlighet Pakketap 35,00% Pakkeforsinkelse 35,00% Pakkefeil 10,00% Spøkelsespakke 5,00% Hva vi skal teste Vi skal teste at: at samme tekststreng kommer fram i andre enden av A1 innen rimelig tid Hvordan skal vi teste Vi sender en tekststreng og sjekker om den kommer fram i andre enden. Vi tar også tiden på hvor lang tid det tar og går gjennom admin loggen. Godkjenningskriterier Testen blir godkjent hvis alle følgende krav er oppfylt: samme tekststreng dukker opp i andre enden det skjer innen rimelig tid og uten for mange unødvendige pakkesendinger Avbruddskriterier Testen blir avbrutt hvis: ikke samme tekststreng kommer fram ting tar usannsynlig lang tid Hvis vi får et avbrudd, analyserer vi feilmeldingen/loggen før vi går gjennom koden og fikser problemet. Deretter begynner vi å teste på nytt igjen.

15 KTN1 Gruppe 502 Omgivelser Stiller krav om at: A2 er riktig programmert at test 1 avdekket alle feil, som for eksempel i oppdeling og sammensetting av KtnDatagram Risikoanalyse I denne testen tester vi ting som allerede har blitt testet hver for seg, så eventuelle feil som oppdages her kan være vanskelig å identifisere. Avhengigheter Alt avhenger av at mekanismene som ble testet i test 1 fungerer som de skal.