Jump to content
Sign in to follow this  
feskos

Sende/motta over UDP (JAVA)

Recommended Posts

Hei folk. På skolen har vi fått en oppgave som er litt slem med kunnskapene mine. Selve oppgaven går ut på å lage programmer (java) for sikker overføring av data (sender og mottager). Programmet skal bruke UDP for overføring, men TCP ligger jo i mekanismene der allerede.

 

Minimumskravet er å lage et program som deler opp en fil i datagram.pakker, legger på sekvensnr og sjekksum, samt venter på kvittering før neste pakke sendes. Det beste hadde vært om jeg fikk overført et bilde feilfritt, selv om nettverkskabelen trekkes ut av pcen for en liten stund.

 

Noen som har tips om hvordan å angripe dette? Sikkerhet i form av autentisering+kryptering osv, er for a-kandidater – så ser bort fra dette til å begynne med.

 

kanskje greit å legge til detaljene for sender og mottaker:

 

sender skal: lese data fra fil dele innholdet inn i mindre pakker, påføre pakkene sekvensnr, påføre pakkene sjekksum, sende pakkene etter den valgte protokollen - dette innebærer spesielt at det må finnes timere som sørger for retransmisjon hvis kvittering ikke kommer.

 

Mottaker skal: kontrollere sjekksum og sende kvittering hvis pakken er OK. Kontrollere sekvensnummer. lagre data på fil (hvis sekvensnr er riktig)

Share this post


Link to post

Har vel et lignende fag på UiO nå, inf3190. Kommer ikke så tydelig fram hvilket nivå dette er snakk om, vi har ikke om kryptering og sånt.

 

Du kan jo se på foiler på UiO sin hjemmeside (søk etter inf3190). Det du beskriver i andre avsnitt er "Stop and wait". Eller så er vel "sliding window", "go back n" og "selectiv repeate" greie søkeord.

Share this post


Link to post

Vell, jeg vet ikke hvilke grunn kunnskaper du har. Men det faktum at du har fått denne oppgaven sier jo litt, så begynner å si at du må da lage en udp tilkobling. (Enkelt eksempel her)

 

 

Du kan etter det lage et interface som inneholder feks metoden send og et par variabler som er crc32 checksum og seq nummer.

 

Så kan du lage en fil leser "randomaccessfile, bufferedreader" jeg foretrekker randomaccessfile. La oss si at pakke størrelse er maks 500byte.

 

1. Du splitter dataen fra filen i 500byte chunks og legger til sekvensnummer

2. Du sjekker crc til hele filen

3. Du sender crc til mottaker

4. Du sender pakkene som du har laget

5. Du setter da sammen pakkene ved hjelp av sekvensnummer du kan feks bruke seek i randomaccessfile hvis du vil skrive til filen med en gang pakken kommer

6. Når du har satt sammen pakkene til en fil genererer du crc av den filen du har motatt og matcher den mot den du fikk i starten

 

Alternativt kan du legge til crc for hver av pakkene slik at du slipper å må sende hele filen på nytt i tilfelle feil.

 

Håper dette hjalp, er ikke noe verdensmester i å forklare men har da prøvd i allefall.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...